Author: tchemit Date: 2008-10-08 15:17:58 +0000 (Wed, 08 Oct 2008) New Revision: 221 Modified: maven-jrst-plugin/trunk/src/main/java/org/codelutin/jrst/plugin/JRstPlugin.java Log: use DirectoryScanner instead of FileWalker since we do not want at all to treate svn files... do not anymore copy the resources other than rst (this is the role of maven-site-plugin) make parameter more effective Modified: maven-jrst-plugin/trunk/src/main/java/org/codelutin/jrst/plugin/JRstPlugin.java =================================================================== --- maven-jrst-plugin/trunk/src/main/java/org/codelutin/jrst/plugin/JRstPlugin.java 2008-10-08 15:16:45 UTC (rev 220) +++ maven-jrst-plugin/trunk/src/main/java/org/codelutin/jrst/plugin/JRstPlugin.java 2008-10-08 15:17:58 UTC (rev 221) @@ -29,15 +29,13 @@ package org.codelutin.jrst.plugin; -import java.io.File; -import java.io.IOException; - import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; +import org.codehaus.plexus.util.DirectoryScanner; import org.codelutin.jrst.JRST; -import org.codelutin.util.FileUtil; -import org.codelutin.util.FileUtil.FileAction; +import java.io.File; + /** * Génére du xdoc à partir de fichiers Rst. * <p/> @@ -48,80 +46,79 @@ * <li> ... * <p/> * et ils iront au final dans: - * <li> target/generated-site/fr/xdoc/ - * <li> target/generated-site/en/xdoc/ - * <li> target/generated-site/es/xdoc/ + * <li> target/generated-rst/fr/xdoc/ + * <li> target/generated-rst/en/xdoc/ + * <li> target/generated-rst/es/xdoc/ * <li> ... * <p/> * tous les autres fichiers iront dans target/generated-site en * respectant la meme hierarchie de repertoire. - * + * * @goal jrst * @phase pre-site */ -public class JRstPlugin extends AbstractMojo implements FileAction { +public class JRstPlugin extends AbstractMojo { + //implements FileAction { /** * Répertoire source des fichiers Rst - * + * * @parameter default-value="src/site" * @required */ - private String directoryIn = "src/site"; + protected File directoryIn; /** * Encoding en entrée - * + * * @parameter default-value="UTF-8" */ - private String inputEncoding = "UTF-8"; + protected String inputEncoding = "UTF-8"; /** * Encoding en sortie - * + * * @parameter default-value="UTF-8" */ - private String outputEncoding = "UTF-8"; + protected String outputEncoding = "UTF-8"; /** * Répertoire cible des fichiers xdoc générée - * + * * @parameter default-value="target/generated-site" * @required */ - private String directoryOut = "target/generated-site"; + protected File directoryOut; /** * Arréte la génération en cas d'erreurs - * + * * @parameter default-value="true" */ - private boolean ignoreErrors = true; + protected boolean ignoreErrors = true; /** * Ecrase les fichiers générés - * + * * @parameter default-value="ifnewer" */ - private String overwrite = "ifnewer"; + protected String overwrite = "ifnewer"; /** @parameter default-value="fr" */ - private String defaultLocale = "fr"; + protected String defaultLocale = "fr"; /** * Permet d'obtenir plus d'information - * - * @parameter default-value="false" + * + * @parameter expression="${jrst.verbose}" default-value="${maven.verbose}" */ - private boolean verbose = false; + protected boolean verbose; - /** - * Number of generated files. - */ + /** Number of generated files. */ private int numberFilesGenerates; /** * Retourne la langue par defaut precisé dans le pom.xml - * + * * @return la langue par defaut precisé dans le pom.xml */ protected String getDefaultLocale() { @@ -146,16 +143,29 @@ } catch (GenerationJRstException e) { System.out.println("Error during generation for :\n" + GenerationJRstException.getFilesErrors()); - if (!ignoreErrors) + if (!ignoreErrors) { throw new MojoExecutionException("Erreur lors de l'execution"); + } } - actionCopy(); + //actionCopy(); } private void actionGenerate() { getLog().info("Génération des fichier xdocs à partir des fichiers rst"); numberFilesGenerates = 0; - FileUtil.walkAfter(new File(directoryIn), this); + DirectoryScanner ds; + ds = new DirectoryScanner(); + ds.setBasedir(directoryIn); + ds.setIncludes(new String[]{"**\\/*.rst"}); + + ds.scan(); + String[] files = ds.getIncludedFiles(); + + for (String file : files) { + doAction(new File(directoryIn, file)); + } + + //FileUtil.walkAfter(new File(directoryIn), this); getLog().info( "Generating " + numberFilesGenerates + " files to " + directoryOut); @@ -166,7 +176,7 @@ String fileOut = null; getLog().info("Using " + fileIn); if (fileIn.matches(".*[/\\\\]rst[/\\\\].*\\.rst")) { - fileOut = fileIn.replace(directoryIn, directoryOut).replace(".rst", + fileOut = fileIn.replace(directoryIn.getAbsolutePath(), directoryOut.getAbsolutePath()).replace(".rst", ".xml").replaceFirst("([/\\\\])rst([/\\\\])", "$1xdoc$2"); if (defaultLocale != null && !"".equals(defaultLocale)) { @@ -193,40 +203,40 @@ return true; } - private void actionCopy() { + /*protected void actionCopy() { getLog().info("Copie des fichiers images"); - /* Execution de la tâche ant copy */ + // Execution de la tâche ant copy try { if (defaultLocale != null && !"".equals(defaultLocale)) { // copie de tous les fichiers non rst - FileUtil.copyAndRenameRecursively(new File(directoryIn), - new File(directoryOut), false, "([/\\\\])" + FileUtil.copyAndRenameRecursively(directoryIn, + directoryOut, false, "([/\\\\])" + defaultLocale + "([/\\\\])", "$1", true, ".*[/\\\\]rst[/\\\\].*"); // copie des images du repertoire rst dans le build-site FileUtil.copyAndRenameRecursively( - new File(directoryIn), - new File(directoryOut), + directoryIn, + directoryOut, false, // on ne copie que le contenu de directoryIn "([/\\\\])" + defaultLocale + "([/\\\\])rst([/\\\\])", "$1resources$2", false, ".*[/\\\\]rst[/\\\\].*(\\.png|\\.jpeg|\\.jpg|\\.gif)$"); } else { // copie de tous les fichiers non rst - FileUtil.copyAndRenameRecursively(new File(directoryIn), - new File(directoryOut), false, "", "", true, + FileUtil.copyAndRenameRecursively(directoryIn, + directoryOut, false, "", "", true, ".*[/\\\\]rst[/\\\\].*"); // copie des images du repertoire rst dans le build-site - FileUtil.copyAndRenameRecursively(new File(directoryIn), - new File(directoryOut), false, "([/\\\\])rst([/\\\\])", + FileUtil.copyAndRenameRecursively(directoryIn, + directoryOut, false, "([/\\\\])rst([/\\\\])", "$1resources$2", false, ".*[/\\\\]rst[/\\\\].*(\\.png|\\.jpeg|\\.jpg|\\.gif)$"); } } catch (IOException eee) { getLog().error(eee); } - } + }*/ }