[cdi-dev] Support Request (and Conversation?) Scope in @Singleton @Startup @PostConstruct methods

Pete Muir pmuir at redhat.com
Tue Mar 6 11:38:03 EST 2012


On 6 Mar 2012, at 13:58, Mark Struberg wrote:

> 
> 
> Folks, again and again and again: 
> 
> 
> @ConversationScoped EntityManager is broken, broken, broken. The EM is per JPA spec NOT Serializable and thus must not get stored in the Session.
> There are some impls which _are_ Serializable, but those are not JPA spec compliant (e.g. avajé eBean). With the mandatory support of locking and pessimistic locking it is just technically impossible to implement a Serializable EntityManager.

You can make this work (Seam 2 kinda did it with the Hibernate and a lot of code to deal with entities being properly propagated - basically imposing serialisation above the JVM layer) and I know the JBoss Clustering team are looking at this. But it is a vendor specific solution only.

> 
> 
> 
>>>   Moreover, quoting https://issues.jboss.org/browse/CDI-148 ("There is 
>> no reason why the ConversationScope should be any less available than the 
>> RequestScope"),
> Well, there is a difference between a Servlet-Request and a JSF-Request. The difference is subtle but important. The JSF-Request is e.g _not_ available in some ServletFilters which are outside of the JSFs FacesServlet handling. The CDI spec states this in 6.7.4:
> 
>> If the conversation associated with the current JSF request is in the transient state at the end of a JSF request,
>> it is destroyed, and the conversation context is also destroyed. 
> 
> But the Request Context lives much longer! It will also be available in various ServletFilters and Listeners. Thus the statement is not entirely correct.

I think the statement is one of intent, not state. I.e. there is no reason it should be less available.

> 
> 
>> to be allowed to use it @Singleton @Startup @PostConstruct methods.
> Of which Beans are you talking here? EJBs? CDI managed beans? Which @Singleton annotation? the one from JSR-330 or EJB?
> 
> Please also note that the JSR-330 @Singleton is imo completely useless because it's underspecified. "Singleton" in which _context_? 
> 
> 1 per WebApp?
> 
> 1 per EAR?
> 1 per JVM?
> 1 per Cluster?
> 
> 
> LieGrue,
> strub
> 
> ----- Original Message -----
>> From: Pete Muir <pmuir at redhat.com>
>> To: Guido Bonazza <guidbona at yahoo.com>
>> Cc: "cdi-dev at lists.jboss.org" <cdi-dev at lists.jboss.org>
>> Sent: Tuesday, March 6, 2012 10:30 AM
>> Subject: Re: [cdi-dev] Support Request (and Conversation?) Scope in @Singleton @Startup @PostConstruct methods
>> 
>> Please file a CDI issue :-)
>> 
>> On 2 Mar 2012, at 13:36, Guido Bonazza wrote:
>> 
>>>   Hello everyone!
>>>   Checking out the CDI 1.0 spec and actually trying it on JBoss AS 
>> 7.1.0.Final it seems to me that the Request Scope is not active in @Singleton 
>> @Startup @PostConstruct method, so I'd like to propose this use case to be 
>> supported in the next version of CDI.
>>>   Moreover, quoting https://issues.jboss.org/browse/CDI-148 ("There is 
>> no reason why the ConversationScope should be any less available than the 
>> RequestScope"), I think that conversation scope should be available too in 
>> this context. It would be very useful, for example, when you have an 
>> EntityManager produced in conversation scope (mostly used in JSF contexts), to 
>> be allowed to use it @Singleton @Startup @PostConstruct methods.
>>>   Of course there should be some limitations in this case (long running 
>> conversation promotion shouldn't be allowed for example), but the basic case 
>> should be supported in my opinion.
>>> 
>>>   Thanks for the attention,
>>>       Guido
>>> 
>>>   _______________________________________________
>>>   cdi-dev mailing list
>>>   cdi-dev at lists.jboss.org
>>>   https://lists.jboss.org/mailman/listinfo/cdi-dev
>> 
>> 
>> _______________________________________________
>> cdi-dev mailing list
>> cdi-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/cdi-dev
>> 
> 
> _______________________________________________
> cdi-dev mailing list
> cdi-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/cdi-dev




More information about the cdi-dev mailing list