aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/multiIncremental/pr307120_2/base/src/Advisor.java9
-rw-r--r--tests/multiIncremental/pr307120_2/base/src/Anno.java4
-rw-r--r--tests/multiIncremental/pr307120_2/base/src/Target.java4
-rw-r--r--tests/multiIncremental/pr307120_2/base/src/TargetAugmenter.java9
-rw-r--r--tests/multiIncremental/pr307120_2/inc1/src/TargetAugmenter.java9
-rw-r--r--tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java21
6 files changed, 56 insertions, 0 deletions
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";