diff options
9 files changed, 150 insertions, 0 deletions
diff --git a/tests/multiIncremental/pr284771/base/src/test/AspectTrace.aj b/tests/multiIncremental/pr284771/base/src/test/AspectTrace.aj new file mode 100644 index 000000000..7a2296f29 --- /dev/null +++ b/tests/multiIncremental/pr284771/base/src/test/AspectTrace.aj @@ -0,0 +1,31 @@ +package test; +import test.ChildInt; +import test.Parent; +import test.ParentInt; + + +public aspect AspectTrace { + + + public pointcut p1(): execution(* test.Parent+.do*(..)); + public pointcut p2(): withincode(* test.Parent+.do*(..)) && this(test.Parent+); + + public pointcut p3() : execution(* test.ParentInt.*(..)); + public pointcut p4() : execution(* test.ChildInt.*(..)); + + before() : p1() { + System.out.println("p1" + thisJoinPoint); + } + +// before() : p2(){ +// System.out.println("p2" + thisJoinPoint); +// } +// + before() : p3() { + System.out.println("p3" + thisJoinPoint); + } +// +// before() : p4() { +// System.out.println("p4" + thisJoinPoint); +// } +} diff --git a/tests/multiIncremental/pr284771/base/src/test/Child.java b/tests/multiIncremental/pr284771/base/src/test/Child.java new file mode 100644 index 000000000..67e91d5b4 --- /dev/null +++ b/tests/multiIncremental/pr284771/base/src/test/Child.java @@ -0,0 +1,13 @@ +package test; + +public class Child extends Parent { + + public static void doTT(String o){ + System.out.println("child"); + } + + public static void main(String[] args) { + new Child().doTT("kkk"); + } + +} diff --git a/tests/multiIncremental/pr284771/base/src/test/ChildInt.java b/tests/multiIncremental/pr284771/base/src/test/ChildInt.java new file mode 100644 index 000000000..80204c9bd --- /dev/null +++ b/tests/multiIncremental/pr284771/base/src/test/ChildInt.java @@ -0,0 +1,7 @@ +package test; + +public interface ChildInt extends ParentInt { + + public void doNewTT(String o); + public void doNewXX(String o); +} diff --git a/tests/multiIncremental/pr284771/base/src/test/ChildIntObj.java b/tests/multiIncremental/pr284771/base/src/test/ChildIntObj.java new file mode 100644 index 000000000..cded69dc0 --- /dev/null +++ b/tests/multiIncremental/pr284771/base/src/test/ChildIntObj.java @@ -0,0 +1,23 @@ +package test; + +public class ChildIntObj implements ChildInt { + + public void doNewTT(String o) { + // TODO Auto-generated method stub + + System.out.println("ChildIntObj.doNewTT"); + + } + + public void doNewXX(String o) { + // TODO Auto-generated method stub + System.out.println("ChildIntObj.doNewXX"); + } + + public static void main(String[] args) { + new ChildIntObj().doNewTT(""); + + new ChildIntObj().doNewXX(""); + } + +} diff --git a/tests/multiIncremental/pr284771/base/src/test/Logger.aj b/tests/multiIncremental/pr284771/base/src/test/Logger.aj new file mode 100644 index 000000000..98ac9d2a3 --- /dev/null +++ b/tests/multiIncremental/pr284771/base/src/test/Logger.aj @@ -0,0 +1,24 @@ +package test; + +public aspect Logger { + + //declare precedence: Logger, ErrorContainment; +// +// before() : adviceexecution() && !within(Logger){ +// +// System.out.println("--->Logger:" + thisJoinPoint); +// +// } +// +// after() : adviceexecution() && !within(Logger) { +// +// System.out.println("--->Logger:" + thisJoinPoint); +// +// } + + + before(): execution(* hk..*.do*(..)){ + System.out.println("This is a test"); + } + +} diff --git a/tests/multiIncremental/pr284771/base/src/test/Parent.java b/tests/multiIncremental/pr284771/base/src/test/Parent.java new file mode 100644 index 000000000..2d8a33852 --- /dev/null +++ b/tests/multiIncremental/pr284771/base/src/test/Parent.java @@ -0,0 +1,15 @@ +package test; + +public class Parent { + + public static void doTT(String o){ + + System.out.println("parent"); + + } + + + public static void main(String[] args) { + new Parent().doTT("kkk"); + } +} diff --git a/tests/multiIncremental/pr284771/base/src/test/ParentInt.java b/tests/multiIncremental/pr284771/base/src/test/ParentInt.java new file mode 100644 index 000000000..3b4be4a8b --- /dev/null +++ b/tests/multiIncremental/pr284771/base/src/test/ParentInt.java @@ -0,0 +1,7 @@ +package test; + +public interface ParentInt { + + public void doNewTT(String o); + +} diff --git a/tests/multiIncremental/pr284771/base/src/test/ParentIntObj.java b/tests/multiIncremental/pr284771/base/src/test/ParentIntObj.java new file mode 100644 index 000000000..6ef4aeb9f --- /dev/null +++ b/tests/multiIncremental/pr284771/base/src/test/ParentIntObj.java @@ -0,0 +1,16 @@ +package test; + +public class ParentIntObj implements ParentInt { + + public void doNewTT(String o) { + // TODO Auto-generated method stub + + System.out.println("ParentIntObj"); + + } + + public static void main(String[] args) { + new ParentIntObj().doNewTT(""); + } + +} diff --git a/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java b/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java index f66f7908d..9e01a5694 100644 --- a/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java +++ b/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java @@ -91,6 +91,20 @@ public class MultiProjectIncrementalTests extends AbstractMultiProjectIncrementa // *cough* third error, hmmm } + public void testAdviceHandles_pr284771() throws Exception { + String p = "pr284771"; + initialiseProject(p); + build(p); + printModel(p); + IRelationshipMap irm = getModelFor(p).getRelationshipMap(); + List rels = irm.get("=pr284771<test*AspectTrace.aj}AspectTrace&before"); + assertNotNull(rels); + assertEquals(2, ((Relationship) rels.get(0)).getTargets().size()); + rels = irm.get("=pr284771<test*AspectTrace.aj}AspectTrace&before!2"); + assertNotNull(rels); + assertEquals(2, ((Relationship) rels.get(0)).getTargets().size()); + } + // TODO (asc) these tests don't actually verify anything! // public void testAtDeclareParents_280658() throws Exception { // AjdeInteractionTestbed.VERBOSE = true; |