On Mar 23, 2007, at 10:43 AM, Prasad Kashyap wrote:
I have a bean with one of the methods annotated by a
@ExcludeClassInterceptor.
The bean itself has 2 class level interceptors, 1 defined as an
annotation (ClassInterceptor) and 1 specified in the DD
(DDInterceptor).
With the default ordering, everything invokes as expected and the
method gets excluded from interception.
However, if an attempt is made to change the ordering of the class
level interceptors, the @ExcludeClassInterceptor annotation seems to
be disregarded. The excluded method gets intercepted too.
See dd snippet below. If the ordering is not changed (default
ordering), the ClassInterceptor executes before the DDInterceptor.
<interceptor-binding>
<ejb-name>BasicStatelessIntercepted</ejb-name>
<interceptor-order>
<interceptor-class>
org.apache.openejb.test.interceptor.DDInterceptor
</interceptor-class>
<interceptor-class>
org.apache.openejb.test.interceptor.ClassInterceptor
</interceptor-class>
</interceptor-order>
</interceptor-binding>
This one is a toughie without the full test case to look at. The
interceptor-order is supposed to trump all other bindings at that
same level or lower (low being package, high being method), but it
should not affect the ordering of any higher bindings (in this case
method level bindings).
Put up a patch and I'll take a look.
-David