Hi,

I'm an AspectJ beginner and have the following problem:

I want to add an aspect after a method call but only when it is done in a
certain context (see following pseudo-code):

class Dispatcher:

public void dispatch(MessageInvocation invocation)  {
        new Thread(new Runnable() {
           @Override
            public void run() {
                // do some stuff...
                do {
                    if (lock.tryLock()) {
                        try {
                            messageInvocation.invoke();
                        } finally {
                          lock.unlock()
                        }
                      }
               } while (someCondition)
            }
        }).start();

I want to intercept the invoke() method of MethodInvocation, but only when
it is called in the context of the dispatch method in class Dispatch. Is
this possible? I tried to use within / withincode but without success - but
maybe I'm just getting the pointcut definition wrong (I use Annotation
style):

@After("execution(* my.package.MessageInvocation.
invoke(..)) && withincode(* Dispatcher.dispatch(..))")

Any help appreciated.
Thanks
Michael Kober
_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to