]
Lin Gao updated WFLY-10278:
---------------------------
Priority: Critical (was: Major)
Bean discovery in deployment dependencies (modules) fails to inject
from static module-alias's exported dependency
------------------------------------------------------------------------------------------------------------------
Key: WFLY-10278
URL:
https://issues.jboss.org/browse/WFLY-10278
Project: WildFly
Issue Type: Bug
Components: CDI / Weld
Reporter: Lin Gao
Priority: Critical
Labels: downstream_dependency
WAR CDI bean is failing to inject a CDI bean from a module-alias exported dependency. war
-module-alias -> static module X -> static module Y (containing CDI Beans)
A WAR uses a module-alias with the slot attribute. This module-alias is referenced in
jboss-deployment-structure.xml:
{code:java}
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="mycompany.test.CDIJarMaven"
slot="moduloAliasError" meta-inf="export" annotations="true"
/>
</dependencies>
</deployment>
</jboss-deployment-structure>
{code}
moduleAliasError which the app has the target moduloNivel2:
{code}
<module-alias xmlns="urn:jboss:module:1.1"
name="mycompany.test.CDIJarMaven" slot="moduloAliasError"
target-name="mycompany.test.CDIJarMaven"
target-slot="moduloNivel2"/>
{code}
moduloNivel2 which the modulo-alias references depends on main module and is
including/exporting META-INF where the beans.xml is located:
{code:java}
<module xmlns="urn:jboss:module:1.5"
name="mycompany.test.CDIJarMaven">
<resources>
<resource-root path="CDIJarMaven.jar"/>
</resources>
<dependencies>
<module name="javax.faces.api" export="true"/>
<!-- Timer de ejbs para el log de acceso-->
<module name="javax.ejb.api"/>
<module name="javax.enterprise.api" />
</dependencies>
</module>
{code:java}
modulo main contains the jar with the CDI beans and has a META-INF/beans.xml in it:
{code:java}
<module xmlns="urn:jboss:module:1.1"
name="mycompany.test.CDIJarMaven" slot="moduloNivel2">
<dependencies>
<module name="mycompany.test.CDIJarMaven" slot="main"
export="true">
<imports>
<include path="META-INF**" />
</imports>
<exports>
<include path="META-INF**" />
</exports>
</module>
</dependencies>
</module>
{code}
The error we get is:
{code:java}
WELD-001408: Unsatisfied dependencies for type PruebaDTO with qualifiers @Default
at injection point [BackedAnnotatedField] @Inject private
backingbeans.Page1.paginacion
at backingbeans.Page1.paginacion(Page1.java:0)
{code}
Checking the code one can see how the beans.xml is seen :
{code:java}
EXTERNAL BeanDeploymentArchive
(awar-mock02.war.external.jar:file:/jboss-eap-7.1/modules/mycompany/test/CDIJarMaven/main/CDIJarMaven.jar!/META-INF/beans.xml)
{code}