History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: XDOCLET-54
Type: Bug Bug
Status: Open Open
Priority: Minor Minor
Assignee: Konstantin Pribluda
Reporter: Nicholas Daley
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
XDoclet 2

Maven2 plugin doesn't like components that don't have a destdir property.

Created: 29/May/07 06:43 PM   Updated: 20/Aug/08 12:27 PM
Component/s: Maven2 plugin
Affects Version/s: 2.0.5
Fix Version/s: 2.0.7

Time Tracking:
Not Specified


 Description  « Hide
I use a custom metadata provider. At present I run it through maven's ant plugin, and the ant's xdoclet plugin.
I register the metadata provider with XDoclet by using a component tag.
<component classname="com.sailscience.internal.generate.ssdm.MyMetadataProvider" nongeneratedcode="src/main/java/"/>

When I try to use the Maven2 plugin I get a failed build, because the Maven2 plugin is trying to set the destdir property, which the ant plugin is not. (My metadata provider doesn't have any use for a destdir property).

Below is the stack trace.

org.apache.maven.lifecycle.LifecycleExecutionException: XDoclet plugin failed: Unknown property 'destdir' in class com.sailscience.internal.generate.ssdm.MyMetadataProvider Existing properties:{nonGeneratedCode=java.beans.PropertyDescriptor@4c173d75, class=java.beans.PropertyDescriptor@e4064b34, metadata=java.beans.PropertyDescriptor@8c2be765, docletTagFactory=java.beans.PropertyDescriptor@a8f5d10, nongeneratedcode=java.beans.PropertyDescriptor@2fd8deae}
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:564)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:480)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:334)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:125)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:272)
        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.classworlds.Launcher.launchEnhanced(Launcher.java:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.MojoExecutionException: XDoclet plugin failed: Unknown property 'destdir' in class com.sailscience.internal.generate.ssdm.MyMetadataProvider Existing properties:{nonGeneratedCode=java.beans.PropertyDescriptor@4c173d75, class=java.beans.PropertyDescriptor@e4064b34, metadata=java.beans.PropertyDescriptor@8c2be765, docletTagFactory=java.beans.PropertyDescriptor@a8f5d10, nongeneratedcode=java.beans.PropertyDescriptor@2fd8deae}
        at org.codehaus.xdoclet.XDocletMojo.execute(XDocletMojo.java:158)
        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:443)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539)
        ... 16 more
Caused by: org.picocontainer.PicoIntrospectionException: Unknown property 'destdir' in class com.sailscience.internal.generate.ssdm.MyMetadataProvider Existing properties:{nonGeneratedCode=java.beans.PropertyDescriptor@4c173d75, class=java.beans.PropertyDescriptor@e4064b34, metadata=java.beans.PropertyDescriptor@8c2be765, docletTagFactory=java.beans.PropertyDescriptor@a8f5d10, nongeneratedcode=java.beans.PropertyDescriptor@2fd8deae}
        at org.picocontainer.defaults.BeanPropertyComponentAdapter.getComponentInstance(BeanPropertyComponentAdapter.java:68)
        at org.picocontainer.defaults.DefaultPicoContainer.getComponentInstancesOfType(DefaultPicoContainer.java:274)
        at org.picocontainer.defaults.DefaultPicoContainer.getComponentInstancesOfTypeWithContainerAdaptersLast(DefaultPicoContainer.java:377)
        at org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:347)
        at org.nanocontainer.integrationkit.LifecycleContainerBuilder.autoStart(LifecycleContainerBuilder.java:52)
        at org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:45)
        at org.codehaus.xdoclet.XDocletMojo.execute(XDocletMojo.java:149)
        ... 18 more


 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Konstantin Pribluda - 08/Nov/07 01:21 PM
this could be done to selectively not supplying
destdir property in case destdir is null

Grégory Joseph - 20/Aug/08 12:27 PM
Isn't it because you defined the destdir param in the config/params element, which makes it applied to all your components ?