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;
+ }
+
}