diff options
-rw-r--r-- | tests/ltw/callMunging/case1/HierMain.java | 28 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc150/ltw/LTWTests.java | 4 | ||||
-rw-r--r-- | tests/src/org/aspectj/systemtest/ajc150/ltw/ltw-tests.xml | 15 |
3 files changed, 45 insertions, 2 deletions
diff --git a/tests/ltw/callMunging/case1/HierMain.java b/tests/ltw/callMunging/case1/HierMain.java new file mode 100644 index 000000000..8fdb1c570 --- /dev/null +++ b/tests/ltw/callMunging/case1/HierMain.java @@ -0,0 +1,28 @@ +import java.lang.reflect.Method; +import java.net.URLClassLoader; +import java.net.URL; +import java.io.File; +import org.aspectj.weaver.loadtime.WeavingURLClassLoader; + +public class HierMain { + + public static void main(String []argv) { + try { + System.out.println("into:main"); + ClassLoader baseLoader = HierMain.class.getClassLoader(); + URL base = baseLoader.getResource("HierMain.class"); + String urlstr = base.toExternalForm(); + int idx = urlstr.indexOf("classes.jar!"); + String sub = urlstr.substring("jar:".length(), idx)+"/sub.hiddenjar"; + URL subUrls[] = new URL[] { new URL(sub) }; + WeavingURLClassLoader loader = new WeavingURLClassLoader(subUrls, baseLoader); + Class clazzA = Class.forName("A", false, loader); + Method clazzAMethod = clazzA.getMethod("method",null); + clazzAMethod.invoke(clazzA.newInstance(),null); + System.out.println("leave:main"); + } catch (Throwable t) { + t.printStackTrace(); + } + } + +} diff --git a/tests/src/org/aspectj/systemtest/ajc150/ltw/LTWTests.java b/tests/src/org/aspectj/systemtest/ajc150/ltw/LTWTests.java index afb9aeb5e..38346279e 100644 --- a/tests/src/org/aspectj/systemtest/ajc150/ltw/LTWTests.java +++ b/tests/src/org/aspectj/systemtest/ajc150/ltw/LTWTests.java @@ -130,8 +130,8 @@ public class LTWTests extends org.aspectj.testing.XMLBasedAjcTestCase { runTest("aggressive ltw - decp - 2"); } - public void testWeavingTargetOfCallAggressivelyInLTW_DeclareAnnotation_pr133770() { - runTest("aggressive ltw - deca"); + public void testWeavingTargetOfCallAggressivelyInLTW_DeclareParents_Hierarchy_pr133770() { + runTest("aggressive ltw - hierarchy"); } public void testSeparateCompilationDeclareParentsCall_pr133770() { diff --git a/tests/src/org/aspectj/systemtest/ajc150/ltw/ltw-tests.xml b/tests/src/org/aspectj/systemtest/ajc150/ltw/ltw-tests.xml index abd117964..1866789ef 100644 --- a/tests/src/org/aspectj/systemtest/ajc150/ltw/ltw-tests.xml +++ b/tests/src/org/aspectj/systemtest/ajc150/ltw/ltw-tests.xml @@ -156,6 +156,21 @@ </run> </ajc-test> + <ajc-test dir="ltw/callMunging/case1" title="aggressive ltw - hierarchy"> + <compile files="T.java,HierMain.java" outjar="classes.jar"/> + <compile files="A.java" outjar="sub.hiddenjar" classpath="classes.jar"/> + <compile files="X.java" outjar="aspects.jar" classpath="classes.jar" options="-Xlint:ignore"/> + <run class="HierMain" ltw="aop.xml"> + <stdout> + <line text="into:main"/> + <line text="A.method() running"/> + <line text="advice running"/> + <line text="T.m1() running"/> + <line text="leave:main"/> + </stdout> + </run> + </ajc-test> + <ajc-test dir="ltw/callMunging/case3" title="aggressive ltw - decp - 2"> <compile files="A.java,T.java,S.java,Main.java" outjar="classes.jar"/> <compile files="X.java" outjar="aspects.jar" classpath="classes.jar" options="-Xlint:ignore"/> |