O plug-in pode adicionar tipos de configurações de lançamento à plataforma através do ponto de extensão org.eclipse.debug.core.launchConfigurationTypes. Este ponto de extensão permite declarar um tipo de configuração através de um ID único. É necessário indicar uma implementação correspondente de ILaunchConfigurationDelegate. O delegado é responsável por lançar a respectiva configuração de lançamento num modo especificado. A título opcional, poderá implementar o ILaunchConfigurationDelegate2, o qual aperfeiçoa a interface do delegado para permitir ao mesmo cancelar um lançamento, construir projectos relevantes no espaço de trabalho antes de um lançamento, e controlar a criação do objecto de lançamento que é utilizado num lançamento.
Além de definir o delegado, poderá especificar quais os modos de lançamento suportados pelo delegado, e um nome que deve ser usado ao mostrar lançadores deste tipo ao utilizador.
A marcação seguinte mostra como as ferramentas Java declaram uma configuração de lançamento Java para lançar 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= "run, debug" sourceLocatorId="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector" sourcePathComputerId="org.eclipse.jdt.launching.sourceLookup.javaSourcePathComputer"> </launchConfigurationType> </extension>
Esta extensão define um delegado de configuração de lançamento que pode ser usado para executar ou depurar programas que sejam lançados com a configuração de lançamento Java local.
Mencionámos anteriormente que a plataforma define modos de lançamento para executar, depurar ou perfilar um programa. Estes modos são definidos por meio do ponto de extensão org.eclipse.debug.core.launchModes. Este ponto de extensão permite declarar um modo de lançamento mediante definição do respectivo nome do modo de cadeia e a etiqueta que deve ser apresentada ao utilizador para descrever o modo. A marcação seguinte mostra a definição dos três modos de lançamento 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>
Repare que o modo não está associado a nenhum tipo de configuração de lançamento particular. Tal como mostrámos anteriormente, essa associação ocorre quando um delegado de lançamento é especificado para um tipo de configuração.
Dado que os modos de lançamento podem ser especificados independentemente dos tipos de configurações de lançamento, é possível que sejam definidos novos modos que não sejam implementados pelo delegado original para determinada configuração de lançamento. Neste caso, um plug-in poderá definir um delegado de lançamento que implemente um modo particular para determinado tipo de configuração de lançamento. Tal poderá ser realizado por meio do ponto de extensão org.eclipse.debug.core.launchDelegates. Este ponto de extensão permite definir um delegado de lançamento que implemente os modos especificados para determinado tipo de configuração. A marcação seguinte mostra como se poderia definir um delegado para perfilar uma aplicação Java local:
<extension point="org.eclipse.debug.core.launchDelegates"> <launchDelegate id="com.exemplo.MeuDelegadoPerfilJava" delegate="com.exemplo.MeuDelegadoPerfilJava" type="org.eclipse.jdt.launching.localJavaApplication" modes="profile"> </launchDelegate> </extension>
A especificação do delegado é semelhante à maneira como é efectuada ao definir um tipo de configuração de lançamento, excepto que enste caso o tipo de configuração de lançamento é especificado junto com os modos suportados. Tal como vimos anteriormente, o delegado deve implementar ILaunchConfigurationDelegate, e pode implementar opcionalmente ILaunchConfigurationDelegate2 para mais controlo sobre a sequência de lançamento.
Temos Decolagem: O Quadro de Lançamento em Eclipse proporciona um exemplo do princípio ao fim para definir um tipo de lançamento próprio.