r833 - in trunk: maven-eugene-plugin/src/site/fr/rst src/site/fr/rst
Author: tchemit Date: 2010-03-04 17:17:03 +0100 (Thu, 04 Mar 2010) New Revision: 833 Log: update doc Modified: trunk/maven-eugene-plugin/src/site/fr/rst/example.rst trunk/src/site/fr/rst/01-introduction.rst trunk/src/site/fr/rst/02-objectmodel.rst trunk/src/site/fr/rst/04-templates.rst trunk/src/site/fr/rst/06-fonctionnalites-avancees.rst Modified: trunk/maven-eugene-plugin/src/site/fr/rst/example.rst =================================================================== --- trunk/maven-eugene-plugin/src/site/fr/rst/example.rst 2010-03-04 14:59:15 UTC (rev 832) +++ trunk/maven-eugene-plugin/src/site/fr/rst/example.rst 2010-03-04 16:17:03 UTC (rev 833) @@ -20,7 +20,7 @@ Example simple -------------- -Cet example va générer les entitées du package org.nuiton.eugene.demopackage à +Cet exemple va générer les entitées du package org.nuiton.eugene.demopackage à partir des fichiers zargo présents dans le répertoire src/main/xmi. :: @@ -63,7 +63,7 @@ Example complexe ---------------- -Cet example utilise deux fichiers zargo en entrée et va les générer différemment. +Cet exemple utilise deux fichiers zargo en entrée et va les générer différemment. Les deux premières phases sont communes, ensuite on distingues deux executions, une par fichier spécifiant les différents templates à utiliser pour chaque @@ -140,4 +140,4 @@ <scope>compile</scope> </dependency> </dependencies> - </plugin> \ No newline at end of file + </plugin> Modified: trunk/src/site/fr/rst/01-introduction.rst =================================================================== --- trunk/src/site/fr/rst/01-introduction.rst 2010-03-04 14:59:15 UTC (rev 832) +++ trunk/src/site/fr/rst/01-introduction.rst 2010-03-04 16:17:03 UTC (rev 833) @@ -58,7 +58,7 @@ De nombreuses solutions sont disponibles sur le marché, EUGene se positionne par -rapport à ses concurrents, comme simple d'utilisation et de mise oeuvre, +rapport à ses concurrents, comme simple d'utilisation et de mise en oeuvre, indépendant des outils de développement et full JAVA sans autre language à apprendre. Modified: trunk/src/site/fr/rst/02-objectmodel.rst =================================================================== --- trunk/src/site/fr/rst/02-objectmodel.rst 2010-03-04 14:59:15 UTC (rev 832) +++ trunk/src/site/fr/rst/02-objectmodel.rst 2010-03-04 16:17:03 UTC (rev 833) @@ -43,6 +43,13 @@ Eugene propose une tranformation XSLT permettant ainsi d'obtenir un XML épuré décrivant le modèle et ne conservant que l'essentiel des informations. +Ce modèle intermédiaire garantit aussi la stabilité et pérennité d'EUGene, +puisque qu'on se base toujours sur les modèles d'EUGene et non pas directement +sur les modèles extérieurs (XMI) trop variants d'une version à l'autre. + +Si on veut supporter une nouvelle version de XMI par exemple, il convient de +définir la feuille de style de transformation adéquate. + Parmi les informations extraites, on peut citer : - Objets (classes, classes abtraites, interfaces) @@ -88,9 +95,9 @@ interfaces, classifier) les méthodes correspondantes sont appelées. Par défaut, ces méthodes décrites dans le générateur de base sont vide, et il n'en ressort donc aucun code généré. Les templates ont donc pour but de surcharger ses -méthodes et décrire le code qui va être généré. +méthodes et de décrire le code qui va être généré. -Les templates peuvent être de toutes sortes car ils peuvent générer un fichier +Les templates peuvent être de toutes sortes car elles peuvent générer un fichier différent par modèle, par interface, par classe ou encore par classifier (souche -commune aux classes et interfaces). De plus, ils peuvent indifféremment générer +commune aux classes et interfaces). De plus, elles peuvent indifféremment générer du code Java / XML ou encore tout autre type de code (texte ou autre...). Modified: trunk/src/site/fr/rst/04-templates.rst =================================================================== --- trunk/src/site/fr/rst/04-templates.rst 2010-03-04 14:59:15 UTC (rev 832) +++ trunk/src/site/fr/rst/04-templates.rst 2010-03-04 16:17:03 UTC (rev 833) @@ -54,6 +54,9 @@ - `StateModelGenerator`_ : StateModel en entrée - `JavaGenerator`_ : ObjectModel orienté Java (avec extensions) en entrée +Note + Le plugin maven permet de connaître tous les transformers disponibles. + Implantation d'une transformation de modèle ------------------------------------------- @@ -143,6 +146,9 @@ - `ObjectModelTransformerToJava`_ : ObjectModel en entrée, ObjectModel en sortie, `JavaGenerator`_ en template de sortie. +Note + Le plugin maven permet de connaître tous les transformers disponibles. + Générateur de java ------------------ @@ -212,4 +218,4 @@ .. _Model: ../eugene/apidocs/org/nuiton/eugene/models/Model.html .. _Generator: ../eugene/apidocs/org/nuiton/eugene/AbstractGenerator.html -.. _Ref JavaBuilder: ../eugene/apidocs/org/nuiton/eugene/java/JavaBuilder.html \ No newline at end of file +.. _Ref JavaBuilder: ../eugene/apidocs/org/nuiton/eugene/java/JavaBuilder.html Modified: trunk/src/site/fr/rst/06-fonctionnalites-avancees.rst =================================================================== --- trunk/src/site/fr/rst/06-fonctionnalites-avancees.rst 2010-03-04 14:59:15 UTC (rev 832) +++ trunk/src/site/fr/rst/06-fonctionnalites-avancees.rst 2010-03-04 16:17:03 UTC (rev 833) @@ -32,8 +32,38 @@ - objectmodel : version simplifié du xmi pour générer de l'ObjectModel - statemodel : version simplifié du xmi pour générer du StateModel -TODO : explication chainage +Un writer est défini par : +- un type de modèle (objectmodel, statemodel) +- un protocole d'entrée +- un protocole de sortie +- des ressources à traiter +- la logique d'exécution de la tâche. + +Les Writers peuvent être chaînés (le protocole de sortie devient le protocole +d'entrée du Writer suivant) et ceci de manière hiérarchisé (on doit évidemment +conserver un ordre sur les tâches à exécuter...). + +Par exemple, si on a en point d'entrée un fichier zargo et en sortie on veut +des fichiers java les étapes suivantes sont nécessaires : + +- extraction du fichier xmi de l'archive zargo +- transformation xmi en un fichier objectmodel +- application des templates et génération de fichiers java à partir de l'objetmodel + +Chacune de ces étapes utilise un writer : + +- zargo2xmi (entrée: zargo, sortie: xmi) +- xmi2objectmodel (entrée: xmi, sortie: objectmodel) +- objectmodel2java (entrée: objectmodel, sortie: fichier (java ou autre)) + +Pour utiliser le moteur d'exécution des Writer, on doit lui enregistrer des +ressources à traiter. Il trouvera les bons Writers à appeller parmis ceux +disponibles et lancera les tâches (Writer) dans l'ordre nécessaire. + +Si par exemple on lui donne en entrée un fichier objectModel, il appelera +uniquement le dernier writer (objectmodel2java). + ModelReader ----------- @@ -53,7 +83,8 @@ base. Il est également possible de gérer un autre type de Model et de créer un ModelReader qui se chargera de le remplir. -TODO : intégration reader dans maven +Le plugin maven permet de spécifier quel reader utiliser. Pour plus +d'informations consulter la configuration des goals maven. Extension --------- @@ -91,8 +122,13 @@ parameter, attribute, classifier, ...) - `ConstantsManagerExtension`_ : permet de gérer un cache sur les noms des constantes - manipulés pendant une génération. TODO : more explanation about this + manipulés pendant une génération. L'introduction récente dans constantes de + génération (par exemple pour spécifier le nom d'une propriété d'un bean) nous + autorise désormais à utiliser aussi ces constantes dans le code qu'on génère. + Le calcul du nom d'une constante à partir de la proprité revient donc + régulièrement et est caché grâçe à cette extension. + .. _Templates: 04-templates.html .. _Ref ModelReader: ../eugene/apidocs/org/nuiton/eugene/ModelReader.html
participants (1)
-
tchemit@users.nuiton.org