<div dir="ltr">Very odd.  OK.  Here&#39;s my <font face="monospace">META-INF/beans.xml</font>:<div><br></div><div><div><font face="monospace">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</font></div><div><font face="monospace">&lt;beans xmlns=&quot;<a href="http://xmlns.jcp.org/xml/ns/javaee">http://xmlns.jcp.org/xml/ns/javaee</a>&quot;</font></div><div><font face="monospace">       xmlns:xsi=&quot;<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>&quot;</font></div><div><font face="monospace">       xsi:schemaLocation=&quot;<a href="http://xmlns.jcp.org/xml/ns/javaee">http://xmlns.jcp.org/xml/ns/javaee</a></font></div><div><font face="monospace">                           <a href="http://xmlns.jcp.org/xml/ns/javaee/beans_2_0.xsd">http://xmlns.jcp.org/xml/ns/javaee/beans_2_0.xsd</a>&quot;</font></div><div><font face="monospace">       version=&quot;2.0&quot;</font></div><div><font face="monospace">       bean-discovery-mode=&quot;annotated&quot;&gt;</font></div><div><font face="monospace">&lt;/beans&gt;</font></div></div><div><br></div><div>…and here is a cut down, won&#39;t-compile gist of my extension class:</div><div><br></div><div><div><font face="monospace">public class MavenExtension implements Extension {</font></div><div><font face="monospace"><br></font></div><div><font face="monospace">  public MavenExtension() {</font></div><div><font face="monospace">    super();</font></div><div><font face="monospace">  }</font></div></div><div><font face="monospace"><br></font></div><div><font face="monospace">   private final void beforeBeanDiscovery(@Observes final BeforeBeanDiscovery event) {</font></div><div><font face="monospace">    if (event != null) {</font></div><div><font face="monospace"><br></font></div><div><font face="monospace">      //</font></div><div><font face="monospace">      // Types effectively bound by DefaultServiceLocator</font></div><div><font face="monospace">      //</font></div><div><font face="monospace">      </font></div><div><font face="monospace">      event.addAnnotatedType(DefaultArtifactResolver.class, &quot;maven&quot;).add(SingletonLiteral.INSTANCE);</font></div><div><font face="monospace"><br></font></div><div><font face="monospace">      // and so on</font></div><div><font face="monospace">  }</font></div><div><font face="monospace"><br></font></div><div><font face="monospace">  private static final class Producers {<br></font></div><div><font face="monospace"><br></font></div><div><font face="monospace">    @Produces</font></div><div><font face="monospace">    @Singleton</font></div><div><font face="monospace">    private static final ModelInterpolator produceModelInterpolator(final UrlNormalizer normalizer, final PathTranslator pathTranslator) {</font></div><div><font face="monospace">      return new StringSearchModelInterpolator().setPathTranslator(pathTranslator).setUrlNormalizer(normalizer);</font></div><div><font face="monospace">    }</font></div><div><font face="monospace"><br></font></div><div><font face="monospace">  }</font></div><div><font face="monospace"><br></font></div><div><font face="monospace">}</font></div><div><br></div><div>Also if it matters my main loop does nothing.  In other words, the test starts the container and closes it—which boots the extension of course, whereupon I notice that my <font face="monospace">Producers</font> class gets picked up.  I would have expected that I would have to programmatically add my <font face="monospace">Producers</font> class for its producer methods to be &quot;seen&quot;, but I don&#39;t have to.  That seems odd to me.</div><div><br></div><div>(Frankly, what I <i>really</i> want is for those producer methods, all of which are <font face="monospace">static</font>, to just be members of my extension class, but they are not seen in this case.)</div><div><br></div><div>Best,</div><div>Laird</div></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Mar 20, 2017 at 10:42 AM John Ament &lt;<a href="mailto:john.ament@spartasystems.com">john.ament@spartasystems.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div dir="ltr" class="gmail_msg">
<div id="m_2560997016784671564divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif" dir="ltr" class="gmail_msg">
<p class="gmail_msg">So I just tried locally with Weld 3.0 CR2</p>
<p class="gmail_msg"><br class="gmail_msg">
</p>
<p class="gmail_msg"></p>
<div class="gmail_msg">public class BeanDiscoverer implements Extension {</div>
<div class="gmail_msg">    public void onBeans(@Observes ProcessBean&lt;?&gt; pb) {</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">    }</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">    @Singleton</div>
<div class="gmail_msg">    public static class Producers {</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">    }</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">    public static void main(String...args) {</div>
<div class="gmail_msg">        final SeContainer initialize = SeContainerInitializer.newInstance().initialize();</div>
<div class="gmail_msg">        final Producers producers = initialize.select(Producers.class).get();</div>
<div class="gmail_msg">        assert producers == null;</div>
<div class="gmail_msg">        initialize.close();</div>
<div class="gmail_msg">    }</div>
<div class="gmail_msg">}</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<br class="gmail_msg">
<p class="gmail_msg"></p>
<p class="gmail_msg"><br class="gmail_msg">
</p>
<p class="gmail_msg">And it correctly throws </p>
<p class="gmail_msg"><br class="gmail_msg">
</p>
<p class="gmail_msg"></p>
<div class="gmail_msg">Exception in thread &quot;main&quot; org.jboss.weld.exceptions.UnsatisfiedResolutionException: WELD-001334: Unsatisfied dependencies for type Producers with qualifiers  </div>
<div class="gmail_msg"><span class="m_2560997016784671564Apple-tab-span gmail_msg" style="white-space:pre-wrap"></span>at org.jboss.weld.bean.builtin.InstanceImpl.get(InstanceImpl.java:110)</div>
<div class="gmail_msg"><span class="m_2560997016784671564Apple-tab-span gmail_msg" style="white-space:pre-wrap"></span>at ws.ament.cdi.se.extensions.BeanDiscoverer.main(BeanDiscoverer.java:22)</div>
<div class="gmail_msg"><span class="m_2560997016784671564Apple-tab-span gmail_msg" style="white-space:pre-wrap"></span>at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)</div>
<div class="gmail_msg"><span class="m_2560997016784671564Apple-tab-span gmail_msg" style="white-space:pre-wrap"></span>at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)</div>
<div class="gmail_msg"><span class="m_2560997016784671564Apple-tab-span gmail_msg" style="white-space:pre-wrap"></span>at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)</div>
<div class="gmail_msg"><span class="m_2560997016784671564Apple-tab-span gmail_msg" style="white-space:pre-wrap"></span>at java.lang.reflect.Method.invoke(Method.java:497)</div>
<div class="gmail_msg"><span class="m_2560997016784671564Apple-tab-span gmail_msg" style="white-space:pre-wrap"></span>at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)</div>
<div class="gmail_msg">2017-03-20 10:36:22,254 Thread-1 WARN Unable to register Log4j shutdown hook because JVM is shutting down. Using SimpleLogger</div>
<div class="gmail_msg">Weld SE container d32779c5-500e-4457-95b6-8e7bf49561f9 shut down by shutdown hook</div>
<br class="gmail_msg">
<p class="gmail_msg"></p>
<p class="gmail_msg">Even when I explicitly add the extension, same thing occurs (<span class="gmail_msg">.addExtensions(BeanDiscoverer.class)).  Even when I explicitly add to META-INF/services/Extension it fails.</span></p>
<p class="gmail_msg"><span class="gmail_msg"><br class="gmail_msg">
</span></p>
<p class="gmail_msg"><span class="gmail_msg">This is what my beans.xml looks like:</span></p>
<p class="gmail_msg"><span class="gmail_msg"><br class="gmail_msg">
</span></p>
<p class="gmail_msg"><span class="gmail_msg"></span></p>
<div class="gmail_msg">&lt;beans xmlns=&quot;<a href="http://xmlns.jcp.org/xml/ns/javaee" class="gmail_msg" target="_blank">http://xmlns.jcp.org/xml/ns/javaee</a>&quot; bean-discovery-mode=&quot;annotated&quot; version=&quot;2.0&quot;&gt;</div>
<div class="gmail_msg">&lt;/beans&gt;</div>
<br class="gmail_msg">

<p class="gmail_msg"></p>
<p class="gmail_msg"><span class="gmail_msg">Only when I change to all does it run fine...  You can see the full example at <a href="https://github.com/johnament/cdi-2.0-presentations/blob/master/cdi2conference/src/main/java/ws/ament/cdi/se/extensions/BeanDiscoverer.java" class="m_2560997016784671564OWAAutoLink gmail_msg" id="m_2560997016784671564LPlnk843033" target="_blank">https://github.com/johnament/cdi-2.0-presentations/blob/master/cdi2conference/src/main/java/ws/ament/cdi/se/extensions/BeanDiscoverer.java</a> so
 I&#39;m curious to know if there&#39;s anything different between our setups.</span><br class="gmail_msg">
</p>
<p class="gmail_msg"><br class="gmail_msg">
</p>
<p class="gmail_msg">John</p>
<div id="m_2560997016784671564Signature" class="gmail_msg">
<div id="m_2560997016784671564divtagdefaultwrapper" dir="ltr" style="font-size:12pt;color:#000000;background-color:#ffffff;font-family:Calibri,Arial,Helvetica,sans-serif" class="gmail_msg">
<p class="gmail_msg"></p>
</div>
</div>
<br class="gmail_msg">
<br class="gmail_msg">
<div style="color:rgb(0,0,0)" class="gmail_msg">
<hr style="display:inline-block;width:98%" class="gmail_msg">
<div id="m_2560997016784671564divRplyFwdMsg" dir="ltr" class="gmail_msg"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt" class="gmail_msg"><b class="gmail_msg">From:</b> Laird Nelson &lt;<a href="mailto:ljnelson@gmail.com" class="gmail_msg" target="_blank">ljnelson@gmail.com</a>&gt;<br class="gmail_msg">
<b class="gmail_msg">Sent:</b> Monday, March 20, 2017 1:24 PM<br class="gmail_msg">
<b class="gmail_msg">To:</b> John Ament; Martin Kouba; cdi-dev</font></div></div></div></div><div dir="ltr" class="gmail_msg"><div id="m_2560997016784671564divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif" dir="ltr" class="gmail_msg"><div style="color:rgb(0,0,0)" class="gmail_msg"><div id="m_2560997016784671564divRplyFwdMsg" dir="ltr" class="gmail_msg"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt" class="gmail_msg"><br class="gmail_msg">
<b class="gmail_msg">Subject:</b> Re: [cdi-dev] Bean discovery question</font></div></div></div></div><div dir="ltr" class="gmail_msg"><div id="m_2560997016784671564divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif" dir="ltr" class="gmail_msg"><div style="color:rgb(0,0,0)" class="gmail_msg">
<div class="gmail_msg">
<div dir="ltr" class="gmail_msg">SE, and the initializer is brain-dead simple.
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg"><font face="monospace" class="gmail_msg">final SeContainerInitializer initializer = SeContainerInitializer.newInstance();</font></div>
<div class="gmail_msg"><font face="monospace" class="gmail_msg">assert initializer != null;</font></div>
<div class="gmail_msg"><font face="monospace" class="gmail_msg">try (final SeContainer container = initializer.initialize()) {</font></div>
<div class="gmail_msg"><font face="monospace" class="gmail_msg">  assert container != null;</font></div>
<div class="gmail_msg"><font face="monospace" class="gmail_msg">}</font></div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">Best,</div>
<div class="gmail_msg">Laird</div>
</div>
<br class="gmail_msg">
<div class="gmail_quote gmail_msg">
<div dir="ltr" class="gmail_msg">On Mon, Mar 20, 2017 at 10:21 AM John Ament &lt;<a href="mailto:john.ament@spartasystems.com" class="gmail_msg" target="_blank">john.ament@spartasystems.com</a>&gt; wrote:<br class="gmail_msg">
</div>
<blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr" class="gmail_msg">
<div id="m_2560997016784671564m_8602380584706632731divtagdefaultwrapper" dir="ltr" class="gmail_msg" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif">
<p class="gmail_msg">Since you&#39;re mentioning a fledgling project and CDI 2.0, are you using SE mode of CDI, or is this within a container (and I&#39;m guessing some custom integration)?  If you&#39;re using SE, what does your SEContainerInitializer lines look like?</p>
<p class="gmail_msg"><br class="gmail_msg">
</p>
<p class="gmail_msg">John</p>
<div id="m_2560997016784671564m_8602380584706632731Signature" class="gmail_msg">
<div id="m_2560997016784671564m_8602380584706632731divtagdefaultwrapper" dir="ltr" class="gmail_msg" style="font-size:12pt;color:#000000;background-color:#ffffff;font-family:Calibri,Arial,Helvetica,sans-serif">
<div class="gmail_msg" style="color:rgb(33,33,33);font-size:15px;margin:0px"><br class="gmail_msg">
</div>
<p class="gmail_msg"></p>
</div>
</div>
<br class="gmail_msg">
<br class="gmail_msg">
<div class="gmail_msg" style="color:rgb(0,0,0)">
<hr class="gmail_msg" style="display:inline-block;width:98%">
<div id="m_2560997016784671564m_8602380584706632731divRplyFwdMsg" dir="ltr" class="gmail_msg"><font face="Calibri, sans-serif" color="#000000" class="gmail_msg" style="font-size:11pt"><b class="gmail_msg">From:</b>
<a href="mailto:cdi-dev-bounces@lists.jboss.org" class="gmail_msg" target="_blank">
cdi-dev-bounces@lists.jboss.org</a> &lt;<a href="mailto:cdi-dev-bounces@lists.jboss.org" class="gmail_msg" target="_blank">cdi-dev-bounces@lists.jboss.org</a>&gt; on behalf of Laird Nelson &lt;<a href="mailto:ljnelson@gmail.com" class="gmail_msg" target="_blank">ljnelson@gmail.com</a>&gt;<br class="gmail_msg">
<b class="gmail_msg">Sent:</b> Monday, March 20, 2017 11:12 AM<br class="gmail_msg">
<b class="gmail_msg">To:</b> Martin Kouba; cdi-dev<br class="gmail_msg">
<b class="gmail_msg">Subject:</b> Re: [cdi-dev] Bean discovery question</font>
<div class="gmail_msg"> </div>
</div>
</div>
</div>
</div>
<div dir="ltr" class="gmail_msg">
<div id="m_2560997016784671564m_8602380584706632731divtagdefaultwrapper" dir="ltr" class="gmail_msg" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif">
<div class="gmail_msg" style="color:rgb(0,0,0)">
<div class="gmail_msg">
<div dir="ltr" class="gmail_msg">
<div class="gmail_quote gmail_msg">
<div dir="ltr" class="gmail_msg">On Mon, Mar 20, 2017 at 12:26 AM Martin Kouba &lt;<a href="mailto:mkouba@redhat.com" class="gmail_msg" target="_blank">mkouba@redhat.com</a>&gt; wrote:<br class="gmail_msg">
</div>
<blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Weld version? Environment? Deployment structure?<br class="gmail_msg">
</blockquote>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">3.0.0-CR2 (CDI 2.0-PFD).</div>
<div class="gmail_msg">Fledgling project containing only the extension at the moment, so no beans.</div>
<div class="gmail_msg"> </div>
<blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I think the Producers class should not be discovered. So it looks like a<br class="gmail_msg">
bug or misconfiguration.<br class="gmail_msg">
</blockquote>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">Thank you; I&#39;ll file a bug once I have time to put together a test case.</div>
<div class="gmail_msg"><br class="gmail_msg">
</div>
<div class="gmail_msg">Best,</div>
<div class="gmail_msg">Laird</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div dir="ltr" class="gmail_msg">
<div id="m_2560997016784671564m_8602380584706632731divtagdefaultwrapper" dir="ltr" class="gmail_msg" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif">
<div class="gmail_msg" style="color:rgb(0,0,0)"></div>
</div>
<hr class="gmail_msg">
NOTICE: This e-mail message and any attachments may contain confidential, proprietary, and/or privileged information which should be treated accordingly. If you are not the intended recipient, please notify the sender immediately by return e-mail, delete this
 message, and destroy all physical and electronic copies. Thank you. </div>
</blockquote>
</div>
</div>
</div></div></div><div dir="ltr" class="gmail_msg">
<hr class="gmail_msg">
NOTICE: This e-mail message and any attachments may contain confidential, proprietary, and/or privileged information which should be treated accordingly. If you are not the intended recipient, please notify the sender immediately by return e-mail, delete this
 message, and destroy all physical and electronic copies. Thank you.
</div></blockquote></div>