<HTML><BODY><div class="js-helper js-readmsg-msg">
        <style type="text/css"></style>
        <div>
                <base target="_self" href="https://e.mail.ru/">
                
<div id="style_15264904970000000459_BODY"><div class="class_1526497603">
Hi Matej<br><br>I followed your answer and run Weld (SE) as auto module in my JPMS layer. In this layer I have an arhive with beans.xml<br>This is my code:<br> Weld weld = new Weld();<br> WeldContainer container = weld.initialize();<br><br>This is what I get:<br><br>INFO: WELD-000900: 3.0.4 (Final)<br>May 16, 2018 7:00:39 PM org.jboss.weld.environment.deployment.discovery.ReflectionDiscoveryStrategy processAnnotatedDiscovery<br>INFO: WELD-ENV-000014: Falling back to Java Reflection for bean-discovery-mode="annotated" discovery. Add org.jboss:jandex to the classpath to speed-up startup.<br>2018-05-16 19:00:39:187 [main] ERROR com.techsenger.webserver.core.internal.Activator - Error starting server<br>java.lang.IllegalStateException: WELD-ENV-002009: Weld SE container cannot be initialized - no bean archives found<br> at weld.se.core@3.0.4.Final/org.jboss.weld.environment.se.Weld.createDeployment(Weld.java:962)<br> at weld.se.core@3.0.4.Final/org.jboss.weld.environment.se.Weld.initialize(Weld.java:773)<br><br>Are there any ways to control what modules Weld should scan if we initialize via Weld class?<br><br>By the way: STOP creating packages with the same name in different JAR arhives! JPMS doesn't allow it! I had to merge core-impl, spi and api in one file.<br><br>Best regards, Alex<br><br><blockquote style="border-left:1px solid #0857A6;margin:10px;padding:0 0 0 10px;">
        Среда, 16 мая 2018, 16:47 +03:00 от Matej Novotny <<a href="mailto:manovotn@redhat.com">manovotn@redhat.com</a>>:<br>
        <br>
        <div id="">
<div class="js-helper_mailru_css_attribute_postfix js-readmsg-msg_mailru_css_attribute_postfix">
        <style></style>
        <div>
                
                
<div id="style_15264784640000000837_BODY_mailru_css_attribute_postfix">Weld 2.x is NOT to be executed with Java 9+.<br>
Use Weld 3, please. Best use latest release of course (3.0.4.Final).<br>
<br>
If you can share the test project on GH, that would be neat as well.<br>
Then we could see how you use weld as auto module (as well as many other configurations) and go from there.<br>
<br>
As for starting SE container, you shouldn't manually call `bootstrap.startContainer(Environments.SE, deployment);`<br>
Please see the docs on how to bootstrap Weld in SE, you shouldn't need to deal with any of the methods you listed below.<br>
Here is a doc link - <a href="http://docs.jboss.org/weld/reference/latest-master/en-US/html_single/#_bootstrapping_cdi_se" target="_blank" rel=" noopener noreferrer">http://docs.jboss.org/weld/reference/latest-master/en-US/html_single/#_bootstrapping_cdi_se</a><br>
<br>
Regards<br>
Matej<br>
<br>
----- Original Message -----<br>
> From: "Alex Sviridov" <<a href="//e.mail.ru/compose/?mailto=mailto%3aooo_saturn7@mail.ru" target="_blank" rel=" noopener noreferrer">ooo_saturn7@mail.ru</a>><br>
> To: "weld-dev" <<a href="//e.mail.ru/compose/?mailto=mailto%3aweld%2ddev@lists.jboss.org" target="_blank" rel=" noopener noreferrer">weld-dev@lists.jboss.org</a>><br>
> Sent: Wednesday, May 16, 2018 1:51:20 PM<br>
> Subject: [weld-dev] Staring weld container for SE environment makes me load java ee classes.<br>
> <br>
> Hi all<br>
> <br>
> I am trying to start weld container (2.3.5) as auto module in JPMS. This is<br>
> my code<br>
> <br>
> Deployment deployment = new Deployment() {<br>
> @Override<br>
> public Collection<BeanDeploymentArchive> getBeanDeploymentArchives() {<br>
> List<BeanDeploymentArchive> list = new ArrayList<>();<br>
> list.add(archive);<br>
> return list;<br>
> }<br>
> <br>
> @Override<br>
> public BeanDeploymentArchive loadBeanDeploymentArchive(Class<?> beanClass) {<br>
> throw new UnsupportedOperationException("Not supported yet.");<br>
> }<br>
> <br>
> @Override<br>
> public ServiceRegistry getServices() {<br>
> SimpleServiceRegistry simpleServiceRegistry = new SimpleServiceRegistry();<br>
> simpleServiceRegistry.add(ResourceLoader.class, new ResourceLoaderImpl());<br>
> return simpleServiceRegistry;<br>
> }<br>
> <br>
> @Override<br>
> public Iterable getExtensions() {<br>
> return new ArrayList<>();<br>
> }<br>
> };<br>
> <br>
> bootstrap.startContainer(Environments.SE, deployment);<br>
> <br>
> The problem is that in BeanDeployment constructor all services are loaded<br>
> here<br>
> <a href="https://github.com/weld/core/blob/d0019511ea776e9c35eab68c4d493c2df882a121/impl/src/main/java/org/jboss/weld/bootstrap/BeanDeployment.java#L117" target="_blank" rel=" noopener noreferrer">https://github.com/weld/core/blob/d0019511ea776e9c35eab68c4d493c2df882a121/impl/src/main/java/org/jboss/weld/bootstrap/BeanDeployment.java#L117</a><br>
> and if I in my resource loader service return instead of all java-ee classes<br>
> null, I get null pointer exception, for example here<br>
> <a href="https://github.com/weld/core/blob/d0019511ea776e9c35eab68c4d493c2df882a121/impl/src/main/java/org/jboss/weld/ejb/EJBApiAbstraction.java#L44" target="_blank" rel=" noopener noreferrer">https://github.com/weld/core/blob/d0019511ea776e9c35eab68c4d493c2df882a121/impl/src/main/java/org/jboss/weld/ejb/EJBApiAbstraction.java#L44</a><br>
> <br>
> I can't understand why all these classes are requested from me, as I am in<br>
> SE. Or I am doing something wrong. Could anyone help me?<br>
> <br>
> --<br>
> Best regards, Alex Sviridov<br>
> <br>
> _______________________________________________<br>
> weld-dev mailing list<br>
> <a href="//e.mail.ru/compose/?mailto=mailto%3aweld%2ddev@lists.jboss.org" target="_blank" rel=" noopener noreferrer">weld-dev@lists.jboss.org</a><br>
> <a href="https://lists.jboss.org/mailman/listinfo/weld-dev" target="_blank" rel=" noopener noreferrer">https://lists.jboss.org/mailman/listinfo/weld-dev</a><br>
</div>
                
        </div>
        
</div>
</div>
</blockquote>
<br>
<br>-- <br>Alex Sviridov<br>
</div></div>
                <base target="_self" href="https://e.mail.ru/">
        </div>
        
</div></BODY></HTML>