Seu plug-in pode adicionar tipos de configuração de ativação para a plataforma utilizando o ponto de extensão org.eclipse.debug.core.launchConfigurationTypes Esse ponto de extensão permite declarar um tipo de configuração utilizando um ID exclusivo. Você deve fornecer uma implementação correspondente de ILaunchConfigurationDelegate. O delegado é responsável por ativar sua configuração de ativação em um modo especificado. Opcionalmente, é possível implementar ILaunchConfigurationDelegate2, o que aumenta a interface do delegado para permitir que seu delegado interrompa uma ativação, construa projetos relevantes no espaço de trabalho antes de uma ativação e controle a criação do objeto de ativação utilizado em uma ativação.
Além disso, para definir o delegado, é possível especificar quais modos de ativação são suportados pelo seu delegado e um nome que deve ser utilizado ao mostrar ativadores desse tipo para o usuário.
A seguinte marcação mostra como as ferramentas Java declaram uma configuração de ativação Java para a ativação de programas locais Java:
<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" sourceLocatorId="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector" sourcePathComputerId="org.eclipse.jdt.launching.sourceLookup.javaSourcePathComputer"> </launchConfigurationType> </extension>
Essa extensão define um delegado da configuração de ativação que pode ser utilizado para executar ou depurar programas que são ativados utilizando a configuração de ativação Java local.
Mencionamos anteriormente que a plataforma define os modos de ativação para executar, depurar ou traçar perfis de um programa. Esses modos são definidos utilizando o ponto de extensão org.eclipse.debug.core.launchModes. Esse ponto de extensão permite declarar um modo de ativação, definindo seu nome de modo de cadeia e a etiqueta que deve ser mostrada ao usuário para descrever o modo. A marcação a seguir mostra a definição dos três modos de ativação padrão da 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 o modo não está associado a nenhum tipo de configuração de ativação específico. Conforme mostrado anteriormente, aquela associação ocorre quando um delegado de ativação é especificado para um tipo de configuração.
Como os modos de ativação podem ser especificados independentemente dos tipos de configuração de ativação, é possível que novos modos sejam definidos que não são implementados pelo delegado original para uma configuração de ativação. Nesse caso, um plug-in pode definir um delegado de ativação que implementa um modo específico para um tipo de configuração de ativação específico. Isso pode ser feito, utilizando o ponto de extensão org.eclipse.debug.core.launchDelegates. Esse ponto de extensão permite definir um delegado de ativação que implementa os modos especificados para um determinado tipo de configuração. A marcação a seguir mostra como foi possível definir um delegado para traçar o perfil de um aplicativo Java local:
<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>
A especificação do delegado é semelhante à maneira como ele é feito ao definir um tipo de configuração de ativação, exceto que, neste caso, o tipo de configuração de ativação é especificado juntamente com os modos suportados. Conforme visto anteriormente, o delegado deve implementar ILaunchConfigurationDelegate e pode implementar, opcionalmente, ILaunchConfigurationDelegate2 para obter mais controle sobre a seqüência de ativação.
We Have Lift-off: The Launching Framework in Eclipse fornece um início para finalizar o exemplo para definir seu próprio tipo de ativação.