Author: tchemit Date: 2008-08-15 19:13:47 +0000 (Fri, 15 Aug 2008) New Revision: 1027 Modified: trunk/maven-i18n-plugin/pom.xml trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/core/AbstractI18nParser.java trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserJava.java trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserJaxx.java trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserSwixat.java Log: utilisation de org.codelutin:lutinpluginutil:0.1 et des FileUpdater Modified: trunk/maven-i18n-plugin/pom.xml =================================================================== --- trunk/maven-i18n-plugin/pom.xml 2008-08-15 16:59:21 UTC (rev 1026) +++ trunk/maven-i18n-plugin/pom.xml 2008-08-15 19:13:47 UTC (rev 1027) @@ -52,6 +52,14 @@ <version>3.1</version> <scope>compile</scope> </dependency> + + <dependency> + <groupId>org.codelutin</groupId> + <artifactId>lutinpluginutil</artifactId> + <version>0.1</version> + <scope>compile</scope> + </dependency> + </dependencies> <!-- ************************************************************* --> Modified: trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/core/AbstractI18nParser.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/core/AbstractI18nParser.java 2008-08-15 16:59:21 UTC (rev 1026) +++ trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/core/AbstractI18nParser.java 2008-08-15 19:13:47 UTC (rev 1027) @@ -22,6 +22,7 @@ import org.apache.maven.plugin.MojoFailureException; import org.codelutin.i18n.plugin.PluginHelper; import org.codelutin.i18n.plugin.ui.KeysModifier; +import org.codelutin.util.FileUpdater; import java.io.BufferedOutputStream; import java.io.File; @@ -61,12 +62,14 @@ /** * treate default entry + * * @parameter expression="${i18n.treateDefault}" default-value="true" */ protected boolean treateDefaultEntry; /** * Source entries (src+includes+excludes) . + * * @parameter expression="${i18n.entries}" */ protected SourceEntry[] entries; @@ -84,6 +87,8 @@ protected SourceEntry currentEntry; + protected FileUpdater updater; + public void init() { t0 = System.nanoTime(); result = new Properties(); @@ -98,14 +103,18 @@ } /** - * Test if a file is up to date and do not treate. + * Test if a file is up to date and not to be treated. + * <p/> + * This method is called on a file only in not {@link #strictMode}. + * <p/> + * If {@link #updater} is null, then it considers that file as always to be treated. * - * @param basedir the basdir of sourceentry - * @param file1 the file path relative to basedir - * @param file the file to treate @return <code>true</code> if file is uptodate, says needs no treatment. + * @param file the file path to test * @return <code>true</code> if file is up to date and do not need to be parsed */ - protected abstract boolean isFileUptodate(File basedir, File file1, String file); + protected final boolean isFileUptodate(File file) { + return updater != null && updater.isFileUpToDate(file); + } /* * (non-Javadoc) @@ -218,8 +227,8 @@ } touchFile = false; int size = result.size(); - if (strictMode || !isFileUptodate(basedir, file, file1)) { - // on parse toujours en mode strict ou que le fichier n'est pas à jour + if (strictMode || !isFileUptodate(file)) { + // on parse toujours en mode strict ou quand le fichier n'est pas à jour getLog().info("parseFile " + file); parseFile(file); } Modified: trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserJava.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserJava.java 2008-08-15 16:59:21 UTC (rev 1026) +++ trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserJava.java 2008-08-15 19:13:47 UTC (rev 1027) @@ -24,9 +24,11 @@ import org.codelutin.i18n.plugin.core.ParserEvent; import org.codelutin.i18n.plugin.core.ParserException; import org.codelutin.processor.filters.I18nFilter; +import org.codelutin.util.FileUpdaterHelper; import java.io.File; import java.io.FileInputStream; +import java.io.IOException; import java.io.InputStreamReader; import java.io.LineNumberReader; @@ -41,18 +43,21 @@ /** * Source entries (src+includes+excludes) . + * * @parameter expression="${i18n.defaultIncludes}" default-value="**\\/*.java" */ protected String defaultIncludes; /** * default src for an entry. + * * @parameter expression="${i18n.defaultBasedir}" default-value="${basedir}/src/java" */ protected File defaultBasedir; /** * Dependance du projet. + * * @parameter default-value="${project}" * @readonly */ @@ -60,6 +65,7 @@ /** * Repertoire sources des fichiers i18n. + * * @parameter expression="${i18n.cp}" default-value="${basedir}/target/classes" * @required */ @@ -103,12 +109,10 @@ filter = new I18nFilter(); } - @Override - protected boolean isFileUptodate(File basedir, File file1, String file) { - String clazzFile = file.substring(0, file.length() - 4) + "class"; - File clazz = new File(cp + File.separator + clazzFile); - - return clazz.exists() && file1.lastModified() < clazz.lastModified(); + protected void parseEntry(File basedir, String[] files) throws IOException { + // prepare new file updater + updater = FileUpdaterHelper.newJavaFileUpdater(basedir, cp); + super.parseEntry(basedir, files); } @Override Modified: trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserJaxx.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserJaxx.java 2008-08-15 16:59:21 UTC (rev 1026) +++ trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserJaxx.java 2008-08-15 19:13:47 UTC (rev 1027) @@ -19,7 +19,10 @@ package org.codelutin.i18n.plugin.extension; +import org.codelutin.util.FileUpdaterHelper; + import java.io.File; +import java.io.IOException; /** * Récupération des chaine à traduire depuis les fichiers xml Jaxx. @@ -32,12 +35,21 @@ /** * Source entries (src+includes+excludes) . + * * @parameter expression="${i18n.defaultIncludes}" default-value="**\\/*.jaxx" */ protected String defaultIncludes; /** + * Where jaxx files should have been generated. + * + * @parameter expression="${i18n.defaultGenerateBasedir}" default-value="${basedir}/target/generated-sources/java" + */ + protected File defaultGenerateBasedir; + + /** * Regles xml. + * * @parameter expression="${i18n.rulesJaxx}" default-value="jaxx.rules" */ protected String rulesJaxx; @@ -52,9 +64,10 @@ return new String[]{}; } - @Override - protected boolean isFileUptodate(File basedir, File file1, String file) { - return false; + protected void parseEntry(File basedir, String[] files) throws IOException { + // prepare new file updater + updater = FileUpdaterHelper.newJavaFileUpdater(basedir, defaultGenerateBasedir); + super.parseEntry(basedir, files); } @Override Modified: trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserSwixat.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserSwixat.java 2008-08-15 16:59:21 UTC (rev 1026) +++ trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserSwixat.java 2008-08-15 19:13:47 UTC (rev 1027) @@ -19,8 +19,6 @@ package org.codelutin.i18n.plugin.extension; -import java.io.File; - /** * Recuperation des chaines à traduire depuis les fichiers xml Swixat. * @@ -32,18 +30,21 @@ /** * Source entries (src+includes) . + * * @parameter expression="${i18n.defaultIncludes}" default-value="**\\/*.xml" */ protected String defaultIncludes; /** * Source entries (src+excludes) . + * * @parameter expression="${i18n.defaultIncludes}" default-value="**\\/context.xml" */ protected String defaultExcludes; /** * Regles xml. + * * @parameter expression="${i18n.rulesSwixat}" default-value="swixat.rules" */ protected String rulesSwixat; @@ -59,12 +60,6 @@ } @Override - protected boolean isFileUptodate(File basedir, File file1, String file) { - return false; - } - - - @Override protected String getKeyModifierStart() { return "=\\s*[\"\']"; }