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 <rfscho...@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>