Index: maven-processor-plugin/src/java/org/codelutin/processor/plugin/ProcessorPlugin.java diff -u maven-processor-plugin/src/java/org/codelutin/processor/plugin/ProcessorPlugin.java:1.2 maven-processor-plugin/src/java/org/codelutin/processor/plugin/ProcessorPlugin.java:1.3 --- maven-processor-plugin/src/java/org/codelutin/processor/plugin/ProcessorPlugin.java:1.2 Fri Apr 14 11:49:21 2006 +++ maven-processor-plugin/src/java/org/codelutin/processor/plugin/ProcessorPlugin.java Mon Jul 28 23:17:34 2008 @@ -23,33 +23,41 @@ * Created: 14 avril 2006 * * @author ruchaud - * @version $Revision: 1.2 $ + * @version $Revision: 1.3 $ * - * Last update: $Date: 2006-04-14 11:49:21 $ - * by : $Author: ruchaud $ + * Last update: $Date: 2008-07-28 23:17:34 $ + * by : $Author: tchemit $ */ package org.codelutin.processor.plugin; -import java.io.File; - import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.project.MavenProject; import org.apache.tools.ant.BuildLogger; import org.apache.tools.ant.NoBannerLogger; import org.apache.tools.ant.Project; import org.codelutin.processor.ant.ProcessorTask; +import java.io.File; + /** * Plugin for Lutin Processor - * + * * @goal process */ public class ProcessorPlugin extends AbstractMojo { - + + /** + * @description Dépendance du projet. + * @parameter default-value="${project}" + * @readonly + */ + protected MavenProject project; + /** * Répertoire source - * + * * @parameter * @required */ @@ -57,7 +65,7 @@ /** * Répertoire cible - * + * * @parameter * @required */ @@ -65,55 +73,61 @@ /** * Fichier à inclure - * + * * @parameter */ - protected String[] includes = new String[] {}; + protected String[] includes = new String[]{}; /** * Fichier à exclure - * + * * @parameter */ - protected String[] excludes = new String[] {}; + protected String[] excludes = new String[]{}; - /** - * @parameter - */ + /** @parameter */ protected String fileInPattern = ""; - /** - * @parameter - */ + /** @parameter */ protected String fileOutPattern = ""; /** * Les filtres a utiliser par le processor, séparés par des virgules - * + * * @parameter default-value="org.codelutin.processor.filters.NoActionFilter" */ protected String filters = "org.codelutin.processor.filters.NoActionFilter"; /** * Ecrase les fichiers générés - * + * * @parameter default-value="false" */ private boolean overwrite = false; - + /** * Permet d'obtenir plus d'information - * + * * @parameter default-value="false" */ private boolean verbose = false; + /** + * Flag pour indiquer si on doit ajouter le repertoire de generation dans les répertoires + * de compilation du project Maven Nom par défaut du paquetage généré + *

+ * TODO Ce flag doit disparaitre dans la prochaine release (uniquement utilisée pour compatibilité) + * + * @parameter expression="${processor.addCompileDirectory}" default-value="false" + */ + protected boolean addCompileDirectory; + public void execute() throws MojoExecutionException { getLog().info("Génération des fichiers à partir de lutin processor"); - + /* Création d'un projet ant */ Project project = new Project(); - + BuildLogger logger = new NoBannerLogger(); logger.setMessageOutputLevel(org.apache.tools.ant.Project.MSG_INFO); logger.setOutputPrintStream(System.out); @@ -127,25 +141,39 @@ ProcessorTask processor = new ProcessorTask(); processor.setProject(project); processor.setTaskName("Processor"); - + /* Configuration */ processor.setVerbose(verbose); processor.setSrcdir(srcDir); destDir.mkdirs(); processor.setDestdir(destDir); - + processor.setFileInPattern(fileInPattern); processor.setFileOutPattern(fileOutPattern); - + processor.setIncludes(includes); processor.setExcludes(excludes); - + processor.setFilters(filters); - + processor.setOverwrite(overwrite); - + /* Execution */ processor.execute(); + + if (addCompileDirectory) { + fixCompileSourceRoots(); + } + } + + /** + * permet d'ajout le répertoire de génération des fichiers java dans les répertoires + * de compilation du projet Maven. + */ + protected void fixCompileSourceRoots() { + if (!project.getCompileSourceRoots().contains(destDir.getPath())) { + project.addCompileSourceRoot(destDir.getPath()); + } } - + } \ No newline at end of file