Ihr Plug-in kann Startkonfigurationstypen zur Plattform hinzufügen, indem der Erweiterungspunkt org.eclipse.debug.core.launchConfigurationTypes verwendet wird. Mit diesem Erweiterungspunkt können Sie einen Konfigurationstyp deklarieren, der eine eindeutige ID verwendet. Sie müssen eine geeignete Implementierung von ILaunchConfigurationDelegate in Ihrem Plug-in angeben. Außerdem können Sie angeben, welche Modi (Ausführen und/oder Debug) durch das Startprogramm unterstützt werden, sowie einen Namen definieren, der verwendet werden sollen, wenn Startprogramme dieses Typs für einen Benutzer angezeigt werden.
Die folgenden Befehle zeigen, wie die Java-Tools eine Java-Startkonfiguration zum Starten lokaler Java-Programme deklarieren:
<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"> </launchConfigurationType> </extension>
Für jeden Startkonfigurationstyp, der den Debugmodus unterstützt, muss unbedingt eine Definition erstellt werden, mit deren Hilfe der Quellcode ermittelt werden kann, der dem aktuellen Erweiterungspunkt im Code entspricht. ISourceLocator und IPersistableSourceLocator definieren eine Schnittstelle, mit der ein ausgeführtes Programm zurück zum Quellcode zugeordnet werden kann.
Quellenlokatoren werden normalerweise implementiert, um mit einer entsprechenden Startkonfiguration und einer Startkonfigurationserweiterung verwendet zu werden. Da Startkonfigurationen permanent sein können, können Quellenlokatoren auch zusammen mit der Startkonfiguration gespeichert werden. Dies erreicht man, indem ein Attribut der Startkonfiguration auf die ID eines Quellenlokators gesetzt wird. Wird eine Startkonfiguration von Platte gelesen, muss die ID des Quellenlokators zurück zur Implementierungsklasse zugeordnet werden. Dies wird durch die Verwendung des Erweiterungspunkts org.eclipse.debug.core.sourceLocators erreicht.
Mit dem Erweiterungspunkt können Sie Ihre Klasse registrieren, die IPersistableSourceLocator implementiert, und ihr eine ID zuordnen, die zusammen mit der Startkonfiguration gespeichert wird. Auf diese Weise kann das Debug-Plug-in bei der Suche nach Quellenlokatorklassen die ID als Suchkriterium verwenden, wenn eine Startkonfiguration als Exemplar erstellt werden soll.
Die folgenden Befehle stammen aus den Java-Tools:
<extension point = "org.eclipse.debug.core.sourceLocators"> <sourceLocator id = "org.eclipse.jdt.debug.ui.javaSourceLocator" class="org.eclipse.jdt.debug.ui.JavaUISourceLocator" name="%javaSourceLocator"/> </extension>
Plug-ins verwenden benannte Attribute und Werte, um wichtige Daten zusammen mit einer Startkonfiguration zu speichern. Da die Plattform nicht die Interpretation jedes Attributs kennt, wird ein Erweiterungspunkt bereitgestellt, über den Sie einen Vergleichsoperator für ein spezifisches Attribut zur Verfügung stellen können. Mit diesem Vergleichsoperator wird bestimmt, ob Attribute des angegebenen Namens identisch sind. In vielen Fällen kann der einfache Zeichenfolgevergleich, der durch java.lang.Object.equals(Object) bereitgestellt wird, auch für Attributvergleiche verwendet werden. Diese Methode wird verwendet, wenn kein Vergleichsoperator verfügbar ist. Manche Attributwerte erfordern jedoch eine spezielle Verarbeitung, beispielsweise das Abschneiden von Leerzeichenwerten aus dem Text, bevor ein Vergleich auf Gleichheit erfolgen kann.
Vergleichsoperatoren werden über den Erweiterungspunkt org.eclipse.debug.core.launchConfigurationComparators bereitgestellt.
Die Java-Tools bieten Vergleichsoperatoren für Startkonfigurationen, mit denen Quellenpfade und Klassenpfade von Programmen verglichen werden können.
<extension point = "org.eclipse.debug.core.launchConfigurationComparators"> <launchConfigurationComparator id = "org.eclipse.jdt.launching.classpathComparator" class = "org.eclipse.jdt.internal.launching.RuntimeClasspathEntryListComparator" attribute = "org.eclipse.jdt.launching.CLASSPATH"/> <launchConfigurationComparator id = "org.eclipse.jdt.launching.sourcepathComparator" class = "org.eclipse.jdt.internal.launching.RuntimeClasspathEntryListComparator" attribute = "org.eclipse.jdt.launching.SOURCE_PATH"/> </extension>