From 2c9374c807dbdf256df2c6bb365802916e8653c6 Mon Sep 17 00:00:00 2001 From: Alexander Kriegisch Date: Mon, 29 Mar 2021 16:50:44 +0700 Subject: Remove ASM 2.0 dependency from AtAjLTWTests::testLTWUnweavable 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 '' 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 --- lib/asm/asm-2.0.jar | Bin 33604 -> 0 bytes tests/java5/ataspectj/ajc-ant.xml | 2 - .../java5/ataspectj/ataspectj/UnweavableTest.java | 51 ++++++++++----------- 3 files changed, 25 insertions(+), 28 deletions(-) delete mode 100644 lib/asm/asm-2.0.jar diff --git a/lib/asm/asm-2.0.jar b/lib/asm/asm-2.0.jar deleted file mode 100644 index 458fd703f..000000000 Binary files a/lib/asm/asm-2.0.jar and /dev/null differ diff --git a/tests/java5/ataspectj/ajc-ant.xml b/tests/java5/ataspectj/ajc-ant.xml index f69cfd4dd..5e9cedf1e 100644 --- a/tests/java5/ataspectj/ajc-ant.xml +++ b/tests/java5/ataspectj/ajc-ant.xml @@ -151,7 +151,6 @@ debug="true"> - - diff --git a/tests/java5/ataspectj/ataspectj/UnweavableTest.java b/tests/java5/ataspectj/ataspectj/UnweavableTest.java index a731bb886..95f9e2712 100644 --- a/tests/java5/ataspectj/ataspectj/UnweavableTest.java +++ b/tests/java5/ataspectj/ataspectj/UnweavableTest.java @@ -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 Alexandre Vasseur @@ -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, "", "()V", null, new String[0]); mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, "java/lang/Object", "", "()V"); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, "java/lang/Object", "", "()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, "", "()V", null, new String[0]); mv.visitVarInsn(Opcodes.ALOAD, 0); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, "java/lang/Object", "", "()V"); + mv.visitMethodInsn(Opcodes.INVOKESPECIAL, "java/lang/Object", "", "()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()); } -- cgit v1.2.3