Browse Source

annotation removal - extra checks

tags/V1_6_11M1
aclement 13 years ago
parent
commit
03de7d656f

+ 24
- 0
tests/features1611/declareMinus/Unsupported.java View File

@@ -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");
}
}
}

+ 22
- 0
tests/features1611/declareMinus/WithValues.java View File

@@ -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");
}
}
}

+ 8
- 0
tests/src/org/aspectj/systemtest/ajc1611/NewFeatures.java View File

@@ -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");
}

+ 16
- 0
tests/src/org/aspectj/systemtest/ajc1611/newfeatures-tests.xml View File

@@ -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">

Loading…
Cancel
Save