Incluindo Launchers na Plataforma

Seu plug-in pode incluir tipos de configuração de lançamento na plataforma utilizando o ponto de extensão org.eclipse.debug.core.launchConfigurationTypes.  Este ponto de extensão permite declarar um tipo de configuração utilizando um id exclusivo.  Você deve fornecer uma implementação correspondente de ILaunchConfigurationDelegate em seu plug-in.  Você também pode especificar quais modos (execução, depuração) são suportados por seu launcher e um nome que deve ser utilizado ao mostrar os launchers desse tipo ao usuário.

A seguinte marcação mostra como as ferramentas Java declaram uma configuração de lançamento Java para o lançamento de programas Java locais:

<extension point = "org.eclipse.debug.core.launchConfigurationTypes">
   <launchConfigurationType
   	   id="org.eclipse.jdt.launching.localJavaApplication"
	   name="%localJavaApplication"
	   delegate="org.eclipse.jdt.internal.launching.JavaLocalApplicationLaunchConfigurationDelegate"
	   modes= "execução, depuração">
   </launchConfigurationType>
</extension>

Definindo Localizadores de Origem

Para cada tipo de configuração de lançamento que suporta o modo de depuração, é importante definir uma maneira de encontrar o código fonte correspondente ao ponto de execução atual no código.  ISourceLocator e IPersistableSourceLocator definem uma interface para o mapeamento de um programa de execução de volta ao código fonte.

Os localizadores de origem são normalmente implementados para funcionar com uma configuração de lançamento e delegação de configuração de lançamento correspondentes.  Como as configurações de lançamento podem ser persistidas, os localizadores de origem também podem ser armazenados com a configuração de lançamento.  Isso é realizado definindo-se um atributo da configuração de lançamento para um id de um localizador de origem.  Quando uma configuração de lançamento é lida do disco, o id do localizador de origem deve ser mapeado de volta para a classe de implementação.  Isso é alcançado utilizando o ponto de extensão org.eclipse.debug.core.sourceLocators

O ponto de extensão permite registrar sua classe que implementa IPersistableSourceLocator e o associa a um id que será armazenado com a configuração de lançamento.  Isso permite que o plug-in de depuração procure as classes do localizador de origem por id quando for hora de instanciar uma configuração de lançamento.

A seguinte marcação origina-se das ferramentas Java:

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

Comparando Configurações de Lançamento

Os plug-ins utilizam atributos nomeados e valores para armazenar dados importantes com uma configuração de lançamento.  Como a interpretação de qualquer atributo não é reconhecida pela plataforma, é fornecido um ponto de extensão que permite fornecer um comparador para um atributo específico.  Esse comparador é utilizado para determinar se os atributos com o nome especificado são iguais.  Em muitos casos, a comparação de cadeia simples fornecida por java.lang.Object.equals(Object) é adequada para a comparação de atributos.  Esse método será utilizado se nenhum comparador tiver sido fornecido.  Entretanto, alguns valores de atributos podem requerer tratamento especial, tal como a demarcação de valores de espaço em branco no texto antes de comparar quanto à igualdade.

Os comparadores recebem contribuição utilizando o ponto de extensão org.eclipse.debug.core.launchConfigurationComparators

As ferramentas Java fornecem comparadores de configuração de lançamento para a comparação de caminhos de origem e caminhos de classe do 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 Corp. e outros 2000,2002.