Author: fdesbois Date: 2011-05-04 00:36:42 +0200 (Wed, 04 May 2011) New Revision: 1898 Url: http://nuiton.org/repositories/revision/i18n/1898 Log: #1494 : Introduce srcEncoding and outEncoding in maven plugin. Change implementation of load method in I18nBundleEntry using encoding. Now user file keep srcEncoding. outEncoding is default iso-8859-1 and is used for all other files in internal and for bundle purpose. Added: trunk/maven-i18n-plugin/src/it/ano-encoding/ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/LICENSE.txt trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/README.txt trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/changelog.txt trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/invoker.properties trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/pom.xml trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/java/ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/java/org/ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/java/org/nuiton/ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/java/org/nuiton/i18n/ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/java/org/nuiton/i18n/MessageConstants.java trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/i18n/ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/i18n/ano-encoding-iso-8859-1_en_GB.properties trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/i18n/ano-encoding-iso-8859-1_fr_FR.properties trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/log4j.properties trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/verify.groovy trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/LICENSE.txt trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/README.txt trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/changelog.txt trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/invoker.properties trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/pom.xml trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/java/ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/java/org/ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/java/org/nuiton/ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/java/org/nuiton/i18n/ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/java/org/nuiton/i18n/MessageConstants.java trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/i18n/ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/i18n/ano-encoding-migrate_en_GB.properties trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/i18n/ano-encoding-migrate_fr_FR.properties trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/log4j.properties trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/verify.groovy trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/LICENSE.txt trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/README.txt trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/changelog.txt trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/invoker.properties trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/pom.xml trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/java/ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/java/org/ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/java/org/nuiton/ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/java/org/nuiton/i18n/ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/java/org/nuiton/i18n/MessageConstants.java trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_en_GB.properties trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_fr_FR.properties trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_ja_JP.properties trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/java/ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/java/org/ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/java/org/nuiton/ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/java/org/nuiton/i18n/ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/java/org/nuiton/i18n/ReadTest.java trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/resources/ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/resources/log4j.properties trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/verify.groovy 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/GenerateMojo.java trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/GetterMojo.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/bundle/TapestryBundleMojo.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/impl/AbstractParserXmlMojo.java trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserGWTJavaMojo.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/ParserJspMojo.java trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserTapestryMojo.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/ParserXmlUserMojo.java trunk/pom.xml Added: trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/LICENSE.txt =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/LICENSE.txt (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/LICENSE.txt 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1,166 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. + Added: trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/README.txt =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/README.txt (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/README.txt 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1,2 @@ +To test parserJava on a new project (says a project with no i18n translations) +At the end we should have in target/generated-sources/i18n getters detected. Added: trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/changelog.txt =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/changelog.txt (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/changelog.txt 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1 @@ +see the changelog of org.nuiton:i18n project. \ No newline at end of file Added: trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/invoker.properties =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/invoker.properties (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/invoker.properties 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1,45 @@ +### +# #%L +# I18n :: Maven Plugin +# +# $Id: invoker.properties 1882 2011-02-14 15:54:14Z tchemit $ +# $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/parsers/newPro... $ +# %% +# Copyright (C) 2007 - 2010 CodeLutin +# %% +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Lesser Public License for more details. +# +# You should have received a copy of the GNU General Lesser Public +# License along with this program. If not, see +# <http://www.gnu.org/licenses/lgpl-3.0.html>. +# #L% +### +# A comma or space separated list of goals/phases to execute, may +# specify an empty list to execute the default goal of the IT project +invoker.goals=clean compile -Dlog4j.configuration=file:src/test/resources/log4j.properties + +# Optionally, a list of goals to run during further invocations of Maven +#invoker.goals.2=${project.groupId}:${project.artifactId}:${project.version}:run + +# A comma or space separated list of profiles to activate +#invoker.profiles=run-all run-once + +# The value for the environment variable MAVEN_OPTS +#invoker.mavenOpts=-Dfile.encoding=UTF-16 -Xms32m -Xmx256m + +# Possible values are "fail-fast" (default), "fail-at-end" and "fail-never" +invoker.failureBehavior=fail-at-end + +# The expected result of the build, possible values are "success" (default) and "failure" +#invoker.buildResult=success + +# A boolean value controlling the -N flag, defaults to "false" +#invoker.nonRecursive=false Added: trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/pom.xml =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/pom.xml (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/pom.xml 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1,93 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + #%L + I18n :: Maven Plugin + + $Id: pom.xml 1882 2011-02-14 15:54:14Z tchemit $ + $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/parsers/newPro... $ + %% + Copyright (C) 2007 - 2010 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Lesser Public License for more details. + + You should have received a copy of the GNU General Lesser Public + License along with this program. If not, see + <http://www.gnu.org/licenses/lgpl-3.0.html>. + #L% + --> + +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <!-- ************************************************************* --> + <!-- *** POM Relationships *************************************** --> + <!-- ************************************************************* --> + + <parent> + <groupId>org.nuiton</groupId> + <artifactId>i18n</artifactId> + <version>@pom.version@</version> + </parent> + + <groupId>org.nuiton.i18n</groupId> + <artifactId>ano-encoding-iso-8859-1</artifactId> + + <name>I18n Test :: ano-encoding-iso-8859-1</name> + + <dependencies> + + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>nuiton-i18n</artifactId> + <version>${project.version}</version> + </dependency> + + </dependencies> + + <properties> + <i18n.bundles>fr_FR,en_GB</i18n.bundles> + <i18n.verbose>true</i18n.verbose> + <i18n.keepGetters>true</i18n.keepGetters> + </properties> + <build> + + <plugins> + + <plugin> + <groupId>org.nuiton.i18n</groupId> + <artifactId>maven-i18n-plugin</artifactId> + <version>@pom.version@</version> + <configuration> + <verbose>true</verbose> + <srcEncoding>iso-8859-1</srcEncoding> + <bundleOutputName>ResultBundle</bundleOutputName> + <bundleOutputPackage>org.nuiton</bundleOutputPackage> + </configuration> + <executions> + <execution> + <id>first</id> + <goals> + <goal>parserJava</goal> + <goal>gen</goal> + <goal>bundle</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + +</project> + + Added: trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/java/org/nuiton/i18n/MessageConstants.java =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/java/org/nuiton/i18n/MessageConstants.java (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/java/org/nuiton/i18n/MessageConstants.java 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1,15 @@ +package org.nuiton.i18n; + +/** + * Created: 30/04/11 + * + * @author fdesbois <desbois@codelutin.com> + * $Id$ + */ +public interface MessageConstants { + + String MESSAGE_1 = I18n._("message1"); + + String MESSAGE_2 = I18n._("message2"); + +} Added: trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/i18n/ano-encoding-iso-8859-1_en_GB.properties =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/i18n/ano-encoding-iso-8859-1_en_GB.properties (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/i18n/ano-encoding-iso-8859-1_en_GB.properties 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1 @@ +message1=Hello ! Added: trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/i18n/ano-encoding-iso-8859-1_fr_FR.properties =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/i18n/ano-encoding-iso-8859-1_fr_FR.properties (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/i18n/ano-encoding-iso-8859-1_fr_FR.properties 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1 @@ +message1=Salut \u00E0 tous Added: trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/log4j.properties =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/log4j.properties (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/src/main/resources/log4j.properties 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1,34 @@ +### +# #%L +# I18n :: Maven Plugin +# +# $Id: log4j.properties 1882 2011-02-14 15:54:14Z tchemit $ +# $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/ano-672/src/te... $ +# %% +# Copyright (C) 2007 - 2010 CodeLutin +# %% +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Lesser Public License for more details. +# +# You should have received a copy of the GNU General Lesser Public +# License along with this program. If not, see +# <http://www.gnu.org/licenses/lgpl-3.0.html>. +# #L% +### +# Global logging configuration +log4j.rootLogger=ERROR, stdout +# Console output... +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n + +# package level +log4j.logger.org.nuiton.util=WARN +log4j.logger.org.nuiton.i18n=DEBUG Added: trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/verify.groovy =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/verify.groovy (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/iso-8859-1/verify.groovy 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1,58 @@ +/* + * #%L + * I18n :: Maven Plugin + * + * $Id: verify.groovy 1882 2011-02-14 15:54:14Z tchemit $ + * $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/parsers/newPro... $ + * %% + * Copyright (C) 2007 - 2010 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. + * #L% + */ +def fileExists(path) { + + file = new File(basedir, path); + return file.exists(); + +} + +def checkContent(path, values) { + + file = new File(basedir, path); + + content = file.text; + + for (value in values) { + println("VALUE : " + value); + if (!content.contains(value)) { + println("Could not find " + value + " in file " + file); + return false; + } + } + return true; +} + +assert fileExists('target/classes/org/nuiton/ResultBundle_fr_FR.properties'); + +assert checkContent('target/generated-sources/i18n/ano-encoding-iso-8859-1_fr_FR.properties', + ['Salut \\u00E0 tous']); + +assert checkContent('src/main/resources/i18n/ano-encoding-iso-8859-1_fr_FR.properties', + ['Salut \\u00E0 tous']) + +assert fileExists('target/classes/org/nuiton/ResultBundle_en_GB.properties'); + +return true; Added: trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/LICENSE.txt =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/LICENSE.txt (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/LICENSE.txt 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1,166 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. + Added: trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/README.txt =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/README.txt (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/README.txt 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1,2 @@ +To test parserJava on a new project (says a project with no i18n translations) +At the end we should have in target/generated-sources/i18n getters detected. Added: trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/changelog.txt =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/changelog.txt (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/changelog.txt 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1 @@ +see the changelog of org.nuiton:i18n project. \ No newline at end of file Added: trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/invoker.properties =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/invoker.properties (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/invoker.properties 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1,45 @@ +### +# #%L +# I18n :: Maven Plugin +# +# $Id: invoker.properties 1882 2011-02-14 15:54:14Z tchemit $ +# $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/parsers/newPro... $ +# %% +# Copyright (C) 2007 - 2010 CodeLutin +# %% +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Lesser Public License for more details. +# +# You should have received a copy of the GNU General Lesser Public +# License along with this program. If not, see +# <http://www.gnu.org/licenses/lgpl-3.0.html>. +# #L% +### +# A comma or space separated list of goals/phases to execute, may +# specify an empty list to execute the default goal of the IT project +invoker.goals=clean compile -Dlog4j.configuration=file:src/test/resources/log4j.properties + +# Optionally, a list of goals to run during further invocations of Maven +#invoker.goals.2=${project.groupId}:${project.artifactId}:${project.version}:run + +# A comma or space separated list of profiles to activate +#invoker.profiles=run-all run-once + +# The value for the environment variable MAVEN_OPTS +#invoker.mavenOpts=-Dfile.encoding=UTF-16 -Xms32m -Xmx256m + +# Possible values are "fail-fast" (default), "fail-at-end" and "fail-never" +invoker.failureBehavior=fail-at-end + +# The expected result of the build, possible values are "success" (default) and "failure" +#invoker.buildResult=success + +# A boolean value controlling the -N flag, defaults to "false" +#invoker.nonRecursive=false Added: trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/pom.xml =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/pom.xml (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/pom.xml 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1,92 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + #%L + I18n :: Maven Plugin + + $Id: pom.xml 1882 2011-02-14 15:54:14Z tchemit $ + $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/parsers/newPro... $ + %% + Copyright (C) 2007 - 2010 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Lesser Public License for more details. + + You should have received a copy of the GNU General Lesser Public + License along with this program. If not, see + <http://www.gnu.org/licenses/lgpl-3.0.html>. + #L% + --> + +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <!-- ************************************************************* --> + <!-- *** POM Relationships *************************************** --> + <!-- ************************************************************* --> + + <parent> + <groupId>org.nuiton</groupId> + <artifactId>i18n</artifactId> + <version>@pom.version@</version> + </parent> + + <groupId>org.nuiton.i18n</groupId> + <artifactId>ano-encoding-migrate</artifactId> + + <name>I18n Test :: ano-encoding-migrate</name> + + <dependencies> + + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>nuiton-i18n</artifactId> + <version>${project.version}</version> + </dependency> + + </dependencies> + + <properties> + <i18n.bundles>fr_FR,en_GB</i18n.bundles> + <i18n.verbose>true</i18n.verbose> + <i18n.keepGetters>true</i18n.keepGetters> + </properties> + <build> + + <plugins> + + <plugin> + <groupId>org.nuiton.i18n</groupId> + <artifactId>maven-i18n-plugin</artifactId> + <version>@pom.version@</version> + <configuration> + <verbose>true</verbose> + <bundleOutputName>ResultBundle</bundleOutputName> + <bundleOutputPackage>org.nuiton</bundleOutputPackage> + </configuration> + <executions> + <execution> + <id>first</id> + <goals> + <goal>parserJava</goal> + <goal>gen</goal> + <goal>bundle</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + +</project> + + Added: trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/java/org/nuiton/i18n/MessageConstants.java =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/java/org/nuiton/i18n/MessageConstants.java (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/java/org/nuiton/i18n/MessageConstants.java 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1,15 @@ +package org.nuiton.i18n; + +/** + * Created: 30/04/11 + * + * @author fdesbois <desbois@codelutin.com> + * $Id$ + */ +public interface MessageConstants { + + String MESSAGE_1 = I18n._("message1"); + + String MESSAGE_2 = I18n._("message2"); + +} Added: trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/i18n/ano-encoding-migrate_en_GB.properties =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/i18n/ano-encoding-migrate_en_GB.properties (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/i18n/ano-encoding-migrate_en_GB.properties 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1 @@ +message1=Hello ! Added: trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/i18n/ano-encoding-migrate_fr_FR.properties =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/i18n/ano-encoding-migrate_fr_FR.properties (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/i18n/ano-encoding-migrate_fr_FR.properties 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1 @@ +message1=Salut \u00E0 tous Added: trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/log4j.properties =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/log4j.properties (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/src/main/resources/log4j.properties 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1,34 @@ +### +# #%L +# I18n :: Maven Plugin +# +# $Id: log4j.properties 1882 2011-02-14 15:54:14Z tchemit $ +# $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/ano-672/src/te... $ +# %% +# Copyright (C) 2007 - 2010 CodeLutin +# %% +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Lesser Public License for more details. +# +# You should have received a copy of the GNU General Lesser Public +# License along with this program. If not, see +# <http://www.gnu.org/licenses/lgpl-3.0.html>. +# #L% +### +# Global logging configuration +log4j.rootLogger=ERROR, stdout +# Console output... +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n + +# package level +log4j.logger.org.nuiton.util=WARN +log4j.logger.org.nuiton.i18n=DEBUG Added: trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/verify.groovy =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/verify.groovy (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/migrate/verify.groovy 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1,56 @@ +/* + * #%L + * I18n :: Maven Plugin + * + * $Id: verify.groovy 1882 2011-02-14 15:54:14Z tchemit $ + * $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/parsers/newPro... $ + * %% + * Copyright (C) 2007 - 2010 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. + * #L% + */ +def fileExists(path) { + + file = new File(basedir, path); + return file.exists(); +} + +def checkContent(path, values) { + + file = new File(basedir, path); + + content = file.text; + + for (key in values) { + if (!content.contains(key)) { + println("Could not find " + key + " in file " + file); + return false; + } + } + return true; +} + +assert fileExists('target/classes/org/nuiton/ResultBundle_fr_FR.properties'); + +assert checkContent('target/generated-sources/i18n/ano-encoding-migrate_fr_FR.properties', + ['Salut à tous']); + +assert checkContent('src/main/resources/i18n/ano-encoding-migrate_fr_FR.properties', + ['Salut à tous']); + +assert fileExists('target/classes/org/nuiton/ResultBundle_en_GB.properties'); + +return true; Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/LICENSE.txt =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/LICENSE.txt (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/LICENSE.txt 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1,166 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. + Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/README.txt =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/README.txt (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/README.txt 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1,2 @@ +To test parserJava on a new project (says a project with no i18n translations) +At the end we should have in target/generated-sources/i18n getters detected. Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/changelog.txt =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/changelog.txt (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/changelog.txt 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1 @@ +see the changelog of org.nuiton:i18n project. \ No newline at end of file Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/invoker.properties =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/invoker.properties (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/invoker.properties 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1,45 @@ +### +# #%L +# I18n :: Maven Plugin +# +# $Id: invoker.properties 1882 2011-02-14 15:54:14Z tchemit $ +# $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/parsers/newPro... $ +# %% +# Copyright (C) 2007 - 2010 CodeLutin +# %% +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Lesser Public License for more details. +# +# You should have received a copy of the GNU General Lesser Public +# License along with this program. If not, see +# <http://www.gnu.org/licenses/lgpl-3.0.html>. +# #L% +### +# A comma or space separated list of goals/phases to execute, may +# specify an empty list to execute the default goal of the IT project +invoker.goals=clean test -Dlog4j.configuration=file:src/test/resources/log4j.properties + +# Optionally, a list of goals to run during further invocations of Maven +#invoker.goals.2=${project.groupId}:${project.artifactId}:${project.version}:run + +# A comma or space separated list of profiles to activate +#invoker.profiles=run-all run-once + +# The value for the environment variable MAVEN_OPTS +#invoker.mavenOpts=-Dfile.encoding=UTF-16 -Xms32m -Xmx256m + +# Possible values are "fail-fast" (default), "fail-at-end" and "fail-never" +invoker.failureBehavior=fail-at-end + +# The expected result of the build, possible values are "success" (default) and "failure" +#invoker.buildResult=success + +# A boolean value controlling the -N flag, defaults to "false" +#invoker.nonRecursive=false Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/pom.xml =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/pom.xml (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/pom.xml 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1,104 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + #%L + I18n :: Maven Plugin + + $Id: pom.xml 1882 2011-02-14 15:54:14Z tchemit $ + $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/parsers/newPro... $ + %% + Copyright (C) 2007 - 2010 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Lesser Public License for more details. + + You should have received a copy of the GNU General Lesser Public + License along with this program. If not, see + <http://www.gnu.org/licenses/lgpl-3.0.html>. + #L% + --> + +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <!-- ************************************************************* --> + <!-- *** POM Relationships *************************************** --> + <!-- ************************************************************* --> + + <parent> + <groupId>org.nuiton</groupId> + <artifactId>i18n</artifactId> + <version>@pom.version@</version> + </parent> + + <groupId>org.nuiton.i18n</groupId> + <artifactId>ano-encoding-utf-8</artifactId> + + <name>I18n Test :: ano-encoding-utf-8</name> + + <dependencies> + + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>nuiton-i18n</artifactId> + <version>${project.version}</version> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </dependency> + + <dependency> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <scope>test</scope> + </dependency> + + </dependencies> + + <properties> + <i18n.bundles>ja_JP,en_GB,fr_FR</i18n.bundles> + <i18n.verbose>true</i18n.verbose> + <i18n.keepGetters>true</i18n.keepGetters> + </properties> + <build> + + <plugins> + + <plugin> + <groupId>org.nuiton.i18n</groupId> + <artifactId>maven-i18n-plugin</artifactId> + <version>@pom.version@</version> + <configuration> + <verbose>true</verbose> + <srcEncoding>utf-8</srcEncoding> + <bundleOutputName>ResultBundle</bundleOutputName> + <bundleOutputPackage>org.nuiton</bundleOutputPackage> + </configuration> + <executions> + <execution> + <id>first</id> + <goals> + <goal>parserJava</goal> + <goal>gen</goal> + <goal>bundle</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + +</project> + + Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/java/org/nuiton/i18n/MessageConstants.java =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/java/org/nuiton/i18n/MessageConstants.java (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/java/org/nuiton/i18n/MessageConstants.java 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1,13 @@ +package org.nuiton.i18n; + +/** + * Created: 30/04/11 + * + * @author fdesbois <desbois@codelutin.com> + * $Id$ + */ +public interface MessageConstants { + + String HELLO = I18n.n_("hello"); + +} Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_en_GB.properties =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_en_GB.properties (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_en_GB.properties 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1 @@ +hello=Hello ! \ No newline at end of file Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_fr_FR.properties =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_fr_FR.properties (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_fr_FR.properties 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1 @@ +hello=Salut à tous \ No newline at end of file Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_ja_JP.properties =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_ja_JP.properties (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/main/resources/i18n/ano-encoding-utf-8_ja_JP.properties 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1 @@ +hello=こんにちは世界 \ No newline at end of file Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/java/org/nuiton/i18n/ReadTest.java =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/java/org/nuiton/i18n/ReadTest.java (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/java/org/nuiton/i18n/ReadTest.java 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1,44 @@ +package org.nuiton.i18n; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.nuiton.i18n.init.DefaultI18nInitializer; + +import java.util.Locale; + +/** + * Created: 30/04/11 + * + * @author fdesbois <desbois@codelutin.com> + * $Id$ + */ +public class ReadTest { + + @Test + public void testJapanese() { + + // Initialize with bundleOuptutName and bundleOuptutFolder as path + DefaultI18nInitializer initializer = + new DefaultI18nInitializer("ResultBundle", null, "org/nuiton/"); + I18n.init(initializer, new Locale("ja", "JP")); + + String message = I18n._(MessageConstants.HELLO); + + Assert.assertEquals("こんにちは世界", message); + } + + @Test + public void testFrench() { + + // Initialize with bundleOuptutName and bundleOuptutFolder as path + DefaultI18nInitializer initializer = + new DefaultI18nInitializer("ResultBundle", null, "org/nuiton/"); + I18n.init(initializer, new Locale("fr", "FR")); + + String message = I18n._(MessageConstants.HELLO); + + Assert.assertEquals("Salut à tous", message); + } + +} Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/resources/log4j.properties =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/resources/log4j.properties (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/src/test/resources/log4j.properties 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1,34 @@ +### +# #%L +# I18n :: Maven Plugin +# +# $Id: log4j.properties 1882 2011-02-14 15:54:14Z tchemit $ +# $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/ano-672/src/te... $ +# %% +# Copyright (C) 2007 - 2010 CodeLutin +# %% +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Lesser Public License for more details. +# +# You should have received a copy of the GNU General Lesser Public +# License along with this program. If not, see +# <http://www.gnu.org/licenses/lgpl-3.0.html>. +# #L% +### +# Global logging configuration +log4j.rootLogger=ERROR, stdout +# Console output... +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n + +# package level +log4j.logger.org.nuiton.util=WARN +log4j.logger.org.nuiton.i18n=DEBUG Added: trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/verify.groovy =================================================================== --- trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/verify.groovy (rev 0) +++ trunk/maven-i18n-plugin/src/it/ano-encoding/utf-8/verify.groovy 2011-05-03 22:36:42 UTC (rev 1898) @@ -0,0 +1,54 @@ +/* + * #%L + * I18n :: Maven Plugin + * + * $Id: verify.groovy 1882 2011-02-14 15:54:14Z tchemit $ + * $HeadURL: http://svn.nuiton.org/svn/i18n/trunk/maven-i18n-plugin/src/it/parsers/newPro... $ + * %% + * Copyright (C) 2007 - 2010 CodeLutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. + * #L% + */ +def fileExists(path) { + + file = new File(basedir, path); + return file.exists(); + +} + +def checkContent(path, values) { + + file = new File(basedir, path); + + content = file.text; + + for (key in values) { + if (!content.contains(key)) { + println("Could not find " + key + " in file " + file); + return false; + } + } + return true; +} + +assert fileExists('target/classes/org/nuiton/ResultBundle_ja_JP.properties'); + +assert checkContent('src/main/resources/i18n/ano-encoding-utf-8_ja_JP.properties', + ['こんにちは世界']); + +assert fileExists('target/classes/org/nuiton/ResultBundle_en_GB.properties'); + +return true; 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 2011-05-03 22:29:45 UTC (rev 1897) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/AbstractI18nMojo.java 2011-05-03 22:36:42 UTC (rev 1898) @@ -47,7 +47,7 @@ * @author tchemit <chemit@codelutin.com> * @author jruchaud <ruchaud@codelutin.com> */ -public abstract class AbstractI18nMojo extends AbstractPlugin implements PluginWithEncoding { +public abstract class AbstractI18nMojo extends AbstractPlugin { /** Le nombre de getters détectés pendant le cycle de vie du build. */ private static int NB_GETTER_FILES; @@ -99,17 +99,37 @@ protected File out; /** - * Encoding used to load and store files. + * Deprecated param. + * + * @parameter expression="${i18n.encoding}" default-value="${project.build.sourceEncoding}" + * @required + * @deprecated since 2.4, not used anymore, use srcEncoding or outEncoding instead + */ + protected String encoding; + + /** + * Encoding used to load files. All external bundle files or from user + * sources will be load using this encoding. The merge in sources (from + * generate goal) will not change this encoding. * <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}" + * @parameter expression="${i18n.srcEncoding}" default-value="${project.build.sourceEncoding}" * @required */ - protected String encoding; + protected String srcEncoding; /** + * Encoding used to load and store files. Default is iso-8859-1 for + * properties file. + * + * @parameter expression="${i18n.outEncoding}" default-value="iso-8859-1" + * @required + */ + protected String outEncoding; + + /** * To update generated files to user i18n files. * <p/> * <b>Note :</b> By default, this is active, in order to have a project uptodate @@ -300,16 +320,6 @@ } @Override - public String getEncoding() { - return encoding; - } - - @Override - public void setEncoding(String encoding) { - this.encoding = encoding; - } - - @Override public MavenProject getProject() { return project; } Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/GenerateMojo.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/GenerateMojo.java 2011-05-03 22:29:45 UTC (rev 1897) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/GenerateMojo.java 2011-05-03 22:36:42 UTC (rev 1898) @@ -28,7 +28,6 @@ import org.nuiton.io.SortedProperties; import java.io.File; -import java.io.FileOutputStream; import java.util.Arrays; import java.util.Locale; @@ -95,6 +94,7 @@ if (!silent) { getLog().info("config - src basedir : " + src.getAbsolutePath()); getLog().info("config - out basedir : " + out.getAbsolutePath()); + getLog().info("config - src and out encoding : " + srcEncoding); getLog().info("config - locales : " + Arrays.toString(locales)); } for (Locale locale : locales) { @@ -107,21 +107,24 @@ File bundleGetterOut = getI18nFile( out, artifactId + GetterMojo.FROM_GETTERS, locale, false); - SortedProperties propertiesSrc = new SortedProperties(encoding); + SortedProperties propertiesSrc = new SortedProperties(srcEncoding); if (bundleSrc.exists()) { propertiesSrc.load(bundleSrc); } - SortedProperties propertiesOut = new SortedProperties(encoding); + SortedProperties propertiesOut = new SortedProperties(); if (!strictMode) { // si on n'est pas en mode strict, on doit push back in - // bundle out, all the bundle src keys + // bundle out, all the bundle src keys propertiesOut.putAll(propertiesSrc); } - propertiesOut.load(bundleGetterOut); + // Les parser utilisent outEncoding pour gérer les fichiers, donc + // la lecture se fera avec cet encoding et non pas le srcEncoding + propertiesOut.load(bundleGetterOut, outEncoding); + // Parcours des clés for (Object key : propertiesOut.keySet()) { Object oldKey = propertiesOut.get(key); @@ -139,13 +142,9 @@ } } - //fixme : on devrait laisser le fichier en utf8 ? - FileOutputStream outStream = new FileOutputStream(bundleOut); - try { - propertiesOut.store(outStream); - } finally { - outStream.close(); - } + // La sauvegarde doit assurer l'encoding de départ pour ne pas + // transformer les fichiers sources. + propertiesOut.store(bundleOut, srcEncoding); // Sauvegarde avant copie if (genSrc && keepBackup) { Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/GetterMojo.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/GetterMojo.java 2011-05-03 22:29:45 UTC (rev 1897) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/GetterMojo.java 2011-05-03 22:36:42 UTC (rev 1898) @@ -76,7 +76,7 @@ createDirectoryIfNecessary(bundleGetters.getParentFile()); - SortedProperties propertiesOut = new SortedProperties(getEncoding()); + SortedProperties propertiesOut = new SortedProperties(outEncoding); DirectoryScanner ds = new DirectoryScanner(); ds.setBasedir(out); @@ -91,7 +91,7 @@ // chargement du getter SortedProperties propertiesIn = - new SortedProperties(getEncoding()).load(bundleGetter); + new SortedProperties(outEncoding).load(bundleGetter); // ajout des entrées dans le bundle propertiesOut.putAll(propertiesIn); 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 2011-05-03 22:29:45 UTC (rev 1897) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/BundleMojo.java 2011-05-03 22:36:42 UTC (rev 1898) @@ -32,7 +32,6 @@ import org.nuiton.plugin.PluginHelper; import java.io.File; -import java.io.FileOutputStream; import java.io.IOException; import java.net.URL; import java.util.ArrayList; @@ -116,7 +115,7 @@ ); SortedProperties propertiesOut = - new SortedProperties(encoding, false); + new SortedProperties(outEncoding, false); StringBuilder buffer = new StringBuilder(); URL[] urls = getCollectI18nResources(locale); @@ -135,7 +134,11 @@ long t000 = System.nanoTime(); I18nBundleEntry bundleEntry = new I18nBundleEntry(url, locale, null); - bundleEntry.load(propertiesOut); + // Use srcEncoding, i18n files are generated using this encoding + // If bundle are from other libs, maybe encoding could be uncompatible :/ + // Generally those files are ISO Latin1 or UTF-8, reading in + // UTF8 ISO Latin1 files will be Ok. + bundleEntry.load(propertiesOut, srcEncoding); String strPath = bundleEntry.getPath().toString(); int index = strPath.indexOf("i18n/"); @@ -210,19 +213,14 @@ getLog().info("prepare i18n definition file in " + defOut.getAbsolutePath()); } - SortedProperties p = new SortedProperties(encoding, false); + SortedProperties p = new SortedProperties(outEncoding, false); p.setProperty(DefaultI18nInitializer.BUNDLE_DEF_LOCALES, bundles); p.setProperty(DefaultI18nInitializer.BUNDLE_DEF_VERSION, version); for (Entry<Locale, String> e : bundleDico.entrySet()) { p.setProperty(DefaultI18nInitializer.BUNDLES_FOR_LOCALE + e.getKey().toString(), e.getValue()); } - FileOutputStream out = new FileOutputStream(defOut); - try { - p.store(out, null); - } finally { - out.close(); - } + p.store(defOut); } @Override 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 2011-05-03 22:29:45 UTC (rev 1897) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/CollectI18nArtifactsMojo.java 2011-05-03 22:36:42 UTC (rev 1898) @@ -35,7 +35,6 @@ import org.apache.maven.shared.dependency.tree.DependencyNode; import org.apache.maven.shared.dependency.tree.DependencyTreeBuilder; import org.apache.maven.shared.dependency.tree.DependencyTreeBuilderException; -import org.codehaus.plexus.util.CollectionUtils; import org.nuiton.i18n.bundle.I18nBundleEntry; import org.nuiton.plugin.DependencyUtil; @@ -43,7 +42,6 @@ import java.io.IOException; import java.net.URL; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -185,7 +183,7 @@ getLog().info("add " + path); } } - writeFile(bundleOut, buffer.toString(), encoding); + writeFile(bundleOut, buffer.toString(), outEncoding); } /** Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/TapestryBundleMojo.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/TapestryBundleMojo.java 2011-05-03 22:29:45 UTC (rev 1897) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/bundle/TapestryBundleMojo.java 2011-05-03 22:36:42 UTC (rev 1898) @@ -85,7 +85,7 @@ } SortedProperties propertiesOut = - new SortedProperties(encoding, false); + new SortedProperties(outEncoding, false); StringBuilder buffer = new StringBuilder(); URL[] urls = getCollectI18nResources(locale); 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 2011-05-03 22:29:45 UTC (rev 1897) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/AbstractI18nParserMojo.java 2011-05-03 22:36:42 UTC (rev 1898) @@ -139,9 +139,9 @@ public void init() throws Exception { super.init(); t0 = System.nanoTime(); - result = new SortedProperties(encoding); - oldParser = new SortedProperties(encoding); - oldLanguage = new SortedProperties(encoding); + result = new SortedProperties(outEncoding); + oldParser = new SortedProperties(outEncoding); + oldLanguage = new SortedProperties(outEncoding); createDirectoryIfNecessary(out); // // evenements // if (keysModifier) { Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/AbstractParserXmlMojo.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/AbstractParserXmlMojo.java 2011-05-03 22:29:45 UTC (rev 1897) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/AbstractParserXmlMojo.java 2011-05-03 22:36:42 UTC (rev 1898) @@ -258,7 +258,7 @@ private String readInputStream(InputStream in) throws IOException { StringBuilder sb = new StringBuilder(); BufferedReader reader = new BufferedReader( - new InputStreamReader(in, getEncoding())); + new InputStreamReader(in, outEncoding)); try { String line; Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserGWTJavaMojo.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserGWTJavaMojo.java 2011-05-03 22:29:45 UTC (rev 1897) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserGWTJavaMojo.java 2011-05-03 22:36:42 UTC (rev 1898) @@ -143,7 +143,7 @@ public FileParser newFileParser() { return new GWTJavaFileParser(getLog(), - getEncoding(), + outEncoding, oldParser, isShowTouchedFiles() ); 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 2011-05-03 22:29:45 UTC (rev 1897) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserJavaMojo.java 2011-05-03 22:36:42 UTC (rev 1898) @@ -109,7 +109,7 @@ public FileParser newFileParser() { return new JavaFileParser(getLog(), - getEncoding(), + outEncoding, oldParser, isShowTouchedFiles() ); Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserJspMojo.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserJspMojo.java 2011-05-03 22:29:45 UTC (rev 1897) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserJspMojo.java 2011-05-03 22:36:42 UTC (rev 1898) @@ -152,7 +152,7 @@ final DocumentBuilder builder) { return new XmlFileParser(getLog(), - getEncoding(), + outEncoding, oldParser, showTouchedFiles, rules, Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserTapestryMojo.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserTapestryMojo.java 2011-05-03 22:29:45 UTC (rev 1897) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserTapestryMojo.java 2011-05-03 22:36:42 UTC (rev 1898) @@ -141,7 +141,7 @@ public FileParser newFileParser() { return new TapestryFileParser(getLog(), - getEncoding(), + outEncoding, oldParser, isShowTouchedFiles() ); 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 2011-05-03 22:29:45 UTC (rev 1897) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserValidationMojo.java 2011-05-03 22:36:42 UTC (rev 1898) @@ -144,7 +144,7 @@ builder.setEntityResolver(getEntityResolver()); return new XmlFileParser(getLog(), - getEncoding(), + outEncoding, oldParser, showTouchedFiles, rules, Modified: trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserXmlUserMojo.java =================================================================== --- trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserXmlUserMojo.java 2011-05-03 22:29:45 UTC (rev 1897) +++ trunk/maven-i18n-plugin/src/main/java/org/nuiton/i18n/plugin/parser/impl/ParserXmlUserMojo.java 2011-05-03 22:36:42 UTC (rev 1898) @@ -106,7 +106,7 @@ @Override protected XmlFileParser newXmlFileParser(XPath xpath, DocumentBuilder builder) { XmlFileParser fileParser = new XmlFileParser(getLog(), - getEncoding(), + outEncoding, oldParser, showTouchedFiles, rules, Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2011-05-03 22:29:45 UTC (rev 1897) +++ trunk/pom.xml 2011-05-03 22:36:42 UTC (rev 1898) @@ -37,7 +37,7 @@ </parent> <artifactId>i18n</artifactId> - <version>2.3.3-SNAPSHOT</version> + <version>2.4-SNAPSHOT</version> <modules> <module>nuiton-i18n</module> @@ -188,6 +188,7 @@ <projectId>i18n</projectId> <processorVersion>1.2.1</processorVersion> + <helperPluginVersion>1.3-SNAPSHOT</helperPluginVersion> <!--Multilanguage maven-site --> <locales>fr,en</locales>