Uw plugin kan soorten startconfiguraties aan het platform toevoegen via het extensiepunt org.eclipse.debug.core.launchConfigurationTypes. Dit extensiepunt maakt het mogelijk om een configuratietype te declareren met een uniek ID. U moet een bijbehorende implementatie van ILaunchConfigurationDelegate opgeven. De gemachtigde zorgt ervoor dat de startconfiguratie wordt uitgevoerd in een bepaalde werkstand. Desgewenst implementeert u ILaunchConfigurationDelegate2. Hiermee kunt u de interface van de gemachtigde zo uitbreiden dat een startconfiguratie kan worden afgebroken, relevante projecten in het werkgebied worden opgebouwd voordat een startconfiguratie wordt uitgevoerd, en de aanmaak van het launch-object dat wordt gebruikt in een startconfiguratie beheren.
Naast de definitie van de gemachtigde kunt u opgeven welke startwerkstanden door uw gemachtigde worden ondersteund en onder welke naam startprogramma's van dit type moeten worden weergegeven aan de gebruiker.
In de volgende markup kunt u zien hoe in de Java-tools een Java-startconfiguratie voor het starten van lokale Java-programma's wordt gedeclareerd:
<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>
Deze extensie definieert een startconfiguratie die kan worden gebruikt om programma's uit te voeren of fouten op te sporen in programma's die die worden gestart met behulp van de lokale Java-startconfiguratie.
Zoals eerder vermeld, zijn er in het platform werkstanden voor het uitvoeren van, opsporen van fouten in, of profileren van een programma. Deze werkstanden worden gedefinieerd met het extensiepunt org.eclipse.debug.core.launchModes. Met dit extensiepunt kunt u een startwerkstand declareren door de tekenreeks voor de naam van de werkstand te definiëren, alsmede het label dat aan de gebruiker moet worden weergegeven als beschrijving voor de werkstand. In de volgende markup ziet u de definitie van de drie standaardstartwerkstanden in het platform:
<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>
De werkstand is niet gekoppeld aan een bepaald startconfiguratietype. Zoals u eerder hebt kunnen zien, wordt die koppeling pas tot stand gebracht wanneer een gemachtigde voor een startconfiguratietype wordt opgegeven.
Omdat startwerkstanden onafhankelijk van startconfiguratietypen kunnen worden opgegeven, is het mogelijk dat er nieuwe werkstanden worden gedefinieerd die niet zijn geïmplementeerd door de oorspronkelijke gemachtigde voor een startconfiguratie. In dat geval kunt u in een plugin een gemachtigde definiëren die een bepaalde werkstand voor een bepaald startconfiguratietype implementeert. Dit doet u met het extensiepunt org.eclipse.debug.core.launchDelegates. Hiermee kunt u een gemachtigde definiëren waarmee de opgegeven werkstanden voor een gegeven configuratietype wordt geïmplementeerd. In de volgende markup ziet u hoe u een gemachtigde kunt definiëren voor profilering van een lokale Java-toepassing:
<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>
De specificatie van de gemachtigde is vergelijkbaar met de definitie van een startconfiguratietype, alleen wordt in dit geval het type startconfiguratie samen met de ondersteunde werkstanden opgegeven. Zoals u eerder hebt kunnen zien, moet u met de gemachtigde ILaunchConfigurationDelegate implementeren, en kunt u desgewenst ook ILaunchConfigurationDelegate2 implementeren voor uitgebreidere beheermogelijkheden voor de startconfiguratie.
Zie We Have Lift-off: The Launching Framework in Eclipse voor een compleet voorbeeld van een stapsgewijze procedure voor het definiëren van een startconfiguratietype.