You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2012/05/08 23:01:42 UTC

svn commit: r1335767 - /maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/JavaAnnotationsMojoDescriptorExtractor.java

Author: olamy
Date: Tue May  8 21:01:42 2012
New Revision: 1335767

URL: http://svn.apache.org/viewvc?rev=1335767&view=rev
Log:
[MPLUGIN-189] scan sources from reactors project to get @since,@deprecated and text

Modified:
    maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/JavaAnnotationsMojoDescriptorExtractor.java

Modified: maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/JavaAnnotationsMojoDescriptorExtractor.java
URL: http://svn.apache.org/viewvc/maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/JavaAnnotationsMojoDescriptorExtractor.java?rev=1335767&r1=1335766&r2=1335767&view=diff
==============================================================================
--- maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/JavaAnnotationsMojoDescriptorExtractor.java (original)
+++ maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/JavaAnnotationsMojoDescriptorExtractor.java Tue May  8 21:01:42 2012
@@ -22,6 +22,7 @@ import com.thoughtworks.qdox.JavaDocBuil
 import com.thoughtworks.qdox.model.DocletTag;
 import com.thoughtworks.qdox.model.JavaClass;
 import com.thoughtworks.qdox.model.JavaField;
+import org.apache.maven.artifact.Artifact;
 import org.apache.maven.plugin.descriptor.DuplicateParameterException;
 import org.apache.maven.plugin.descriptor.InvalidPluginDescriptorException;
 import org.apache.maven.plugin.descriptor.MojoDescriptor;
@@ -41,10 +42,12 @@ import org.apache.maven.tools.plugin.ann
 import org.apache.maven.tools.plugin.extractor.ExtractionException;
 import org.apache.maven.tools.plugin.extractor.MojoDescriptorExtractor;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.codehaus.plexus.util.StringUtils;
 
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
@@ -87,7 +90,32 @@ public class JavaAnnotationsMojoDescript
         Map<String, MojoAnnotatedClass> mojoAnnotatedClasses =
             mojoAnnotationsScanner.scan( mojoAnnotationsScannerRequest );
 
-        Map<String, JavaClass> javaClassesMap = discoverClasses( request );
+        // found artifact from reactors to scan sources
+        // we currently only scan sources from reactors
+        List<MavenProject> mavenProjects = new ArrayList<MavenProject>();
+
+        for ( MojoAnnotatedClass mojoAnnotatedClass : mojoAnnotatedClasses.values() )
+        {
+            if ( !StringUtils.equals( mojoAnnotatedClass.getArtifact().getArtifactId(),
+                                      request.getProject().getArtifact().getArtifactId() ) )
+            {
+                MavenProject mavenProject =
+                    getFromProjectReferences( mojoAnnotatedClass.getArtifact(), request.getProject() );
+                if ( mavenProject != null )
+                {
+                    mavenProjects.add( mavenProject );
+                }
+            }
+        }
+
+        Map<String, JavaClass> javaClassesMap = new HashMap<String, JavaClass>();
+
+        for ( MavenProject mavenProject : mavenProjects )
+        {
+            javaClassesMap.putAll( discoverClasses( request.getEncoding(), mavenProject ) );
+        }
+
+        javaClassesMap.putAll( discoverClasses( request ) );
 
         populateDataFromJavadoc( mojoAnnotatedClasses, javaClassesMap );
 
@@ -231,10 +259,13 @@ public class JavaAnnotationsMojoDescript
 
     protected Map<String, JavaClass> discoverClasses( final PluginToolsRequest request )
     {
-        JavaDocBuilder builder = new JavaDocBuilder();
-        builder.setEncoding( request.getEncoding() );
+        return discoverClasses( request.getEncoding(), request.getProject() );
+    }
 
-        MavenProject project = request.getProject();
+    protected Map<String, JavaClass> discoverClasses( final String encoding, MavenProject project )
+    {
+        JavaDocBuilder builder = new JavaDocBuilder();
+        builder.setEncoding( encoding );
 
         for ( String source : (List<String>) project.getCompileSourceRoots() )
         {
@@ -453,4 +484,22 @@ public class JavaAnnotationsMojoDescript
         }
         return componentAnnotationContents;
     }
+
+    protected MavenProject getFromProjectReferences( Artifact artifact, MavenProject project )
+    {
+        if ( project.getProjectReferences() == null || project.getProjectReferences().isEmpty() )
+        {
+            return null;
+        }
+        Collection<MavenProject> mavenProjects = project.getProjectReferences().values();
+        for ( MavenProject mavenProject : mavenProjects )
+        {
+            if ( StringUtils.equals( mavenProject.getId(), artifact.getId() ) )
+            {
+                return mavenProject;
+            }
+        }
+        return null;
+    }
+
 }