Procesfabrikker

Når en startkonfiguration starter sit program, er den ansvarlig for at aktivere det eksekvérbare program i den tilstand, der er anmodet om. Implementeringen til en start afhænger af detaljerne i hver enkelt startkonfiguration, men de fleste plugins bygger en kommandolinje og kalder en runtime-exec for at starte programmet. Klassen DebugPlugin implementerer en bekvem metode til at starte en runtime-exec og håndtering af de mulige undtagelser. Klienter kan angive kommandolinje og arbejdsbibliotek for exec'en.

Process p = DebugPlugin.exec(cmdLine, workingDirectory);

Når java.lang.Process er oprettet til det udførende program, skal det administreres af en fejlfindings-plugin. Først og fremmest skal processen tilknyttes den ILaunch, som repræsenterer det startede program. En fejlfindings-plugin definerer en indpakning til en systemproces, IProcess, som gør det muligt for klienter at oprette adgang til den tilknyttede ILaunch og tildele deres egne navngivne attributter til processen. Derudover definerer IProcess en etiket til processen og knytter en IStreamsProxy sammen med processen, som giver klienter adgang til input-, output- og fejlstrømme i systemprocessen. Denne procesindpakning kan også oprettes vha. en funktionsmetode i DebugPlugin.

IProcess process= DebugPlugin.newProcess(launch, p, "Min proces);

Der kan også vises en oversigt over navngivne attributter.

Mange plugins kan ganske enkelt anvende funktionsmetoderne i DebugPlugin til at starte systemprocessen og pakke den ind i enIProcess. For de plugins, som behøver større kontrol over oprettelsen af indpakningen, kan der knyttes en procesfabrik sammen med en startkonfiguration. Procesfabrikken bruges til at oprette enIProcess, som opfylder de særlige plugin-behov. Der refereres til procesfabrikken vha. en id, og den gemmes i attributten DebugPlugin.ATTR_PROCESS_FACTORY_ID til startkonfigurationen.

Tilknytningen mellem procesfabrik-id'en og den klasse, som implementerer den, foretages vha. udvidelsespunktet org.eclipse.debug.core.processFactories.

Følgende eksempel viser, hvordan en Ant-plugin klargør en procesfabrik til sine startfunktioner:

<extension point="org.eclipse.debug.core.processFactories">
	<processFactory
		class="org.eclipse.ant.internal.ui.launchConfigurations.RemoteAntProcessFactory"
		id="org.eclipse.ant.ui.remoteAntProcessFactory">
	</processFactory>
</extension>   

Den registrerende plugin er ansvarlig for at gemme procesfabrikkens id i den relevante startkonfigurationsattribut.