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 <[email protected]>:
> <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<[email protected]>:
>>>
>>> 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<[email protected]>:
>>>>>
>>>>> 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
>>>>>> <[email protected]>      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: [email protected]
>>>>>>> For additional commands, e-mail: [email protected]
>>>>>>>
>>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: [email protected]
>>>>>> For additional commands, e-mail: [email protected]
>>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [email protected]
>>>>> For additional commands, e-mail: [email protected]
>>>>>
>>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to