[jboss-dev] Common injection facilities in AS6
    Bill Burke 
    bburke at redhat.com
       
    Sun Jun 13 09:47:12 EDT 2010
    
    
  
I've run smack into a serious problem in AS6.
JAX-RS has injection annotations and I need to:
1) Inject into a JAX-RS managed POJO
2) Inject into an EJB instance
3) Inject into CDI bean instance
4) Inject into a Managed Bean instance
5) I'd also like to support Java EE annotation injection (like @EJB and 
@Resource) into a JAX-RS managed POJO
While the VDF does allow me to find out if which of these components are 
deployed within a WAR so that I easily find out which classes have 
JAX-RS annotations, I have to have different integration with each layer 
for injections.
I am not alone.  EJB has EJB specific injection annotations.  Java EE 
has common injection annotations, JAX-WS has annotations as well. 
Servlet?  There's also a multitude of component layers that need to 
support these annotations:  Managed Beans, EJB instances, servlets, 
filters, listeners, JMX Beans, JAX-WS pojos, more?
It would be cool if we had some common facility in which I could do:
Object obj = InjectionFacility.createAndInject(Class<?> someClass)
InjectionFacility.inject(someArbitraryInstance)
InjectionFacility.registerInjector(someJAXRSAnnnotationInjector)
CDI manages a lot (all?) of this.  Unfortunately, I've been told that I 
cannot leverage CDI unless it has been enabled for the deployment. 
Also, I've been told that CDI needs to do a lot of scanning and metadata 
building and it would be counter-productive to do this for each 
deployment.  So....
1) Can we find a way to use CDI as our injection facility?  Maybe 
turning off CDI scanning, but enabling its plugin and callback APIs and 
SPIs?
or
2) Can we develop a common facility that all component layers can use 
*INCLUDING* CDI so we don't have to re-invent injection for each and 
every framework?
I sincerely hope I don't have to escalate this problem to higher levels. 
  I would much rather have this be a bottom-up lead effort instead of a 
top-down enforced directive.
Bill
-- 
Bill Burke
JBoss, a division of Red Hat
http://bill.burkecentral.com
    
    
More information about the jboss-development
mailing list