Factory di processo

Quando una configurazione di avvio avvia il programma, dovrà richiamare il programma eseguibile nella modalità specificata. L'implementazione di un avvio dipende dalle specifiche di ciascuna configurazione di avvio, ma la maggior parte dei plugin genererà una riga comandi e richiamerò un eseguibile di runtime per avviare il programma. La classe DebugPlugin implementa un metodo efficace per richiamare l'eseguibile di runtime e gestire le eventuali eccezioni. I client possono specificare la riga comandi e la directory di lavoro dell'eseguibile.

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

Dopo aver creato il java.lang.Process per il programma di esecuzione, verrà gestito dal plugin di debug. Il processo deve essere associato con l'ILaunch che rappresenta il programma avviato. Il plugin di debug definisce un wrapper per il processo di sistema IProcess, che consente ai client di accedere all' ILaunch associato e di assegnare i propri attributi al processo. Inoltre IProcess, definisce un'etichetta per il processo e associa IStreamsProxy al processo che fornisce ai client l'accesso ai flussi di input, output ed errore del processo del sistema. Questo wrapper di processi può essere creato anche utilizzando il metodo di utilità in DebugPlugin.

IProcess process= DebugPlugin.newProcess(launch, p, "My Process);

È anche possibile indicare un'associazione di attributi con nome.

Molti plugin possono solo utilizzare i metodi di utilità in DebugPlugin per avviare il processo di sistema e inserirlo in un IProcess. Per quei plugin che hanno bisogno di più controllo nella creazione del wrapper, è possibile associare una factory di processo ad una configurazione di avvio. Il factory di processo viene utilizzato per creare un IProcess adatto alle necessità del plugin. Il factory di processo è indicato da un id, e deve essere archiviato nell'attributo DebugPlugin.ATTR_PROCESS_FACTORY_ID della configurazione di avvio.

L'associazione tra l'id del factory di processo e la classe che lo implementa viene effettuato mediante il punto di estensione org.eclipse.debug.core.processFactories.

Il seguente esempio mostra come il plugin Ant imposta un factory di processo per i propri avvii:

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

Il plugin di registrazione dovrà archiviare l'id del factory di processo nell'attributo appropriato della configurazione di avvio.