El conector puede añadir tipos de configuración de lanzamiento a la plataforma mediante el punto de extensión org.eclipse.debug.core.launchConfigurationTypes. Este punto de extensión le permite declarar un tipo de configuración mediante un ID exclusivo. Debe proporcionar una implementación correspondiente de ILaunchConfigurationDelegate. El delegado es responsable de lanzar su configuración de lanzamiento en una modalidad especificada. Opcionalmente, puede implementar ILaunchConfigurationDelegate2, que aumenta la interfaz de delegado para que el delegado termine anormalmente un lanzamiento, cree proyectos relevantes en el área de trabajo antes de un lanzamiento y controle la creación del objeto de lanzamiento que se utiliza en un lanzamiento.
Además de definir el delegado, puede especificar qué modalidades de lanzamiento están soportados por el delegado y un nombre que debe utilizarse al mostrar los lanzadores de este tipo al usuario.
Los siguientes códigos XML muestran cómo declaran las herramientas Java una configuración de lanzamiento Java para lanzar programas Java locales:
<extension point = "org.eclipse.debug.core.launchConfigurationTypes"> <launchConfigurationType id="org.eclipse.jdt.launching.localJavaApplication" name="%localJavaApplication" delegate="org.eclipse.jdt.internal.launching.JavaLocalApplicationLaunchConfigurationDelegate" modes= "run, debug" sourceLocatorId="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector" sourcePathComputerId="org.eclipse.jdt.launching.sourceLookup.javaSourcePathComputer"> </launchConfigurationType> </extension>
Esta extensión define un delegado de configuración de lanzamiento que puede utilizarse para ejecutar o depurar programas que se lancen utilizando la configuración de lanzamiento local Java.
Mencionamos anteriormente que la plataforma define modalidades de lanzamiento para ejecutar, depurar o crear perfiles de un programa. Estas modalidades se definen utilizando el punto de extensión org.eclipse.debug.core.launchModes. Este punto de extensión permite declarar una modalidad de lanzamiento definiendo su nombre de modalidad de serie y la etiqueta que debe mostrarse al usuario para describir la modalidad. Los códigos siguientes muestran la definición de las tres modalidades de lanzamiento estándar de la plataforma:
<extension point="org.eclipse.debug.core.launchModes"> <launchMode label="%run" mode="run"> </launchMode> <launchMode label="%debug" mode="debug"> </launchMode> <launchMode label="%profile" mode="profile"> </launchMode> </extension>
Observe que la modalidad no está asociada a ningún tipo de configuración de lanzamiento en particular. Como se ha mostrado anteriormente, esta asociación se produce cuando se especifica un delegado de lanzamiento para un tipo de configuración.
Dado que las modalidades de lanzamiento pueden especificarse independientemente de tipos de configuración de lanzamiento, es posible que se definan nuevas modalidades que no se implementen por el delegado original para una configuración de lanzamiento. En este caso, un conector puede definir un delegado de lanzamiento que implementa una modalidad en particular para un tipo de configuración de lanzamiento determinado. Esto puede realizarse mediante el punto de extensión org.eclipse.debug.core.launchDelegates. Este punto de extensión permite definir un delegado de lanzamiento que implementa las modalidades especificadas para un tipo de configuración dado. Los códigos siguientes muestran cómo podría definir un delegado para crear el perfil de una aplicación local Java:
<extension point="org.eclipse.debug.core.launchDelegates"> <launchDelegate id="com.example.MyJavaProfileDelegate" delegate="com.example.MyJavaProfileDelegate" type="org.eclipse.jdt.launching.localJavaApplication" modes="profile"> </launchDelegate> </extension>
La especificación del delegado es similar a la manera como se realiza al definir un tipo de configuración de lanzamiento, excepto que, en este caso, el tipo de configuración de lanzamiento se especifica junto con las modalidades soportadas. Como se ha visto anteriormente, el delegado debe implementar ILaunchConfigurationDelegate y puede implementar opcionalmente ILaunchConfigurationDelegate2 para tener más control sobre la secuencia de lanzamiento.
Despegue: la infraestructura de lanzamiento en Eclipse proporciona un ejemplo de principio a fin para definir su propio tipo de lanzamiento.