[regression] wagon-webdav-jackrabbit doesn't work with Maven 3.x
----------------------------------------------------------------
Key: MNG-4360
URL: http://jira.codehaus.org/browse/MNG-4360
Project: Maven 2
Issue Type: Bug
Components: Artifacts and Repositories, Dependencies
Affects Versions: 3.0-alpha-3
Reporter: Benjamin Bentmann
Olivier mentioned this before and I finally found a reproducible test case:
{noformat}
[DEBUG] Failed to lookup a member of active collection with role:
org.apache.maven.wagon.Wagon and role-hint: dav
-----------------------------------------------------
realm = project>org.apache.maven.its.mng3599:test:1.0-SNAPSHOT
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
urls[0] =
file:/it-repo/org/apache/maven/wagon/wagon-webdav-jackrabbit/1.0-beta-3/wagon-webdav-jackrabbit-1.0-beta-3.jar
urls[1] = file:/it-repo/nekohtml/xercesMinimal/1.9.6.2/xercesMinimal-1.9.6.2.jar
urls[2] = file:/it-repo/nekohtml/nekohtml/1.9.6.2/nekohtml-1.9.6.2.jar
urls[3] =
file:/it-repo/commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.jar
urls[4] =
file:/it-repo/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar
urls[5] = file:/it-repo/commons-codec/commons-codec/1.2/commons-codec-1.2.jar
urls[6] =
file:/it-repo/org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.jar
urls[7] =
file:/it-repo/org/apache/jackrabbit/jackrabbit-webdav/1.4/jackrabbit-webdav-1.4.jar
urls[8] =
file:/it-repo/org/apache/jackrabbit/jackrabbit-jcr-commons/1.4/jackrabbit-jcr-commons-1.4.jar
urls[9] = file:/it-repo/org/slf4j/slf4j-api/1.3.0/slf4j-api-1.3.0.jar
urls[10] = file:/it-repo/org/slf4j/slf4j-nop/1.5.0/slf4j-nop-1.5.0.jar
urls[11] = file:/it-repo/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar
urls[12] = file:/it-repo/it/could/webdav/0.4/webdav-0.4.jar
urls[13] = file:/it-repo/org/mortbay/jetty/jetty/4.2.12/jetty-4.2.12.jar
urls[14] =
file:/it-repo/org/apache/maven/wagon/wagon-provider-test/1.0-beta-3/wagon-provider-test-1.0-beta-3.jar
urls[15] = file:/it-repo/junit/junit/3.8.1/junit-3.8.1.jar
urls[16] = file:/it-repo/easymock/easymock/1.2_Java1.3/easymock-1.2_Java1.3.jar
Number of foreign imports: 4
import: Entry[import org.codehaus.plexus.util.xml.pull.XmlSerializer from realm
ClassRealm[plexus.core, parent: null]]
import: Entry[import org.codehaus.plexus.util.xml.pull.XmlPullParserException
from realm ClassRealm[plexus.core, parent: null]]
import: Entry[import org.codehaus.plexus.util.xml.pull.XmlPullParser from realm
ClassRealm[plexus.core, parent: null]]
import: Entry[import org.codehaus.plexus.util.xml.Xpp3Dom from realm
ClassRealm[plexus.core, parent: null]]
Number of parent imports: 20
import: Entry[import org.codehaus.plexus.personality from realm null]
import: Entry[import org.codehaus.plexus.logging from realm null]
import: Entry[import org.codehaus.plexus.lifecycle from realm null]
import: Entry[import org.codehaus.plexus.context from realm null]
import: Entry[import org.codehaus.plexus.container from realm null]
import: Entry[import org.codehaus.plexus.configuration from realm null]
import: Entry[import org.codehaus.plexus.component from realm null]
import: Entry[import org.codehaus.plexus.classworlds from realm null]
import: Entry[import org.codehaus.plexus.PlexusContainerException from realm
null]
import: Entry[import org.codehaus.plexus.PlexusContainer from realm null]
import: Entry[import org.codehaus.plexus.PlexusConstants from realm null]
import: Entry[import org.codehaus.plexus.MutablePlexusContainer from realm null]
import: Entry[import org.codehaus.plexus.DuplicateChildContainerException from
realm null]
import: Entry[import org.codehaus.plexus.DefaultPlexusContainer from realm null]
import: Entry[import org.codehaus.plexus.DefaultContainerConfiguration from
realm null]
import: Entry[import org.codehaus.plexus.DefaultComponentRegistry from realm
null]
import: Entry[import org.codehaus.plexus.ContainerConfiguration from realm null]
import: Entry[import org.codehaus.plexus.ComponentRegistry from realm null]
import: Entry[import org.codehaus.classworlds from realm null]
import: Entry[import org.apache.maven from realm null]
realm = plexus.core
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
urls[0] = file:/am/3.0/bin/../lib/commons-cli-1.2.jar
urls[1] = file:/am/3.0/bin/../lib/google-collect-snapshot-20080530.jar
urls[2] = file:/am/3.0/bin/../lib/maven-compat-3.0-SNAPSHOT.jar
urls[3] = file:/am/3.0/bin/../lib/maven-core-3.0-SNAPSHOT.jar
urls[4] = file:/am/3.0/bin/../lib/maven-embedder-3.0-SNAPSHOT.jar
urls[5] = file:/am/3.0/bin/../lib/maven-model-3.0-SNAPSHOT.jar
urls[6] = file:/am/3.0/bin/../lib/maven-model-builder-3.0-SNAPSHOT.jar
urls[7] = file:/am/3.0/bin/../lib/maven-plugin-api-3.0-SNAPSHOT.jar
urls[8] = file:/am/3.0/bin/../lib/nekohtml-1.9.6.2.jar
urls[9] = file:/am/3.0/bin/../lib/plexus-cipher-1.4.jar
urls[10] =
file:/am/3.0/bin/../lib/plexus-component-annotations-1.2.1-SNAPSHOT.jar
urls[11] = file:/am/3.0/bin/../lib/plexus-container-default-1.2.1-SNAPSHOT.jar
urls[12] = file:/am/3.0/bin/../lib/plexus-interpolation-1.11.jar
urls[13] = file:/am/3.0/bin/../lib/plexus-sec-dispatcher-1.3.jar
urls[14] = file:/am/3.0/bin/../lib/plexus-utils-1.5.15.jar
urls[15] = file:/am/3.0/bin/../lib/wagon-file-1.0-beta-6.jar
urls[16] = file:/am/3.0/bin/../lib/wagon-http-lightweight-1.0-beta-6.jar
urls[17] = file:/am/3.0/bin/../lib/wagon-http-shared-1.0-beta-6.jar
urls[18] = file:/am/3.0/bin/../lib/wagon-provider-api-1.0-beta-6.jar
urls[19] = file:/am/3.0/bin/../lib/xbean-reflect-3.4.jar
urls[20] = file:/am/3.0/bin/../lib/xercesMinimal-1.9.6.2.jar
Number of foreign imports: 0
-----------------------------------------------------
org.codehaus.plexus.component.repository.exception.ComponentLookupException:
Unable to lookup component 'org.apache.maven.wagon.Wagon', it could not be
started.
role: org.apache.maven.wagon.Wagon
roleHint: dav
classRealm: project>org.apache.maven.its.mng3599:test:1.0-SNAPSHOT
at
org.codehaus.plexus.DefaultComponentRegistry.getComponent(DefaultComponentRegistry.java:366)
at
org.codehaus.plexus.DefaultComponentRegistry.lookup(DefaultComponentRegistry.java:178)
at
org.codehaus.plexus.DefaultPlexusContainer.lookup(DefaultPlexusContainer.java:394)
at
org.codehaus.plexus.component.collections.AbstractComponentCollection.lookup(AbstractComponentCollection.java:141)
at
org.codehaus.plexus.component.collections.ComponentMap.getComponentMap(ComponentMap.java:184)
at
org.codehaus.plexus.component.collections.ComponentMap.getMap(ComponentMap.java:148)
at
org.codehaus.plexus.component.collections.ComponentMap.get(ComponentMap.java:68)
at
org.apache.maven.repository.legacy.DefaultWagonManager.getWagon(DefaultWagonManager.java:730)
at
org.apache.maven.repository.legacy.DefaultWagonManager.getRemoteFile(DefaultWagonManager.java:280)
at
org.apache.maven.repository.legacy.DefaultWagonManager.getArtifact(DefaultWagonManager.java:163)
at
org.apache.maven.repository.legacy.DefaultWagonManager.getArtifact(DefaultWagonManager.java:178)
at
org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:176)
at
org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:515)
at
org.apache.maven.repository.LegacyRepositorySystem.resolve(LegacyRepositorySystem.java:306)
at
org.apache.maven.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:147)
at
org.apache.maven.DefaultProjectDependenciesResolver.resolve(DefaultProjectDependenciesResolver.java:66)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.resolveProjectDependencies(DefaultLifecycleExecutor.java:379)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:312)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:199)
at
org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:460)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:334)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by:
org.codehaus.plexus.component.repository.exception.ComponentLifecycleException:
Error constructing component role: 'org.apache.maven.wagon.Wagon',
implementation: 'org.apache.maven.wagon.providers.webdav.WebDavWagon', role
hint: 'dav'
at
org.codehaus.plexus.component.builder.XBeanComponentBuilder.createComponentInstance(XBeanComponentBuilder.java:178)
at
org.codehaus.plexus.component.builder.XBeanComponentBuilder.build(XBeanComponentBuilder.java:123)
at
org.codehaus.plexus.component.manager.AbstractComponentManager.createComponentInstance(AbstractComponentManager.java:181)
at
org.codehaus.plexus.component.manager.PerLookupComponentManager.getComponent(PerLookupComponentManager.java:51)
at
org.codehaus.plexus.DefaultComponentRegistry.getComponent(DefaultComponentRegistry.java:351)
... 29 more
Caused by: java.lang.NoClassDefFoundError:
org/apache/commons/httpclient/HttpMethod
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructors(Class.java:1459)
at
org.apache.xbean.recipe.ReflectionUtil.findConstructor(ReflectionUtil.java:527)
at
org.apache.xbean.recipe.ObjectRecipe.findFactory(ObjectRecipe.java:532)
at
org.apache.xbean.recipe.ObjectRecipe.internalCreate(ObjectRecipe.java:270)
at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:96)
at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:61)
at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:49)
at
org.codehaus.plexus.component.builder.XBeanComponentBuilder.createComponentInstance(XBeanComponentBuilder.java:159)
... 33 more
Caused by: java.lang.ClassNotFoundException:
org.apache.commons.httpclient.HttpMethod
at
org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
at
org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:225)
at
org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:211)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
... 43 more
{noformat}
The cause of this is that the core filters out wagon-http-shared from the
extension realm which causes {{AbstractHttpClientWagon}} to be loaded from the
core but the core does not also provide commons-httpclient.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira