Agree with Mark entirely. There is no reason for Weld not support this AFAIK. I 
think we agreed informally in CDI 1.1 that @Singleton is essentially identical 
to @ApplicationScoped in behaviour.

On 7 Sep 2013, at 18:22, Mark Struberg <[email protected]> wrote:

> The wording is not correct.
> 
> Each JSR-299 Container must _fully_ implement the JSR-330 specification and 
> pass the JSR-330 TCK. Thus each CDI Container MUST support 
> javax.inject.Singleton. But it's actually not really defined in detail how 
> this scope should behave. And the atinject and EE specs also define that 
> @PostConstruct and @PreDestroy must work for @Singleton beans. So this is imo 
> a bug. But otoh I personally would suggest to not use javax.inject.Singleton 
> because of the aforementioned underspecified behaviout.
> 
> LieGrue,
> strub
> 
> 
> 
> 
> ----- Original Message -----
>> From: Martin Kouba <[email protected]>
>> To: Kristoffer Sjögren <[email protected]>
>> Cc: [email protected]
>> Sent: Friday, 6 September 2013, 14:31
>> Subject: Re: [weld-dev] PostConstruct & PreDestroy in Java SE
>> 
>> Actually there's no singleton scope and corresponding built-in context
>> defined in the CDI spec. Though Weld API contains
>> org.jboss.weld.context.SingletonContext. Also the docs are outdated
>> (chapter 5.4. The singleton pseudo-scope). I think relevant classes
>> should be deprecated and the docs updated.
>> 
>> With regard to lifecycle callbacks - Weld only invalidates application
>> context during shutdown right now [1].
>> 
>> Martin
>> 
>> [1]
>> https://github.com/weld/core/blob/master/impl/src/main/java/org/jboss/weld/bootstrap/WeldRuntime.java#L56
>> 
>> Dne 6.9.2013 14:09, Kristoffer Sjögren napsal(a):
>>> Hi
>>> 
>>> We're running Weld 2.0.3.Final in a Java SE environment and have
>>> encountered a precarious situation where it seems like Weld is not
>>> consistent in handling the lifecycle of singleton beans.
>>> 
>>> We have singleton beans with @PostConstruct and @PreDestroy methods.
>>> During Weld.initialize() all @PostConstruct methods are called. But
>>> during @PreDestroy methods are never called during Weld.shutdown().
>>> @PreDestroy is only called on beans which are @ApplicationScoped.
>>> 
>>> Is this according to specification or a bug?
>>> 
>>> Cheers,
>>> -Kristoffer
>>> 
>>> 
>>> _______________________________________________
>>> weld-dev mailing list
>>> [email protected]
>>> https://lists.jboss.org/mailman/listinfo/weld-dev
>>> 
>> 
>> _______________________________________________
>> weld-dev mailing list
>> [email protected]
>> https://lists.jboss.org/mailman/listinfo/weld-dev
>> 
> 
> _______________________________________________
> weld-dev mailing list
> [email protected]
> https://lists.jboss.org/mailman/listinfo/weld-dev


_______________________________________________
weld-dev mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/weld-dev

Reply via email to