I'm looking into a potential interceptor problem where the proper
behavior of transitive interceptor bindings wrt @Inherited is a bit
unclear.
Anyone care to venture a guess at the desired behavior?
Parent.java:
@Binding1
public class Parent {
public void interceptme() { } ;
}
Child.java
public class Child extends Parent {
}
Binding1.java:
@InterceptorBinding
@Inherited
@Binding2 // this binding is @inherited
@Binding3 // this binding is NOT @inherited
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Binding1 {
}
consider two interceptors:
Interceptor2 has just @Binding2
Interceptor3 has just @Binding3
Currently, OWB doesn't get us any of these interceptors in the
Child.class, but we can easily find our way to at least Interceptor2.
But I am torn as to whether this should result in both interceptors or
just Interceptor2 (whose binding is @Inherited). 9.1.1 says:
"Interceptor bindings are transitive—an interceptor binding declared
by an interceptor binding type is inherited by all beans and other
interceptor binding types that declare that interceptor binding type."
Is the @Inherited on the inner/nested binding types really not a factor here?
Thanks,
--
Eric Covener
[email protected]