Description : l'espace de travail supporte la notion de générateur de projet incrémental (appelé tout simplement "générateur"). La tâche d'un générateur consiste à traiter un ensemble de modifications des ressources (fourni sous forme de delta des ressources). Par exemple, un générateur Java peut recompiler les fichiers Java modifiés et produire de nouveaux fichiers classe.
Les générateurs sont configurés sur la base d'un par projet et s'exécutent automatiquement lorsque les ressources contenues dans leur projet sont modifiées. De ce fait, ils doivent être rapides et à l'échelle de la quantité de changements plutôt qu'à celui du nombre de ressources contenues dans le projet. Ceci implique généralement que les générateurs soient capables de mettre à jour leur "état compilé" de manière incrémentielle.
Le point d'extension des générateurs permet aux éditeurs de compilateur d'enregistrer leur implémentation de générateur sous un nom symbolique qui est ensuite utilisé dans l'espace de travail pour trouver et exécuter les générateurs. Ce nom symbolique est l'ID de l'extension du générateur. Lors de la définition d'une extension de générateur, les utilisateurs sont encouragés à inclure une valeur lisible par l'homme pour l'attribut "name" (nom) qui identifie leur générateur et qui peut être potentiellement présenté aux utilisateurs.
Marques de configuration :
<!ELEMENT extension (builder)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED
>
<!ELEMENT builder (run?)>
<!ATTLIST builder
hasNature (true | false)
>
<!ELEMENT run (parameter*)>
<!ATTLIST run
class CDATA #REQUIRED
>
<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
name CDATA
#REQUIRED
value CDATA #REQUIRED
>
<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>Si cette extension a été définie dans un plug-in avec l'ID "com.xyz.coolplugin", le nom qualifié complet de ce générateur sera "com.xyz.coolplugin.coolbuilder".
Informations d'API : la valeur de l'attribut "class" doit représenter une sous-classe de org.eclipse.core.resources.IncrementalProjectBuilder.
Implémentation fournie : la plateforme n'a pas de générateur prédéfini. Un produit particulier peut inclure les générateurs requis.
Copyright (c) 2002 IBM Corporation and others.
All rights reserved. Ce programme et les produits qui l'accompagnent sont
fournis sous licence v1.0 associée à cette distribution et disponibles à
l'adresse suivante :
http://www.eclipse.org/legal/cpl-v10.html