I would like to propose a solution for BEEHIVE-1076:

"interceptors for annotations don't get wired into generated control
beans if the annotation is at the class level"


Just to be clear this is not a bug, it is an enhancement to existing
functionality.  Since this work introduces new functionality it
becomes necessary to clearly define the behavior of class-level
interceptors in Beehive.

I prefer a simple design which is intuitive for Beehive developers, so
here's what I am proposing:

1) Use the existing Beehive annotation @InterceptorAnnotation to meta-annotate
  class-level interceptor annotations.  The only difference between a
  class-level and method-level interceptor annotation would be the type it
  annotates.  This would allow a developer to create a single interceptor
  annotation which could be used at the class or method level.

2) A class-level interceptor gets applied to each method in the class
  (including inherited methods).

3) If a method within an class is annotated with the same interceptor
  annotation as the class only the method's interceptor is fired.

4) Interceptor prioritization does not change, method-level and class-level
  interceptor priorities could still be defined in the same manner by
  controls-interceptors.config file.


Questions/Comments?  Any input is greatly appreciated.

- Thanks, Chad

Reply via email to