You need to set the retention policy on your annotations: http://www.java2s.com/Tutorial/Java/0020__Language/SpecifyingaRetentionPolicy.htm
regards, Wim 2009/5/11 Villazón Alex <[email protected]> > Hi, > We want to use annotations for advices and methods defined in the aspect. > We need to post process the compiled aspect. Therefore, we need that the > compiler keeps user-defined annotations. > > I tried to add annotations with standard AspectJ, and it seems that the > compiler keeps them. At least, the bytecode shows 1 annotation for doiIt() > and 2 annotations for ajc$before...(). I guess AspectJ already makes use of > annotations for advices...(??) > > import java.lang.annotation.*; > @Target(ElementType.METHOD) > public @interface Test_Target { > public String doTestTarget(); > } > > import java.lang.annotation.*; > aspect Foo { > @Test_Target(doTestTarget="a method") > public void doIt() { > System.out.print("do it"); > } > > @Test_Target(doTestTarget="an advice") > before() : call(* *.*(..)) && !within(Foo) { > System.out.println(thisJoinPoint); > doIt(); > } > } > > > Then, I tried @AspectJ, and I think my annotations were removed by the > compiler... The compiled bytecode of the aspect has exactly the same > annotation entries (RuntimeVisibleAnnotation) with or without my > annotations. > > import org.aspectj.lang.annotation.*; > import org.aspectj.lang.*; > @Aspect > public class Foo { > > @Pointcut("call(* *.*(..)) && !within(Foo)") > void anyCall() {} > > @Test_Target(doTestTarget="a method") // removed?? > public void doIt() { > System.out.println("doIt"); > } > > @Test_Target(doTestTarget="an advice") // removed??? > @Before("anyCall()") > public void beforeAnyCall(JoinPoint jp) { > System.out.println(jp); > doIt(); > } > } > > Is there a way to make ajc to keep user-redined annotations with @AspectJ ? > Did I wrongly used my annotations? or should I keep using AspectJ, instead > of @AspectJ ? > > > Many thanks, > > Alex > > > _______________________________________________ > aspectj-users mailing list > [email protected] > https://dev.eclipse.org/mailman/listinfo/aspectj-users >
_______________________________________________ aspectj-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/aspectj-users
