No, I don't expect users to read the TCK - but it's binding for the container vendors.
Again: I completely agree with Martin with his advice to not use @javax.inject.Singleton in CDI projects as it is really underspecified in JSR-330 already. And JSR-299 does not add any wording to make things more clear. But the fuzzyness around @Singleton is mainly about it's lifecycle, etc. The requirement for @PostConstruct and @PreDestroy support is otoh actually pretty well defined in atinject imo. LieGrue, strub >________________________________ > From: Kristoffer Sjögren <[email protected]> >To: Mark Struberg <[email protected]> >Cc: Martin Kouba <[email protected]>; "[email protected]" ><[email protected]> >Sent: Saturday, 7 September 2013, 21:11 >Subject: Re: [weld-dev] PostConstruct & PreDestroy in Java SE > > > >http://docs.jboss.org/cdi/spec/1.1/cdi-spec.pdf "1.2.4 Relationship to >Dependency Injection for Java" is what you referring to I suppose? But there >is no telling how to use it. Also, its a bit unfortunate that we have two >Singleton annotations, begging for confusion. > > >Nevermind vagueness, but do you expect users to read the TCK? Not trying >criticize, there may be room for improvement here no? > > > > > > >On Sat, Sep 7, 2013 at 8:57 PM, Mark Struberg <[email protected]> wrote: > > >> >>No, the TCK is part of the deliverable for the specification. As is the API >>JavaDoc. >> >>Also the spec mentions the 'Injection for Java' specification (== JSR-330) as >>reference. >> >> >>LieGrue, >>strub >> >> >> >>>________________________________ >>> From: Kristoffer Sjögren <[email protected]> >>>To: Mark Struberg <[email protected]> >>>Cc: Martin Kouba <[email protected]>; "[email protected]" >>><[email protected]> >>>Sent: Saturday, 7 September 2013, 20:54 >> >>>Subject: Re: [weld-dev] PostConstruct & PreDestroy in Java SE >>> >>> >>> >>>Alright, the specification and TCK is inconsistent. But as a user, I dont >>>care about the TCK and it does not make sense to enforce requirements on the >>>specification in the TCK. For users, strictly speaking, anything not stated >>>in the specification is unsupported. Correct? >>> >>> >>> >>> >>> >>> >>> >>> >>> >>>On Sat, Sep 7, 2013 at 8:03 PM, Mark Struberg <[email protected]> wrote: >>> >>>And before there are any questions: it's not directly stated inside the CDI >>>spec but in the TCK documentation: >>>> >>>>http://docs.jboss.org/cdi/tck/reference/1.0.4.SP1/pdf/jsr299-tck-reference-guide.pdf >>>> >>>>"JSR-330 - CDI builds on JSR-330, and as such JSR-299 implementations must >>>>additionally pass the JSR-330 TCK." >>>> >>>>again: I agree with Martin that you should better not use it. But it should >>>>work nontheless. >>>> >>>> >>>>LieGrue, >>>>strub >>>> >>>> >>>> >>>> >>>>----- Original Message ----- >>>> >>>>> From: Mark Struberg <[email protected]> >>>>> To: Martin Kouba <[email protected]>; Kristoffer Sjögren >>>>> <[email protected]> >>>>> Cc: "[email protected]" <[email protected]> >>>>> Sent: Saturday, 7 September 2013, 19:22 >>>>> Subject: Re: [weld-dev] PostConstruct & PreDestroy in Java SE >>>>> >>>>>T he 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
