[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [aspectj-users] Join Point Static Part
|
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 <simoneg@xxxxxxxxxx> 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 <radhakrishnan.mohan@xxxxxxxxx>
>>
>> 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 <maddalab@xxxxxxxxx>
>> 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
>> > aspectj-users@xxxxxxxxxxx
>> > https://dev.eclipse.org/mailman/listinfo/aspectj-users
>> >
>> _______________________________________________
>> aspectj-users mailing list
>> aspectj-users@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>