You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2018/09/30 18:37:18 UTC

[maven-plugin-tools] 02/03: [MPLUGIN-336] Upgrade ASM to 7.0-beta Upgrade Opcodes.ASM5 to Opcodes.ASM7 Add missing visit methods to MojoClassVisitor

This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a commit to branch MPLUGIN-336
in repository https://gitbox.apache.org/repos/asf/maven-plugin-tools.git

commit a9dafa6366810e92ce0c79ce8df2f34952c30615
Author: rfscholte <rf...@apache.org>
AuthorDate: Sun Sep 30 20:35:42 2018 +0200

    [MPLUGIN-336] Upgrade ASM to 7.0-beta
    Upgrade Opcodes.ASM5 to Opcodes.ASM7
    Add missing visit methods to MojoClassVisitor
---
 .../scanner/visitors/MojoAnnotationVisitor.java    |  2 +-
 .../scanner/visitors/MojoClassVisitor.java         | 36 +++++++++++++++++++++-
 .../scanner/visitors/MojoFieldVisitor.java         |  2 +-
 pom.xml                                            |  2 +-
 4 files changed, 38 insertions(+), 4 deletions(-)

diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/visitors/MojoAnnotationVisitor.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/visitors/MojoAnnotationVisitor.java
index b2c82ed..dc28936 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/visitors/MojoAnnotationVisitor.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/visitors/MojoAnnotationVisitor.java
@@ -41,7 +41,7 @@ public class MojoAnnotationVisitor
 
     MojoAnnotationVisitor( Logger logger, String annotationClassName )
     {
-        super( Opcodes.ASM5 );
+        super( Opcodes.ASM7 );
         this.logger = logger;
         this.annotationClassName = annotationClassName;
     }
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/visitors/MojoClassVisitor.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/visitors/MojoClassVisitor.java
index 44c50bb..086618f 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/visitors/MojoClassVisitor.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/visitors/MojoClassVisitor.java
@@ -30,6 +30,7 @@ import org.objectweb.asm.FieldVisitor;
 import org.objectweb.asm.MethodVisitor;
 import org.objectweb.asm.Opcodes;
 import org.objectweb.asm.Type;
+import org.objectweb.asm.TypePath;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -53,7 +54,7 @@ public class MojoClassVisitor
 
     public MojoClassVisitor( Logger logger )
     {
-        super( Opcodes.ASM5 );
+        super( Opcodes.ASM7 );
         this.logger = logger;
     }
 
@@ -111,6 +112,7 @@ public class MojoClassVisitor
         return mojoFieldVisitors;
     }
 
+    @Override
     public void visit( int version, int access, String name, String signature, String superName, String[] interfaces )
     {
         mojoAnnotatedClass = new MojoAnnotatedClass();
@@ -121,6 +123,7 @@ public class MojoClassVisitor
         }
     }
 
+    @Override
     public AnnotationVisitor visitAnnotation( String desc, boolean visible )
     {
         String annotationClassName = Type.getType( desc ).getClassName();
@@ -132,7 +135,21 @@ public class MojoClassVisitor
         annotationVisitorMap.put( annotationClassName, mojoAnnotationVisitor );
         return mojoAnnotationVisitor;
     }
+    
+    @Override
+    public AnnotationVisitor visitTypeAnnotation( int typeRef, TypePath typePath, String desc, boolean visible )
+    {
+        String annotationClassName = Type.getType( desc ).getClassName();
+        if ( !MojoAnnotationsScanner.CLASS_LEVEL_ANNOTATIONS.contains( annotationClassName ) )
+        {
+            return null;
+        }
+        MojoAnnotationVisitor mojoAnnotationVisitor = new MojoAnnotationVisitor( logger, annotationClassName );
+        annotationVisitorMap.put( annotationClassName, mojoAnnotationVisitor );
+        return mojoAnnotationVisitor;
+    }
 
+    @Override
     public FieldVisitor visitField( int access, String name, String desc, String signature, Object value )
     {
         MojoFieldVisitor mojoFieldVisitor = new MojoFieldVisitor( logger, name, Type.getType( desc ).getClassName() );
@@ -140,35 +157,52 @@ public class MojoClassVisitor
         return mojoFieldVisitor;
     }
 
+    @Override
     public MethodVisitor visitMethod( int access, String name, String desc, String signature, String[] exceptions )
     {
         // we don't need methods informations
         return null;
     }
 
+    @Override
     public void visitAttribute( Attribute attr )
     {
         // no op
     }
 
+    @Override
     public void visitSource( String source, String debug )
     {
         // no op
     }
 
+    @Override
     public void visitOuterClass( String owner, String name, String desc )
     {
         // no op
     }
 
+    @Override
     public void visitInnerClass( String name, String outerName, String innerName, int access )
     {
         // no op
     }
 
+    @Override
     public void visitEnd()
     {
         // no op
     }
+    
+    @Override
+    public void visitNestHost( String nestHost )
+    {
+        // no op
+    }
 
+    @Override
+    public void visitNestMember( String nestMember )
+    {
+        // no op
+    }
 }
diff --git a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/visitors/MojoFieldVisitor.java b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/visitors/MojoFieldVisitor.java
index 1ea3561..80afcb6 100644
--- a/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/visitors/MojoFieldVisitor.java
+++ b/maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/scanner/visitors/MojoFieldVisitor.java
@@ -44,7 +44,7 @@ public class MojoFieldVisitor
 
     MojoFieldVisitor( Logger logger, String fieldName, String className )
     {
-        super( Opcodes.ASM5 );
+        super( Opcodes.ASM7 );
         this.logger = logger;
         this.fieldName = fieldName;
         this.className = className;
diff --git a/pom.xml b/pom.xml
index 6cb39f3..d735da6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -97,7 +97,7 @@
     <antVersion>1.7.1</antVersion>
     <mavenInvokerPluginVersion>3.0.1</mavenInvokerPluginVersion>
     <maven.site.path>plugin-tools-archives/plugin-tools-LATEST</maven.site.path>
-    <asmVersion>6.2</asmVersion>
+    <asmVersion>7.0-beta</asmVersion>
   </properties>
 
   <dependencyManagement>