Internally the way @component works is to take the role of component supplied 
or figure it out. With that role a lookup against the container is executed. 
The MavenProject is not something that is available from the container because 
it is not a component. So I doubt it works, unless some magic was done to just 
make the @Component act on MavenProject's which itself doesn't make sense. It 
is meant to be a parameter, and that's what it has always been.

On Nov 28, 2012, at 6:03 PM, Barrie Treloar <[email protected]> wrote:

> On Thu, Nov 29, 2012 at 8:49 AM, Jason van Zyl <[email protected]> wrote:
>> The MavenProject is not a component that is injected by the container. It's 
>> handled by the PluginParameterExpressionEvaluator[1] which looks at all the 
>> non-@component things and sets their values once the Mojo instance is 
>> constructed.
>> 
>> [1]: 
>> https://github.com/apache/maven-3/blob/trunk/maven-core/src/main/java/org/apache/maven/plugin/PluginParameterExpressionEvaluator.java
> 
> Does that mean our docs are wrong?
> Do you have an example?
> 
> I've not used annotations before and I was trying to help someone
> else's user list question.
> And unfortunately google returns javadoc matches as well so wading
> through examples was time consuming and not very enlightening.
> 
> And the link Olivier sent is using
>    /**
>     * The Maven project.
>     */
>    @Component
>    private MavenProject project;
> and is working, but when I tried that it didn't.
> 
> I'm going to try looking at the pom to see if there are some incorrect
> versions of dependencies might be causing an issue.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder & CTO, Sonatype
Founder,  Apache Maven
http://twitter.com/jvanzyl
---------------------------------------------------------

To do two things at once is to do neither.
 
 -- Publilius Syrus, Roman slave, first century B.C.





Reply via email to