Fábricas de procesos

Cuando una configuración de lanzamiento lanza su programa, es responsable de invocar el programa ejecutable en la modalidad solicitada. La implementación de un lanzamiento dependerá de los detalles específicos de cada configuración de lanzamiento, pero la mayoría de conectores construirán una línea de mandatos y llamarán a un ejecutable de tiempo de ejecución para iniciar el programa. La clase DebugPlugin implementa un método de simplificación para invocar un ejecutable de tiempo de ejecución y el manejo de posibles excepciones. Los clientes pueden especificar la línea de mandatos y el directorio de trabajo del ejecutable.

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

Una vez que se ha creado java.lang.Process para el programa en ejecución, el conector de depuración tiene que gestionarlo. Para los usuarios nuevos, el proceso tiene que asociarse al ILaunch que representa el programa lanzado. El conector de depuración define un reiniciador para un proceso de sistema, IProcess, que permite a los clientes acceder al ILaunch asociado y asignar sus propios atributos indicados al proceso. Además, IProcess, define una etiqueta para el proceso y asocia un IStreamsProxy al proceso que da acceso a los clientes a las corrientes de entrada, salida y error del proceso del sistema. Este reiniciador de procesos también puede crearse utilizando un método de programa de utilidad en DebugPlugin.

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

También puede proporcionarse una correlación de los atributos indicados.

Muchos conectores pueden basarse simplemente en los métodos de programa de utilidad en DebugPlugin para lanzar el proceso del sistema y reiniciarlo en un IProcess. Para esos conectores que necesitan tener más control en la creación del reiniciador, puede asociarse una fábrica de procesos a una configuración de lanzamiento. La fábrica de procesos se utiliza para crear un IProcess que cumpla las necesidades especiales del conector. La fábrica de procesos tiene como referencia el ID y debe almacenarse en el atributo DebugPlugin.ATTR_PROCESS_FACTORY_ID de la configuración de lanzamiento.

La asociación entre el ID de fábrica de procesos y la clase que lo implementa se realiza mediante el punto de extensión org.eclipse.debug.core.processFactories.

El ejemplo siguiente muestra cómo el conector Ant configura una fábrica de procesos para sus lanzamientos:

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

Es responsabilidad del conector de registro para almacenar el ID de fábrica de procesos en el atributo adecuado de configuración de lanzamiento.