[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-dev] @Aspect("perthis(this(Person))")

This looks like a plain old bug. Please could you raise a bug report
and we'll get a fix published for you.

Thanks, Adrian.

On 30/08/05, Oli B. <boehm@xxxxxxxxxx> wrote:
> Hi,
> 
> when I try to translate an existing aspect into the annotation-based
> style (according the developers notebook) my example doesn't work any more:
> 
>    @Aspect("perthis(this(verwaltung.Person))")
>    public class ArbeitszeitAspekt {
>        // body: see at the end
>    }
> 
> Here the compiler says "can't do instanceof matching on patterns with
> wildcards". When I try
> 
>    @Aspect("perthis(this(Person))")
>    ...
> 
> I get no compiler message but it does not work (even if the aspect is
> also in the same package "verwaltung") - I have not the expected output
> (dead pointcut).
> 
>     @Aspect
>     ...
> 
> This works (but only as singleton and not an aspect for each Person
> object), so the rest of my aspect seems to be ok. Is this a bug (which I
> should report) or do I use the wrong syntax for the perthis statement?
> 
> kind regards
> Oliver
> 
> 
> 
> 
> 
> ==== here some additional info ====>
> 
> Mmy original aspect where I want to stop the time of the
> Person.arbeite() execution:
> 
> public aspect ArbeitszeitAspektOld perthis(this(verwaltung.Person)) {
>     long start;
>     long end;
>     //
>     void around(Person x) :
>             execution(public void Person.arbeite()) && this(x) {
>         start = System.currentTimeMillis();
>         proceed(x);
>         end = System.currentTimeMillis();
>         System.out.println("*** Arbeitszeit " + x + ": "
>                 + new Date(start)
>                 + " - " + new Date(end));
>     }
> }
> 
> And here the body of the aspect (just to complete the example)
> 
> public class ArbeitszeitAspekt {
>     long start;
>     long end;
>     //
>     @Around("execution(public void verwaltung.Person.arbeite()) && this(x)")
>     public void watchWorkingHours(ProceedingJoinPoint thisJoinPoint,
>             Person x) {
>         start = System.currentTimeMillis();
>         thisJoinPoint.proceed(new Object[] {x});
>         end = System.currentTimeMillis();
>         System.out.println("*** ARBEITSZEIT " + x + ": "
>                 + new Date(start) + " - "
>                 + new Date(end));
>     }
> }
> 
> --
> Oliver Böhm
> http://www.javatux.de
> 
> _______________________________________________
> aspectj-dev mailing list
> aspectj-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-dev
> 


-- 
-- Adrian
adrian.colyer@xxxxxxxxx