Please raise a bug and I'll look into it - what you are looking to do seems reasonable.
Andy. 2009/2/18 Meyer, Yang <[email protected]> > Hi, > > > > I want to advise certain methods with an arbitrary number of formal > parameters which have arbitrary types. > > > > My advice calls a method foo(…) that runs in another JVM, so I cannot use > proceed(…); therefore I use reflection to invoke the method originally > called. I am trying to use AspectJ's varargs support to pass the arguments > (all of them!) on to foo(…), like this: > > > > void around(Object[] varargs) : > > call(* IPersistenceServices+.*(*Object**+...*)) && > args(varargs) { > > System.out.println("Advice got woven!"); > > myServer.foo(varargs); > > } > > > > Note the underlined part. This syntax (Object+…) seems to be in accordance > with the grammar described in the AspectJ/ADK 1.5 Notebook: > > > http://www.eclipse.org/aspectj/doc/released/adk15notebook/annotations-pointcuts-and-advice.html#signaturePatterns > > (MethodPattern => FormalsPattern => TypePattern '…' => SimpleTypePattern) > > > > However, the Eclipse IDE complains about a syntax error, and my aspect > isn't woven. I am using the 1.6.1 runtime with Equinox Aspects. > > > > Of course I could only match on (Object...), i.e. without the plus, but > that would mean constraining all methods that I want to advise to declare an > (Object...) formal parameter, instead of e.g. (String...) or > (MyType...)However this would really be subpar, so it'd be great to have > something like > the pointcut above. > > > > Is the "TypeName+…" syntax and behavior simply not supported, or am I just > doing it wrong? > > > > Thanks for any clarification or suggestions, > > Yang > > _______________________________________________ > aspectj-users mailing list > [email protected] > https://dev.eclipse.org/mailman/listinfo/aspectj-users > >
_______________________________________________ aspectj-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/aspectj-users
