]> source.dussan.org Git - aspectj.git/commitdiff
310506: optional aspects
authoraclement <aclement>
Wed, 16 Jun 2010 18:11:52 +0000 (18:11 +0000)
committeraclement <aclement>
Wed, 16 Jun 2010 18:11:52 +0000 (18:11 +0000)
tests/bugs169/pr310506/Anno.java [new file with mode: 0644]
tests/bugs169/pr310506/AspectA.java [new file with mode: 0644]
tests/bugs169/pr310506/AspectB.java [new file with mode: 0644]
tests/bugs169/pr310506/Code.java [new file with mode: 0644]
tests/bugs169/pr310506/Code2.java [new file with mode: 0644]
tests/bugs169/pr310506/META-INF/aop.xml [new file with mode: 0644]
tests/src/org/aspectj/systemtest/ajc169/Ajc169Tests.java
tests/src/org/aspectj/systemtest/ajc169/ajc169.xml

diff --git a/tests/bugs169/pr310506/Anno.java b/tests/bugs169/pr310506/Anno.java
new file mode 100644 (file)
index 0000000..f298cf7
--- /dev/null
@@ -0,0 +1,7 @@
+package a.b.c;
+
+import java.lang.annotation.*;
+
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Anno {
+}
diff --git a/tests/bugs169/pr310506/AspectA.java b/tests/bugs169/pr310506/AspectA.java
new file mode 100644 (file)
index 0000000..95919fa
--- /dev/null
@@ -0,0 +1,5 @@
+import a.b.c.Anno;
+
+public aspect AspectA {
+  before(): execution(@Anno * *(..)) {System.out.println("A");}
+}
diff --git a/tests/bugs169/pr310506/AspectB.java b/tests/bugs169/pr310506/AspectB.java
new file mode 100644 (file)
index 0000000..6f6ac8e
--- /dev/null
@@ -0,0 +1,3 @@
+public aspect AspectB {
+  before():staticinitialization(!Aspect*) { System.out.println("staticinitialization");}
+}
diff --git a/tests/bugs169/pr310506/Code.java b/tests/bugs169/pr310506/Code.java
new file mode 100644 (file)
index 0000000..07ea252
--- /dev/null
@@ -0,0 +1,11 @@
+import java.lang.annotation.*;
+
+@Blah
+public class Code {
+  public static void main(String[] argv) {
+    System.out.println("abcde");
+  }
+}
+
+@Retention(RetentionPolicy.RUNTIME)
+@interface Blah {}
diff --git a/tests/bugs169/pr310506/Code2.java b/tests/bugs169/pr310506/Code2.java
new file mode 100644 (file)
index 0000000..bb48df6
--- /dev/null
@@ -0,0 +1,11 @@
+import java.lang.annotation.*;
+import a.b.c.*;
+
+@Anno
+public class Code2 {
+  @Anno
+  public static void main(String[] argv) {
+    System.out.println("abcde");
+  }
+}
+
diff --git a/tests/bugs169/pr310506/META-INF/aop.xml b/tests/bugs169/pr310506/META-INF/aop.xml
new file mode 100644 (file)
index 0000000..c9b57ca
--- /dev/null
@@ -0,0 +1,7 @@
+<aspectj>
+  <aspects>
+    <aspect name="AspectA" requires="a.b.c.Anno"/>
+    <aspect name="AspectB"/>
+  </aspects>
+  <weaver options="-verbose"/>
+</aspectj>
index a350ed06c4e11b6eca43956edcee54ae269d10d1..5c339c3f57aab96265bac29b91436d8ec0b26cc3 100644 (file)
@@ -18,24 +18,30 @@ import org.aspectj.testing.XMLBasedAjcTestCase;
 
 public class Ajc169Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
 
-//     public void testClashingDeclareAnnos_313026_1() {
-//             runTest("clashing declare annos");
-//     }
+       public void testOptionalAspects_pr310506() {
+               runTest("optional aspects");
+       }
+
+       public void testOptionalAspects_pr310506_2() {
+               runTest("optional aspects 2");
+       }
+
+       // public void testClashingDeclareAnnos_313026_1() {
+       // runTest("clashing declare annos");
+       // }
 
        public void testInfiniteLoop_pr315651() {
                runTest("infinite loop");
        }
-       
+
        public void testAnnoType_pr314965() {
                runTest("anno typo");
        }
-       
 
        public void testValidateBranchRecursion_314840() {
                runTest("validate branch recursion");
        }
 
-       
        public void testClassFileSize_312839_1() {
                runTest("class file size - 1");
                // 2531 (0x404): 1.6.9.M2 size of Class.class
index 3e5ba7b0ef070d41f550b54ec15a555f00d9b6d1..58a61d56e2c7733c5addbdf521c8d941e56eda7e 100644 (file)
@@ -2,6 +2,52 @@
 
 <suite>
 
+  <ajc-test dir="bugs169/pr310506" title="optional aspects">
+     <compile files="Anno.java" outjar="anno.jar" options="-1.5"/>
+     <compile files="AspectA.java" classpath="anno.jar" outjar="aspect.jar" options="-Xlint:ignore -1.5"/>
+     <compile files="AspectB.java" outjar="aspect2.jar" options="-Xlint:ignore -1.5"/>
+     <compile files="Code.java" classpath="code.jar;aspect.jar;aspect2.jar" options="-1.5"/>
+     <file deletefile="anno.jar"/>
+     <run class="Code" ltw="META-INF/aop.xml" classpath=".;aspect.jar;aspect2.jar">
+     <stderr>
+     <line text="AspectJ Weaver Version"/>
+     <line text="register classloader"/>
+     <line text="using configuration"/>
+     <line text="register aspect"/>
+     <line text="deactivating aspect"/>
+     <line text="register aspect"/>     
+     <line text="processing reweavable"/>
+     </stderr>
+     <stdout>
+     <line text="staticinitialization"/>
+     <line text="abcde"/>
+     </stdout>
+     </run>
+  </ajc-test>
+  
+  <ajc-test dir="bugs169/pr310506" title="optional aspects 2">
+     <compile files="Anno.java" outjar="anno.jar" options="-1.5"/>
+     <compile files="AspectA.java" classpath="anno.jar" outjar="aspect.jar" options="-Xlint:ignore -1.5"/>
+     <compile files="AspectB.java" outjar="aspect2.jar" options="-Xlint:ignore -1.5"/>
+     <compile files="Code.java Code2.java" classpath="anno.jar;code.jar;aspect.jar;aspect2.jar" options="-1.5"/>
+     <run class="Code2" ltw="META-INF/aop.xml" classpath=".;aspect.jar;aspect2.jar">
+     <stderr>
+     <line text="AspectJ Weaver Version"/>
+     <line text="register classloader"/>
+     <line text="using configuration"/>
+     <line text="register aspect"/>
+     <line text="register aspect"/>     
+     <line text="processing reweavable"/>
+     <line text="processing reweavable"/>
+     </stderr>
+     <stdout>
+     <line text="staticinitialization"/>
+     <line text="A"/>
+     <line text="abcde"/>
+     </stdout>
+     </run>
+  </ajc-test>
+
   <ajc-test dir="bugs169/pr315651" title="infinite loop">
      <compile files="test/Profiling.aj test/Main.java" options="-1.5"/>
      <run class="test.Main"/>