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:29 UTC

svn commit: r1335766 - in /maven/plugin-tools/branches/MPLUGIN-189: maven-plugin-plugin/ maven-plugin-plugin/src/it/annotation-with-inheritance-reactor/ maven-plugin-tools-annotations/ maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools...

Author: olamy
Date: Tue May  8 21:01:28 2012
New Revision: 1335766

URL: http://svn.apache.org/viewvc?rev=1335766&view=rev
Log:
exclude @Mojo annotation when coming from classes from dependencies

Modified:
    maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-plugin/pom.xml
    maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-plugin/src/it/annotation-with-inheritance-reactor/pom.xml
    maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/pom.xml
    maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/scanner/DefaultMojoAnnotationsScanner.java

Modified: maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-plugin/pom.xml?rev=1335766&r1=1335765&r2=1335766&view=diff
==============================================================================
--- maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-plugin/pom.xml (original)
+++ maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-plugin/pom.xml Tue May  8 21:01:28 2012
@@ -316,6 +316,14 @@
           </plugins>
         </pluginManagement>
       </build>
+      <dependencies>
+        <dependency>
+          <groupId>org.apache.maven.plugin-tools</groupId>
+          <artifactId>maven-plugin-tools-annotations</artifactId>
+          <version>${project.version}</version>
+          <classifier>tests</classifier>
+        </dependency>
+      </dependencies>
     </profile>
   </profiles>
 </project>

Modified: maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-plugin/src/it/annotation-with-inheritance-reactor/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-plugin/src/it/annotation-with-inheritance-reactor/pom.xml?rev=1335766&r1=1335765&r2=1335766&view=diff
==============================================================================
--- maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-plugin/src/it/annotation-with-inheritance-reactor/pom.xml (original)
+++ maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-plugin/src/it/annotation-with-inheritance-reactor/pom.xml Tue May  8 21:01:28 2012
@@ -45,6 +45,12 @@ under the License.
       <version>2.0</version>
     </dependency>
     <dependency>
+      <groupId>org.apache.maven.plugin-tools</groupId>
+      <artifactId>maven-plugin-tools-annotations</artifactId>
+      <version>@project.version@</version>
+      <classifier>tests</classifier>
+    </dependency>
+    <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-project</artifactId>
       <version>@mavenVersion@</version>

Modified: maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/pom.xml?rev=1335766&r1=1335765&r2=1335766&view=diff
==============================================================================
--- maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/pom.xml (original)
+++ maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/pom.xml Tue May  8 21:01:28 2012
@@ -79,4 +79,20 @@
 
   </dependencies>
 
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>test-jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
 </project>

Modified: maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/scanner/DefaultMojoAnnotationsScanner.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/scanner/DefaultMojoAnnotationsScanner.java?rev=1335766&r1=1335765&r2=1335766&view=diff
==============================================================================
--- maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/scanner/DefaultMojoAnnotationsScanner.java (original)
+++ maven/plugin-tools/branches/MPLUGIN-189/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/annotations/scanner/DefaultMojoAnnotationsScanner.java Tue May  8 21:01:28 2012
@@ -75,12 +75,12 @@ public class DefaultMojoAnnotationsScann
                     if ( dependencyFile.isDirectory() )
                     {
                         mojoAnnotatedClasses.putAll(
-                            scanDirectory( dependencyFile, request.getIncludePatterns(), dependency ) );
+                            scanDirectory( dependencyFile, request.getIncludePatterns(), dependency, true ) );
                     }
                     else
                     {
                         mojoAnnotatedClasses.putAll(
-                            scanFile( dependencyFile, request.getIncludePatterns(), dependency ) );
+                            scanFile( dependencyFile, request.getIncludePatterns(), dependency, true ) );
                     }
                 }
             }
@@ -89,8 +89,9 @@ public class DefaultMojoAnnotationsScann
             {
                 if ( classDirectory.exists() && classDirectory.isDirectory() )
                 {
-                    mojoAnnotatedClasses.putAll( scanDirectory( classDirectory, request.getIncludePatterns(),
-                                                                request.getProject().getArtifact() ) );
+                    mojoAnnotatedClasses.putAll(
+                        scanDirectory( classDirectory, request.getIncludePatterns(), request.getProject().getArtifact(),
+                                       false ) );
                 }
             }
 
@@ -102,8 +103,17 @@ public class DefaultMojoAnnotationsScann
         }
     }
 
+    /**
+     * @param archiveFile
+     * @param includePatterns
+     * @param artifact
+     * @param excludeMojo     for dependencies we exclude Mojo annotations found
+     * @return
+     * @throws IOException
+     * @throws ExtractionException
+     */
     protected Map<String, MojoAnnotatedClass> scanFile( File archiveFile, List<String> includePatterns,
-                                                        Artifact artifact )
+                                                        Artifact artifact, boolean excludeMojo )
         throws IOException, ExtractionException
     {
         if ( !archiveFile.exists() )
@@ -126,6 +136,10 @@ public class DefaultMojoAnnotationsScann
                     rdr.accept( mojoClassVisitor,
                                 ClassReader.SKIP_FRAMES | ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG );
                     analyzeVisitors( mojoClassVisitor );
+                    if ( excludeMojo )
+                    {
+                        mojoClassVisitor.getMojoAnnotatedClass().setMojo( null );
+                    }
                     if ( isMojoAnnnotatedClassCandidate( mojoClassVisitor.getMojoAnnotatedClass() ) != null )
                     {
                         getLogger().debug(
@@ -145,8 +159,17 @@ public class DefaultMojoAnnotationsScann
         return mojoAnnotatedClasses;
     }
 
+    /**
+     * @param classDirectory
+     * @param includePatterns
+     * @param artifact
+     * @param excludeMojo     for dependencies we exclude Mojo annotations found
+     * @return
+     * @throws IOException
+     * @throws ExtractionException
+     */
     protected Map<String, MojoAnnotatedClass> scanDirectory( File classDirectory, List<String> includePatterns,
-                                                             Artifact artifact )
+                                                             Artifact artifact, boolean excludeMojo )
         throws IOException, ExtractionException
     {
         if ( !classDirectory.exists() )
@@ -177,6 +200,10 @@ public class DefaultMojoAnnotationsScann
                     rdr.accept( mojoClassVisitor,
                                 ClassReader.SKIP_FRAMES | ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG );
                     analyzeVisitors( mojoClassVisitor );
+                    if ( excludeMojo )
+                    {
+                        mojoClassVisitor.getMojoAnnotatedClass().setMojo( null );
+                    }
                     if ( isMojoAnnnotatedClassCandidate( mojoClassVisitor.getMojoAnnotatedClass() ) != null )
                     {
                         getLogger().debug(