Plugin-modulen kan legge til oppstartskonfigurasjonstyper i plattformen, ved hjelp av utvidelsespunktet org.eclipse.debug.core.launchConfigurationTypes. Med dette utvidelsespunktet kan du deklarere en konfigurasjonstype ved hjelp av en unik ID. Du må utføre en tilsvarende implementering for ILaunchConfigurationDelegate. Delegaten styrer oppstart av oppstartskonfigurasjon i et angitt modus. Du kan eventuelt implementere ILaunchConfigurationDelegate2, som forbedrer delegatgrensesnittet slik at delegaten kan avbryte en oppstart, bygge aktuelle prosjekter i arbeidsområdet før en oppstart og kontrollere opprettelsen av oppstartsobjektet som brukes i oppstarten.
I tillegg til å definere delegaten, kan du angi hvilke oppstartsmoduser som støttes av delegaten og oppgi et navn som skal brukes når denne oppstartstypen vises for brukeren.
Kodetypen nedenfor viser hvordan Java-verktøyene deklarerer en Java-oppstartskonfigurasjon for oppstart av lokale Java-programmer:
<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>
Denne utvidelsen definerer et delegat for oppstartskonfigurasjon og kan brukes til å kjøre eller feilsøke programmer som er startet, ved hjelp av Java-oppstartskonfigurasjonen.
Vi har tidligere nevnt at plattformen definerer oppstartsmoduser for kjøring, feilsøking eller profilering av et program. Disse modusene defineres ved hjelp av utvidelsespunktet org.eclipse.debug.core.launchModes. Med dette utvidelsespunktet kan du deklarere en oppstartsmodus ved å definere navnet på strengmodusen og etiketten som beskriver modusen for brukeren. Kodetypen nedenfor viser defineringen av de tre standard oppstartsmodusene for plattformen:
<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>
Merk at denne modusen ikke er tilknyttet en bestemt oppstartskonfigurasjonstype. Som vist tidligere oppstår tilknytningen når det angis en delegat for en konfigurasjonstype.
Siden oppstartsmoduser kan oppgis uavhengig av oppstartskonfigurasjontype, er det mulig at det er definert nye moduser som ikke er implementert av den opprinnelige delegaten for en oppstartskonfigurasjon. I så fall kan en plugin definere en oppstartsdelegat som implementerer en bestemt modus for en bestemt oppstartskonfigurasjonstype. Dette gjøres via utvidelsespunktet org.eclipse.debug.core.launchDelegates. Dette utvidelsespunktet lar deg definere en oppstartsdelegat som implementerer oppgitte moduser for en gitt konfigurasjonstype. Kodetypen nedenfor viser hvordan du kan definere en delegat for profilering av en lokal Java-applikasjon:
<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>
Delegaten spesifiseres omtrent på samme måte som en oppstartskonfigurasjonstype defineres, bortsett fra at her angis typen oppstartskonfigurasjon sammen med modusene som støttes. Som vi allerede har sett, må delegaten implementere ILaunchConfigurationDelegate og eventuelt ILaunchConfigurationDelegate2 for ytterligere kontroll over oppstartssekvensen.
We Have Lift-Off: The Launching Framework in Eclipse inneholder eksempler på hvordan du definerer din egen oppstartstype, fra begynnelse til slutt.