<div dir="ltr">Good point. What I tried to sketch out from my example here was mapping a &quot;JMS container listener&quot; (MDB) to a &quot;business&quot; or &quot;user&quot; listener making sense for the business logic of a particular application domain.<div> <div class="gmail_extra"><div><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><p style="margin:0px;font-size:13px;border-collapse:collapse"><span lang="EN-US" style="font-family:Calibri">Werner</span></p></div></div></div></div></div></div></div></div></div></div></div>
<br><div class="gmail_quote">On Wed, Aug 26, 2015 at 12:10 PM,  <span dir="ltr">&lt;<a href="mailto:cdi-dev-request@lists.jboss.org" target="_blank">cdi-dev-request@lists.jboss.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Send cdi-dev mailing list submissions to<br>
        <a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a><br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
        <a href="https://lists.jboss.org/mailman/listinfo/cdi-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/cdi-dev</a><br>
or, via email, send a message with subject or body &#39;help&#39; to<br>
        <a href="mailto:cdi-dev-request@lists.jboss.org">cdi-dev-request@lists.jboss.org</a><br>
<br>
You can reach the person managing the list at<br>
        <a href="mailto:cdi-dev-owner@lists.jboss.org">cdi-dev-owner@lists.jboss.org</a><br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than &quot;Re: Contents of cdi-dev digest...&quot;<br>
<br>
<br>
Today&#39;s Topics:<br>
<br>
   1. Re: JMS 2.1: Proposal to allow any CDI managed bean in a Java<br>
      EE application to listen for JMS messages (Nigel Deakin)<br>
   2. Re: JMS 2.1: Proposal to allow any CDI managed bean in a Java<br>
      EE application to listen for JMS messages (Romain Manni-Bucau)<br>
   3. Re: JMS 2.1: Proposal to allow any CDI managed bean in a Java<br>
      EE application to listen for JMS messages (arjan tijms)<br>
   4. Re: JMS 2.1: Proposal to allow any CDI managed bean in a Java<br>
      EE application to listen for JMS messages (Werner Keil)<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Wed, 26 Aug 2015 10:43:40 +0100<br>
From: Nigel Deakin &lt;<a href="mailto:nigel.deakin@oracle.com">nigel.deakin@oracle.com</a>&gt;<br>
Subject: Re: [cdi-dev] JMS 2.1: Proposal to allow any CDI managed bean<br>
        in a Java EE application to listen for JMS messages<br>
To: Jozef Hartinger &lt;<a href="mailto:jharting@redhat.com">jharting@redhat.com</a>&gt;,      Romain Manni-Bucau<br>
        &lt;<a href="mailto:rmannibucau@gmail.com">rmannibucau@gmail.com</a>&gt;<br>
Cc: cdi-dev &lt;<a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a>&gt;<br>
Message-ID: &lt;<a href="mailto:55DD8A4C.7050107@oracle.com">55DD8A4C.7050107@oracle.com</a>&gt;<br>
Content-Type: text/plain; charset=windows-1252; format=flowed<br>
<br>
 &gt; On 25.08.2015 16:05, Romain Manni-Bucau wrote:<br>
 &gt;&gt;<br>
 &gt;&gt; For this last case a really elegant solution would be to just reuse<br>
 &gt;&gt; @Observes to fire the message from the jms &quot;container&quot; listener and<br>
 &gt;&gt; propagate it to the &quot;user&quot; listener. This would then allow to decouple<br>
 &gt;&gt; the application listener from JMS.<br>
<br>
On 25/08/2015 15:26, Jozef Hartinger wrote:<br>
&gt; Agreed. I think we should leverage the existing CDI event/observer functionality instead of introducing a completely new<br>
&gt; delivery mechanism.<br>
<br>
Can you please say a bit more about what you have in mind?<br>
<br>
Romain suggests using events to invoke the &quot;user&quot; listener from the &quot;JMS container listener&quot;.<br>
That&#39;s a useful distinction. Just to clarify the terminology:<br>
<br>
&quot;user&quot; listener = listener bean provided by the application<br>
&quot;JMS container listener&quot; = JMS consumer provided by the application server or resource adapter<br>
<br>
There needs to be one consumer for every listener bean since the two need to have the same lifecycle, and also so we can<br>
implement JMS queue sematics which require that a message from a queue is delivered to one and only one listener.<br>
<br>
The transaction needs to be started by the consumer before invoking the listener and ended after the listener returns.<br>
This allows the acknowledgement of the message (which is performed by the consumer) to take place in the same<br>
transaction as is used by the listener&#39;s method.<br>
<br>
Currently I&#39;m proposing that the &quot;consumer&quot; invokes the &quot;listener&quot; by a simple method call. I suppose instead of simply<br>
invoking the method it could fire a synchronous event, which only the associated listener instance would receive, but<br>
I&#39;m not sure what the benefit of this would be. Since JMS semantics are very different from CDI event semantics I think<br>
there&#39;s a danger that this will be confusing, since the user might think they were getting CDI event semantics, but they<br>
were actually getting JMS semantics.<br>
<br>
Since this is a bit of a FAQ, it might be useful to explore the differences between the two semantics, but currently<br>
they seem profoundly different to me. That&#39;s why my proposals are built on the CDI bean lifecycle model but not the CDI<br>
event observer model.<br>
<br>
Nigel<br>
<br>
<br>
<br>
------------------------------<br>
<br>
Message: 2<br>
Date: Wed, 26 Aug 2015 11:46:57 +0200<br>
From: Romain Manni-Bucau &lt;<a href="mailto:rmannibucau@gmail.com">rmannibucau@gmail.com</a>&gt;<br>
Subject: Re: [cdi-dev] JMS 2.1: Proposal to allow any CDI managed bean<br>
        in a Java EE application to listen for JMS messages<br>
To: Nigel Deakin &lt;<a href="mailto:nigel.deakin@oracle.com">nigel.deakin@oracle.com</a>&gt;<br>
Cc: cdi-dev &lt;<a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a>&gt;<br>
Message-ID:<br>
        &lt;CACLE=7MYErwNimYDz=<a href="mailto:5C5%2BxD5MFV-T8M6wjyw9Ax8p59T6Z2ww@mail.gmail.com">5C5+xD5MFV-T8M6wjyw9Ax8p59T6Z2ww@mail.gmail.com</a>&gt;<br>
Content-Type: text/plain; charset=&quot;utf-8&quot;<br>
<br>
Something I didnt think before but if you can register a method reference<br>
then CDI event system starts to be useless:<br>
<br>
xxx.register(myCdiBean::listenOn);<br>
<br>
can be something to investigate API wise maybe<br>
<br>
<br>
Romain Manni-Bucau<br>
@rmannibucau &lt;<a href="https://twitter.com/rmannibucau" rel="noreferrer" target="_blank">https://twitter.com/rmannibucau</a>&gt; |  Blog<br>
&lt;<a href="http://rmannibucau.wordpress.com" rel="noreferrer" target="_blank">http://rmannibucau.wordpress.com</a>&gt; | Github &lt;<a href="https://github.com/rmannibucau" rel="noreferrer" target="_blank">https://github.com/rmannibucau</a>&gt; |<br>
LinkedIn &lt;<a href="https://www.linkedin.com/in/rmannibucau" rel="noreferrer" target="_blank">https://www.linkedin.com/in/rmannibucau</a>&gt; | Tomitriber<br>
&lt;<a href="http://www.tomitribe.com" rel="noreferrer" target="_blank">http://www.tomitribe.com</a>&gt;<br>
<br>
2015-08-26 11:43 GMT+02:00 Nigel Deakin &lt;<a href="mailto:nigel.deakin@oracle.com">nigel.deakin@oracle.com</a>&gt;:<br>
<br>
&gt; &gt; On 25.08.2015 16:05, Romain Manni-Bucau wrote:<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; For this last case a really elegant solution would be to just reuse<br>
&gt; &gt;&gt; @Observes to fire the message from the jms &quot;container&quot; listener and<br>
&gt; &gt;&gt; propagate it to the &quot;user&quot; listener. This would then allow to decouple<br>
&gt; &gt;&gt; the application listener from JMS.<br>
&gt;<br>
&gt; On 25/08/2015 15:26, Jozef Hartinger wrote:<br>
&gt;<br>
&gt;&gt; Agreed. I think we should leverage the existing CDI event/observer<br>
&gt;&gt; functionality instead of introducing a completely new<br>
&gt;&gt; delivery mechanism.<br>
&gt;&gt;<br>
&gt;<br>
&gt; Can you please say a bit more about what you have in mind?<br>
&gt;<br>
&gt; Romain suggests using events to invoke the &quot;user&quot; listener from the &quot;JMS<br>
&gt; container listener&quot;.<br>
&gt; That&#39;s a useful distinction. Just to clarify the terminology:<br>
&gt;<br>
&gt; &quot;user&quot; listener = listener bean provided by the application<br>
&gt; &quot;JMS container listener&quot; = JMS consumer provided by the application server<br>
&gt; or resource adapter<br>
&gt;<br>
&gt; There needs to be one consumer for every listener bean since the two need<br>
&gt; to have the same lifecycle, and also so we can implement JMS queue sematics<br>
&gt; which require that a message from a queue is delivered to one and only one<br>
&gt; listener.<br>
&gt;<br>
&gt; The transaction needs to be started by the consumer before invoking the<br>
&gt; listener and ended after the listener returns. This allows the<br>
&gt; acknowledgement of the message (which is performed by the consumer) to take<br>
&gt; place in the same transaction as is used by the listener&#39;s method.<br>
&gt;<br>
&gt; Currently I&#39;m proposing that the &quot;consumer&quot; invokes the &quot;listener&quot; by a<br>
&gt; simple method call. I suppose instead of simply invoking the method it<br>
&gt; could fire a synchronous event, which only the associated listener instance<br>
&gt; would receive, but I&#39;m not sure what the benefit of this would be. Since<br>
&gt; JMS semantics are very different from CDI event semantics I think there&#39;s a<br>
&gt; danger that this will be confusing, since the user might think they were<br>
&gt; getting CDI event semantics, but they were actually getting JMS semantics.<br>
&gt;<br>
&gt; Since this is a bit of a FAQ, it might be useful to explore the<br>
&gt; differences between the two semantics, but currently they seem profoundly<br>
&gt; different to me. That&#39;s why my proposals are built on the CDI bean<br>
&gt; lifecycle model but not the CDI event observer model.<br>
&gt;<br>
&gt; Nigel<br>
&gt;<br>
&gt;<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <a href="http://lists.jboss.org/pipermail/cdi-dev/attachments/20150826/a1a16971/attachment-0001.html" rel="noreferrer" target="_blank">http://lists.jboss.org/pipermail/cdi-dev/attachments/20150826/a1a16971/attachment-0001.html</a><br>
<br>
------------------------------<br>
<br>
Message: 3<br>
Date: Wed, 26 Aug 2015 11:51:30 +0200<br>
From: arjan tijms &lt;<a href="mailto:arjan.tijms@gmail.com">arjan.tijms@gmail.com</a>&gt;<br>
Subject: Re: [cdi-dev] JMS 2.1: Proposal to allow any CDI managed bean<br>
        in a Java EE application to listen for JMS messages<br>
To: Romain Manni-Bucau &lt;<a href="mailto:rmannibucau@gmail.com">rmannibucau@gmail.com</a>&gt;<br>
Cc: cdi-dev &lt;<a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a>&gt;<br>
Message-ID:<br>
        &lt;CAE=-AhBb6e_LM4OV3zyH_k-g7PpBN=3=<a href="mailto:DAyVa3C54%2B2EtBK7-g@mail.gmail.com">DAyVa3C54+2EtBK7-g@mail.gmail.com</a>&gt;<br>
Content-Type: text/plain; charset=UTF-8<br>
<br>
On Wed, Aug 26, 2015 at 11:09 AM, Romain Manni-Bucau<br>
&lt;<a href="mailto:rmannibucau@gmail.com">rmannibucau@gmail.com</a>&gt; wrote:<br>
&gt; Agree for provided scope but JMS + short time scopes will not match well in<br>
&gt; practise so i would worry more about not &quot;default&quot; scopes which can miss<br>
&gt; these events.<br>
<br>
Short lived scopes like @RequestScoped may not be the best match indeed.<br>
<br>
Additionally, @RequestScoped is kinda assumed to be an &quot;@ThreadScoped&quot;<br>
thing, e.g. there&#39;s the expectation that only the current thread will<br>
access it. If the JMS provider will asynchronously call a method on<br>
the bean instance from another thread, then this breaks this<br>
assumption.<br>
<br>
<br>
------------------------------<br>
<br>
Message: 4<br>
Date: Wed, 26 Aug 2015 12:10:37 +0200<br>
From: Werner Keil &lt;<a href="mailto:werner.keil@gmail.com">werner.keil@gmail.com</a>&gt;<br>
Subject: Re: [cdi-dev] JMS 2.1: Proposal to allow any CDI managed bean<br>
        in a Java EE application to listen for JMS messages<br>
To: cdi-dev &lt;<a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a>&gt;<br>
Message-ID:<br>
        &lt;<a href="mailto:CAAGawe1bxW1oA_s4t0RNPJCf2hQYgRMsPJatB-M8BCy7xuwRoA@mail.gmail.com">CAAGawe1bxW1oA_s4t0RNPJCf2hQYgRMsPJatB-M8BCy7xuwRoA@mail.gmail.com</a>&gt;<br>
Content-Type: text/plain; charset=&quot;utf-8&quot;<br>
<br>
Hi,<br>
<br>
public class JmsRegistrar {<br>
    @Inject<br>
    @JmsConnectionFactory(...)<br>
    private ConnectionFactory factory;<br>
<br>
    @Inject<br>
    @JmsQueue(...)<br>
    private Queue queue;<br>
<br>
    public void startJms(@Observes JmsStart start) {<br>
        start.withFactory(factory) // withFactory should be optional if<br>
only 1 bean matches it<br>
               .register(BookingListener.class) // with defaults for all<br>
potential config<br>
                   .listenOn(queue)<br>
               .register(BookingListener2.class, new BookingLiteral2())<br>
                    .withMaxSessions(10)<br>
                    .listenOn(Queue.class, new QueueLiteral(...))<br>
                    ......;<br>
    }<br>
}<br>
<br>
<br>
it could allow to accomplish what I did (loosely based on<br>
<a href="http://www.jboss.org/quickstarts/eap/payment-cdi-event/" rel="noreferrer" target="_blank">http://www.jboss.org/quickstarts/eap/payment-cdi-event/</a>) forwarding MDB<br>
events to custom CDI ones like that.<br>
<br>
Class BookingMDB:<br>
<br>
  @Inject<br>
  private BookingBean booker;<br>
<br>
   public void onMessage(Message rcvMessage) {<br>
        BytesMessage msg = null;<br>
        try {<br>
            if (rcvMessage instanceof BytesMessage) {<br>
                msg = (BytesMessage) rcvMessage;<br>
                byte[] output = new byte[5];<br>
                msg.readBytes(output);<br>
                booker.book(output);<br>
            } else {<br>
                LOGGER.warning(&quot;Message of wrong type: &quot; +<br>
rcvMessage.getClass().getName());<br>
            }<br>
        } catch (JMSException e) {<br>
            throw new RuntimeException(e);<br>
        }<br>
}<br>
Class BookingBean:<br>
    public void book(byte[] msg) {<br>
       BookingEvent bookingEvent = new BookingEvent();<br>
       if (msg[256] = 42}<br>
          bookingEvent.setType(BookingType.OK);<br>
        } else {<br>
           &lt;some other message data triggering a different booking event&gt;<br>
        }<br>
        bookingEvent.setMessage(msg);<br>
        bookingEvent.setDatetime(LocalDateTime.now());<br>
<br>
        switch (bookingEvent.getType()) {<br>
            case OK:<br>
                BookingEventProducer.fire(bookingEvent);<br>
                break;<br>
case [...]<br>
            default:<br>
                LOGGER.severe(&quot;invalid booking option&quot;);<br>
                break;<br>
        }<br>
    }<br>
<br>
You&#39;ll get the idea about other types involved from the standard CDI<br>
example.<br>
We&#39;re dealing with BytesMessage because part of that booking process<br>
happens on host servers;-)<br>
<br>
Werner<br>
<br>
On Wed, Aug 26, 2015 at 11:16 AM, &lt;<a href="mailto:cdi-dev-request@lists.jboss.org">cdi-dev-request@lists.jboss.org</a>&gt; wrote:<br>
<br>
&gt; Send cdi-dev mailing list submissions to<br>
&gt;         <a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a><br>
&gt;<br>
&gt; To subscribe or unsubscribe via the World Wide Web, visit<br>
&gt;         <a href="https://lists.jboss.org/mailman/listinfo/cdi-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/cdi-dev</a><br>
&gt; or, via email, send a message with subject or body &#39;help&#39; to<br>
&gt;         <a href="mailto:cdi-dev-request@lists.jboss.org">cdi-dev-request@lists.jboss.org</a><br>
&gt;<br>
&gt; You can reach the person managing the list at<br>
&gt;         <a href="mailto:cdi-dev-owner@lists.jboss.org">cdi-dev-owner@lists.jboss.org</a><br>
&gt;<br>
&gt; When replying, please edit your Subject line so it is more specific<br>
&gt; than &quot;Re: Contents of cdi-dev digest...&quot;<br>
&gt;<br>
&gt;<br>
&gt; Today&#39;s Topics:<br>
&gt;<br>
&gt;    1. Re: JMS 2.1: Proposal to allow any CDI managed bean in a Java<br>
&gt;       EE application to listen for JMS messages (arjan tijms)<br>
&gt;    2. Re: JMS 2.1: Proposal to allow any CDI managed bean in a Java<br>
&gt;       EE application to listen for JMS messages (arjan tijms)<br>
&gt;    3. Re: JMS 2.1: Proposal to allow any CDI managed bean in a Java<br>
&gt;       EE application to listen for JMS messages (Romain Manni-Bucau)<br>
&gt;    4. Re: JMS 2.1: Proposal to allow any CDI managed bean in a Java<br>
&gt;       EE application to listen for JMS messages (Nigel Deakin)<br>
&gt;    5. Re: JMS 2.1: Proposal to allow any CDI managed bean in a Java<br>
&gt;       EE application to listen for JMS messages (arjan tijms)<br>
&gt;    6. Re: JMS 2.1: Proposal to allow any CDI managed bean in a Java<br>
&gt;       EE application to listen for JMS messages (Romain Manni-Bucau)<br>
&gt;    7. Re: JMS 2.1: Proposal to allow any CDI managed bean in a Java<br>
&gt;       EE application to listen for JMS messages (Romain Manni-Bucau)<br>
&gt;<br>
&gt;<br>
&gt; ----------------------------------------------------------------------<br>
&gt;<br>
&gt; Message: 1<br>
&gt; Date: Tue, 25 Aug 2015 22:53:21 +0200<br>
&gt; From: arjan tijms &lt;<a href="mailto:arjan.tijms@gmail.com">arjan.tijms@gmail.com</a>&gt;<br>
&gt; Subject: Re: [cdi-dev] JMS 2.1: Proposal to allow any CDI managed bean<br>
&gt;         in a Java EE application to listen for JMS messages<br>
&gt; To: Nigel Deakin &lt;<a href="mailto:nigel.deakin@oracle.com">nigel.deakin@oracle.com</a>&gt;<br>
&gt; Cc: cdi-dev &lt;<a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a>&gt;<br>
&gt; Message-ID:<br>
&gt;         &lt;CAE=-AhCnTyS-ZVAfT9k2jDK=<br>
&gt; <a href="mailto:k6QHW4ShUab_Vt%2Be6WmBN76gWg@mail.gmail.com">k6QHW4ShUab_Vt+e6WmBN76gWg@mail.gmail.com</a>&gt;<br>
&gt; Content-Type: text/plain; charset=UTF-8<br>
&gt;<br>
&gt; Hi,<br>
&gt;<br>
&gt; On Tue, Aug 25, 2015 at 7:07 PM, Nigel Deakin &lt;<a href="mailto:nigel.deakin@oracle.com">nigel.deakin@oracle.com</a>&gt;<br>
&gt; wrote:<br>
&gt; &gt; On 25/08/2015 12:38, arjan tijms wrote:<br>
&gt; &gt; This looks very interesting. Does this work with any normal scope?<br>
&gt;<br>
&gt; Yes, all normal scopes that are available in standard Java EE support<br>
&gt; this as far as I know.<br>
&gt;<br>
&gt; There&#39;s the small caveat that CDI itself doesn&#39;t know about this<br>
&gt; automatically for any custom normal scope. That implementation of such<br>
&gt; scope (via a Context) must explicitly throw these events.<br>
&gt;<br>
&gt; For example, this is what Mojarra does for the @FlowScoped implementation:<br>
&gt;<br>
&gt;<br>
&gt; <a href="https://github.com/omnifaces/mojarra/blob/master/jsf-ri/src/main/java/com/sun/faces/flow/FlowCDIEventFireHelperImpl.java" rel="noreferrer" target="_blank">https://github.com/omnifaces/mojarra/blob/master/jsf-ri/src/main/java/com/sun/faces/flow/FlowCDIEventFireHelperImpl.java</a><br>
&gt;<br>
&gt; Which is fired when the scope starts here:<br>
&gt;<br>
&gt; <a href="https://github.com/omnifaces/mojarra/blob/master/jsf-ri/src/main/java/com/sun/faces/flow/FlowCDIContext.java#L431" rel="noreferrer" target="_blank">https://github.com/omnifaces/mojarra/blob/master/jsf-ri/src/main/java/com/sun/faces/flow/FlowCDIContext.java#L431</a><br>
&gt;<br>
&gt; (the exact same code is used for @ViewScoped in Mojarra as well)<br>
&gt;<br>
&gt;<br>
&gt; &gt; then every time a new request starts, this event is fired which causes an<br>
&gt; &gt; instance of the bean to be created for that request?<br>
&gt;<br>
&gt; Yes, that is what this does ;)<br>
&gt;<br>
&gt; Kind regards,<br>
&gt; Arjan Tijms<br>
&gt;<br>
&gt;<br>
&gt; ------------------------------<br>
&gt;<br>
&gt; Message: 2<br>
&gt; Date: Tue, 25 Aug 2015 23:16:27 +0200<br>
&gt; From: arjan tijms &lt;<a href="mailto:arjan.tijms@gmail.com">arjan.tijms@gmail.com</a>&gt;<br>
&gt; Subject: Re: [cdi-dev] JMS 2.1: Proposal to allow any CDI managed bean<br>
&gt;         in a Java EE application to listen for JMS messages<br>
&gt; To: Nigel Deakin &lt;<a href="mailto:nigel.deakin@oracle.com">nigel.deakin@oracle.com</a>&gt;<br>
&gt; Cc: cdi-dev &lt;<a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a>&gt;<br>
&gt; Message-ID:<br>
&gt;         &lt;CAE=-<br>
&gt; <a href="mailto:AhCugW3jWD1FnghFzAkiuBL6-Kg2ROKa2FCJHfcd2E2%2BDQ@mail.gmail.com">AhCugW3jWD1FnghFzAkiuBL6-Kg2ROKa2FCJHfcd2E2+DQ@mail.gmail.com</a>&gt;<br>
&gt; Content-Type: text/plain; charset=UTF-8<br>
&gt;<br>
&gt; Hi,<br>
&gt;<br>
&gt; On Tue, Aug 25, 2015 at 7:20 PM, Nigel Deakin &lt;<a href="mailto:nigel.deakin@oracle.com">nigel.deakin@oracle.com</a>&gt;<br>
&gt; wrote:<br>
&gt; &gt; Someone over on the JMS user alias told me about this yesterday. So that<br>
&gt; &gt; would avoid the need to call a method to trigger lazy initialisation on<br>
&gt; &gt; normal-scoped bean proxies. I presume the application still has to inject<br>
&gt; &gt; the bean.<br>
&gt;<br>
&gt; The bean does not necessarily have to be injected at any point.<br>
&gt;<br>
&gt; With @Eager it will be activated and its @PostConstruct method will be<br>
&gt; invoked in case it hadn&#39;t been referenced before (which in case of<br>
&gt; @Eager is unlikely, as it instantiates very early, but still<br>
&gt; theoretically possible).<br>
&gt;<br>
&gt; The bean can of course still be injected or otherwise referenced later<br>
&gt; within the same scope, but as mentioned this is not required.<br>
&gt;<br>
&gt; So for example if you have OmniFaces on your classpath and then only<br>
&gt; the following bean in an application:<br>
&gt;<br>
&gt; @Eager<br>
&gt; @ApplicationScoped<br>
&gt; public class MyEagerApplicationScopedBean {<br>
&gt;<br>
&gt;      @PostConstruct<br>
&gt;      public void init() {<br>
&gt;          System.out.println(&quot;Application scoped init!&quot;);<br>
&gt;      }<br>
&gt;  }<br>
&gt;<br>
&gt; Then you&#39;ll see &quot;Application scoped init!&quot; being printed in your<br>
&gt; server log when you deploy that application. No other code is needed.<br>
&gt;<br>
&gt;<br>
&gt; &gt; If so then it sounds useful. Is it going to be included as a standard<br>
&gt; &gt; feature of CDI 2.0? I see someone has proposed<br>
&gt; &gt; <a href="https://issues.jboss.org/browse/CDI-473" rel="noreferrer" target="_blank">https://issues.jboss.org/browse/CDI-473</a> .<br>
&gt;<br>
&gt; As the issue already mentions, this is possible with current day CDI<br>
&gt; already. The proposal may arguably make it a little more concise and a<br>
&gt; little less verbose. An eager attribute on the scope looks like a<br>
&gt; quite minimal and elegant solution. Additionally it may make sense for<br>
&gt; some scopes to restrict for which &quot;IDs&#39; it&#39;s eagerly instantiated<br>
&gt; (e.g. paths for @RequestScoped, view IDs for @ViewScoped, flow IDs for<br>
&gt; @FlowScoped, etc).<br>
&gt;<br>
&gt; A new @Startup seems more like a very specific usage of the eager<br>
&gt; attribute, namely for @ApplicationScoped (or Singleton?) beans.<br>
&gt;<br>
&gt; Kind regards,<br>
&gt; Arjan<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; &gt;<br>
&gt; &gt; Nigel<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt;<br>
&gt;<br>
&gt; ------------------------------<br>
&gt;<br>
&gt; Message: 3<br>
&gt; Date: Wed, 26 Aug 2015 10:11:21 +0200<br>
&gt; From: Romain Manni-Bucau &lt;<a href="mailto:rmannibucau@gmail.com">rmannibucau@gmail.com</a>&gt;<br>
&gt; Subject: Re: [cdi-dev] JMS 2.1: Proposal to allow any CDI managed bean<br>
&gt;         in a Java EE application to listen for JMS messages<br>
&gt; To: arjan tijms &lt;<a href="mailto:arjan.tijms@gmail.com">arjan.tijms@gmail.com</a>&gt;<br>
&gt; Cc: cdi-dev &lt;<a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a>&gt;<br>
&gt; Message-ID:<br>
&gt;         &lt;CACLE=7PQaDz4fmXW2f39PN_+zdXioDfAu987OSuaxodBZx=<br>
&gt; <a href="mailto:SyQ@mail.gmail.com">SyQ@mail.gmail.com</a>&gt;<br>
&gt; Content-Type: text/plain; charset=&quot;utf-8&quot;<br>
&gt;<br>
&gt; 2015-08-25 22:53 GMT+02:00 arjan tijms &lt;<a href="mailto:arjan.tijms@gmail.com">arjan.tijms@gmail.com</a>&gt;:<br>
&gt;<br>
&gt; &gt; Hi,<br>
&gt; &gt;<br>
&gt; &gt; On Tue, Aug 25, 2015 at 7:07 PM, Nigel Deakin &lt;<a href="mailto:nigel.deakin@oracle.com">nigel.deakin@oracle.com</a>&gt;<br>
&gt; &gt; wrote:<br>
&gt; &gt; &gt; On 25/08/2015 12:38, arjan tijms wrote:<br>
&gt; &gt; &gt; This looks very interesting. Does this work with any normal scope?<br>
&gt; &gt;<br>
&gt; &gt; Yes, all normal scopes that are available in standard Java EE support<br>
&gt; &gt; this as far as I know.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; Events are not mandatory for a normal scope - at least was the case in 1.2<br>
&gt; - so JMS can&#39;t rely on it for custom normal scopes.<br>
&gt;<br>
&gt;<br>
&gt; &gt; There&#39;s the small caveat that CDI itself doesn&#39;t know about this<br>
&gt; &gt; automatically for any custom normal scope. That implementation of such<br>
&gt; &gt; scope (via a Context) must explicitly throw these events.<br>
&gt; &gt;<br>
&gt; &gt; For example, this is what Mojarra does for the @FlowScoped<br>
&gt; implementation:<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; <a href="https://github.com/omnifaces/mojarra/blob/master/jsf-ri/src/main/java/com/sun/faces/flow/FlowCDIEventFireHelperImpl.java" rel="noreferrer" target="_blank">https://github.com/omnifaces/mojarra/blob/master/jsf-ri/src/main/java/com/sun/faces/flow/FlowCDIEventFireHelperImpl.java</a><br>
&gt; &gt;<br>
&gt; &gt; Which is fired when the scope starts here:<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; <a href="https://github.com/omnifaces/mojarra/blob/master/jsf-ri/src/main/java/com/sun/faces/flow/FlowCDIContext.java#L431" rel="noreferrer" target="_blank">https://github.com/omnifaces/mojarra/blob/master/jsf-ri/src/main/java/com/sun/faces/flow/FlowCDIContext.java#L431</a><br>
&gt; &gt;<br>
&gt; &gt; (the exact same code is used for @ViewScoped in Mojarra as well)<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; &gt; then every time a new request starts, this event is fired which causes<br>
&gt; an<br>
&gt; &gt; &gt; instance of the bean to be created for that request?<br>
&gt; &gt;<br>
&gt; &gt; Yes, that is what this does ;)<br>
&gt; &gt;<br>
&gt; &gt; Kind regards,<br>
&gt; &gt; Arjan Tijms<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; cdi-dev mailing list<br>
&gt; &gt; <a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a><br>
&gt; &gt; <a href="https://lists.jboss.org/mailman/listinfo/cdi-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/cdi-dev</a><br>
&gt; &gt;<br>
&gt; &gt; Note that for all code provided on this list, the provider licenses the<br>
&gt; &gt; code under the Apache License, Version 2 (<br>
&gt; &gt; <a href="http://www.apache.org/licenses/LICENSE-2.0.html" rel="noreferrer" target="_blank">http://www.apache.org/licenses/LICENSE-2.0.html</a>). For all other ideas<br>
&gt; &gt; provided on this list, the provider waives all patent and other<br>
&gt; &gt; intellectual property rights inherent in such information.<br>
&gt; &gt;<br>
&gt; -------------- next part --------------<br>
&gt; An HTML attachment was scrubbed...<br>
&gt; URL:<br>
&gt; <a href="http://lists.jboss.org/pipermail/cdi-dev/attachments/20150826/c1f05f1c/attachment-0001.html" rel="noreferrer" target="_blank">http://lists.jboss.org/pipermail/cdi-dev/attachments/20150826/c1f05f1c/attachment-0001.html</a><br>
&gt;<br>
&gt; ------------------------------<br>
&gt;<br>
&gt; Message: 4<br>
&gt; Date: Wed, 26 Aug 2015 10:07:01 +0100<br>
&gt; From: Nigel Deakin &lt;<a href="mailto:nigel.deakin@oracle.com">nigel.deakin@oracle.com</a>&gt;<br>
&gt; Subject: Re: [cdi-dev] JMS 2.1: Proposal to allow any CDI managed bean<br>
&gt;         in a Java EE application to listen for JMS messages<br>
&gt; To: Romain Manni-Bucau &lt;<a href="mailto:rmannibucau@gmail.com">rmannibucau@gmail.com</a>&gt;<br>
&gt; Cc: cdi-dev &lt;<a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a>&gt;<br>
&gt; Message-ID: &lt;<a href="mailto:55DD81B5.9040407@oracle.com">55DD81B5.9040407@oracle.com</a>&gt;<br>
&gt; Content-Type: text/plain; charset=utf-8; format=flowed<br>
&gt;<br>
&gt; (Tidying up the top-posting...)<br>
&gt;<br>
&gt; Romain Manni-Bucau:<br>
&gt;  &gt; ...I see it really nice to not rely only on annotation - and aligned<br>
&gt; with<br>
&gt;  &gt; most specs - since sometimes you just want to either be able to rely on<br>
&gt; a<br>
&gt;  &gt; loop or a custom config to register your listeners. Annotations are too<br>
&gt;  &gt; rigid for such cases.<br>
&gt;<br>
&gt; Nigel:<br>
&gt;  &gt; Obviously, if users don&#39;t want to use CDI (or MDBs, which are also<br>
&gt;  &gt; declarative), then they would use the  normal JMS API. The existing<br>
&gt;  &gt; API to register an async message listener isn&#39;t good enough,<br>
&gt;  &gt; and we may improve it in JMS 2.1, but that&#39;s not something that<br>
&gt;  &gt; I&#39;d want to bother the people on cdi-dev with.<br>
&gt;<br>
&gt; Romain Manni-Bucau:<br>
&gt;  &gt; Integrating it in CDI lifecycle through an event allow CDI users to<br>
&gt; still<br>
&gt;  &gt; use it in the right phase of the container boot so it is still important<br>
&gt;  &gt; IMO and avoid all users to have their own custom listener for it -<br>
&gt;  &gt; @Initialized(AppScoped.class). Also allow to enrich the API through the<br>
&gt; event<br>
&gt;  &gt; itself making things smoother IMO.<br>
&gt;<br>
&gt; Nigel:<br>
&gt;  &gt; I&#39;m sorry I don&#39;t understand you.<br>
&gt;  &gt; I thought you were asking about an API which does not use annotation.<br>
&gt;<br>
&gt; Romain Manni-Bucau:<br>
&gt;  &gt; Both are needed (like websocket spec). Annotation one is nice for fully<br>
&gt; business<br>
&gt;  &gt; code and/or simple libs but relying on CDI allows to simplify the<br>
&gt; wiring since you<br>
&gt;  &gt; can reuse CDI beans under the hood ie have an implicit connection<br>
&gt; factory if<br>
&gt;  &gt; there is a single one etc which is not possible in fully SE context.<br>
&gt;<br>
&gt; Can you explain the distinction you&#39;re making here? You seem to be<br>
&gt; suggesting two alternatives, using &quot;annotation&quot; and<br>
&gt; &quot;relying on CDI&quot;. What would an application which uses CDI but which<br>
&gt; doesn&#39;t use annotation look like?<br>
&gt;<br>
&gt; Nigel<br>
&gt;<br>
&gt;<br>
&gt; ------------------------------<br>
&gt;<br>
&gt; Message: 5<br>
&gt; Date: Wed, 26 Aug 2015 11:07:46 +0200<br>
&gt; From: arjan tijms &lt;<a href="mailto:arjan.tijms@gmail.com">arjan.tijms@gmail.com</a>&gt;<br>
&gt; Subject: Re: [cdi-dev] JMS 2.1: Proposal to allow any CDI managed bean<br>
&gt;         in a Java EE application to listen for JMS messages<br>
&gt; To: Romain Manni-Bucau &lt;<a href="mailto:rmannibucau@gmail.com">rmannibucau@gmail.com</a>&gt;<br>
&gt; Cc: cdi-dev &lt;<a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a>&gt;<br>
&gt; Message-ID:<br>
&gt;         &lt;CAE=-<br>
&gt; <a href="mailto:AhBcnrC6xOdRSXtBdg-7JgfcKcGQMgtow4V0PPVspKxr_Q@mail.gmail.com">AhBcnrC6xOdRSXtBdg-7JgfcKcGQMgtow4V0PPVspKxr_Q@mail.gmail.com</a>&gt;<br>
&gt; Content-Type: text/plain; charset=UTF-8<br>
&gt;<br>
&gt; Hi,<br>
&gt;<br>
&gt; On Wed, Aug 26, 2015 at 10:11 AM, Romain Manni-Bucau<br>
&gt; &lt;<a href="mailto:rmannibucau@gmail.com">rmannibucau@gmail.com</a>&gt; wrote:<br>
&gt; &gt;&gt; Yes, all normal scopes that are available in standard Java EE support<br>
&gt; &gt;&gt; this as far as I know.<br>
&gt; &gt;&gt;<br>
&gt; &gt;<br>
&gt; &gt; Events are not mandatory for a normal scope - at least was the case in<br>
&gt; 1.2 -<br>
&gt; &gt; so JMS can&#39;t rely on it for custom normal scopes.<br>
&gt;<br>
&gt; Absolutely true, but that was exactly what I said ;)<br>
&gt;<br>
&gt; All Java EE provided scopes throw the events. For CDI, this is<br>
&gt; mandated by the spec (6.7) for @RequestScoped, @SessionScoped,<br>
&gt; @ApplicationScoped and @ConversationScoped.<br>
&gt;<br>
&gt; For JSF, at least Mojarra, @FlowScoped and @ViewScope do so too. I<br>
&gt; have to double check whether this is actually in the spec for those<br>
&gt; last two and if not see if we can update it for 2.3.<br>
&gt;<br>
&gt; Kind regards,<br>
&gt; Arjan Tijms<br>
&gt;<br>
&gt;<br>
&gt; ------------------------------<br>
&gt;<br>
&gt; Message: 6<br>
&gt; Date: Wed, 26 Aug 2015 11:09:30 +0200<br>
&gt; From: Romain Manni-Bucau &lt;<a href="mailto:rmannibucau@gmail.com">rmannibucau@gmail.com</a>&gt;<br>
&gt; Subject: Re: [cdi-dev] JMS 2.1: Proposal to allow any CDI managed bean<br>
&gt;         in a Java EE application to listen for JMS messages<br>
&gt; To: arjan tijms &lt;<a href="mailto:arjan.tijms@gmail.com">arjan.tijms@gmail.com</a>&gt;<br>
&gt; Cc: cdi-dev &lt;<a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a>&gt;<br>
&gt; Message-ID:<br>
&gt;         &lt;CACLE=7NfLo0ZXvSG2Ae1mLRd2kGWWjmr6E0=<br>
&gt; <a href="mailto:kL6gyb5jHb7fdA@mail.gmail.com">kL6gyb5jHb7fdA@mail.gmail.com</a>&gt;<br>
&gt; Content-Type: text/plain; charset=&quot;utf-8&quot;<br>
&gt;<br>
&gt; 2015-08-26 11:07 GMT+02:00 arjan tijms &lt;<a href="mailto:arjan.tijms@gmail.com">arjan.tijms@gmail.com</a>&gt;:<br>
&gt;<br>
&gt; &gt; Hi,<br>
&gt; &gt;<br>
&gt; &gt; On Wed, Aug 26, 2015 at 10:11 AM, Romain Manni-Bucau<br>
&gt; &gt; &lt;<a href="mailto:rmannibucau@gmail.com">rmannibucau@gmail.com</a>&gt; wrote:<br>
&gt; &gt; &gt;&gt; Yes, all normal scopes that are available in standard Java EE support<br>
&gt; &gt; &gt;&gt; this as far as I know.<br>
&gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Events are not mandatory for a normal scope - at least was the case in<br>
&gt; &gt; 1.2 -<br>
&gt; &gt; &gt; so JMS can&#39;t rely on it for custom normal scopes.<br>
&gt; &gt;<br>
&gt; &gt; Absolutely true, but that was exactly what I said ;)<br>
&gt; &gt;<br>
&gt; &gt; All Java EE provided scopes throw the events. For CDI, this is<br>
&gt; &gt; mandated by the spec (6.7) for @RequestScoped, @SessionScoped,<br>
&gt; &gt; @ApplicationScoped and @ConversationScoped.<br>
&gt; &gt;<br>
&gt; &gt; For JSF, at least Mojarra, @FlowScoped and @ViewScope do so too. I<br>
&gt; &gt; have to double check whether this is actually in the spec for those<br>
&gt; &gt; last two and if not see if we can update it for 2.3.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; Agree for provided scope but JMS + short time scopes will not match well in<br>
&gt; practise so i would worry more about not &quot;default&quot; scopes which can miss<br>
&gt; these events.<br>
&gt;<br>
&gt;<br>
&gt; &gt; Kind regards,<br>
&gt; &gt; Arjan Tijms<br>
&gt; &gt;<br>
&gt; -------------- next part --------------<br>
&gt; An HTML attachment was scrubbed...<br>
&gt; URL:<br>
&gt; <a href="http://lists.jboss.org/pipermail/cdi-dev/attachments/20150826/a7884300/attachment-0001.html" rel="noreferrer" target="_blank">http://lists.jboss.org/pipermail/cdi-dev/attachments/20150826/a7884300/attachment-0001.html</a><br>
&gt;<br>
&gt; ------------------------------<br>
&gt;<br>
&gt; Message: 7<br>
&gt; Date: Wed, 26 Aug 2015 11:16:04 +0200<br>
&gt; From: Romain Manni-Bucau &lt;<a href="mailto:rmannibucau@gmail.com">rmannibucau@gmail.com</a>&gt;<br>
&gt; Subject: Re: [cdi-dev] JMS 2.1: Proposal to allow any CDI managed bean<br>
&gt;         in a Java EE application to listen for JMS messages<br>
&gt; To: Nigel Deakin &lt;<a href="mailto:nigel.deakin@oracle.com">nigel.deakin@oracle.com</a>&gt;<br>
&gt; Cc: cdi-dev &lt;<a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a>&gt;<br>
&gt; Message-ID:<br>
&gt;         &lt;CACLE=<br>
&gt; <a href="mailto:7O3b8WM79ueUcmuDq5Vi_UC5o2gObU8MnK8tqGJMcGfOQ@mail.gmail.com">7O3b8WM79ueUcmuDq5Vi_UC5o2gObU8MnK8tqGJMcGfOQ@mail.gmail.com</a>&gt;<br>
&gt; Content-Type: text/plain; charset=&quot;utf-8&quot;<br>
&gt;<br>
&gt; 2015-08-26 11:07 GMT+02:00 Nigel Deakin &lt;<a href="mailto:nigel.deakin@oracle.com">nigel.deakin@oracle.com</a>&gt;:<br>
&gt;<br>
&gt; &gt; (Tidying up the top-posting...)<br>
&gt; &gt;<br>
&gt; &gt; Romain Manni-Bucau:<br>
&gt; &gt; &gt; ...I see it really nice to not rely only on annotation - and aligned<br>
&gt; with<br>
&gt; &gt; &gt; most specs - since sometimes you just want to either be able to rely<br>
&gt; on a<br>
&gt; &gt; &gt; loop or a custom config to register your listeners. Annotations are too<br>
&gt; &gt; &gt; rigid for such cases.<br>
&gt; &gt;<br>
&gt; &gt; Nigel:<br>
&gt; &gt; &gt; Obviously, if users don&#39;t want to use CDI (or MDBs, which are also<br>
&gt; &gt; &gt; declarative), then they would use the  normal JMS API. The existing<br>
&gt; &gt; &gt; API to register an async message listener isn&#39;t good enough,<br>
&gt; &gt; &gt; and we may improve it in JMS 2.1, but that&#39;s not something that<br>
&gt; &gt; &gt; I&#39;d want to bother the people on cdi-dev with.<br>
&gt; &gt;<br>
&gt; &gt; Romain Manni-Bucau:<br>
&gt; &gt; &gt; Integrating it in CDI lifecycle through an event allow CDI users to<br>
&gt; still<br>
&gt; &gt; &gt; use it in the right phase of the container boot so it is still<br>
&gt; important<br>
&gt; &gt; &gt; IMO and avoid all users to have their own custom listener for it -<br>
&gt; &gt; &gt; @Initialized(AppScoped.class). Also allow to enrich the API through the<br>
&gt; &gt; event<br>
&gt; &gt; &gt; itself making things smoother IMO.<br>
&gt; &gt;<br>
&gt; &gt; Nigel:<br>
&gt; &gt; &gt; I&#39;m sorry I don&#39;t understand you.<br>
&gt; &gt; &gt; I thought you were asking about an API which does not use annotation.<br>
&gt; &gt;<br>
&gt; &gt; Romain Manni-Bucau:<br>
&gt; &gt; &gt; Both are needed (like websocket spec). Annotation one is nice for fully<br>
&gt; &gt; business<br>
&gt; &gt; &gt; code and/or simple libs but relying on CDI allows to simplify the<br>
&gt; wiring<br>
&gt; &gt; since you<br>
&gt; &gt; &gt; can reuse CDI beans under the hood ie have an implicit connection<br>
&gt; &gt; factory if<br>
&gt; &gt; &gt; there is a single one etc which is not possible in fully SE context.<br>
&gt; &gt;<br>
&gt; &gt; Can you explain the distinction you&#39;re making here? You seem to be<br>
&gt; &gt; suggesting two alternatives, using &quot;annotation&quot; and &quot;relying on CDI&quot;.<br>
&gt; What<br>
&gt; &gt; would an application which uses CDI but which doesn&#39;t use annotation look<br>
&gt; &gt; like?<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; The sample I gave before with the JmsStart event basically:<br>
&gt;<br>
&gt;<br>
&gt; public class JmsRegistrar {<br>
&gt;     @Inject<br>
&gt;     @JmsConnectionFactory(...)<br>
&gt;     private ConnectionFactory factory;<br>
&gt;<br>
&gt;     @Inject<br>
&gt;     @JmsQueue(...)<br>
&gt;     private Queue queue;<br>
&gt;<br>
&gt;     public void startJms(@Observes JmsStart start) {<br>
&gt;         start.withFactory(factory) // withFactory should be optional if<br>
&gt; only 1 bean matches it<br>
&gt;                .register(MyCdiTypedListener.class) // with defaults for all<br>
&gt; potential config<br>
&gt;                    .listenOn(queue)<br>
&gt;                .register(MyCdiTypedListener2.class, new MyLiteral())<br>
&gt;                     .withMaxSessions(10)<br>
&gt;                     .listenOn(Queue.class, new QueueLiteral(...))<br>
&gt;                     ......;<br>
&gt;     }<br>
&gt; }<br>
&gt;<br>
&gt;<br>
&gt; The power of it appears when you have a config injection in JmsRegistrar<br>
&gt; you can iterate over to get the list of listener for instance.<br>
&gt;<br>
&gt; Also JMS resources can be decorated and referenced from qualifiers instead<br>
&gt; of instances thanks to CDI.<br>
&gt;<br>
&gt; It doesnt prevent the app to use @JmxListener somewhere else if the<br>
&gt; listener doesnt need any input/config to be registered.<br>
&gt;<br>
&gt;<br>
&gt; &gt; Nigel<br>
&gt; &gt;<br>
&gt; -------------- next part --------------<br>
&gt; An HTML attachment was scrubbed...<br>
&gt; URL:<br>
&gt; <a href="http://lists.jboss.org/pipermail/cdi-dev/attachments/20150826/cb5c6600/attachment.html" rel="noreferrer" target="_blank">http://lists.jboss.org/pipermail/cdi-dev/attachments/20150826/cb5c6600/attachment.html</a><br>
&gt;<br>
&gt; ------------------------------<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; cdi-dev mailing list<br>
&gt; <a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/cdi-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/cdi-dev</a><br>
&gt;<br>
&gt; Note that for all code provided on this list, the provider licenses the<br>
&gt; code under the Apache License, Version 2 (<br>
&gt; <a href="http://www.apache.org/licenses/LICENSE-2.0.html" rel="noreferrer" target="_blank">http://www.apache.org/licenses/LICENSE-2.0.html</a>).  For all other ideas<br>
&gt; provided on this list, the provider waives all patent and other<br>
&gt; intellectual property rights inherent in such information.<br>
&gt;<br>
&gt; End of cdi-dev Digest, Vol 57, Issue 21<br>
&gt; ***************************************<br>
&gt;<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <a href="http://lists.jboss.org/pipermail/cdi-dev/attachments/20150826/c56ea2e7/attachment.html" rel="noreferrer" target="_blank">http://lists.jboss.org/pipermail/cdi-dev/attachments/20150826/c56ea2e7/attachment.html</a><br>
<br>
------------------------------<br>
<br>
_______________________________________________<br>
cdi-dev mailing list<br>
<a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/cdi-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/cdi-dev</a><br>
<br>
Note that for all code provided on this list, the provider licenses the code under the Apache License, Version 2 (<a href="http://www.apache.org/licenses/LICENSE-2.0.html" rel="noreferrer" target="_blank">http://www.apache.org/licenses/LICENSE-2.0.html</a>).  For all other ideas provided on this list, the provider waives all patent and other intellectual property rights inherent in such information.<br>
<br>
End of cdi-dev Digest, Vol 57, Issue 22<br>
***************************************<br>
</blockquote></div><br></div></div></div>