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
|