<div dir="ltr">So if I get it right the issue is for now in CDI you don&#39;t really know if the backing instance - if exists - is created or not (ie toString() is not enough). I think on this point CDI can be enhanced to have a isInstantiated() method in its SPI and potentially a forceInstantiation() one to solve it - would also allow to fix the @Startup issue.<div><br></div><div>Now for JMS having an event based SPI would be a good addition allowing some programmatic registration - naming is to completely to rework but the idea would be:</div><div><br></div><div><br></div><div>public void startJms(@Observes final JmsAfterStart jmsStart) {</div><div>    jmsStart.registerListener(message -&gt; System.out.println(message))</div><div>                 .registerListener(new MyTypedMessageListener()); // or even an injected instance</div><div>}</div><div><br></div><div>// JmsBeforeShutdown would be needed as well with a unregister for symmetry but auto deregistration is possible as well</div><div><br></div><div>with MyTypedMessageListener:</div><div><br></div><div>public class MyTypedMessageListener {</div><div>      public void onMessage(MyTypedMessageICreatedInMyApp msg() {}</div><div>}</div><div><br></div><div>For this last case a really elegant solution would be to just reuse @Observes to fire the message from the jms &quot;container&quot; listener and propagate it to the &quot;user&quot; listener. This would then allow to decouple the application listener from JMS.</div><div><br></div><div>For client side having a custom qualifier supporting placeholding - a bit like jbatch for system properties - would be nice and would allow to skip JNDI which means enabling SE usage as well.</div><div><br></div><div class="gmail_extra"><div><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><br><span style="font-size:small">Romain Manni-Bucau</span><br><a href="https://twitter.com/rmannibucau" target="_blank">@rmannibucau</a> |  <a href="http://rmannibucau.wordpress.com" target="_blank">Blog</a> | <a href="https://github.com/rmannibucau" target="_blank">Github</a> | <a href="https://www.linkedin.com/in/rmannibucau" target="_blank">LinkedIn</a> | <a href="http://www.tomitribe.com" target="_blank">Tomitriber</a></div></div></div></div></div></div></div></div></div></div>
<br><div class="gmail_quote">2015-08-25 15:51 GMT+02:00 Nigel Deakin <span dir="ltr">&lt;<a href="mailto:nigel.deakin@oracle.com" target="_blank">nigel.deakin@oracle.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 24/08/2015 21:24, John D. Ament wrote:<br>
&gt;<br>
&gt; Hi Nigel!<br>
&gt;<br>
&gt; Glad to hear from you.  Was wondering, is there a way to manually register listeners?<br>
<br>
The current proposal is is for the bean to start listening just as soon as it is created (by CDI), and for it to stop<br>
listening just before it is destroyed (by CDI).<br>
<br>
As you suggesting that CDI would create the listener, but the application would call some method to tell it to start<br>
listening? or did you have something else in mind?<br>
<br>
 &gt; It would be great if this could<br>
&gt; be leveraged in a CDI SE environment as well as EE environment.<br>
<br>
I see that work is underway for CDI 2.0 to define how CDI might work in a Java SE environment. I don&#39;t see why a similar<br>
portable extension could not be created for use in Java SE. Since there would be no need to support Java EE behaviour<br>
such as transactions this could be built directly on top of the JMS provider&#39;s Java SE client. No need to use a resource<br>
adapter. However since the @JMSListener and @JMSConnectionFactory annotations use JNDI there would be a need to be a way<br>
to specify which JNDI InitialContext to use. I&#39;m not proposing any of this at the moment, but it might perhaps be<br>
something that we (the JMS expert group) could consider later on as a optional part of JMS 2.1.<br>
<br>
There&#39;s also the Java EE application client to consider.<br>
<br>
Nigel<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>
</blockquote></div><br></div></div>