Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-10278

Bean discovery in deployment dependencies (modules) fails to inject from static module-alias's exported dependency

    Details

      Description

      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:

      <jboss-deployment-structure> 
      	 <deployment>
      		<dependencies>
      			<module name="mycompany.test.CDIJarMaven" slot="moduloAliasError" meta-inf="export" annotations="true" />
      		</dependencies>      
          </deployment>
      </jboss-deployment-structure>
      

      moduleAliasError which the app has the target moduloNivel2:

      <module-alias xmlns="urn:jboss:module:1.1" name="mycompany.test.CDIJarMaven" slot="moduloAliasError" target-name="mycompany.test.CDIJarMaven" target-slot="moduloNivel2"/>
      

      moduloNivel2 which the modulo-alias references depends on main module and is including/exporting META-INF where the beans.xml is located:

      <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>
      

      The error we get is:

      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)
      

      Checking the code one can see how the beans.xml is seen :

      EXTERNAL BeanDeploymentArchive (awar-mock02.war.external.jar:file:/jboss-eap-7.1/modules/mycompany/test/CDIJarMaven/main/CDIJarMaven.jar!/META-INF/beans.xml)
      

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  spyrkob Bartosz Spyrko-Śmietanko
                  Reporter:
                  gaol Lin Gao
                • Votes:
                  1 Vote for this issue
                  Watchers:
                  3 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: