@@ -0,0 +1,24 @@ | |||
import java.lang.annotation.Retention; | |||
import java.lang.annotation.RetentionPolicy; | |||
@Retention(RetentionPolicy.RUNTIME) | |||
@interface Anno { | |||
String foo(); | |||
} | |||
@Anno(foo="anc") | |||
aspect X { | |||
//declare @method: int i: -@Anno; | |||
declare @method: int i(..): -@Anno; | |||
declare @type: X: -@Anno; | |||
declare @field: int i: -@Anno(foo="abc"); | |||
public static void main(String[] args) throws Exception { | |||
if (X.class.getDeclaredField("i").getAnnotation(Anno.class)==null) { | |||
System.out.println("not there"); | |||
} else { | |||
System.out.println("failed"); | |||
} | |||
} | |||
} |
@@ -0,0 +1,22 @@ | |||
import java.lang.annotation.Retention; | |||
import java.lang.annotation.RetentionPolicy; | |||
@Retention(RetentionPolicy.RUNTIME) | |||
@interface Anno { | |||
String foo(); | |||
} | |||
public aspect WithValues { | |||
@Anno(foo="anc") | |||
int i; | |||
declare @field: int i: -@Anno; | |||
public static void main(String[] args) throws Exception { | |||
if (WithValues.class.getDeclaredField("i").getAnnotation(Anno.class)==null) { | |||
System.out.println("not there"); | |||
} else { | |||
System.out.println("failed"); | |||
} | |||
} | |||
} |
@@ -54,6 +54,14 @@ public class NewFeatures extends org.aspectj.testing.XMLBasedAjcTestCase { | |||
runTest("declare minus - multifiles - 3"); | |||
} | |||
public void testDeclareMinusWithValues() { | |||
runTest("declare minus - with values"); | |||
} | |||
public void testDeclareMinusUnsupported() { | |||
runTest("declare minus - unsupported"); | |||
} | |||
public void testBinaryWeaving() { | |||
runTest("binary weaving"); | |||
} |
@@ -104,6 +104,22 @@ | |||
</stdout></run> | |||
</ajc-test> | |||
<ajc-test dir="features1611/declareMinus" title="declare minus - with values"> | |||
<compile files="WithValues.java" options="-1.5"/> | |||
<run class="WithValues"> | |||
<stdout> | |||
<line text="not there"/> | |||
</stdout></run> | |||
</ajc-test> | |||
<ajc-test dir="features1611/declareMinus" title="declare minus - unsupported"> | |||
<compile files="Unsupported.java" options="-1.5"> | |||
<message kind="error" line="13" text="Annotation removal only supported for declare @field (compiler limitation)"/> | |||
<message kind="error" line="14" text="Annotation removal only supported for declare @field (compiler limitation)"/> | |||
<message kind="error" line="15" text="Annotation removal does not allow values to be specified for the annotation (compiler limitation)"/> | |||
</compile> | |||
</ajc-test> | |||
<ajc-test dir="features1611/declareMinus" title="binary weaving"> | |||
<compile files="aspectjtest/AnnotationA.java aspectjtest/AnnotationB.java aspectjtest/MyEntity.java aspectjtest/HelloTest.java" outjar="code.jar" options="-1.5"/> | |||
<compile files="aspectjtest/ExampleItd.aj" inpath="code.jar" options="-1.5 -showWeaveInfo"> |