[ 
http://jira.codehaus.org/browse/MNG-3686?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benjamin Bentmann closed MNG-3686.
----------------------------------

         Assignee: Benjamin Bentmann  (was: Shane Isbell)
       Resolution: Not A Bug
    Fix Version/s:     (was: 3.0-alpha-4)

OK, this is actually a problem with QDox (QDOX-148) and not Maven. When the 
plexus-maven-plugin scans {{WebDavWagon}} and traverses to the parent class 
{{AbstractHttpClientWagon}}, QDox uses the plugin class loader to try to load 
this class from its binary representation. As wagon-http-shared is part of the 
3.x core distro (due to inclusion of wagon-http-lightweight), QDox succeeds in 
loading {{AbstractHttpClientWagon}} from the core realm. However, when QDox 
continues to reflectively analyze {{AbstractHttpClientWagon}} it triggers 
loading of types from commons-httpclient which are not in the core realm 
(wagon-http-lightweight excludes commons-httpclient from its dependencies).

The proper solution is to prevent QDox from loading any classes from the 
plugin/core realms. If at all, classes should be loaded from the project 
dependencies but that would be senseless for the purpose of the 
{{SourceComponentDescriptorExtractor}}. In the meantime, a workaround is to add 
wagon-http-shared as a project-level plugin dependency for the 
plexus-maven-plugin.

> [regression] Can't build Wagon webdav provider
> ----------------------------------------------
>
>                 Key: MNG-3686
>                 URL: http://jira.codehaus.org/browse/MNG-3686
>             Project: Maven 2
>          Issue Type: Bug
>    Affects Versions: 3.0-alpha-1
>            Reporter: Brett Porter
>            Assignee: Benjamin Bentmann
>
> Wagon trunk r680097 fails to build in the webdav module when built with mvn 
> -Dmaven.test.skip=true from the top level due to:
> Exception in thread "main" java.lang.NoClassDefFoundError: 
> org/apache/commons/httpclient/methods/RequestEntity
>       at java.lang.Class.getDeclaredConstructors0(Native Method)
>       at java.lang.Class.privateGetDeclaredConstructors(Class.java:2357)
>       at java.lang.Class.getConstructors(Class.java:1446)
>       at 
> com.thoughtworks.qdox.JavaDocBuilder.createBinaryClass(JavaDocBuilder.java:183)
>       at 
> com.thoughtworks.qdox.JavaDocBuilder.getClassByName(JavaDocBuilder.java:119)
>       at 
> com.thoughtworks.qdox.model.ClassLibrary.getClassByName(ClassLibrary.java:37)
>       at com.thoughtworks.qdox.model.Type.getJavaClass(Type.java:98)
>       at 
> com.thoughtworks.qdox.model.JavaClass.getSuperJavaClass(JavaClass.java:86)
>       at 
> org.codehaus.plexus.cdc.gleaner.QDoxComponentGleaner.findRequirements(QDoxComponentGleaner.java:343)
>       at 
> org.codehaus.plexus.cdc.gleaner.QDoxComponentGleaner.glean(QDoxComponentGleaner.java:193)
>       at 
> org.codehaus.plexus.maven.plugin.SourceComponentDescriptorExtractor.extract(SourceComponentDescriptorExtractor.java:100)
>       at 
> org.codehaus.plexus.maven.plugin.SourceComponentDescriptorExtractor.extract(SourceComponentDescriptorExtractor.java:74)
>       at 
> org.codehaus.plexus.maven.plugin.AbstractDescriptorMojo.generateDescriptor(AbstractDescriptorMojo.java:131)
>       at 
> org.codehaus.plexus.maven.plugin.PlexusDescriptorMojo.execute(PlexusDescriptorMojo.java:60)
>       at 
> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:638)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:521)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmentForProject(DefaultLifecycleExecutor.java:288)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:214)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:172)
>       at 
> org.apache.maven.DefaultMaven.execute_aroundBody0(DefaultMaven.java:223)
>       at 
> org.apache.maven.DefaultMaven.execute_aroundBody1$advice(DefaultMaven.java:303)
>       at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:1)
>       at 
> org.apache.maven.embedder.MavenEmbedder.execute_aroundBody2(MavenEmbedder.java:904)
>       at 
> org.apache.maven.embedder.MavenEmbedder.execute_aroundBody3$advice(MavenEmbedder.java:303)
>       at org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:1)
>       at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:176)
>       at org.apache.maven.cli.MavenCli.main(MavenCli.java:63)
>       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:585)
>       at 
> org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
>       at 
> org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
>       at 
> org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:408)
>       at 
> org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:351)

-- 
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

        

Reply via email to