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
