[ 
http://jira.codehaus.org/browse/MSHARED-80?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=153102#action_153102
 ] 

Mark Hobson commented on MSHARED-80:
------------------------------------

Firstly, it looks like your plexus annotations are wrong:

{noformat}/**
 * Dependency tree builder component.
 *
 * @component 
expression="org.apache.maven.shared.dependency.tree.DependencyTreeBuilder"
 * @required
 * @readonly
 */
private DependencyTreeBuilder dependencyTreeBuilder;{noformat}

@component takes a 'role' attribute, not an 'expression'.  So it should be:

{noformat}/**
 * Dependency tree builder component.
 *
 * @component 
role="org.apache.maven.shared.dependency.tree.DependencyTreeBuilder"
 * @required
 * @readonly
 */
private DependencyTreeBuilder dependencyTreeBuilder;{noformat}

Of course, DependencyTreeBuilder will only be injected here if this class is 
instantiated by plexus, which all maven plugins are.

Secondly, the NPE is due to DependencyTreeBuilder having no Logger injected 
into it.  Again, this would only happen if it were constructed outside of 
maven/plexus, and not if you've got your plexus annotations set up as described 
above.

Hope this helps.

> NullPointer in DefaultDependencyTreeBuilder.java:93, no logger 
> ---------------------------------------------------------------
>
>                 Key: MSHARED-80
>                 URL: http://jira.codehaus.org/browse/MSHARED-80
>             Project: Maven Shared Components
>          Issue Type: Bug
>          Components: maven-dependency-tree
>    Affects Versions: maven-dependency-tree 1.2
>         Environment: Windows XP 64 JDK 1.6
>            Reporter: MTStorm
>            Priority: Critical
>
> I have a report and a mojo that seeks transversal dependencies. It shows a 
> nullpointer in the DefaultDependencyTreeBuilder. 
> I can not figure it out what is wrong sice the implementation off 
> DependencyTreeBuilder is assigned by Maven and I have no controll on the 
> logger. 
> Here is the code snippet
> //members
>       /**
>        * Used to look up Artifacts in the remote repository.
>        * 
>        * @parameter expression=
>        *            
> "${component.org.apache.maven.artifact.factory.ArtifactFactory}"
>        * @required
>        * @readonly
>        */
>       protected org.apache.maven.artifact.factory.ArtifactFactory 
> artifactFactory;
>       /**
>        * Used to look up Artifacts in the remote repository.
>        * 
>        * @parameter expression=
>        *            
> "${component.org.apache.maven.artifact.resolver.ArtifactResolver}"
>        * @required
>        * @readonly
>        */
>       protected org.apache.maven.artifact.resolver.ArtifactResolver resolver;
>       /**
>        * Artifact collector, needed to resolve dependencies.
>        * 
>        * @component 
> role="org.apache.maven.artifact.resolver.ArtifactCollector"
>        * @required
>        * @readonly
>        */
>       protected ArtifactCollector artifactCollector;
>       /**
>        * @component 
>        *            
> role="org.apache.maven.artifact.metadata.ArtifactMetadataSource"
>        *            hint="maven"
>        * @required
>        * @readonly
>        */
>       protected ArtifactMetadataSource artifactMetadataSource;
>       /**
>        * Dependency tree builder component.
>        * 
>        * @component expression=
>        *            
> "org.apache.maven.shared.dependency.tree.DependencyTreeBuilder"
>        * @required
>        * @readonly
>        */
>       private DependencyTreeBuilder dependencyTreeBuilder;
> //sample snippet to use in report and mojo
>               ArtifactFilter artifactFilter = new ScopeArtifactFilter(
>                               Artifact.SCOPE_COMPILE);
>               DependencyNode dn;
>               getLog().info("Start");
>               try {
>                       dn = dependencyTreeBuilder.buildDependencyTree(
>                                       project, localRepository, 
> artifactFactory, artifactMetadataSource,
>                                       artifactFilter, artifactCollector);
>                       
>               } catch (DependencyTreeBuilderException e) {
>                       e.printStackTrace();
>                       getLog().error("oeps",e);
>               }
>               getLog().info("Done");

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