Votre plug-in peut ajouter des types de configurations de lancement à la plate-forme à l'aide du point d'extension org.eclipse.debug.core.launchConfigurationTypes. Ce point d'extension vous permet de déclarer un type de configuration avec un ID unique. Vous devez indiquer une implémentation correspondante de ILaunchConfigurationDelegate. Le délégué est responsable du lancement de sa configuration de lancement dans un mode spécifié. De manière facultative, vous pouvez implémenterILaunchConfigurationDelegate2, qui améliore l'interface déléguée pour permettre à votre délégué d'annuler un lancement, de créer des projets pertinents dans l'espace de travail avant un lancement et de contrôler la création d'un objet de lancement utilisé dans un lancement.
Outre la définition d'un délégué, vous pouvez spécifier quels modes de lancement sont pris en charge par votre délégué et le nom à utiliser lors de l'affichage des lanceurs de ce type pour l'utilisateur.
Les marquages suivants indiquent comment les outils Java déclarent une configuration de lancement Java pour de programmes de lancement Java locaux :
<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>
Cette extension définit un délégué de configuration de lancement qui peut être utilisé pour exécuter ou déboguer des programmes lancés à l'aide de la configuration de lancement Java locale.
Nous avons vu précédemment que la plateforme définit des modes de lancement pour l'exécution, le débogage ou le profilage d'un programme. Ces modes sont définis à l'aide du point d'extension org.eclipse.debug.core.launchModes. Ce point d'extension vous permet de déclarer un mode de lancement en définissant son nom de mode de chaîne et l'intitulé qui doit s'afficher pour l'utilisateur afin de décrire le mode. Le marquage suivant affiche la définition des trois modes de lancement standard de la plateforme :
<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>
Notez que le mode n'est pas associé à un type de configuration de lancement particulier. Comme indiqué précédemment, cette association a lieu lorsqu'un délégué de lancement est spécifié pour un type de configuration.
Dans la mesure où les modes de lancement peuvent être spécifiés indépendamment des types de configuration de lancement, il est possible que les nouveaux modes définis ne soient pas implémentés par le délégué d'origine pour une configuration de lancement. Dans ce cas, un plug-in peut définir un délégué de lancement qui implémente un mode particulier pour un type de configuration de lancement particulier. Cela peut se faire à l'aide du point d'extension org.eclipse.debug.core.launchDelegates. Ce point d'extension vous permet de définir un délégué de lancement qui implémente les modes spécifiés pour un type de configuration donné. Le marquage suivant affiche la manière dont vous pouvez définir un délégué pour le profilage d'une application Java locale :
<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 spécification du délégué est identique à la manière dont elle est effectuée lors de la définition d'un type de configuration de lancement, excepté le fait que, dans ce cas, le type de configuration de lancement est spécifié avec les modes pris en charge. Comme indiqué précédemment, le délégué doit implémenter ILaunchConfigurationDelegate, et peut, de manière facultative, implémenter ILaunchConfigurationDelegate2 pour avoir plus de contrôle sur la séquence de lancement.
'We Have Lift-off' : structure de lancement dans Eclipse fournit un exemple complet de définition de votre propre type de lancement.