Il plug-in può aggiungere tipi di configurazione di avvio alla piattaforma utilizzando il punto di estensione org.eclipse.debug.core.launchConfigurationTypes. Tale punto di estensione consente di dichiarare un tipo di configurazione utilizzando un id univoco. È necessario fornire un'implementazione corrispondente di ILaunchConfigurationDelegate nel plug-in. È inoltre possibile specificare le modalità (esecuzione e/o debug) supportate dall'utilità di avvio e il nome che deve essere utilizzato quando vengono visualizzate all'utente le utilità di avvio di questo tipo.
Il seguente tag mostra come gli strumenti Java dichiarano una configurazione di avvio Java per l'avvio di programmi Java locali:
<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>
Per ciascun tipo di configurazione di avvio che supporta la modalità debug, è importante definire un modo per trovare il codice di origine che corrisponde al punto di esecuzione corrente nel codice. ISourceLocator e IPersistableSourceLocator definiscono un'interfaccia per l'associazione da un programma di esecuzione al codice di origine.
Gli indicatori di origine vengono generalmente implementati per operare con una configurazione di avvio e un delegato di configurazione di avvio corrispondenti. Dal momento che le configurazioni di avvio possono essere rese permanenti, gli indicatori di origine possono essere archiviati anche con la configurazione di avvio. Questa operazione viene eseguita impostando un attributo della configurazione di avvio su un id di un indicatore di origine. Quando una configurazione di avvio viene letta dal disco, l'id dell'indicatore di origine deve essere associato alla classe di implementazione. A questo scopo, utilizzare il punto di estensione org.eclipse.debug.core.sourceLocators.
Il punto di estensione consente di registrare la classe che implementa IPersistableSourceLocator e di associarla ad un ID che verrà archiviato con la configurazione di avvio. Questo consente al plug-in di debug di ricercare le classi di indicatori di origine in base all'ID, quando è giunto il momento di creare istanze di una configurazione di avvio.
Il seguente tag è ricavato dagli strumenti Java:
<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>
I plug-in utilizzano attributi denominati e valori per archiviare dati importanti con una configurazione di avvio. Dal momento che l'interpretazione di qualsiasi attributo è nota alla piattaforma, viene fornito un punto di estensione che consente di fornire un comparatore per un attributo specifico. Tale comparatore viene utilizzato per determinare se gli attributi del nome specificato sono uguali. In molti casi, il semplice confronto di stringhe fornito da java.lang.Object.equals(Object) è adatto al confronto degli attributi. Questo metodo sarà utilizzato se non viene fornito alcun comparatore. Tuttavia, alcuni valori di attributi potrebbero richiedere una gestione particolare, come l'eliminazione dei valori spazio dal testo prima del confronto per stabilire l'uguaglianza.
I comparatori vengono aggiunti utilizzando il punto di estensione org.eclipse.debug.core.launchConfigurationComparators.
Gli strumenti Java forniscono comparatori di configurazioni di avvio per il confronto di percorsi di origine dei programmi e di percorsi classi.
<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>