Añadir lanzadores a la plataforma

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 suministrar una implementación correspondiente de ILaunchConfigurationDelegate en el conector.  También puede especificar qué modalidades (ejecución, depuración) están soportadas por el lanzador, y qué nombre debe utilizarse para 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">
   </launchConfigurationType>
</extension>

Definir localizadores del fuente

Para cada tipo de configuración de lanzamiento en la que esté soportada la modalidad de depuración, es importante definir una manera de localizar el código fuente que se corresponde con el punto de ejecución actual del código.  ISourceLocator e IPersistableSourceLocator permiten definir una correlación que va desde un programa en ejecución al código fuente.

Los localizadores de código fuente se implementan generalmente para trabajar con una configuración de lanzamiento y un delegado de configuración de lanzamiento correspondientes.  Dado que las configuraciones de lanzamiento pueden ser persistentes, los localizadores de código fuente también pueden almacenarse con la configuración de lanzamiento.  Esto se consigue estableciendo un atributo de la configuración de lanzamiento como un ID de un localizador de código fuente.  Cuando se lee una configuración de lanzamiento desde el disco, el ID del localizador de código fuente debe correlacionarse de nuevo con la clase de implementación.  Esto se consigue mediante el punto de extensión org.eclipse.debug.core.sourceLocators

El punto de extensión le permite registrar la clase que implementa la interfaz IPersistableSourceLocator y asociarla a un ID que se almacenará junto con la configuración de lanzamiento.  Así, el conector de depuración podrá buscar las clases de localizador del fuente por su ID cuando llegue el momento de crear una instancia de una configuración de lanzamiento.

A continuación figuran códigos XML procedentes de las herramientas Java:

<extension point = "org.eclipse.debug.core.sourceLocators">
	<sourceLocator
		id = "org.eclipse.jdt.debug.ui.javaSourceLocator"
	   	class="org.eclipse.jdt.debug.ui.JavaUISourceLocator"
	   	name="%javaSourceLocator"/>
</extension>

Comparar configuraciones de lanzamiento

Los conectores utilizan determinados valores y atributos para almacenar datos importantes con una configuración de lanzamiento.  Debido a que la plataforma no conoce la interpretación de los atributos, se suministra un punto de extensión que permite proporcionar un comparador para un atributo específico.  Este comparador se utiliza para determinar si los atributos del nombre especificado son iguales.  En muchos casos, la comparación simple de series suministrada por java.lang.Object.equals(Object) es suficiente para la comparación de atributos.  Este método se utilizará si no se ha suministrado ningún comparador.  Sin embargo, algunos valores de atributo pueden requerir un manejo especial, como por ejemplo la eliminación de valores de espacio en blanco del texto antes de la comparación de igualdad.

Los comparadores se añaden mediante el punto de extensión org.eclipse.debug.core.launchConfigurationComparators

Las herramientas Java suministran comparadores de configuraciones de lanzamiento para comparar las vías de acceso del fuente y de las clases del programa.

<extension point = "org.eclipse.debug.core.launchConfigurationComparators">
	<launchConfigurationComparator
		id = "org.eclipse.jdt.launching.classpathComparator"
		class = "org.eclipse.jdt.internal.launching.RuntimeClasspathEntryListComparator"
		attribute = "org.eclipse.jdt.launching.CLASSPATH"/>
	<launchConfigurationComparator
		id = "org.eclipse.jdt.launching.sourcepathComparator"
		class = "org.eclipse.jdt.internal.launching.RuntimeClasspathEntryListComparator"
		attribute = "org.eclipse.jdt.launching.SOURCE_PATH"/>		
</extension>

Copyright IBM Corporation y otros 2000, 2003.