r776 - in trunk: . ant-eugene-task/src ant-eugene-task/src/site ant-eugene-task/src/site/fr ant-eugene-task/src/site/fr/rst ant-eugene-task/src/site/rst eugene/src/main/java/org/nuiton/eugene eugene/src/site maven-eugene-plugin/src/site src/site src/site/fr src/site/fr/rst src/site/rst
Author: tchemit Date: 2009-12-20 15:45:41 +0100 (Sun, 20 Dec 2009) New Revision: 776 Added: trunk/ant-eugene-task/src/site/ trunk/ant-eugene-task/src/site/fr/ trunk/ant-eugene-task/src/site/fr/rst/ trunk/ant-eugene-task/src/site/fr/rst/index.rst trunk/ant-eugene-task/src/site/rst/ trunk/ant-eugene-task/src/site/rst/index.rst trunk/ant-eugene-task/src/site/site_en.xml trunk/ant-eugene-task/src/site/site_fr.xml trunk/eugene/src/main/java/org/nuiton/eugene/AbstractMetaTransformer.java trunk/src/site/fr/ trunk/src/site/fr/rst/ trunk/src/site/fr/rst/index.rst trunk/src/site/rst/ trunk/src/site/rst/index.rst Modified: trunk/eugene/src/site/site_en.xml trunk/maven-eugene-plugin/src/site/site_en.xml trunk/pom.xml trunk/src/site/site_en.xml trunk/src/site/site_fr.xml Log: fix doc language links, go back to processor-1.0.2, add ant module doc Added: trunk/ant-eugene-task/src/site/fr/rst/index.rst =================================================================== --- trunk/ant-eugene-task/src/site/fr/rst/index.rst (rev 0) +++ trunk/ant-eugene-task/src/site/fr/rst/index.rst 2009-12-20 14:45:41 UTC (rev 776) @@ -0,0 +1,27 @@ +====== +Eugene +====== + +.. contents:: + + +Règle ant +--------- + +Voici un exemple d'utilisation de la règle ant. + +:: + + <taskdef name="generator" classname="org.nuiton.eugene.GeneratorTask" + classpath="${compile.classpath}:${targetbuild}:${resources}" /> + + <target name="generate" description="generate"> + <generator srcdir="${modelDir}" destdir="${targetgen}" + resolver="org.nuiton.exemple.ResourceResolver" + templates="org.nuiton.example.JavaBeanGenerator" + properties="defaultPackage=org.nuiton,fullPackagePath=org.nuiton,extraPackages=org.nuiton" + classpath="${compile.classpath}:${targetbuild}:${resources}" /> + </target> + +Dans cette exemple, un template de génération sera apliqué sur tous les +fichiers. Added: trunk/ant-eugene-task/src/site/rst/index.rst =================================================================== --- trunk/ant-eugene-task/src/site/rst/index.rst (rev 0) +++ trunk/ant-eugene-task/src/site/rst/index.rst 2009-12-20 14:45:41 UTC (rev 776) @@ -0,0 +1,30 @@ +====== +Eugene +====== + +:Authors: Tony CHEMIT +:Contact: chemit@codelutin.com + + +.. contents:: + + +Ant Task +-------- + +Here is an example of the Ant task. + +:: + + <taskdef name="generator" classname="org.nuiton.eugene.GeneratorTask" + classpath="${compile.classpath}:${targetbuild}:${resources}" /> + + <target name="generate" description="generate"> + <generator srcdir="${modelDir}" destdir="${targetgen}" + resolver="org.nuiton.exemple.ResourceResolver" + templates="org.nuiton.example.JavaBeanGenerator" + properties="defaultPackage=org.nuiton,fullPackagePath=org.nuiton,extraPackages=org.nuiton" + classpath="${compile.classpath}:${targetbuild}:${resources}" /> + </target> + +In this example, a generation-template will be applied to all files. Copied: trunk/ant-eugene-task/src/site/site_en.xml (from rev 769, trunk/eugene/src/site/site_en.xml) =================================================================== --- trunk/ant-eugene-task/src/site/site_en.xml (rev 0) +++ trunk/ant-eugene-task/src/site/site_en.xml 2009-12-20 14:45:41 UTC (rev 776) @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project name="${project.name}"> + + <bannerLeft> + <name>${project.name}</name> + </bannerLeft> + + <body> + + <breadcrumbs> + <item name="${project.name}" href="index.html" /> + </breadcrumbs> + + <links> + <item name="Libre-Entreprise" href="http://www.libre-entreprise.org/" /> + <item name="[fr" href="fr/index.html" /> + <item name="en]" href="index.html" /> + </links> + + <menu ref="parent"/> + + <menu name="User"> + <item href="index.html" name="Home"/> + </menu> + + <menu name="Downloads"> + <item href="${repository.home.url}/org/nuiton/eugene/${project.artifactId}/${project.version}/${project.build.finalName}.jar" + name="Library (jar)"/> + <item href="${repository.home.url}/org/nuiton/eugene/${project.artifactId}/${project.version}/${project.build.finalName}-javadoc.jar" + name="Javadoc (jar)"/> + <item href="${repository.home.url}/org/nuiton/eugene/${project.artifactId}/${project.version}/${project.build.finalName}-sources.jar" + name="Sources (jar)"/> + <item href="http://${platform}/projects/list_files/eugene" name="Archives" /> + </menu> + + <menu name="Trackers"> + <item name="Bugs" href="${project.issueManagement.url}?query_id=2"/> + <item name="Evolutions" href="${project.issueManagement.url}?query_id=1"/> + <item name="Help" href="${project.issueManagement.url}?query_id=3"/> + </menu> + + <menu name="Links"> + <item name="Nuiton-processor" href="http://maven-site.nuiton.org/processor"/> + <item name="ToPIA" href="http://maven-site.nuiton.org/topia"/> + </menu> + + <menu ref="reports"/> + + </body> +</project> Copied: trunk/ant-eugene-task/src/site/site_fr.xml (from rev 769, trunk/eugene/src/site/site_fr.xml) =================================================================== --- trunk/ant-eugene-task/src/site/site_fr.xml (rev 0) +++ trunk/ant-eugene-task/src/site/site_fr.xml 2009-12-20 14:45:41 UTC (rev 776) @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project name="${project.name}"> + + <bannerLeft> + <name>${project.name}</name> + </bannerLeft> + + <body> + + <breadcrumbs> + <item name="${project.name}" href="index.html" /> + </breadcrumbs> + + <links> + <item name="Libre-Entreprise" href="http://www.libre-entreprise.org/" /> + <item name="[fr" href="index.html" /> + <item name="en]" href="../index.html" /> + </links> + + <menu ref="parent"/> + + <menu name="Utilisateur"> + <item href="index.html" name="Accueil"/> + </menu> + + <menu name="Téléchargement"> + <item href="${repository.home.url}/org/nuiton/eugene/${project.artifactId}/${project.version}/${project.build.finalName}.jar" + name="Librairie (jar)"/> + <item href="${repository.home.url}/org/nuiton/eugene/${project.artifactId}/${project.version}/${project.build.finalName}-javadoc.jar" + name="Javadoc (jar)"/> + <item href="${repository.home.url}/org/nuiton/eugene/${project.artifactId}/${project.version}/${project.build.finalName}-sources.jar" + name="Sources (jar)"/> + <item href="http://${platform}/projects/list_files/eugene" name="Archives" /> + </menu> + + <menu name="Trackers"> + <item name="Bugs" href="${project.issueManagement.url}?query_id=2"/> + <item name="Améliorations" href="${project.issueManagement.url}?query_id=1"/> + <item name="Aide" href="${project.issueManagement.url}?query_id=3"/> + </menu> + + <menu name="Liens"> + <item name="Nuiton-processor" href="http://maven-site.nuiton.org/processor"/> + <item name="ToPIA" href="http://maven-site.nuiton.org/topia"/> + </menu> + + <menu ref="reports"/> + + </body> +</project> Added: trunk/eugene/src/main/java/org/nuiton/eugene/AbstractMetaTransformer.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/AbstractMetaTransformer.java (rev 0) +++ trunk/eugene/src/main/java/org/nuiton/eugene/AbstractMetaTransformer.java 2009-12-20 14:45:41 UTC (rev 776) @@ -0,0 +1,95 @@ +package org.nuiton.eugene; + +import org.nuiton.eugene.models.Model; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * Abstract meta transformer which contains some templates to apply to incoming model. + * + * Using the {@link #getExcludeTemplates()} to restrict use of some templates. + * + * Created: 20 déc. 2009 + * + * @author Tony Chemit <chemit@codelutin.com> Copyright Code Lutin + * @version $Revision$ + * <p/> + * Mise a jour: $Date$ par : + * $Author: tchemit $ + * @since 2.0.0 + */ +public abstract class AbstractMetaTransformer<M extends Model> extends AbstractGenerator<M> { + + private final Class<? extends Template<M>>[] transformers; + + public AbstractMetaTransformer(Class<? extends Template<M>>... transformers) { + this.transformers = transformers; + } + + protected abstract boolean validateModel(M model); + + @Override + public final void generate(File[] file, File destDir) { + throw new UnsupportedOperationException("Transformer does not implements any longer this deprecated method"); + } + + @Override + public void applyTemplate(M model, File destDir) throws IOException { + + boolean isValid = validateModel(model); + if (!isValid) { + + //On n'empeche pas la génération si le modèle n'est pas valide + + return; + } + + List<Template<M>> templates = getTemplates(); + + for (Template<M> template : templates) { + // log + if (log.isDebugEnabled()) { + log.debug("call template : " + template.getClass().getSimpleName()); + } + template.applyTemplate(model, destDir); + } + } + + protected List<Template<M>> getTemplates() { + List<Template<M>> result = new ArrayList<Template<M>>(); + for (Class<? extends Template<M>> generatorClass : getTransformers()) { + Template<M> generator; + if (getExcludeTemplates().contains(generatorClass.getName())) { + // exclude generator + log.info("exclude generator " + generatorClass); + continue; + } + try { + generator = generatorClass.newInstance(); + + // init template + + if (generator instanceof AbstractGenerator) { + ((AbstractGenerator<M>) generator).setParent(this); + } + if (generator instanceof Transformer) { + generator.setProperties(properties); + } + } catch (Exception e) { + // should never happens + if (log.isErrorEnabled()) { + log.error("An error occurs when generating persistence", e); + } + throw new RuntimeException(e); + } + } + return result; + } + + public Class<? extends Template<M>>[] getTransformers() { + return transformers; + } +} Property changes on: trunk/eugene/src/main/java/org/nuiton/eugene/AbstractMetaTransformer.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL Modified: trunk/eugene/src/site/site_en.xml =================================================================== --- trunk/eugene/src/site/site_en.xml 2009-12-20 13:06:54 UTC (rev 775) +++ trunk/eugene/src/site/site_en.xml 2009-12-20 14:45:41 UTC (rev 776) @@ -13,7 +13,7 @@ <links> <item name="Libre-Entreprise" href="http://www.libre-entreprise.org/" /> - <item name="[fr" href="../fr/index.html" /> + <item name="[fr" href="fr/index.html" /> <item name="en]" href="index.html" /> </links> Modified: trunk/maven-eugene-plugin/src/site/site_en.xml =================================================================== --- trunk/maven-eugene-plugin/src/site/site_en.xml 2009-12-20 13:06:54 UTC (rev 775) +++ trunk/maven-eugene-plugin/src/site/site_en.xml 2009-12-20 14:45:41 UTC (rev 776) @@ -8,7 +8,7 @@ <body> <links> <item name="Libre-Entreprise" href="http://www.libre-entreprise.org/" /> - <item name="[fr" href="../fr/index.html" /> + <item name="[fr" href="fr/index.html" /> <item name="en]" href="index.html" /> </links> Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2009-12-20 13:06:54 UTC (rev 775) +++ trunk/pom.xml 2009-12-20 14:45:41 UTC (rev 776) @@ -249,10 +249,11 @@ <!-- pour un muli module on doit fixer le projectId --> <projectId>eugene</projectId> - <!-- TODO TC-20090823 remove ant deps --> <ant.version>1.7.1</ant.version> - <processor.version>1.0.3-SNAPSHOT</processor.version> - <nuiton-utils.version>1.1.0</nuiton-utils.version> + + <processor.version>1.0.2</processor.version> + <!--<processor.version>1.0.3-SNAPSHOT</processor.version>--> + <nuiton-utils.version>1.1.1</nuiton-utils.version> <!--Multilanguage maven-site --> <maven.site.locales>en,fr</maven.site.locales> Added: trunk/src/site/fr/rst/index.rst =================================================================== --- trunk/src/site/fr/rst/index.rst (rev 0) +++ trunk/src/site/fr/rst/index.rst 2009-12-20 14:45:41 UTC (rev 776) @@ -0,0 +1,19 @@ +====== +EUGEne +====== + +.. contents:: + + +Présentation +------------ + +Le projet EUGene est composé de 3 modules : + + * `eugene-api`_ + * `ant-eugene-task`_ + * `maven-eugene-plugin`_ + +.. _eugene-api: eugene/index.html +.. _ant-eugene-task: ant-eugenet-task/index.html +.. _maven-eugene-plugin: maven-eugene-plugin/index.html \ No newline at end of file Added: trunk/src/site/rst/index.rst =================================================================== --- trunk/src/site/rst/index.rst (rev 0) +++ trunk/src/site/rst/index.rst 2009-12-20 14:45:41 UTC (rev 776) @@ -0,0 +1,19 @@ +====== +EUGEne +====== + +.. contents:: + + +Home +---- + +EUGene's project is distributed in 3 modules : + + * `eugene-api`_ + * `ant-eugene-task`_ + * `maven-eugene-plugin`_ + +.. _eugene-api: eugene/index.html +.. _ant-eugene-task: ant-eugenet-task/index.html +.. _maven-eugene-plugin: maven-eugene-plugin/index.html \ No newline at end of file Modified: trunk/src/site/site_en.xml =================================================================== --- trunk/src/site/site_en.xml 2009-12-20 13:06:54 UTC (rev 775) +++ trunk/src/site/site_en.xml 2009-12-20 14:45:41 UTC (rev 776) @@ -18,6 +18,10 @@ <item name="${project.name}" href="index.html" /> </breadcrumbs> + <menu name="User"> + <item name="Home" href="index.html" /> + <item name="French version" href="fr/index.html" /> + </menu> <menu ref="modules"/> <menu ref="reports"/> Modified: trunk/src/site/site_fr.xml =================================================================== --- trunk/src/site/site_fr.xml 2009-12-20 13:06:54 UTC (rev 775) +++ trunk/src/site/site_fr.xml 2009-12-20 14:45:41 UTC (rev 776) @@ -18,6 +18,11 @@ <item name="${project.name}" href="index.html" /> </breadcrumbs> + <menu name="Utilisateur"> + <item name="Accueil" href="index.html" /> + <item name="English version" href="../index.html" /> + </menu> + <menu ref="modules"/> <menu ref="reports"/>
participants (1)
-
tchemit@users.nuiton.org