Browse Source

265695: inherited anno matching

tags/pre268419
aclement 15 years ago
parent
commit
e8309925eb

+ 35
- 0
tests/bugs164/pr265695/Asp.aj View File

@@ -0,0 +1,35 @@
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)
@interface Secured {
String value();
}

interface DemoService {
@Secured("READ")
void secureMethod();
}


class DemoServiceImpl implements DemoService {
public void secureMethod() { }
}

aspect X {
// None of these match, the subject at execution(secureMethod()) does not have the annotation
// see http://www.eclipse.org/aspectj/doc/next/adk15notebook/join-point-modifiers.html
before(): execution(@Secured * *Service+.*(..)) { }
before(): execution(@Secured * *Service.*(..)) { }

before(): execution(@Secured * DemoService.*(..)) { }
}

public class Asp {
public static void main(String[] args) {
new DemoServiceImpl().secureMethod();
}
}


+ 32
- 0
tests/bugs164/pr265695/AspNew.aj View File

@@ -0,0 +1,32 @@
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)
@interface Secured {
String value();
}

interface DemoService {
@Secured("READ")
void secureMethod();
}


class DemoServiceImpl implements DemoService {
public void secureMethod() { }
}

aspect X {
// None of these match, the subject at execution(secureMethod()) does not have the annotation
// see http://www.eclipse.org/aspectj/doc/next/adk15notebook/join-point-modifiers.html
before(): execution(@Secured! * *Service+.*(..)) { }
}

public class AspNew {
public static void main(String[] args) {
new DemoServiceImpl().secureMethod();
}
}


+ 12
- 6
tests/src/org/aspectj/systemtest/ajc164/Ajc164Tests.java View File

@@ -32,6 +32,14 @@ import org.aspectj.testing.XMLBasedAjcTestCase;

public class Ajc164Tests extends org.aspectj.testing.XMLBasedAjcTestCase {

public void testAnnoInherited_pr265695() {
runTest("anno inherited");
}

// public void testAnnoInherited_pr265695_2() {
// runTest("new syntax for inherited anno - 1");
// }

public void testParserProblemSubArrayPatterns_pr148508() {
runTest("parser problem for array subtypes");
}
@@ -43,7 +51,7 @@ public class Ajc164Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
public void testIncorrectDateResolution_pr265360() {
runTest("incorrect resolution of Date");
}
public void testDualPreClinit_pr233032() {
runTest("dual preClinit");
}
@@ -144,11 +152,9 @@ public class Ajc164Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
}

/**
* This test checks that local variable table for the interMethodDispatcher
* is built correctly, for the related code see
* IntertypeMethodDeclaration.generateDispatchMethod(). It checks non-static
* and static ITDs. Once the information here is correct then around advice
* on ITDs can also be correct.
* This test checks that local variable table for the interMethodDispatcher is built correctly, for the related code see
* IntertypeMethodDeclaration.generateDispatchMethod(). It checks non-static and static ITDs. Once the information here is
* correct then around advice on ITDs can also be correct.
*/
public void testBrokenLVT_pr194314_3() throws Exception {
runTest("broken lvt - 3");

+ 14
- 1
tests/src/org/aspectj/systemtest/ajc164/ajc164.xml View File

@@ -1,6 +1,20 @@
<!DOCTYPE suite SYSTEM "../tests/ajcTestSuite.dtd"[]>

<suite>

<ajc-test dir="bugs164/pr265695" title="anno inherited">
<compile files="Asp.aj" options="-showWeaveInfo -1.5">
<message kind="warning" line="22" text="advice defined"/>
<message kind="warning" line="24" text="advice defined"/>
<message kind="warning" line="26" text="advice defined"/>
</compile>
</ajc-test>
<ajc-test dir="bugs164/pr265695" title="new syntax for inherited anno - 1">
<compile files="AspNew.aj" options="-1.5 -showWeaveInfo">
<message kind="weave" line="22" text="foo"/>
</compile>
</ajc-test>
<ajc-test dir="bugs164/pr265418" title="varargs">
<compile files="A.java" options="-1.5"/>
@@ -21,7 +35,6 @@
<run class="PR148508">
</run>
</ajc-test>
<ajc-test dir="bugs164/pr265360" title="incorrect resolution of Date">
<compile files="Foo.java Main.java" options="-1.5">

Loading…
Cancel
Save