Thank you both. I was trying to access the NAMES and MethodSignature works for me.
On Fri, May 28, 2010 at 8:21 AM, Simone Gianni <[email protected]> wrote: > Hi Bhaskar and Mohan, > I think Bhaskar is trying to access method NAMES, not actual values. You can > access method names in AspectJ, using MethodSignature.getParameterNames .. > for example: > > void around() : test(){ > Signature s = thisJoinPointStaticPart.getSignature(); > // Warning, this means you are weaving a method, otherwise there will be > of another subclass of Signature > MethodSignature m = (MethodSignature)s; > String[] names = m.getParameterName(); > Object[] values = thisJoinPoint.getArgs(); > for (int i = 0; i < names.length; i++) { > System.out.println(names[i] + " : " + values[i]); > } > proceed(); > } > > Names are present only if target code (the class you are weaving) has been > compiled with debug symbols, which is true for 99% of java code actually > available, but still could happen that you are weaving into a third party > library which has been compiled without debug symbols. > > Simone > > 2010/5/28 Mohan Radhakrishnan <[email protected]> >> >> Hi Bhaskar, >> >> I am using a simple around advice. The argument is printed. Is this >> simiilar to what you are looking for ? >> >> pointcut test() : call( * com.test.TestClass.test1(..) ); >> >> void around() : test(){ >> >> System.out.println( thisJoinPoint.getArgs()[ 0 ] ); >> >> proceed(); >> } >> >> >> public void test1( int i){ >> } >> >> Thanks, >> Mohan >> >> On Thu, May 27, 2010 at 3:35 AM, Bhaskar Maddala <[email protected]> >> wrote: >> > Hello, >> > >> > I am trying to write a logging aspect. Something that logs method >> > arguments when the method executed. I was looking up the reflection >> > apis for aspectj and did not find anything in either StaticPart, >> > ProceedingJoinPoint or Signature that would give me the method >> > arguments names. >> > >> > As as example >> > �...@pointcut("execution(@Unit * *(..)) && @annotation(u) && >> > @within(ct) && this(cinstance)") >> > public void unit(Auditable cinstance, Container ct, Unit u) { >> > } >> > >> > �...@around(unit(ct, u)) >> > public void do(ProceedingJoinPoint pjp, Auditable cinstance, >> > Container ct, Unit u){ >> > pjp.getMethodArgNames(); //??? >> > } >> > >> > Any ideas on where I can get the method argument names? >> > >> > Thanks >> > Bhaskar >> > _______________________________________________ >> > 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 > > > _______________________________________________ > 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
