From d67fa4a88535afb0e9cf44b816147e34fd8d461c Mon Sep 17 00:00:00 2001 From: aclement Date: Thu, 8 Apr 2010 21:16:12 +0000 Subject: [PATCH] 307120 --- .../pr307120_2/base/src/Advisor.java | 9 ++++++++ .../pr307120_2/base/src/Anno.java | 4 ++++ .../pr307120_2/base/src/Target.java | 4 ++++ .../pr307120_2/base/src/TargetAugmenter.java | 9 ++++++++ .../pr307120_2/inc1/src/TargetAugmenter.java | 9 ++++++++ .../tools/MultiProjectIncrementalTests.java | 21 +++++++++++++++++++ 6 files changed, 56 insertions(+) create mode 100644 tests/multiIncremental/pr307120_2/base/src/Advisor.java create mode 100644 tests/multiIncremental/pr307120_2/base/src/Anno.java create mode 100644 tests/multiIncremental/pr307120_2/base/src/Target.java create mode 100644 tests/multiIncremental/pr307120_2/base/src/TargetAugmenter.java create mode 100644 tests/multiIncremental/pr307120_2/inc1/src/TargetAugmenter.java diff --git a/tests/multiIncremental/pr307120_2/base/src/Advisor.java b/tests/multiIncremental/pr307120_2/base/src/Advisor.java new file mode 100644 index 000000000..61b7f5dc4 --- /dev/null +++ b/tests/multiIncremental/pr307120_2/base/src/Advisor.java @@ -0,0 +1,9 @@ +aspect Advisor { + Object around(Object o): get(@Anno * *) && this(o) { + return proceed(o); + } + + Object around(Object o,Object newval): set(@Anno * *) && this(o) && args(newval) { + return proceed(o,newval); + } +} diff --git a/tests/multiIncremental/pr307120_2/base/src/Anno.java b/tests/multiIncremental/pr307120_2/base/src/Anno.java new file mode 100644 index 000000000..148fd7c4c --- /dev/null +++ b/tests/multiIncremental/pr307120_2/base/src/Anno.java @@ -0,0 +1,4 @@ +import java.lang.annotation.*; + +@Retention(RetentionPolicy.RUNTIME) +@interface Anno {} diff --git a/tests/multiIncremental/pr307120_2/base/src/Target.java b/tests/multiIncremental/pr307120_2/base/src/Target.java new file mode 100644 index 000000000..dfd2ba34f --- /dev/null +++ b/tests/multiIncremental/pr307120_2/base/src/Target.java @@ -0,0 +1,4 @@ +class Target { + @Anno + private String it; +} diff --git a/tests/multiIncremental/pr307120_2/base/src/TargetAugmenter.java b/tests/multiIncremental/pr307120_2/base/src/TargetAugmenter.java new file mode 100644 index 000000000..053796796 --- /dev/null +++ b/tests/multiIncremental/pr307120_2/base/src/TargetAugmenter.java @@ -0,0 +1,9 @@ +privileged aspect TargetAugmenter { + public String Target.getIt() { + return it; + } + + public void Target.setIt(String newit) { + this.it = newit; + } +} diff --git a/tests/multiIncremental/pr307120_2/inc1/src/TargetAugmenter.java b/tests/multiIncremental/pr307120_2/inc1/src/TargetAugmenter.java new file mode 100644 index 000000000..053796796 --- /dev/null +++ b/tests/multiIncremental/pr307120_2/inc1/src/TargetAugmenter.java @@ -0,0 +1,9 @@ +privileged aspect TargetAugmenter { + public String Target.getIt() { + return it; + } + + public void Target.setIt(String newit) { + this.it = newit; + } +} diff --git a/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java b/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java index c77188fe6..b114bf7dc 100644 --- a/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java +++ b/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java @@ -256,6 +256,27 @@ public class MultiProjectIncrementalTests extends AbstractMultiProjectIncrementa assertEquals(4, getRelationshipCount(p)); } + // More sophisticated variant of above. + public void testIncrementalAdvisingItdJoinpointsAccessingPrivFields_307120_2() throws Exception { + String p = "pr307120_2"; + initialiseProject(p); + build(p); + assertNoErrors(p); + // Hid:2:(targets=1) =pr307120_2<{TargetAugmenter.java}TargetAugmenter)Target.setIt)QString; (declared on) =pr307120_2<{Target.java[Target + // Hid:8:(targets=1) =pr307120_2<{TargetAugmenter.java}TargetAugmenter)Target.getIt (declared on) =pr307120_2<{Target.java[Target + // Hid:5:(targets=2) =pr307120_2<{Target.java[Target (aspect declarations) =pr307120_2<{TargetAugmenter.java}TargetAugmenter)Target.getIt + // Hid:6:(targets=2) =pr307120_2<{Target.java[Target (aspect declarations) =pr307120_2<{TargetAugmenter.java}TargetAugmenter)Target.setIt)QString; + // Hid:1:(targets=1) =pr307120_2<{TargetAugmenter.java}TargetAugmenter)Target.setIt)QString;?field-set(java.lang.String Target.it) (advised by) =pr307120_2<{Advisor.java}Advisor&around&QObject;&QObject; + // Hid:3:(targets=1) =pr307120_2<{TargetAugmenter.java}TargetAugmenter)Target.getIt?field-get(java.lang.String Target.it) (advised by) =pr307120_2<{Advisor.java}Advisor&around&QObject; + // Hid:4:(targets=1) =pr307120_2<{Advisor.java}Advisor&around&QObject; (advises) =pr307120_2<{TargetAugmenter.java}TargetAugmenter)Target.getIt?field-get(java.lang.String Target.it) + // Hid:7:(targets=1) =pr307120_2<{Advisor.java}Advisor&around&QObject;&QObject; (advises) =pr307120_2<{TargetAugmenter.java}TargetAugmenter)Target.setIt)QString;?field-set(java.lang.String Target.it) + assertEquals(8, getRelationshipCount(p)); + alter(p, "inc1"); + build(p); + assertEquals(8, getRelationshipCount(p)); + assertNoErrors(p); + } + // modified aspect so target is fully qualified on the incremental change public void testIncrementalFqItds_280380_2() throws Exception { String p = "pr280380"; -- 2.39.5