From 6b31b32ae338cdecea6e20aa87fe05ca0cc2fb57 Mon Sep 17 00:00:00 2001 From: mwebster Date: Wed, 4 Oct 2006 13:35:09 +0000 Subject: Bug 132080 "LTW concrete-aspect definitions not exposed to weaver" --- tests/bugs153/pr132080/AbstractSuperAspect.aj | 20 ++++++ .../pr132080/AbstractSuperAspectWithAround.aj | 9 +++ .../pr132080/AbstractSuperAspectWithInterface.aj | 13 ++++ tests/bugs153/pr132080/ConcreteAspectWithITD.aj | 4 ++ tests/bugs153/pr132080/HelloWorld.java | 11 ++++ tests/bugs153/pr132080/TestAdvice.aj | 5 ++ tests/bugs153/pr132080/TestAroundClosure.aj | 7 ++ tests/bugs153/pr132080/TestITD.aj | 8 +++ tests/bugs153/pr132080/TestInterface.java | 3 + tests/bugs153/pr132080/aop-advice.xml | 11 ++++ tests/bugs153/pr132080/aop-aroundclosure.xml | 11 ++++ tests/bugs153/pr132080/aop-itd.xml | 14 ++++ tests/bugs153/pr149096/aop-pr149096.xml | 2 +- .../org/aspectj/systemtest/ajc153/Ajc153Tests.java | 16 +++++ tests/src/org/aspectj/systemtest/ajc153/ajc153.xml | 75 ++++++++++++++++++++++ 15 files changed, 208 insertions(+), 1 deletion(-) create mode 100644 tests/bugs153/pr132080/AbstractSuperAspect.aj create mode 100644 tests/bugs153/pr132080/AbstractSuperAspectWithAround.aj create mode 100644 tests/bugs153/pr132080/AbstractSuperAspectWithInterface.aj create mode 100644 tests/bugs153/pr132080/ConcreteAspectWithITD.aj create mode 100644 tests/bugs153/pr132080/HelloWorld.java create mode 100644 tests/bugs153/pr132080/TestAdvice.aj create mode 100644 tests/bugs153/pr132080/TestAroundClosure.aj create mode 100644 tests/bugs153/pr132080/TestITD.aj create mode 100644 tests/bugs153/pr132080/TestInterface.java create mode 100644 tests/bugs153/pr132080/aop-advice.xml create mode 100644 tests/bugs153/pr132080/aop-aroundclosure.xml create mode 100644 tests/bugs153/pr132080/aop-itd.xml (limited to 'tests') diff --git a/tests/bugs153/pr132080/AbstractSuperAspect.aj b/tests/bugs153/pr132080/AbstractSuperAspect.aj new file mode 100644 index 000000000..9692579b9 --- /dev/null +++ b/tests/bugs153/pr132080/AbstractSuperAspect.aj @@ -0,0 +1,20 @@ +/******************************************************************************* + * 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 + * + * Contributors: + * Matthew Webster initial implementation + *******************************************************************************/ + +public abstract aspect AbstractSuperAspect { + + protected abstract pointcut scope (); + + before () : execution(public static void main(String[])) && scope() { + System.out.println("? " + thisJoinPoint.getSignature()); + } +} diff --git a/tests/bugs153/pr132080/AbstractSuperAspectWithAround.aj b/tests/bugs153/pr132080/AbstractSuperAspectWithAround.aj new file mode 100644 index 000000000..15226f227 --- /dev/null +++ b/tests/bugs153/pr132080/AbstractSuperAspectWithAround.aj @@ -0,0 +1,9 @@ +public abstract aspect AbstractSuperAspectWithAround { + + protected abstract pointcut scope (); + + void around () : execution(public static void main(String[])) && scope() { + System.out.println("? " + thisJoinPoint.getSignature()); + proceed(); + } +} diff --git a/tests/bugs153/pr132080/AbstractSuperAspectWithInterface.aj b/tests/bugs153/pr132080/AbstractSuperAspectWithInterface.aj new file mode 100644 index 000000000..8182dfdf6 --- /dev/null +++ b/tests/bugs153/pr132080/AbstractSuperAspectWithInterface.aj @@ -0,0 +1,13 @@ +public abstract aspect AbstractSuperAspectWithInterface /*implements TestInterface*/ { + + protected abstract pointcut scope (); + + before () : execution(public static void main(String[])) && scope() { + System.out.println("? " + thisJoinPoint.getSignature()); + } + + protected AbstractSuperAspectWithInterface () { + TestInterface test = (TestInterface)this; + test.interfaceMethod(); + } +} diff --git a/tests/bugs153/pr132080/ConcreteAspectWithITD.aj b/tests/bugs153/pr132080/ConcreteAspectWithITD.aj new file mode 100644 index 000000000..94b82f34c --- /dev/null +++ b/tests/bugs153/pr132080/ConcreteAspectWithITD.aj @@ -0,0 +1,4 @@ +public aspect ConcreteAspectWithITD extends AbstractSuperAspectWithInterface { + protected pointcut scope () : + !within(AbstractSuperAspectWithInterface+); +} \ No newline at end of file diff --git a/tests/bugs153/pr132080/HelloWorld.java b/tests/bugs153/pr132080/HelloWorld.java new file mode 100644 index 000000000..8f62298fa --- /dev/null +++ b/tests/bugs153/pr132080/HelloWorld.java @@ -0,0 +1,11 @@ +public class HelloWorld { + + public void println () { + System.out.println("Hello World!"); + } + + public static void main (String[] args) throws Exception { + new HelloWorld().println(); + } + +} \ No newline at end of file diff --git a/tests/bugs153/pr132080/TestAdvice.aj b/tests/bugs153/pr132080/TestAdvice.aj new file mode 100644 index 000000000..f9f6453e4 --- /dev/null +++ b/tests/bugs153/pr132080/TestAdvice.aj @@ -0,0 +1,5 @@ +public aspect TestAdvice { + before () : execution(public new()) && within(!TestAdvice) { + System.out.println("? " + thisJoinPoint.getSignature()); + } +} \ No newline at end of file diff --git a/tests/bugs153/pr132080/TestAroundClosure.aj b/tests/bugs153/pr132080/TestAroundClosure.aj new file mode 100644 index 000000000..b23254576 --- /dev/null +++ b/tests/bugs153/pr132080/TestAroundClosure.aj @@ -0,0 +1,7 @@ +public aspect TestAroundClosure { + void around () : execution(public new()) && within(!TestAroundClosure) { + System.out.println("> " + thisJoinPoint.getSignature()); + proceed(); + System.out.println("< " + thisJoinPoint.getSignature()); + } +} \ No newline at end of file diff --git a/tests/bugs153/pr132080/TestITD.aj b/tests/bugs153/pr132080/TestITD.aj new file mode 100644 index 000000000..3203b82cf --- /dev/null +++ b/tests/bugs153/pr132080/TestITD.aj @@ -0,0 +1,8 @@ +public aspect TestITD { + + declare parents : AbstractSuperAspectWithInterface+ implements TestInterface; + + public void TestInterface.interfaceMethod () { + System.out.println("? void TestITD.interfaceMethod()"); + } +} \ No newline at end of file diff --git a/tests/bugs153/pr132080/TestInterface.java b/tests/bugs153/pr132080/TestInterface.java new file mode 100644 index 000000000..1c831d346 --- /dev/null +++ b/tests/bugs153/pr132080/TestInterface.java @@ -0,0 +1,3 @@ +public interface TestInterface { + public void interfaceMethod (); +} \ No newline at end of file diff --git a/tests/bugs153/pr132080/aop-advice.xml b/tests/bugs153/pr132080/aop-advice.xml new file mode 100644 index 000000000..64b554864 --- /dev/null +++ b/tests/bugs153/pr132080/aop-advice.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/tests/bugs153/pr132080/aop-aroundclosure.xml b/tests/bugs153/pr132080/aop-aroundclosure.xml new file mode 100644 index 000000000..1a2113cd9 --- /dev/null +++ b/tests/bugs153/pr132080/aop-aroundclosure.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/tests/bugs153/pr132080/aop-itd.xml b/tests/bugs153/pr132080/aop-itd.xml new file mode 100644 index 000000000..9f5c0b408 --- /dev/null +++ b/tests/bugs153/pr132080/aop-itd.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/tests/bugs153/pr149096/aop-pr149096.xml b/tests/bugs153/pr149096/aop-pr149096.xml index ba987f808..8b1584699 100644 --- a/tests/bugs153/pr149096/aop-pr149096.xml +++ b/tests/bugs153/pr149096/aop-pr149096.xml @@ -1,6 +1,6 @@ - + diff --git a/tests/src/org/aspectj/systemtest/ajc153/Ajc153Tests.java b/tests/src/org/aspectj/systemtest/ajc153/Ajc153Tests.java index bef05f716..caef4be71 100644 --- a/tests/src/org/aspectj/systemtest/ajc153/Ajc153Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc153/Ajc153Tests.java @@ -134,6 +134,22 @@ public class Ajc153Tests extends org.aspectj.testing.XMLBasedAjcTestCase { public void testNPEWithCustomAgent_pr158005() { runTest("NPE with custom agent"); } + + public void testWeaveConcreteSubaspectWithAdvice_pr132080() { + runTest("Weave concrete sub-aspect with advice"); + } + + public void testWeaveConcreteSubaspectWithITD_pr132080() { + runTest("Weave concrete sub-aspect with ITD"); + } + + public void testWeaveConcreteSubaspectWithAroundClosure_pr132080() { + runTest("Weave concrete sub-aspect with around closure"); + } + + public void testWeaveConcreteSubaspectWithCflow_pr132080() { + runTest("Weave concrete sub-aspect with cflow"); + } public void testNoInvalidAbsoluteTypeNameWarning_pr156904_1() {runTest("ensure no invalidAbsoluteTypeName when do match - 1");} public void testNoInvalidAbsoluteTypeNameWarning_pr156904_2() {runTest("ensure no invalidAbsoluteTypeName when do match - 2");} diff --git a/tests/src/org/aspectj/systemtest/ajc153/ajc153.xml b/tests/src/org/aspectj/systemtest/ajc153/ajc153.xml index 652472843..9b64b631f 100644 --- a/tests/src/org/aspectj/systemtest/ajc153/ajc153.xml +++ b/tests/src/org/aspectj/systemtest/ajc153/ajc153.xml @@ -544,4 +544,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file -- cgit v1.2.3