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

Pete Muir pmuir at redhat.com
Thu Apr 8 06:36:23 EDT 2010


AFAIK this isn't generally solvable (or have you got a magic bullet for us :-p), so by doing this, we just make a few more environments possible...

On 24 Mar 2010, at 07:38, Emmanuel Bernard wrote:

> But how do you solve that in SE? Or even in a web environment, more  
> and more web environment are getting away from the servlet API imposed  
> constraint.
> 
> On 24 mars 2010, at 07:56, David Allen <drallendc at gmail.com> wrote:
> 
>> 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
>> 
>> 
>> _______________________________________________
>> weld-dev mailing list
>> weld-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/weld-dev
> _______________________________________________
> 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