Eric,

http://maven.apache.org/plugins/maven-surefire-plugin/examples/system-properties.html

Add file.encoding that way for fork mode.



On Tue, Oct 11, 2011 at 8:27 AM, Eric Kolotyluk
<eric.koloty...@gmail.com> wrote:
> OK, I got things working with
>
> <properties>
> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
> <project.build.resourceEncoding>UTF-8</project.build.resourceEncoding>
> <maven.compile.encoding>UTF-8</maven.compile.encoding>
> </properties>
>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-compiler-plugin</artifactId>
> <version>2.3.2</version>
> <configuration>
> <!-- <fork>true</fork> -->
> <executable>P:\ValueInPrint\Main\jdk\jdk1.5.0_11\bin\javac</executable>
> </configuration>
> </plugin>
>
> I could not figure out how to get it to work with the <fork>true</fork>
> setting, even after setting MAVEN_OPTS=-Dfile.encoding=utf-8
>
> I removed
>
> <plugin> -->
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-surefire-plugin</artifactId>
> <version>2.9</version>
> <configuration>
> <junitArtifactName>junit:junit</junitArtifactName>
> <encoding>UTF-8</encoding>
> <inputEncoding>UTF-8</inputEncoding>
> <outputEncoding>UTF-8</outputEncoding>
> <argLine>-Xms256m -Xmx512m -XX:MaxPermSize=128m -ea
> -Dfile.encoding=UTF-8</argLine>
> </configuration>
> </plugin>
>
> and things still seem to work correctly, but I should probably leave it in
> anyway to be sure in the future.
>
> To summarize, this whole problem was caused by the compiler not compiling
> the literal "λ" correctly so my original code
>
> if (!lambda.equals("λ"))
>
> was failing - javac was substituting some other string literal - I did not
> figure this out until stepping through the code with the debugger. Somehow
> in the Eclipse and JUnit environment it was working correctly sometimes and
> not others, but always failing from the command line, so I assumed it was
> surefire. I do not think there was any problem with surefire, as using the
> default settings seems to work.
>
> In short my code and unit test were doing exactly what they were supposed to
> do to make sure UTF-8 was being handled properly, in particular my unit test
> caught the compiler doing the wrong thing in certain situations - it was
> just hard for me to believe the compiler was compiling the wrong code and
> easier to assume it was surefire or something.
>
> Maybe in the 22nd century we will not have so many problems with UTF-8 :-)
>
> Thanks everyone for your help and insight.
>
> Cheers, Eric
>
> On 2011-10-10 6:40 PM, Benson Margulies wrote:
>>
>> Eric,
>>
>> A couple of points:
>>
>> 1: Javac has an option to control the input encoding of java source
>> files. There's a corresponding configuration option for the
>> maven-compiler-plugin.
>>
>> 2: Adding -Dfile.encoding=utf-8 to MAVEN_OPTS will cause maven, and
>> any other piece of java it launches, to use UTF-8 as the default
>> encoding. If surefire is forking you'll have to add this to the
>> systemPropertyValues.
>>
>>
>> 2011/10/10 Eric Kolotyluk<eric.koloty...@gmail.com>:
>>>
>>> <forkMode>once</forkMode>
>>>
>>> Doesn't help.
>>>
>>> I have some new insight on the problem. I changed my code to
>>>
>>>            if (lambda.length() == 1)
>>>            {
>>>                char λ = lambda.charAt(0);
>>>                if (λ != 'λ')
>>>                //if (!lambda.equals("λ"))
>>>                {
>>>                    // UTF-8 sanity check failed!
>>>                    println(System.err, "lambda = '" + lambda + "'");
>>>                    String message = "UTF-8 encoding problem for " +
>>> propertiesResource;
>>>                    println(System.err, message);
>>>                    throw new PropertiesError(message);
>>>                }
>>>            }
>>>
>>> This code works when built in Eclipse, but fails to compile from the
>>> command
>>> line with
>>>
>>> [INFO] Compiling 30 source files to
>>> P:\Intersystem\main\platform.Java\intersystem-common\target\classes
>>> [INFO] -------------------------------------------------------------
>>> [ERROR] COMPILATION ERROR :
>>> [INFO] -------------------------------------------------------------
>>> [ERROR]
>>>
>>> /Intersystem/main/platform.Java/intersystem-common/src/main/java/com/kodak/intersystem/common/Properties.java:[354,38]
>>> illegal character: \187
>>> [ERROR]
>>>
>>> /Intersystem/main/platform.Java/intersystem-common/src/main/java/com/kodak/intersystem/common/Properties.java:[355,37]
>>> illegal character: \187
>>> [ERROR]
>>>
>>> /Intersystem/main/platform.Java/intersystem-common/src/main/java/com/kodak/intersystem/common/Properties.java:[355,42]
>>> unclosed character literal
>>> [ERROR]
>>>
>>> /Intersystem/main/platform.Java/intersystem-common/src/main/java/com/kodak/intersystem/common/Properties.java:[355,44]
>>> illegal character: \187
>>> [ERROR]
>>>
>>> /Intersystem/main/platform.Java/intersystem-common/src/main/java/com/kodak/intersystem/common/Properties.java:[355,45]
>>> unclosed character literal
>>> [ERROR]
>>>
>>> /Intersystem/main/platform.Java/intersystem-common/src/main/java/com/kodak/intersystem/common/Properties.java:[364,24]
>>> illegal start of expression
>>> [INFO] 6 errors
>>> [INFO] -------------------------------------------------------------
>>> [INFO]
>>> ------------------------------------------------------------------------
>>> [INFO] BUILD FAILURE
>>>
>>> I can't figure out why the compiler is failing because I can clearly see
>>>
>>> [DEBUG]   (f) encoding = UTF-8
>>>
>>> in the Maven output just before the errors.
>>>
>>> Anyone have any ideas? Is there some other compiler option I am missing?
>>>
>>> Cheers, Eric
>>>
>>> On 2011-10-10 5:23 PM, Kalle Korhonen wrote:
>>>>
>>>> Different forkMode perhaps?
>>>>
>>>>
>>>> http://maven.apache.org/plugins/maven-surefire-plugin/test-mojo.html#forkMode,
>>>> e.g:
>>>> <forkMode>once</forkMode>
>>>>
>>>> Just send the whole keg while you are at it :)
>>>>
>>>> Kalle
>>>>
>>>>
>>>> 2011/10/10 Eric Kolotyluk<eric.koloty...@gmail.com>:
>>>>>
>>>>> Actually - that helped - but it's not a stable solution. For some
>>>>> reason
>>>>> the
>>>>> tests pass when run from m2e, but fail when run from the command line.
>>>>> I'm
>>>>> still trying to figure out what the difference is.
>>>>>
>>>>> Cheers, Eric
>>>>>
>>>>> On 2011-10-10 4:41 PM, Kalle Korhonen wrote:
>>>>>>
>>>>>> A whole case? I *love* inflation.
>>>>>>
>>>>>> Kalle
>>>>>>
>>>>>>
>>>>>> 2011/10/10 Eric Kolotyluk<eric.koloty...@gmail.com>:
>>>>>>>
>>>>>>> Awesome Kalle - thanks.
>>>>>>>
>>>>>>> Where should I send the case of beer?
>>>>>>>
>>>>>>> Cheers, Eric
>>>>>>>
>>>>>>> On 2011-10-10 4:00 PM, Kalle Korhonen wrote:
>>>>>>>>
>>>>>>>> How are you reading in your properties files? By default, latin-1 is
>>>>>>>> assumed. Configure your surefire JVM to read files as UTF-8 with:
>>>>>>>> <argLine>-Xms256m -Xmx512m -XX:MaxPermSize=128m -ea
>>>>>>>> -Dfile.encoding=UTF-8</argLine>
>>>>>>>>
>>>>>>>> Kalle
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Oct 10, 2011 at 3:04 PM, Eric Kolotyluk
>>>>>>>> <eric.koloty...@gmail.com>        wrote:
>>>>>>>>>
>>>>>>>>> I am having trouble understanding a mystery.
>>>>>>>>>
>>>>>>>>> I have code that checks my .properties file to make sure that it
>>>>>>>>> has
>>>>>>>>> not
>>>>>>>>> been corrupted after being edited by a non UTF-8 editor. In
>>>>>>>>> particular
>>>>>>>>> I
>>>>>>>>> have a property called lambda = λ and I check to see that it
>>>>>>>>> actually
>>>>>>>>> does
>>>>>>>>> resolve to the correct character.
>>>>>>>>>
>>>>>>>>> If I run my code from main (my manual unit test) it works. If I run
>>>>>>>>> my
>>>>>>>>> test
>>>>>>>>> from JUnit in Eclipse, it works. But when the same test runs under
>>>>>>>>> Maven
>>>>>>>>> it
>>>>>>>>> fails because lambda = ?
>>>>>>>>>
>>>>>>>>> When I look in the actual properties file that the test runs with,
>>>>>>>>> lambda
>>>>>>>>> =
>>>>>>>>> λ, but somehow when the code runs it gets lambda = ?.
>>>>>>>>>
>>>>>>>>> I thought this was maybe a surefire configuration problems so I am
>>>>>>>>> using
>>>>>>>>>
>>>>>>>>> <pluginManagement>
>>>>>>>>> <plugins>
>>>>>>>>> <plugin>
>>>>>>>>> <groupId>org.apache.maven.plugins</groupId>
>>>>>>>>> <artifactId>maven-surefire-plugin</artifactId>
>>>>>>>>> <version>2.9</version>
>>>>>>>>> <configuration>
>>>>>>>>> <junitArtifactName>junit:junit</junitArtifactName>
>>>>>>>>> <encoding>UTF-8</encoding>
>>>>>>>>> <inputEncoding>UTF-8</inputEncoding>
>>>>>>>>> <outputEncoding>UTF-8</outputEncoding>
>>>>>>>>> <argLine>-Xms256m -Xmx512m -XX:MaxPermSize=128m -ea</argLine>
>>>>>>>>> </configuration>
>>>>>>>>> </plugin>
>>>>>>>>> </plugins>
>>>>>>>>> </pluginManagement>
>>>>>>>>>
>>>>>>>>> but this makes no difference. Does anyone have any idea why my
>>>>>>>>> JUnit
>>>>>>>>> test
>>>>>>>>> fails running under surefire, but not running under Eclipse?
>>>>>>>>>
>>>>>>>>> Cheers, Eric
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
>>>>>>>>> For additional commands, e-mail: users-h...@maven.apache.org
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
>>>>>>>> For additional commands, e-mail: users-h...@maven.apache.org
>>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
>>>>>>> For additional commands, e-mail: users-h...@maven.apache.org
>>>>>>>
>>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
>>>>>> For additional commands, e-mail: users-h...@maven.apache.org
>>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
>>>>> For additional commands, e-mail: users-h...@maven.apache.org
>>>>>
>>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
>>>> For additional commands, e-mail: users-h...@maven.apache.org
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
>>> For additional commands, e-mail: users-h...@maven.apache.org
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
>> For additional commands, e-mail: users-h...@maven.apache.org
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
> For additional commands, e-mail: users-h...@maven.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to