this normally meant I didn't check by tests or code review (=AFAIK ;))
Romain Manni-Bucau Twitter: @rmannibucau Blog: http://rmannibucau.wordpress.com/ LinkedIn: http://fr.linkedin.com/in/rmannibucau Github: https://github.com/rmannibucau 2014-08-27 8:42 GMT+02:00 Lars-Fredrik Smedberg <[email protected]>: > @Romain > > Thanks, makes me understand it more. > > You scare me little when you say "normally". In what cases does it not? > Regards > Lars-Fredrik > On 27 Aug 2014 08:30, "Romain Manni-Bucau" <[email protected]> wrote: > >> normally yes >> >> >> Romain Manni-Bucau >> Twitter: @rmannibucau >> Blog: http://rmannibucau.wordpress.com/ >> LinkedIn: http://fr.linkedin.com/in/rmannibucau >> Github: https://github.com/rmannibucau >> >> >> 2014-08-27 8:00 GMT+02:00 Lars-Fredrik Smedberg <[email protected]>: >> > Good to know... >> > >> > So in the case no CDI-proxy is created the EJB-proxy will also run the >> > CDI-interceptors? >> > >> > I read that any EJB-interceptors will run after any tx has started (the >> EJB >> > or EJB-method is annotated with @TransactionAttribute). >> > >> > In the case of an CDI-proxy I assume that any CDI-interceptors will run >> > before the tx is started, is that the case? >> > >> > In the case of the CDI-interceptors being run by the EJB-proxy will they >> > then also run beefore the tx is started? >> > >> > Hope you can clarify the above, would help me alot. >> > >> > Thanks >> > Lars-Fredrik >> > >> > >> > >> > >> > On Wed, Aug 27, 2014 at 6:56 AM, Romain Manni-Bucau < >> [email protected]> >> > wrote: >> > >> >> It works but it is handled by the ejb itself, not cdi >> >> Le 26 août 2014 21:53, "Lars-Fredrik Smedberg" <[email protected]> a >> >> écrit : >> >> >> >> > @Romain >> >> > >> >> > I though that I could @Inject an EJB and apply CDI-interceptors to the >> >> EJB >> >> > or methods on it. >> >> > >> >> > Reading your answer it seems like I only can do that if the injceted >> EJB >> >> is >> >> > a scoped stateful EJB because in other cases no CDI-proxy is >> created.... >> >> > >> >> > Did I get that right or did I misunderstand you? >> >> > >> >> > Thanks >> >> > Lars-Fredrik >> >> > >> >> > >> >> > On Tue, Aug 26, 2014 at 10:46 PM, Romain Manni-Bucau < >> >> > [email protected]> >> >> > wrote: >> >> > >> >> > > no only for scoped stateful. for singleton/stateless you get the ejb >> >> > > proxy directly >> >> > > >> >> > > >> >> > > Romain Manni-Bucau >> >> > > Twitter: @rmannibucau >> >> > > Blog: http://rmannibucau.wordpress.com/ >> >> > > LinkedIn: http://fr.linkedin.com/in/rmannibucau >> >> > > Github: https://github.com/rmannibucau >> >> > > >> >> > > >> >> > > 2014-08-26 21:10 GMT+02:00 Lars-Fredrik Smedberg < >> [email protected]>: >> >> > > > Sorry for that, ofcourse I meant @Stateful, that was what we >> >> discussed >> >> > in >> >> > > > the previous posts :) >> >> > > > >> >> > > > Thinking of the CDI proxy in front of the EJB proxy makes it >> easier >> >> to >> >> > > > understand what is going on under the hood. >> >> > > > >> >> > > > A follow up question: >> >> > > > >> >> > > > - Will a CDI proxy always be created in front of the EJB proxy if >> the >> >> > EJB >> >> > > > is injected using @Inject? Or is that also the case when using >> @EJB? >> >> I >> >> > > > guess even for dependent scoped CDI beans a proxy is used to be >> able >> >> to >> >> > > > trigger interceptors etc. >> >> > > > >> >> > > > >> >> > > > Regards >> >> > > > LF >> >> > > > >> >> > > > >> >> > > > On Tue, Aug 26, 2014 at 7:06 PM, Romain Manni-Bucau < >> >> > > [email protected]> >> >> > > > wrote: >> >> > > > >> >> > > >> replace @Stateless by @Stateful and it is that >> >> > > >> >> >> > > >> cdi scope is just a proxy in front of ejb proxy >> >> > > >> >> >> > > >> >> >> > > >> Romain Manni-Bucau >> >> > > >> Twitter: @rmannibucau >> >> > > >> Blog: http://rmannibucau.wordpress.com/ >> >> > > >> LinkedIn: http://fr.linkedin.com/in/rmannibucau >> >> > > >> Github: https://github.com/rmannibucau >> >> > > >> >> >> > > >> >> >> > > >> 2014-08-26 17:54 GMT+02:00 Lars-Fredrik Smedberg < >> >> [email protected] >> >> > >: >> >> > > >> > Thanks for the answer. >> >> > > >> > >> >> > > >> > So to summarize the scoping rules from CDI apply and the >> >> concurrency >> >> > > >> > management from EJB apply when combining @Stateless and any of >> the >> >> > > >> > @NormalScopes... >> >> > > >> > >> >> > > >> > Regards >> >> > > >> > Lars-Fredrik >> >> > > >> > On 26 Aug 2014 16:50, "Romain Manni-Bucau" < >> [email protected] >> >> > >> >> > > >> wrote: >> >> > > >> > >> >> > > >> >> Hi >> >> > > >> >> >> >> > > >> >> 2014-08-26 16:45 GMT+02:00 Lars-Fredrik Smedberg < >> >> > [email protected] >> >> > > >: >> >> > > >> >> > Hi >> >> > > >> >> > >> >> > > >> >> > I have a few questions on EJB, CDI and Concurrency when I >> read >> >> > > >> >> > >> >> > http://tomee.apache.org/examples-trunk/access-timeout/README.html, >> >> > > I >> >> > > >> >> read >> >> > > >> >> > >> >> > > >> >> > - Concurrent access to a @Stateful bean is serialized by the >> >> > > >> container. >> >> > > >> >> > >> >> > > >> >> > I also understand that I can annotate the EJBs with any of >> the >> >> > > >> CDI-scopes >> >> > > >> >> > (in my case I'm interested in @RequestScoped, @SessionScoped >> >> and >> >> > > >> >> > @ApplicationScoped). >> >> > > >> >> > >> >> > > >> >> > Questions: >> >> > > >> >> > >> >> > > >> >> > 1. If I annotate the @Stateful bean with @RequestScoped I >> >> assume >> >> > > that >> >> > > >> I >> >> > > >> >> get >> >> > > >> >> > a separate bean instance for each call? Correct? >> >> > > >> >> >> >> > > >> >> yes >> >> > > >> >> >> >> > > >> >> > 2. If I annotate the @Stateful bean with @SessionScoped I >> >> assume >> >> > > that >> >> > > >> I >> >> > > >> >> per >> >> > > >> >> > sesion get a separate bean instance that allows concurrent >> >> calls >> >> > > >> withing >> >> > > >> >> > that particular session without wait? Correct? >> >> > > >> >> >> >> > > >> >> you get one instance by session and calls are serialized if >> >> needed >> >> > to >> >> > > >> >> ensure thread safety >> >> > > >> >> >> >> > > >> >> > 3. If I annotate the @Stateful bean with @ApplicationScoped >> I >> >> > > assume >> >> > > >> >> that I >> >> > > >> >> > per application get one bean instance that allows concurrent >> >> > calls >> >> > > >> >> without >> >> > > >> >> > wait? Correct? >> >> > > >> >> > >> >> > > >> >> >> >> > > >> >> same as before, thread safety is ensured >> >> > > >> >> >> >> > > >> >> > The reason I ask is that as far as I understand CDI does not >> >> have >> >> > > any >> >> > > >> >> > concurrency management but the EJB has. What will be the >> case >> >> > when >> >> > > >> doing >> >> > > >> >> as >> >> > > >> >> > above? >> >> > > >> >> > >> >> > > >> >> > Please help me get some in-depth understanding on this. >> >> > > >> >> > >> >> > > >> >> >> >> > > >> >> for @AppScoped => look @javax.ejb.Singleton and @Lock which is >> >> > surely >> >> > > >> >> better >> >> > > >> >> >> >> > > >> >> > Thanks >> >> > > >> >> > Lars-Fredrik Smedberg >> >> > > >> >> > >> >> > > >> >> > >> >> > > >> >> > >> >> > > >> >> > -- >> >> > > >> >> > 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. >> >> > > >> >> > >> >> > >> >> > >> >> > -- >> >> > 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. >>
