Aggiunta di utilità di avvio alla piattaforma

Il plugin 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. Il delegato è responsabile dell'avvio della propria configurazione nella modalità specificata. È anche possibile implementare ILaunchConfigurationDelegate2, che migliora l'interfaccia delegata per consentire al proprio delegato di interrompere un avvio, generare progetti rilevanti nello spazio di lavoro e controllare la creazione dell'oggetto di avvio utilizzato.

Oltre a definire il delegato, è anche possibile specificare le modalità do avvio supportate dal delegato 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"
	   sourceLocatorId="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"
       sourcePathComputerId="org.eclipse.jdt.launching.sourceLookup.javaSourcePathComputer">
   </launchConfigurationType>
</extension>

Questa estensione definisce un delegato di configurazione di avvio che può essere utilizzato per eseguire o sottoporre a debug i programmi avviati mediante la configurazione di avvio Java locale.

Definizione di nuove modalità di avvio

Si è accennato in precedenza che la piattaforma definisce le modalità di avvio per l'esecuzione, il debug o la creazione profilo di un programma. Tali modalità sono definite mediante il punto di estensione org.eclipse.debug.core.launchModes. Questo punto di estensione consente di dichiarare una modalità di avvio definendone la il nome della modalità di stringa e l'etichetta da visualizzare all'utente per descrivere la modalità. La seguente markup mostra la definizione delle tre modalità di avvio standard della piattaforma:

<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>

Tenere presente che la modalità non è associata a nessun tipo di configurazione di avvio particolare. Come mostrato in precedenza, l'associazione si verifica quando un delegato di avvio viene specificato per un tipo di configurazione.

Definizione dei delegati di avvio

Poiché le modalità di avvio possono essere specificate indipendentemente dai tipi di configurazione di avvio, è possibile che siano state definite nuove modalità non implementate dal delegato originale per una configurazione di avvio. In questo caso, un plugin può definire un delegato di avvio che implementa una particolare modalità per un determinato tipo di configurazione di avvio. Questa operazione può essere effettuata utilizzando il punto di estensione org.eclipse.debug.core.launchDelegates. Questo punto di estensione consente di definire un delegato di avvio che implementa le modalità specificate per un determinato tipo di configurazione. La seguente markup mostra come definire un delegato per creare il profilo di un'applicazione Java locale:

<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>

La specifica del delegato è simile al modo in cui viene effettuata durante la configurazione del tipo di configurazione di avvio, con l'eccezione che, in questo caso, il tipo di configurazione di avvio viene specificato insieme alle modalità supportate. Come riportato in precedenza, il delegato deve implementare ILaunchConfigurationDelegate, e, facoltativamente, può implementare ILaunchConfigurationDelegate2 per più controllo sulla sequenza di avvio.

Altri riferimenti

L'articolo We Have Lift-off: The Launching Framework in Eclipse fornisce istruzioni per la definizione del proprio tipo di avvio.