You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by Kenan Sevindik <ks...@gmail.com> on 2005/07/09 15:58:41 UTC

Maven 2 Ant Tasks doesn't work in Turkish Locale

I wanted to use your Maven 2 Ant Dependencies Task, and created follwing ant 
build.xml file for a quick startup.

<project name="test" default="test-maven-dependencies" basedir="." 
xmlns:artifact="urn:maven-artifact-ant">

<property environment="env"/>

<typedef resource="org/apache/maven/artifact/ant/antlib.xml" 
uri="urn:maven-artifact-ant">
<classpath location="${env.ANT_HOME}/opt/maven-
artifact-ant-2.0-alpha-3-dep.jar"/>
</typedef>


<artifact:dependencies pathId="dependency.classpath" fileSetId="
dependency.fileset">
<dependency groupId="org.apache.maven.wagon" 
artifactId="wagon-provider-test"
version="1.0-alpha-2"/>
<dependency groupId="org.codehaus.modello" artifactId="modello-core" 
version="1.0-alpha-2-SNAPSHOT"/>
<dependency groupId="javax.servlet" artifactId="servlet-api" 
version="2.4" scope="provided" />
</artifact:dependencies>

<target name="test-maven-dependencies" description="">
<copy todir="d:/temp" flatten="true">
<fileset refid="dependency.fileset"/>
</copy>
</target>
</project>

When I run above build.xml with ant in verbose mode, I got following 
exception;

BUILD FAILED
D:\work\tools\build.xml:10: Unable to start embedder
at org.apache.maven.artifact.ant.AbstractArtifactTask.getEmbedder(
AbstractArtifactTask.java:270)
at org.apache.maven.artifact.ant.AbstractArtifactTask.lookup(
AbstractArtifactTask.java:242)
at 
org.apache.maven.artifact.ant.AbstractArtifactTask.createLocalArtifactRepository
(AbstractArtifactTask.java:78)
at org.apache.maven.artifact.ant.DependenciesTask.execute(
DependenciesTask.java:61)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
at org.apache.tools.ant.Task.perform(Task.java:364)
at org.apache.tools.ant.Target.execute(Target.java:341)
at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:133)
at org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java
:91)
at org.apache.tools.ant.Main.runBuild(Main.java:658)
at org.apache.tools.ant.Main.startAnt(Main.java:188)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:196)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:55)
Caused by: org.codehaus.plexus.PlexusContainerException: Error configuring 
components
at org.codehaus.plexus.DefaultPlexusContainer.initialize(
DefaultPlexusContainer.java:633)
at org.codehaus.plexus.embed.Embedder.start(Embedder.java:204)
at org.codehaus.plexus.embed.Embedder.start(Embedder.java:171)
at org.apache.maven.artifact.ant.AbstractArtifactTask.getEmbedder(
AbstractArtifactTask.java:266)
... 12 more
Caused by: 
org.codehaus.plexus.component.configurator.ComponentConfigurationException: 
Error configuring component: role: 'lifecycle-handler-manager', 
implementation: '
org.codehaus.plexus.lifecycle.DefaultLifecycleHandlerManager'
at 
org.codehaus.plexus.DefaultPlexusContainer.processCoreComponentConfiguration
(DefaultPlexusContainer.java:1254)
at org.codehaus.plexus.DefaultPlexusContainer.initializeCoreComponents(
DefaultPlexusContainer.java:1177)
at org.codehaus.plexus.DefaultPlexusContainer.initialize(
DefaultPlexusContainer.java:609)
... 15 more
Caused by: 
org.codehaus.plexus.component.configurator.ComponentConfigurationException: 
Class 'org.codehaus.plexus.lifecycle.DefaultLifecycleHandlerManager' does 
not contain a field named 'defaultLifecycleHandlerÄ°d'
at 
org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.getFieldByName
(ObjectWithFieldsConverter.java:176)
at 
org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration
(ObjectWithFieldsConverter.java:112)
at 
org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.fromConfiguration
(ObjectWithFieldsConverter.java:85)
at 
org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration
(ObjectWithFieldsConverter.java:118)
at 
org.codehaus.plexus.component.configurator.BasicComponentConfigurator.configureComponent
(BasicComponentConfigurator.java:52)
at 
org.codehaus.plexus.component.configurator.AbstractComponentConfigurator.configureComponent
(AbstractComponentConfigurator.java:46)
at 
org.codehaus.plexus.DefaultPlexusContainer.processCoreComponentConfiguration
(DefaultPlexusContainer.java:1248)
... 17 more
--- Nested Exception ---
org.codehaus.plexus.PlexusContainerException: Error configuring components
at org.codehaus.plexus.DefaultPlexusContainer.initialize(
DefaultPlexusContainer.java:633)
at org.codehaus.plexus.embed.Embedder.start(Embedder.java:204)
at org.codehaus.plexus.embed.Embedder.start(Embedder.java:171)
at org.apache.maven.artifact.ant.AbstractArtifactTask.getEmbedder(
AbstractArtifactTask.java:266)
at org.apache.maven.artifact.ant.AbstractArtifactTask.lookup(
AbstractArtifactTask.java:242)
at 
org.apache.maven.artifact.ant.AbstractArtifactTask.createLocalArtifactRepository
(AbstractArtifactTask.java:78)
at org.apache.maven.artifact.ant.DependenciesTask.execute(
DependenciesTask.java:61)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
at org.apache.tools.ant.Task.perform(Task.java:364)
at org.apache.tools.ant.Target.execute(Target.java:341)
at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:133)
at org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java
:91)
at org.apache.tools.ant.Main.runBuild(Main.java:658)
at org.apache.tools.ant.Main.startAnt(Main.java:188)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:196)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:55)
Caused by: 
org.codehaus.plexus.component.configurator.ComponentConfigurationException: 
Error configuring component: role: 'lifecycle-handler-manager', 
implementation: '
org.codehaus.plexus.lifecycle.DefaultLifecycleHandlerManager'
at 
org.codehaus.plexus.DefaultPlexusContainer.processCoreComponentConfiguration
(DefaultPlexusContainer.java:1254)
at org.codehaus.plexus.DefaultPlexusContainer.initializeCoreComponents(
DefaultPlexusContainer.java:1177)
at org.codehaus.plexus.DefaultPlexusContainer.initialize(
DefaultPlexusContainer.java:609)
... 15 more
Caused by: 
org.codehaus.plexus.component.configurator.ComponentConfigurationException: 
Class 'org.codehaus.plexus.lifecycle.DefaultLifecycleHandlerManager' does 
not contain a field named 'defaultLifecycleHandlerÄ°d'
at 
org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.getFieldByName
(ObjectWithFieldsConverter.java:176)
at 
org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration
(ObjectWithFieldsConverter.java:112)
at 
org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.fromConfiguration
(ObjectWithFieldsConverter.java:85)
at 
org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.processConfiguration
(ObjectWithFieldsConverter.java:118)
at 
org.codehaus.plexus.component.configurator.BasicComponentConfigurator.configureComponent
(BasicComponentConfigurator.java:52)
at 
org.codehaus.plexus.component.configurator.AbstractComponentConfigurator.configureComponent
(AbstractComponentConfigurator.java:46)
at 
org.codehaus.plexus.DefaultPlexusContainer.processCoreComponentConfiguration
(DefaultPlexusContainer.java:1248)
... 17 more

Total time: 1 second

I tracked the problem down to the 
org.codehaus.plexus.component.configurator.converters.composite.ObjectWithFieldsConverter.getFieldByNamemethod.
I guess that problem occurs while plexus doing its own internal
initialization using plexus-bootstrap.xml file. It wants to get class field 
"defaultLifecycleHandlerId" of class 
org.codehaus.plexus.lifecycle.DefaultLifecycleHandlerManager using 
Reflection, but plexus tries to derive field name from
plexus-bootstrap.xmlfile with child xml element named
"default-lifecycle-handler-id" of parent
xml element named "lifecycle-handler-manager". Unfortunately 
"default-lifecycle-handler-id" becomes "defaultLifecycleHandlerÄ°d" instead 
of "defaultLifecycleHandlerId" because of Turkish Locale. In Turkish, 
lowercase i is uppercase I with a dot above it!

I admit that this is a more general problem related with Plexus and Java 
than Maven alone, but in the end we will not be able to run Maven in Turkish 
environments, so I decided to report this problem to the Maven team. 
Problems similar to above could easily be solved with providing English 
locale to String upper case/lowe case conversion methods explicitly, rather 
than using defult ones in general.

Kind Regards.

PS: I also want to report a little typo in your ant Lib for Maven 2.0 page. 
In installing ant tasks part using typedef 
option, it is forgotten to type "urn" prefix in typedef declaration, 
although it exists in project xmlns part.

-- 
Kenan Sevindik
http://jroller.com/page/ksevindik

Re: Maven 2 Ant Tasks doesn't work in Turkish Locale

Posted by Stefan Bodewig <bo...@apache.org>.
On Sat, 9 Jul 2005, Kenan Sevindik <ks...@gmail.com> wrote:

> I admit that this is a more general problem related with Plexus and
> Java than Maven alone, but in the end we will not be able to run
> Maven in Turkish environments,

Ant went through that a few years back when it claimed that <fileset>
wasn't supported on a Turkish locale.

> so I decided to report this problem to the Maven team. Problems
> similar to above could easily be solved with providing English
> locale to String upper case/lowe case conversion methods explicitly,
> rather than using defult ones in general.

Yep, that's what we did in Ant-land.  All occurances of
toLower/toUpper explicitly request Locale.US.

Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org