this could be a classloading issue. How are you instantiating the wagon, and how are you declaring it to Maven (is it just a dependency of the plugin?)
- Brett 2008/9/4 Edelson, Justin <[EMAIL PROTECTED]> > Thanks Brett. I knew it was something simple. > > That got me one step further, now I'm getting: > Caused by: org.codehaus.plexus.component.composition.CompositionException: > Composition failed for the field knownHostsProvider in object of type > com.mtvi.plateng.maven.wagon.JschTunnelWagon > at > org.codehaus.plexus.component.composition.FieldComponentComposer.assignRequirementToField(FieldComponentComposer.java:144) > at > org.codehaus.plexus.component.composition.FieldComponentComposer.assembleComponent(FieldComponentComposer.java:73) > at > org.codehaus.plexus.component.composition.DefaultComponentComposerManager.assembleComponent(DefaultComponentComposerManager.java:68) > at > org.codehaus.plexus.DefaultPlexusContainer.composeComponent(DefaultPlexusContainer.java:1486) > at > org.codehaus.plexus.personality.plexus.lifecycle.phase.CompositionPhase.execute(CompositionPhase.java:29) > ... 35 more > Caused by: java.lang.IllegalArgumentException > at > sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63) > at java.lang.reflect.Field.set(Field.java:656) > at > org.codehaus.plexus.component.composition.FieldComponentComposer.assignRequirementToField(FieldComponentComposer.java:137) > ... 39 mor > > knownHostsProvider is a field in AbstractJschWagon, which is extended by > ScpWagon, which my class then extends. I basically just copied the component > configuration from that of ScpWagon > > > > > ________________________________ > > From: Brett Porter [mailto:[EMAIL PROTECTED] > Sent: Wed 9/3/2008 9:57 PM > To: Maven Users List > Subject: Re: Stuck on custom wagon and plexus > > > > Is the resource really in that directory? > It should be src/main/resources/META-INF/plexus/components.xml instead :) > > Cheers, > Brett > > 2008/9/4 Edelson, Justin <[EMAIL PROTECTED]> > > > I'm writing a Maven plugin that requires a customized version of the SCP > > Wagon. While I've written a number of plugins in the past, this is the > first > > time I've tried to create a Plexus component and I seem to be stuck. > > > > Here's what I've done: > > * In one project, I have a class (...JschTunnelWagon), an interface > > (...TunnelWagon), and a components.xml file (in > src/main/resources/plexus) > > with this content: > > <component-set> > > <components> > > <component> > > <role>org.apache.maven.wagon.Wagon</role> > > <role-hint>ssh-pf</role-hint> > > > > > <implementation>com.mtvi.plateng.maven.wagon.JschTunnelWagon</implementation> > > > > [other configuration] > > > > </component> > > </components> > > </component-set> > > * In my plugin project, I depend upon the first project and do this: > > /** > > * The Tunneling Wagon. > > * > > * @parameter > > expression="${component.org.apache.maven.wagon.Wagon#ssh-pf}" > > * @required > > * @readonly > > */ > > private TunnelWagon wagon; > > > > When I try to execute my mojo, I get this error: > > Component descriptor cannot be found in the component repository: > > org.apache.maven.wagon.Wagonssh-pf. > > > > With -X, I see this: > > Caused by: > org.codehaus.plexus.component.composition.CompositionException: > > Composition failed of field wagon in object of type > > com.mtvi.plateng.maven.utils.TunnelCreatorMojo because the requirement > > ComponentRequirement{role='org.apache.maven.wagon.Wagon', > roleHint='ssh-pf', > > fieldName='wagon'} was missing > > > > I'm sure I'm missing something simple, but if anyone can help, I'd > > appreciate it. > > > > Thanks, > > Justin > > > > > > > -- > Brett Porter > Blog: http://blogs.exist.com/bporter/ > > > -- Brett Porter Blog: http://blogs.exist.com/bporter/
