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
cove...@gmail.com

Reply via email to