@@ -0,0 +1,7 @@ | |||
package org.tests.atann; | |||
public aspect AddAnnotations { | |||
declare @method : public int *do*(..) : @Traced; | |||
} |
@@ -0,0 +1,9 @@ | |||
package org.tests.atann; | |||
public aspect AddITDDoMethod { | |||
public int TestClass.doAnother() { | |||
return 2; | |||
} | |||
} |
@@ -0,0 +1,13 @@ | |||
package org.tests.atann; | |||
public aspect InterceptTraceds { | |||
before(Traced t) : execution(@Traced * *.*(..)) && @annotation(t) { | |||
if (t != null) { | |||
System.out.println("Executing " + thisJoinPoint + " on level " + t.level()); | |||
} else { | |||
System.out.println("Annotation was null on " + thisJoinPoint); | |||
} | |||
} | |||
} |
@@ -0,0 +1,21 @@ | |||
package org.tests.atann; | |||
public class TestClass { | |||
@Traced | |||
public String doAnnotated() { | |||
return "annotated"; | |||
} | |||
public int doITDAnnotation() { | |||
return 1; | |||
} | |||
public static void main(String[] args) { | |||
TestClass tc = new TestClass(); | |||
tc.doAnnotated(); | |||
tc.doITDAnnotation(); | |||
tc.doAnother(); | |||
} | |||
} |
@@ -0,0 +1,14 @@ | |||
package org.tests.atann; | |||
import java.lang.annotation.ElementType; | |||
import java.lang.annotation.Retention; | |||
import java.lang.annotation.RetentionPolicy; | |||
import java.lang.annotation.Target; | |||
@Retention(RetentionPolicy.RUNTIME) | |||
@Target(ElementType.METHOD) | |||
public @interface Traced { | |||
String level() default "debug"; | |||
} |
@@ -18,6 +18,22 @@ import org.aspectj.testing.XMLBasedAjcTestCase; | |||
public class Ajc166Tests extends org.aspectj.testing.XMLBasedAjcTestCase { | |||
public void testMungerCCE_288635() { | |||
runTest("munger cce"); | |||
} | |||
// public void testNPEonBadAspectDecl_286375() { | |||
// runTest("npe on bad aspect decl"); | |||
// } | |||
// | |||
// public void testAnnoModifierOrdering_287597_1() { | |||
// runTest("anno modifier ordering - 1"); | |||
// } | |||
// | |||
// public void testDeclareAnnoCompoundExpression_287613() { | |||
// runTest("dec anno compound expressions"); | |||
// } | |||
public void testHasMember_284862() { | |||
runTest("npe hasmember"); | |||
} |
@@ -1,7 +1,28 @@ | |||
<!DOCTYPE suite SYSTEM "../tests/ajcTestSuite.dtd"[]> | |||
<suite> | |||
<ajc-test dir="bugs166/pr288635" title="munger cce"> | |||
<compile files="org/tests/atann/AddAnnotations.aj org/tests/atann/AddITDDoMethod.aj org/tests/atann/InterceptTraceds.aj org/tests/atann/TestClass.java org/tests/atann/Traced.java" options="-1.5"/> | |||
<run class="org.tests.atann.TestClass"/> | |||
</ajc-test> | |||
<ajc-test dir="bugs166/pr286375" title="npe on bad aspect decl"> | |||
<compile files="DatabaseOperationMonitor.java" options="-1.5" outjar="wibble.jar"/> | |||
<compile files="" inpath="wibble.jar" options="-1.5"/> | |||
</ajc-test> | |||
<ajc-test dir="bugs166/pr287597" title="anno modifier ordering - 1"> | |||
<compile files="A.java" options="-1.5 -showWeaveInfo"> | |||
<message kind="weave" text="foo"/> | |||
</compile> | |||
</ajc-test> | |||
<ajc-test dir="bugs166/pr287613" title="dec anno compound expressions"> | |||
<compile files="DeclareAnnot.java" options="-1.5"/> | |||
</ajc-test> | |||
<ajc-test dir="bugs166/pr284862" title="npe hasmember"> | |||
<compile files="InterfaceToAdd.java AnnotatedMethodImpl.aj AspectToMatch.aj AnnotatedMethodInterface.java Entity.java EntityClass.java PresentAnnotation.java SearchAnnotation.java" options="-1.5 -XhasMember"/> | |||
</ajc-test> |