]> source.dussan.org Git - aspectj.git/commitdiff
Remove ASM 2.0 dependency from AtAjLTWTests::testLTWUnweavable
authorAlexander Kriegisch <Alexander@Kriegisch.name>
Mon, 29 Mar 2021 09:50:44 +0000 (16:50 +0700)
committerAlexander Kriegisch <Alexander@Kriegisch.name>
Mon, 29 Mar 2021 09:50:44 +0000 (16:50 +0700)
The test class UnweavableTest used ASM 2.0 API. I upgraded in two ways:
  1. Now the ASM 9.1 API is used. Probably works with much older
     versions too (just not as old as 2.0), as long as the method and
     constructor signatures are the same).
  2. The class now uses the AspectJ version of ASM (i.e. package names
     aj.org.objectweb.asm.*) and therefore can just use ASM as it is on
     the classpath for module 'tests' already. There is no more need to
     manually add '<pathelement path="${aj.root}/lib/asm/asm-2.0.jar"/>'
     to the Ant build script for that test.

Consequently, asm-2.0.jar can be eliminated from Git SCM completely,
because it was only used in this one test.

BTW, I also removed some deprecated API and other types of warnings in
UnweavableTest.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
lib/asm/asm-2.0.jar [deleted file]
tests/java5/ataspectj/ajc-ant.xml
tests/java5/ataspectj/ataspectj/UnweavableTest.java

diff --git a/lib/asm/asm-2.0.jar b/lib/asm/asm-2.0.jar
deleted file mode 100644 (file)
index 458fd70..0000000
Binary files a/lib/asm/asm-2.0.jar and /dev/null differ
index f69cfd4dd59f472c0870af75bee86dd3691f6fbd..5e9cedf1ee680e96ab1a4cd676f37146c97636da 100644 (file)
             debug="true">
             <classpath>
                 <path refid="aj.path"/>
-                <pathelement path="${aj.root}/lib/asm/asm-2.0.jar"/>
             </classpath>
         </javac>
         <copy file="ataspectj/aop-unweavabletest.xml"
         <java fork="yes" classname="ataspectj.UnweavableTest" failonerror="yes">
             <classpath>
                 <path refid="aj.path"/>
-                <pathelement path="${aj.root}/lib/asm/asm-2.0.jar"/>
             </classpath>
             <jvmarg value="-javaagent:${aj.root}/lib/test/loadtime5.jar"/>
             <jvmarg value="${aj.addOpensKey}"/>
index a731bb886f0f85d475be981f2d72bf3bd4604780..95f9e2712854f9838f94e495038e599b3b32b0d2 100644 (file)
@@ -1,11 +1,11 @@
 /*******************************************************************************
  * Copyright (c) 2005 Contributors.
- * All rights reserved. 
- * This program and the accompanying materials are made available 
- * under the terms of the Eclipse Public License v1.0 
- * which accompanies this distribution and is available at 
- * http://eclipse.org/legal/epl-v10.html 
- * 
+ * All rights reserved.
+ * This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution and is available at
+ * http://eclipse.org/legal/epl-v10.html
+ *
  * Contributors:
  *   Alexandre Vasseur         initial implementation
  *******************************************************************************/
@@ -18,15 +18,14 @@ import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
-import java.security.ProtectionDomain;
 import java.io.Serializable;
 
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Before;
-import org.objectweb.asm.ClassWriter;
-import org.objectweb.asm.Opcodes;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.AnnotationVisitor;
+import aj.org.objectweb.asm.ClassWriter;
+import aj.org.objectweb.asm.Opcodes;
+import aj.org.objectweb.asm.MethodVisitor;
+import aj.org.objectweb.asm.AnnotationVisitor;
 
 /**
  * @author <a href="mailto:alex AT gnilux DOT com">Alexandre Vasseur</a>
@@ -40,8 +39,8 @@ public class UnweavableTest extends TestCase {
         assertEquals(1, TestAspect.I);
     }
 
-    static interface ISome {
-        public int giveOne();
+    interface ISome {
+        int giveOne();
     }
 
     ISome getProxy() {
@@ -50,7 +49,7 @@ public class UnweavableTest extends TestCase {
                 new Class[]{ISome.class},
                 new InvocationHandler() {
                     public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
-                        return new Integer(1);
+                        return 1;
                     }
                 }
         );
@@ -84,17 +83,17 @@ public class UnweavableTest extends TestCase {
     }
 
     @Retention(RetentionPolicy.RUNTIME)
-    static @interface ASome {}
+    @interface ASome {}
 
     ISome getJit() {
-        ClassWriter cw = new ClassWriter(true, true);
+        ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS);
         cw.visit(Opcodes.V1_5, Opcodes.ACC_PUBLIC, "ataspectj/ISomeGen", null, "java/lang/Object", new String[]{"ataspectj/UnweavableTest$ISome"});
         AnnotationVisitor av = cw.visitAnnotation("Lataspectj/UnweavableTest$ASome;", true);
         av.visitEnd();
 
         MethodVisitor mv = cw.visitMethod(Opcodes.ACC_PUBLIC, "<init>", "()V", null, new String[0]);
         mv.visitVarInsn(Opcodes.ALOAD, 0);
-        mv.visitMethodInsn(Opcodes.INVOKESPECIAL, "java/lang/Object", "<init>", "()V");
+        mv.visitMethodInsn(Opcodes.INVOKESPECIAL, "java/lang/Object", "<init>", "()V", false);
         mv.visitInsn(Opcodes.RETURN);
         mv.visitMaxs(0, 0);
         mv = cw.visitMethod(Opcodes.ACC_PUBLIC, "giveOne", "()I", null, new String[0]);
@@ -105,10 +104,10 @@ public class UnweavableTest extends TestCase {
 
         try {
             ClassLoader loader = this.getClass().getClassLoader();
-            Method def = ClassLoader.class.getDeclaredMethod("defineClass", new Class[]{String.class, byte[].class, int.class, int.class});
+            Method def = ClassLoader.class.getDeclaredMethod("defineClass", String.class, byte[].class, int.class, int.class);
             def.setAccessible(true);
-            Class gen = (Class) def.invoke(loader, "ataspectj.ISomeGen", cw.toByteArray(), 0, cw.toByteArray().length);
-            return (ISome) gen.newInstance();
+            Class<?> gen = (Class<?>) def.invoke(loader, "ataspectj.ISomeGen", cw.toByteArray(), 0, cw.toByteArray().length);
+            return (ISome) gen.getDeclaredConstructor().newInstance();
         } catch (Throwable t) {
             fail(t.toString());
             return null;
@@ -116,22 +115,22 @@ public class UnweavableTest extends TestCase {
     }
 
     Serializable getJitNoMatch() {
-        ClassWriter cw = new ClassWriter(true, true);
+        ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS);
         cw.visit(Opcodes.V1_5, Opcodes.ACC_PUBLIC, "ataspectj/unmatched/Gen", null, "java/lang/Object", new String[]{"java/io/Serializable"});
 
         MethodVisitor mv = cw.visitMethod(Opcodes.ACC_PUBLIC, "<init>", "()V", null, new String[0]);
         mv.visitVarInsn(Opcodes.ALOAD, 0);
-        mv.visitMethodInsn(Opcodes.INVOKESPECIAL, "java/lang/Object", "<init>", "()V");
+        mv.visitMethodInsn(Opcodes.INVOKESPECIAL, "java/lang/Object", "<init>", "()V", false);
         mv.visitInsn(Opcodes.RETURN);
         mv.visitMaxs(0, 0);
         cw.visitEnd();
 
         try {
             ClassLoader loader = this.getClass().getClassLoader();
-            Method def = ClassLoader.class.getDeclaredMethod("defineClass", new Class[]{String.class, byte[].class, int.class, int.class});
+            Method def = ClassLoader.class.getDeclaredMethod("defineClass", String.class, byte[].class, int.class, int.class);
             def.setAccessible(true);
-            Class gen = (Class) def.invoke(loader, "ataspectj.unmatched.Gen", cw.toByteArray(), 0, cw.toByteArray().length);
-            return (Serializable) gen.newInstance();
+            Class<?> gen = (Class<?>) def.invoke(loader, "ataspectj.unmatched.Gen", cw.toByteArray(), 0, cw.toByteArray().length);
+            return (Serializable) gen.getDeclaredConstructor().newInstance();
         } catch (Throwable t) {
             fail(t.toString());
             return null;
@@ -147,7 +146,7 @@ public class UnweavableTest extends TestCase {
         }
     }
 
-    public static void main(String args[]) throws Throwable {
+    public static void main(String[] args) throws Throwable {
         TestHelper.runAndThrowOnFailure(suite());
     }