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]
