]> source.dussan.org Git - aspectj.git/commitdiff
328121
authoraclement <aclement>
Thu, 28 Apr 2011 19:59:35 +0000 (19:59 +0000)
committeraclement <aclement>
Thu, 28 Apr 2011 19:59:35 +0000 (19:59 +0000)
tests/multiIncremental/pr328121/base/src/TestRequirements/TestRequirements.java [new file with mode: 0644]
tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java

diff --git a/tests/multiIncremental/pr328121/base/src/TestRequirements/TestRequirements.java b/tests/multiIncremental/pr328121/base/src/TestRequirements/TestRequirements.java
new file mode 100644 (file)
index 0000000..3d4c29f
--- /dev/null
@@ -0,0 +1,33 @@
+package TestRequirements;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface AnnotatedMethod {}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface NewAnnotatedMethod {
+    boolean newValue();
+}
+
+aspect X {
+    declare @method: !@AnnotatedMethod * TestRequirements.*(..) : @NewAnnotatedMethod(newValue = true);
+}
+
+public class TestRequirements {
+    @AnnotatedMethod
+    public void dontMatchMe() {}
+
+    public void matchMe() {}
+
+  public static void foo() throws Exception {
+    if (TestRequirements.class.getDeclaredMethod("dontMatchMe").getAnnotation(NewAnnotatedMethod.class)!=null) {
+      throw new IllegalStateException();
+    }
+    if (TestRequirements.class.getDeclaredMethod("matchMe").getAnnotation(NewAnnotatedMethod.class)==null) {
+      throw new IllegalStateException();
+    }
+  }
+}
index 5408f7ae2791bf45b6e1c59c03c67c83ff8b2aef..71d5d876ffdba4cfaad95c55d0a196f74627f96b 100644 (file)
@@ -67,6 +67,17 @@ import org.aspectj.weaver.World;
  */
 public class MultiProjectIncrementalTests extends AbstractMultiProjectIncrementalAjdeInteractionTestbed {
 
+       public void testMissingRel_328121() throws Exception {
+               String p = "pr328121";
+               initialiseProject(p);
+               build(p);
+               checkWasFullBuild();
+               assertNoErrors(p);
+               // Check the annotations:
+               runMethod(p,"TestRequirements.TestRequirements","foo");
+               assertEquals(4,getRelationshipCount(p));
+       }
+       
        public void testEncoding_pr290741() throws Exception {
                String p = "pr290741";
                initialiseProject(p);