Author: tchemit Date: 2010-06-29 13:10:54 +0200 (Tue, 29 Jun 2010) New Revision: 1769 Url: http://nuiton.org/repositories/revision/i18n/1769 Log: Evolution #729: Use mavenpom 2.2.2 Evolution #727: Use maven-helper-plugin 1.2.6 Evolution #728: Use processor 1.0.4 Evolution #731: Improve management of encoding Modified: trunk/ant-i18n-task/src/main/java/org/nuiton/i18n/ant/I18nExtractorTask.java trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/AbstractI18nMojo.java trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/BundleMojo.java trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/CollectI18nArtifactsMojo.java trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/AbstractFileParser.java trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/AbstractI18nParserMojo.java trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/FileParser.java trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/KeysModifier.java trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/ParserExecutor.java trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/SourceEntry.java trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserJavaActionConfigMojo.java trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserJavaMojo.java trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserValidationMojo.java trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserXmlMojo.java trunk/pom.xml Modified: trunk/ant-i18n-task/src/main/java/org/nuiton/i18n/ant/I18nExtractorTask.java =================================================================== --- trunk/ant-i18n-task/src/main/java/org/nuiton/i18n/ant/I18nExtractorTask.java 2010-06-27 07:00:49 UTC (rev 1768) +++ trunk/ant-i18n-task/src/main/java/org/nuiton/i18n/ant/I18nExtractorTask.java 2010-06-29 11:10:54 UTC (rev 1769) @@ -25,27 +25,29 @@ package org.nuiton.i18n.ant; -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - import org.apache.tools.ant.BuildException; import org.apache.tools.ant.DirectoryScanner; import org.apache.tools.ant.Project; import org.apache.tools.ant.taskdefs.MatchingTask; import org.nuiton.processor.I18nExtractor; +import org.nuiton.processor.ProcessorUtil; +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + /** * I18nExtractorTask. - * + * <p/> * Created: Aug 16, 2004 * * @author Cédric Pineau <pineau@codelutin.com> * @version $Revision$ - * - * Last update : $Date$ - * by : */ + * <p/> + * Last update : $Date$ + * by : + */ public class I18nExtractorTask extends MatchingTask { public static final int MSG_VERBOSE = Project.MSG_VERBOSE; @@ -60,8 +62,10 @@ protected String[] srcFileNames; - private static final String[] EMPTY_STRING_ARRAY = new String[] {}; + protected String encoding; + private static final String[] EMPTY_STRING_ARRAY = new String[]{}; + public I18nExtractorTask() { } @@ -80,9 +84,12 @@ for (String srcFileName : srcFileNames) { fileList.add(new File(srcFileName)); } + if (encoding == null || encoding.trim().isEmpty()) { + encoding = ProcessorUtil.DEFAULT_ENCODING; + } try { new I18nExtractor().extract( - fileList.toArray(new File[fileList.size()]), destFile); + fileList.toArray(new File[fileList.size()]), destFile, encoding); } catch (IOException eee) { throw new BuildException(eee); } @@ -96,21 +103,25 @@ this.destFile = destFile; } + public void setEncoding(String encoding) { + this.encoding = encoding; + } + @Override public void execute() throws BuildException { // first of all, make sure that we've got a srcdir if (srcDir == null) { throw new BuildException("srcdir attribute must be set!", - getLocation()); + getLocation()); } if (!srcDir.exists()) { throw new BuildException("srcdir \"" + srcDir.getPath() - + "\" does not exist!", getLocation()); + + "\" does not exist!", getLocation()); } if (destFile == null) { throw new BuildException("destFile attribute must be set!", - getLocation()); + getLocation()); } // Build the list of files to compute Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/AbstractI18nMojo.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/AbstractI18nMojo.java 2010-06-27 07:00:49 UTC (rev 1768) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/AbstractI18nMojo.java 2010-06-29 11:10:54 UTC (rev 1769) @@ -29,6 +29,7 @@ import org.nuiton.i18n.I18nUtil; import org.nuiton.plugin.AbstractPlugin; import org.nuiton.plugin.PluginHelper; +import org.nuiton.plugin.PluginWithEncoding; import java.io.File; import java.io.IOException; @@ -42,7 +43,7 @@ * * @author julien */ -public abstract class AbstractI18nMojo extends AbstractPlugin { +public abstract class AbstractI18nMojo extends AbstractPlugin implements PluginWithEncoding { /** Le nombre de getters détectés pendant le cycle de vie du build. */ private static int NB_GETTER_FILES; @@ -91,6 +92,9 @@ /** * encoding a utiliser pour charger et sauver les bundles + * <p/> + * <b>Note:</b> If nothing is filled here, we will use the system + * property {@code file.encoding}. * * @parameter expression="${i18n.encoding}" default-value="${project.build.sourceEncoding}" * @required @@ -268,10 +272,12 @@ copyFile(f, dst); } + @Override public String getEncoding() { return encoding; } + @Override public void setEncoding(String encoding) { this.encoding = encoding; } Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/BundleMojo.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/BundleMojo.java 2010-06-27 07:00:49 UTC (rev 1768) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/BundleMojo.java 2010-06-29 11:10:54 UTC (rev 1769) @@ -35,7 +35,12 @@ import java.io.FileOutputStream; import java.io.IOException; import java.net.URL; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; import java.util.Map.Entry; /** Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/CollectI18nArtifactsMojo.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/CollectI18nArtifactsMojo.java 2010-06-27 07:00:49 UTC (rev 1768) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/CollectI18nArtifactsMojo.java 2010-06-29 11:10:54 UTC (rev 1769) @@ -41,7 +41,11 @@ import java.io.File; import java.io.IOException; import java.net.URL; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; /** * Detects any i18n artifacts and store the result as a file. Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/AbstractFileParser.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/AbstractFileParser.java 2010-06-27 07:00:49 UTC (rev 1768) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/AbstractFileParser.java 2010-06-29 11:10:54 UTC (rev 1769) @@ -48,6 +48,8 @@ private boolean touched; + private final String encoding; + protected AbstractFileParser(Log log, String encoding, SortedProperties oldParser, @@ -55,6 +57,7 @@ this.log = log; this.oldParser = oldParser; this.showTouchedFiles = showTouchedFiles; + this.encoding = encoding; result = new SortedProperties(encoding); } @@ -72,6 +75,10 @@ return result; } + public String getEncoding() { + return encoding; + } + @Override public void destroy() { result.clear(); Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/AbstractI18nParserMojo.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/AbstractI18nParserMojo.java 2010-06-27 07:00:49 UTC (rev 1768) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/AbstractI18nParserMojo.java 2010-06-29 11:10:54 UTC (rev 1769) @@ -121,16 +121,6 @@ protected boolean showTouchedFiles; /** - * flag to save at eachfile treated the getter file - * - * @parameter expression="${i18n.safeMode}" default-value="false" - * @since 0.9 - * @deprecated since 1.2, no more used - */ - @Deprecated - protected boolean safeMode; - - /** * flag to save previous getter in a backup before doing parsing. * <p/> * Note: by default, do not perform backup (but it was here originaly so let @@ -206,11 +196,6 @@ @Override protected void doAction() throws Exception { - if (safeMode) { - getLog().warn("\n" + - "\nWarning : safeMode is deprecated and has no more effect." + - "\n"); - } if (keysModifier) { getLog().warn("\n" + "\nWarning : keysModifier is deprecated and has no more effect." + Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/FileParser.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/FileParser.java 2010-06-27 07:00:49 UTC (rev 1768) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/FileParser.java 2010-06-29 11:10:54 UTC (rev 1769) @@ -40,6 +40,13 @@ public interface FileParser { /** + * Gets encoding used to read and write files. + * + * @return the encoding + */ + String getEncoding(); + + /** * @return {@code true} if file was touched (says contains at least one i18n * key) */ Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/KeysModifier.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/KeysModifier.java 2010-06-27 07:00:49 UTC (rev 1768) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/KeysModifier.java 2010-06-29 11:10:54 UTC (rev 1769) @@ -27,8 +27,13 @@ import org.nuiton.plugin.PluginHelper; -import javax.swing.*; -import java.awt.*; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JTextField; +import java.awt.Container; +import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/ParserExecutor.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/ParserExecutor.java 2010-06-27 07:00:49 UTC (rev 1768) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/ParserExecutor.java 2010-06-29 11:10:54 UTC (rev 1769) @@ -26,6 +26,10 @@ package org.nuiton.i18n.plugin.parser; +import org.apache.maven.plugin.logging.Log; +import org.nuiton.io.SortedProperties; +import org.nuiton.plugin.PluginHelper; + import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -33,12 +37,8 @@ import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; -import org.apache.maven.plugin.logging.Log; -import org.nuiton.io.SortedProperties; -import org.nuiton.plugin.PluginHelper; /** - * * @author poussin * @since 1.2.2 */ @@ -140,7 +140,8 @@ * <p/> * <b>Note:</b> The method does not return until all files are not * consumed. - * @throws InterruptedException if something wrong while waiting end of + * + * @throws InterruptedException if something wrong while waiting end of * executor */ public void terminatesAndWaits() throws InterruptedException { @@ -153,8 +154,8 @@ getLog().info("No file consumed."); } else { getLog().info("Will waits until all files (" + nbFiles + - ") are consumed (still " + getNbFilesToTreate() + - " file(s) to consume)"); + ") are consumed (still " + getNbFilesToTreate() + + " file(s) to consume)"); } } @@ -168,7 +169,7 @@ if (getLog().isDebugEnabled()) { getLog().debug("A task was consumed, still " + getNbFilesToTreate() + - " file(s) to treate."); + " file(s) to treate."); } if (isVerbose()) { Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/SourceEntry.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/SourceEntry.java 2010-06-27 07:00:49 UTC (rev 1768) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/SourceEntry.java 2010-06-29 11:10:54 UTC (rev 1769) @@ -171,7 +171,7 @@ if (includes != null) { sb.append(", includes:").append(Arrays.toString(includes)); } - if (excludes != null && excludes.length>0) { + if (excludes != null && excludes.length > 0) { sb.append(", excludes:").append(Arrays.toString(excludes)); } return sb.toString(); Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserJavaActionConfigMojo.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserJavaActionConfigMojo.java 2010-06-27 07:00:49 UTC (rev 1768) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserJavaActionConfigMojo.java 2010-06-29 11:10:54 UTC (rev 1769) @@ -52,7 +52,7 @@ return new JavaFileParser( getLog(), - encoding, + getEncoding(), oldParser, showTouchedFiles) { Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserJavaMojo.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserJavaMojo.java 2010-06-27 07:00:49 UTC (rev 1768) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserJavaMojo.java 2010-06-29 11:10:54 UTC (rev 1769) @@ -26,13 +26,22 @@ package org.nuiton.i18n.plugin.parser.impl; import org.apache.maven.plugin.logging.Log; -import org.nuiton.i18n.plugin.parser.*; +import org.nuiton.i18n.plugin.parser.AbstractFileParser; +import org.nuiton.i18n.plugin.parser.AbstractI18nParserMojo; +import org.nuiton.i18n.plugin.parser.FileParser; +import org.nuiton.i18n.plugin.parser.I18nSourceEntry; +import org.nuiton.i18n.plugin.parser.ParserException; +import org.nuiton.i18n.plugin.parser.SourceEntry; import org.nuiton.io.FileUpdater; import org.nuiton.io.FileUpdaterHelper; import org.nuiton.io.SortedProperties; import org.nuiton.processor.filters.I18nFilter; -import java.io.*; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.LineNumberReader; /** * Récupération des chaine a traduire depuis les fichiers java. @@ -106,9 +115,9 @@ public FileParser newFileParser() { return new JavaFileParser(getLog(), - encoding, + getEncoding(), oldParser, - showTouchedFiles + isShowTouchedFiles() ); } @@ -127,7 +136,7 @@ public void parseFile(File file) throws IOException { String line = null; LineNumberReader lnr = new LineNumberReader(new InputStreamReader( - new FileInputStream(file))); + new FileInputStream(file), getEncoding())); try { while ((line = lnr.readLine()) != null) { parseLine(file, line); @@ -160,7 +169,7 @@ String[] keys = keysSet.split("="); for (String key : keys) { if (getLog().isDebugEnabled()) { - getLog().debug(file.getName()+" detected key = " + key); + getLog().debug(file.getName() + " detected key = " + key); } registerKey(key); } Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserValidationMojo.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserValidationMojo.java 2010-06-27 07:00:49 UTC (rev 1768) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserValidationMojo.java 2010-06-29 11:10:54 UTC (rev 1769) @@ -31,7 +31,6 @@ import org.nuiton.io.MirroredFileUpdater; import org.xml.sax.EntityResolver; import org.xml.sax.InputSource; -import org.xml.sax.SAXException; import javax.xml.parsers.DocumentBuilder; import javax.xml.xpath.XPath; @@ -143,7 +142,7 @@ builder.setEntityResolver(getEntityResolver()); return new XmlFileParser(getLog(), - encoding, + getEncoding(), oldParser, showTouchedFiles, rules, @@ -178,8 +177,8 @@ boolean useLocal = useLocalResolver; @Override - public InputSource resolveEntity(String publicId, String systemId) - throws SAXException, IOException { + public InputSource resolveEntity(String publicId, + String systemId) throws IOException { if (getLog().isDebugEnabled()) { getLog().debug("publicID:" + publicId + ", systemId:" + systemId); Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserXmlMojo.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserXmlMojo.java 2010-06-27 07:00:49 UTC (rev 1768) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserXmlMojo.java 2010-06-29 11:10:54 UTC (rev 1769) @@ -42,7 +42,12 @@ import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpression; import javax.xml.xpath.XPathFactory; -import java.io.*; +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; /** * Récupération des chaines à traduire depuis les fichiers xml. Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2010-06-27 07:00:49 UTC (rev 1768) +++ trunk/pom.xml 2010-06-29 11:10:54 UTC (rev 1769) @@ -33,7 +33,7 @@ <parent> <groupId>org.nuiton</groupId> <artifactId>mavenpom4redmine</artifactId> - <version>2.2.1</version> + <version>2.2.2-SNAPSHOT</version> </parent> <artifactId>i18n</artifactId> @@ -253,7 +253,7 @@ <!-- pour un muli module on doit fixer le projectId --> <projectId>i18n</projectId> - <processor.version>1.0.3</processor.version> + <processor.version>1.0.4-SNAPSHOT</processor.version> <!--Multilanguage maven-site --> <locales>fr,en</locales>