[weld-dev] standard servlet context attribute for the BeanManager

David Allen drallendc at gmail.com
Wed Mar 24 02:56:27 EDT 2010


Hi Dan,

This sounds good.  Should this be submitted to the Expert Group?

- David

Am Montag, den 22.03.2010, 15:46 -0400 schrieb Dan Allen:
> At the last Seam team meeting, the issue came up (once again) of how
> to get the BeanManager from a non-contextual resource. The reality is
> that there are certain lifecycle classes in Java EE that did not
> get categorized as components (e.g., PhaseListener) and therefore do
> not support injection. They are "outside" of CDI. We are working on an
> SPI for JSF to make these classes CDI beans, but there will always be
> other cases.
> 
> 
> In the current version of the spec, the standard way of looking up the
> BeanManager is to use JNDI. However, JNDI is not consistently
> supported in environments for which we want to write portable
> extensions (whether we like it or not, people use servlet containers).
> Weld puts the BeanManager in a servlet context attribute equal to the
> FQCN of BeanManager. Pete suggested that we submit a change request to
> have this location standardized when running in a servlet environment.
> 
> 
> With this change, the BeanManager can be obtained as follows:
> 
> 
> BeanManager manager = (BeanManager)
> getServletContext().getAttribute(BeanManager.class.getName());
> 
> 
> This requires no change in Weld, since Weld is already doing this.
> 
> 
> -Dan
> 
> -- 
> Dan Allen
> Senior Software Engineer, Red Hat | Author of Seam in Action
> Registered Linux User #231597
> 
> http://mojavelinux.com
> http://mojavelinux.com/seaminaction
> http://www.google.com/profiles/dan.j.allen
> 
> _______________________________________________
> weld-dev mailing list
> weld-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/weld-dev




More information about the weld-dev mailing list