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/


Reply via email to