Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-users] args() evaluation and around advice interaction

Hello

I have come across a puzzling behavior of aspectJ
1.1.1. Was surprised to find out that aspectJ 1.1.1
has no provision to advice a mix of around and
before/after advice, all defined to have same
parameter types.

More specifically, in the following sample, inside the
"other_aspect", if we replace args(x, y, ..) with
(just) an args(x, y), the around advice in 
"some_aspect" escapes interception. The
(invisible/implicit) AroundClosure parameter of an
around advice seems to come in the way of args()
matching. Is this the documented
behavior? If it so, isn't it somewhat annoying?

-------------------------------------------------------
aspect some_aspect {
  pointcut call_m(int a, int b) : 
             call(int test.m(..)) && args(a, b);

  before(int x, int y) : call_m(x, y) { ...  }
  int around(int x, int y) : call_m(x, y) { ... }
}

aspect other_aspect {
  before(int x, int y) : 
      adviceexecution() && within(some_aspect) && 
                                      args(x, y, ..){ 
        ...
      }
}
-------------------------------------------------------

Thanks



	
		
__________________________________
Do you Yahoo!?
Yahoo! Photos: High-quality 4x6 digital prints for 25ยข
http://photos.yahoo.com/ph/print_splash


Back to the top