Typy konfiguracji startowej mogą zostać dodane do platformy przez moduł dodatkowy przy użyciu punktu rozszerzenia org.eclipse.debug.core.launchConfigurationTypes. Ten punkt rozszerzenia umożliwia zadeklarowanie typu konfiguracji przy użyciu unikalnego identyfikatora. Należy także udostępnić odpowiednią implementację interfejsu ILaunchConfigurationDelegate. Za uruchomienie konfiguracji startowej w określonym trybie odpowiedzialny jest delegat. Możliwe jest opcjonalne zaimplementowanie interfejsu ILaunchConfigurationDelegate2, który rozszerza funkcjonalność interfejsu delegata, umożliwiając mu przerwanie uruchamiania, budowanie odpowiednich projektów w obszarze roboczym przed uruchomieniem oraz sterowanie tworzeniem obiektu startowego używanego podczas uruchamiania.
Po zdefiniowaniu delegata należy określić tryby uruchamiania obsługiwane przez niego oraz nazwę, która będzie używana przy pokazywaniu użytkownikowi programów uruchamiających tego typu.
Poniższy fragment kodu pokazuje, jak środowisko JDT deklaruje konfigurację startową Java dla lokalnych programów 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= "run, debug" sourceLocatorId="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector" sourcePathComputerId="org.eclipse.jdt.launching.sourceLookup.javaSourcePathComputer"> </launchConfigurationType> </extension>
To rozszerzenie definiuje delegata konfiguracji startowej, którego można użyć do uruchamiania lub debugowania programów uruchamianych za pomocą konfiguracji startowej Java.
Platforma określa tryby uruchamiania na potrzeby uruchamiania, debugowania lub profilowania programu. Są one definiowane za pomocą punktu rozszerzenia org.eclipse.debug.core.launchModes. Za pomocą tego punktu rozszerzenia można zadeklarować tryb uruchamiania, definiując nazwę trybu łańcucha oraz etykietę, która będzie pokazywana użytkownikowi, opisując dany tryb. Poniższy fragment kodu pokazuje definicję trzech standardowych trybów uruchamiania na platformie:
<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>
Należy zwrócić uwagę, że tryb nie jest powiązany z żadnym typem konfiguracji startowej. To powiązanie jest tworzone, gdy dla delegata uruchamiania jest określany typ konfiguracji.
Ponieważ tryby uruchamiania mogą być określane niezależnie od typów konfiguracji startowych, możliwe jest definiowanie nowych trybów, które nie są implementowane przez oryginalnego delegata w konfiguracji startowej. W tym przypadku moduł dodatkowy może określić delegata uruchamiania, który będzie implementował konkretny tryb dla konkretnego typu konfiguracji startowej. Można to zrobić za pomocą punktu rozszerzenia org.eclipse.debug.core.launchDelegates. Za jego pomocą można zdefiniować delegata uruchamiania, który będzie implementował określone tryby dla danych typów konfiguracji. Poniższy fragment kodu pokazuje sposób, w jaki można zdefiniować delegata służącego do profilowania lokalnej aplikacji Java:
<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>
Specyfikacja delegata jest podobna do sposobu definiowania typu konfiguracji startowej, jednak w tym przypadku typ konfiguracji startowej jest określany razem z obsługiwanymi trybami. Aby poprawić sterowanie procedurą uruchamiania, delegat musi implementować interfejs ILaunchConfigurationDelegate, a także, opcjonalnie, interfejs ILaunchConfigurationDelegate2.
Rozpoczynanie pracy: Środowisko uruchamiania w środowisku Eclipse to kompleksowy przykład określania własnego typu uruchamiania.