[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] pointcut on annotated methods

Seems to work for me just fine...
----------------------------------------------------------------------------------------------------------
public class Main {
    public static void main(String[] args){
        WiredClz wc =  new WiredClz();
        wc.doWiredMethod("x", "y");
        wc.doWiredMethod2("y");
    }
}
----------------------------------------------------------------------------------------------------------

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface WiredMethod{
}

----------------------------------------------------------------------------------------------------------
public class WiredClz{
    @WiredMethod
    public void doWiredMethod(String x, String y){
        System.out.println("do Wired Method" + x + y);
    }

    @WiredMethod
    public void doWiredMethod2(String y){
        System.out.println("do Wired Method2" + y);
    }
}

----------------------------------------------------------------------------------------------------------
public aspect WiringAspect{
    pointcut WiringMethods(Object o) : execution (@WiredMethod * *(*))
&& args(o);
    void around(Object o) : WiringMethods(o){
        System.out.println("Before");
        proceed(o);
    }
}

----------------------------------------------------------------------------------------------------------

ajc.bat -1.5 -showWeaveInfo -classpath ..\lib\aspectjrt.jar Main.java
WiredClz.java WiredMethod.java WiringAspect.aj

Join point 'method-execution(void
WiredClz.doWiredMethod2(java.lang.String))' in Type 'WiredClz'
(WiredClz.java:8) advised by around advice from 'WiringAspect'
(WiringAspect.aj:4)

----------------------------------------------------------------------------------------------------------

java.exe -classpath ".;..\lib\aspectjrt.jar" Main

do Wired Methodxy
Before
do Wired Method2y

----------------------------------------------------------------------------------------------------------

On Wed, Mar 26, 2008 at 9:16 AM, joss <jonathan.clairembault@xxxxxxxxx> wrote:
> Hi all,
>
>  I am not used to annotation mechanisms. So I would like to know why my
>  annotated methods are not woven. here is my example :
>
>  -------------------------------------------------------------------
>  import java.lang.annotation.*;
>
>  @Retention(RetentionPolicy.RUNTIME)
>  @Target(ElementType.METHOD)
>  public @interface WritingMethod {}
>  --------------------------------------------------------------------
>  pointcut writingMethodCalled(Object o):
>         execution(@WritingMethod void *(*)) &&
>         args(o);
>
>  void around(Object o): writingMethodCalled(o) {
>         // this is not executed
>         proceed(o);
>     }
>  ----------------------------------------------------------------------
>  @WritingMethod
>     public void saveBean(Object obj) {
>         System.out.println("Saved object: " + obj);
>     }
>
>  Thanks in advance,
>  Jonathan Clairembault
>  _______________________________________________
>  aspectj-users mailing list
>  aspectj-users@xxxxxxxxxxx
>  https://dev.eclipse.org/mailman/listinfo/aspectj-users
>