Generatori incrementali di progetto

org.eclipse.core.resources.builders

Lo spazio di lavoro supporta la nozione di un generatore incrementale di progetto (abbreviato come "generatore"). Il compito di questo generatore è di elaborare una serie di modifiche delle risorse (fornite come un delta di risorse). Ad esempio, un generatore Java deve ricompilare i file Java modificati e creare nuovi file di classe.

I generatori sono configurati in base ai singoli progetti e sono eseguiti automaticamente quando le risorse del progetto sono modificate. In quanto tali, i generatori devono essere rapidi e in scala rispetto alla quantità di modifiche apportate piuttosto che al numero di risorse presenti nel progetto. Questo implica che i generatori sono in grado di aggiornare lo "stato della generazione" in maniera incrementale.

Il punto di estensione dei generatori consente a chi scrive un generatore di registrarne l'implementazione con un nome simbolico da utilizzare dall'interno dello spazio di lavoro per trovare ed eseguire generatori. Il nome simbolico rappresenta l'id dell'estensione del generatore. Durante la definizione dell'estensione di un generatore, si consiglia all'utente di includere un valore significativo per l'attributo "name", che identifica il generatore.

<!ELEMENT extension (builder)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #REQUIRED

name  CDATA #IMPLIED>


<!ELEMENT builder (run?)>

<!ATTLIST builder

hasNature      (true | false)

isConfigurable (true | false) >


<!ELEMENT run (parameter*)>

<!ATTLIST run

class CDATA #REQUIRED>


<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>


Di seguito è riportato un esempio di configurazione del generatore:

   

<extension id=

"coolbuilder"

name=

"Cool Builder"

point=

"org.eclipse.core.resources.builders"

>

<builder hasNature=

"false"

>

<run class=

"com.xyz.builders.Cool"

>

<parameter name=

"optimize"

value=

"true"

/>

<parameter name=

"comment"

value=

"Produced by the Cool Builder"

/>

</run>

</builder>

</extension>

Se questa estensione è stata definita in un plugin con identificativo "com.xyz.coolplugin", il nome completo del generatore sarà "com.xyz.coolplugin.coolbuilder".

Il valore dell'attributo class deve rappresentare una sottoclasse di org.eclipse.core.resources.IncrementalProjectBuilder.

La piattaforma non è dotata di alcun generatore predefinito. Installazioni particolari del prodotto potrebbero comprendere generatori secondo le esigenze.