@@ -1,6 +1,7 @@ | |||
package a; | |||
import org.aspectj.lang.annotation.SuppressAjWarnings; | |||
import java.lang.annotation.Annotation; | |||
@TypeAnnotation | |||
public aspect AnnotatedAspect05 { | |||
@@ -21,7 +22,18 @@ public aspect AnnotatedAspect05 { | |||
@MethodAnnotation | |||
@SuppressAjWarnings | |||
void around() : call(new(..)) { proceed(); } | |||
Object around() : call(new(..)) { return proceed(); } | |||
public static void main(String[] args) { | |||
java.lang.reflect.Method[] methods = AnnotatedAspect05.class.getDeclaredMethods(); | |||
for (int i = 0; i < methods.length; i++) { | |||
if (methods[i].getName().startsWith("ajc$afterThrowing")) { | |||
Annotation annotation = methods[i].getAnnotation(AnyAnnotation.class); | |||
if (annotation == null) { | |||
throw new RuntimeException("advice should be annotated"); | |||
} | |||
} | |||
} | |||
} | |||
} | |||
@@ -11,9 +11,6 @@ | |||
package org.aspectj.systemtest.ajc150; | |||
import java.io.File; | |||
import java.lang.annotation.Annotation; | |||
import java.net.URL; | |||
import java.net.URLClassLoader; | |||
import junit.framework.Test; | |||
@@ -88,21 +85,6 @@ public class Annotations extends XMLBasedAjcTestCase { | |||
public void testAnnotatedAdvice() { | |||
runTest("annotated advice"); | |||
try { | |||
File classFile = new File(ajc.getSandboxDirectory(),"a/AnnotatedAspect05.class"); | |||
ClassLoader cl = new URLClassLoader(new URL[] {ajc.getSandboxDirectory().toURI().toURL()}); | |||
Class c = cl.loadClass("a.AnnotatedAspect05"); | |||
Class ann = cl.loadClass("a.AnyAnnotation"); | |||
java.lang.reflect.Method[] methods = c.getDeclaredMethods(); | |||
for (int i = 0; i < methods.length; i++) { | |||
if (methods[i].getName().startsWith("ajc$afterThrowing")) { | |||
Annotation annotation = methods[i].getAnnotation(ann); | |||
assertNotNull("Should have @AnyAnnotation",annotation); | |||
} | |||
} | |||
} catch (Exception ex) { | |||
fail(ex.getMessage()); | |||
} | |||
} | |||
public void testAnnotatedAdviceWithWrongAnnotationType() { |
@@ -994,8 +994,9 @@ | |||
<ajc-test dir="java5/annotations/aspectMembers" title="annotated advice"> | |||
<compile files="a/Annotations.java,a/AnnotatedAspect05.aj" options="-1.5"> | |||
<message kind="warning" line="16"/> | |||
<message kind="warning" line="17"/> | |||
</compile> | |||
<run class="a.AnnotatedAspect05"/> | |||
</ajc-test> | |||
<ajc-test dir="java5/annotations/aspectMembers" title="annotated advice with bad target"> |