if that's async then you have no guarantee out of the box that it will work, I wouldn't bet on it without being bound to a particular container
Romain Manni-Bucau Twitter: @rmannibucau Blog: http://rmannibucau.wordpress.com/ LinkedIn: http://fr.linkedin.com/in/rmannibucau Github: https://github.com/rmannibucau 2014-09-20 23:35 GMT+02:00 Lars-Fredrik Smedberg <[email protected]>: > Hi Romain and Mark > > I was exploring the thoughts of using CDI Events to perform something like > this. > > 1. In a request start a syncrhonous task > 2. The task would at some points during the process (not always, depends on > some business decisions) send events that the starter of the task could > observe and possible change the outcome of the task. > 3. When the task is finished the request that started it returns an answer > to the client > > Another way would be to create normal listeners (normal e.g. as used in > Swing, addActionListener...) > > Is the CDI Event way something to consider (seems more elegant)? I would not > want observers of different requests (threads) see each others events. > > Regards > LF > > > > > > > > On Sat, Sep 20, 2014 at 7:46 AM, Mark Struberg <[email protected]> wrote: >> >> s/mathing/matching/g >> >> >> >> >> > On Saturday, 20 September 2014, 7:46, Mark Struberg <[email protected]> >> > wrote: >> > > Yes all beans which are in active contests and have a mathing observer >> > > method. >> > >> > >> > How does it work: >> > >> > 1.) We collect all ObserverMethods which match the type and generics >> > info >> > >> > 2.) From those ObserverMethods we filter out all which do not fit the >> > qualifier >> > >> > 3.) Then we iterate over all the ObserverMethods and do the following >> > >> > 3.1) if the Scope of the bean containing the ObserverMethod is not >> > active -> >> > skip it. (this can happen if you e.g. have a SessionScoped bean in an >> > @Scheduled >> > management thread) >> > >> > 3.2) if there is already a Contextual Instance in the Context of the >> > Scope we >> > call the observer method on that instance. >> > >> > 3.3.) if there is NO active Contextual Instance of the bean containing >> > the >> > observer method yet and the @Observes has >> > javax.enterprise.event.Reception.ALWAYS (which is the default) then we >> > will >> > first create the Contextual Instance and then call the method. >> > >> > 3.4) ATTENTION: There is a special rule for @Dependent scoped beans. For >> > those >> > we must create a NEW instance every time and after the observer method >> > returns >> > we will throw the instance away immediately. >> > If you have a @Dependent bean injected into some other normalscoped >> > beans then >> > CDI will NOT invoke the observer methods on those instances! Which >> > effectively >> > renders observing events in @Dependent beans pretty much useless. Just >> > as a side >> > note... >> > >> > >> > LieGrue, >> > strub >> > >> > >> > >> > >> >> On Friday, 19 September 2014, 23:09, Romain Manni-Bucau >> > <[email protected]> wrote: >> >> > Hi >> >> >> >> basically the scope will be the one of the observing bean. There is no >> >> filter by scope in notification triggering. >> >> >> >> >> >> Romain Manni-Bucau >> >> Twitter: @rmannibucau >> >> Blog: http://rmannibucau.wordpress.com/ >> >> LinkedIn: http://fr.linkedin.com/in/rmannibucau >> >> Github: https://github.com/rmannibucau >> >> >> >> >> >> >> >> 2014-09-19 22:00 GMT+02:00 Lars-Fredrik Smedberg >> > <[email protected]>: >> >>> Hi! >> >>> >> >>> When firing an CDI-Event, beans in what scope will be able to >> >>> @Observe >> > it? >> >>> Is it @ApplicationScoped, @SessionScoped belonging to the same >> >>> session >> > as >> >>> the one it was fired from and @RequestScoped belonging to the same >> > thread >> >> as >> >>> the one it was fired from? (We do not use any JSF and >> > @ConversationScoped >> >>> beans). >> >>> >> >>> Could someone clarify this and if possible point to some specs and >> > chapters >> >>> for me to read about it in more detail? I did look in JSR299 but I >> > might >> >>> have overlooked it. >> >>> >> >>> Thanks >> >>> Lars-Fredrik >> >>> >> >>> -- >> >>> Med vänlig hälsning / Best regards >> >>> >> >>> Lars-Fredrik Smedberg >> >>> >> >>> STATEMENT OF CONFIDENTIALITY: >> >>> The information contained in this electronic message and any >> >>> attachments to this message are intended for the exclusive use of >> >>> the >> >>> address(es) and may contain confidential or privileged information. >> >>> If >> >>> you are not the intended recipient, please notify Lars-Fredrik >> > Smedberg >> >>> immediately at [email protected], and destroy all copies of this >> >>> message and any attachments. >> >> >> > > > > > > -- > Med vänlig hälsning / Best regards > > Lars-Fredrik Smedberg > > STATEMENT OF CONFIDENTIALITY: > The information contained in this electronic message and any > attachments to this message are intended for the exclusive use of the > address(es) and may contain confidential or privileged information. If > you are not the intended recipient, please notify Lars-Fredrik Smedberg > immediately at [email protected], and destroy all copies of this > message and any attachments.
