|
Hi Ed, You don’t have to bind all
parameters with args and you can use wildcards to match parameters (without
binding) too, e.g., pointcut firstArg(Event e) : args(e, ..);
// match the first pointcut secondArg(Event e) : args(*, e,
..); // second Also you can use args(e, ..) || args(!Event,
e, ..) || args(!Event, !Event, e, ..) to match up to n of them Informally target(e) matches the object
receiving the action (notably the object being called at a call join point or
the object owning the filed for field get and set join points). Of course more information
about all of this is available in the AspectJ programmer’s guide online or
in a good book like AspectJ in Action or Eclipse AspectJ. From:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Ed Lauder That seems to have solved the issue.
>From what I see you must know either the first and last param or list all
params for the method to join. I assume that you can pass two or more
params into the advice? What does target(e) afford you? Thanks, Ed From:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Ron Bodkin Try using args(.., e) to match this. Args matches based on position and number
of arguments. Since Event is the last argument, you need to say args(.., e) to
match any number of arguments before it then match it last. Unfortunately you
can’t say args(.., e, ..) to match an argument anywhere (maybe this will
be revised in future). From:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Please note that the following code
compiles does not get woven. If I take the event parameter out, it
compiles and gets woven. The following is the method I want to
wrapper with advice: protected static State processEvent(ClientSession
clientSession, State state, Event event)
throws com.ereinsure.commons.exception.PlatformException { … } ClientSession, State, Event all exist
within the same package and I do import those classes. here is my simplified aspect code: pointcut
callProcessEvent(Event e) : From:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Ron Bodkin Hi Ed, Can you give us some example code? Are
there any compiler warnings? Did you import the types? What is the signature of
the execute method you are hoping to match? From:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Still cant get it woven. From:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Eric Bodden You can use: pointcut notifyExecute(Event e) : in that case. (assuming “e”
is the first parameter) Eric From:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of I tried that along with target(e).
The aspect compiles but does not get woven. There are three params that get passed
into the method execute(). Do all three need to be passed into the
notifyExecute pointcut? From:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Eric Bodden Try something like… pointcut notifyExecute(Event e) : after(Event event)
returning : notifyExecute(event) {
ystem.out.println(“Event was: “+event); Eric From:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of I am trying to pass parameters from the
point cut into the after advice. My point cut gets the correct classes that
I wish woven. The problem is getting the values passed in to point cut
into the advice. Simply: pointcut notifyExecute() : after() returning :
notifyExecute() { There is an Event param that gets passed
into the execute method and I would like to get access to the object within the
after advice. |
_______________________________________________ aspectj-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/aspectj-users
