Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] [Newbie] Difference between "call" and "execution" pointcut types

Phrased somewhat differently from what Doug says,

execution matches executing code (hence is at the callee side) while call matches the calling part (the calling side).

The choice for the type definitelyy has impact on which code should be woven, but equally important is the realization that for every execution joinpoint, there can be many call joinpoints. In other words, code can only execute in one place, but called in many more places.

void doIt() {}

void doIt2() {
  doIt();
  doit();
}

execution(* doIt()) will match once
call(* doIt()) will match twice

regards,
Alef

On Mar 12, 2007, at 8:46 PM, Joshua White wrote:

All,
 
What is the difference between the "call" and "execution" pointcut types?  Is there different Signature requirements for each?
 
When I use the following:
 

execution(* com.mycompany.webservices.impl..*(..) throws java.rmi.RemoteException); 

I can advise the classes without a problem.  However, when I use:

call(* com.mycompany.webservices.impl..*(..) throws java.rmi.RemoteException); 

The actuall call gets skipped.  What's the difference between the two?

Regards,

Joshua

 
_______________________________________________
aspectj-users mailing list


Back to the top