final BeanDeploymentModule bdm = new BeanDeploymentModule(handler.module.getIdentifier().toString(), deploymentUnit, bdaMap.values()); deploymentUnit.putAttachment(WeldAttachments.BEAN_DEPLOYMENT_MODULE, bdm);
putIfValueNotNull(eeModuleDescriptors, module.getIdentifier(), rootBeanDeploymentModule.getModuleDescriptor()); beanDeploymentArchives.addAll(rootBeanDeploymentModule.getBeanDeploymentArchives()); final List<DeploymentUnit> subDeployments = deploymentUnit.getAttachmentList(Attachments.SUB_DEPLOYMENTS); beanDeploymentArchives.addAll(bdm.getBeanDeploymentArchives()); bdmsByIdentifier.put(subDeploymentModule.getIdentifier(), bdm); moduleSpecByIdentifier.put(subDeploymentModule.getIdentifier(), subDeploymentModuleSpec); putIfValueNotNull(eeModuleDescriptors, subDeploymentModule.getIdentifier(), bdm.getModuleDescriptor()); bdm.addService(entry.getKey(), Reflections.cast(entry.getValue())); BeanDeploymentModule other = bdmsByIdentifier.get(dependency.getIdentifier()); if (other != null && other != bdm) { bdm.addBeanDeploymentModule(other); rootBeanDeploymentModule.addService(entry.getKey(), Reflections.cast(entry.getValue()));
additional.addBeanDeploymentModule(rootBeanDeploymentModule); rootBeanDeploymentModule.addBeanDeploymentModule(additional); beanDeploymentArchives.addAll(rootBeanDeploymentModule.getBeanDeploymentArchives()); final List<DeploymentUnit> subDeployments = deploymentUnit.getAttachmentList(Attachments.SUB_DEPLOYMENTS); beanDeploymentArchives.addAll(bdm.getBeanDeploymentArchives()); bdmsByIdentifier.put(subDeploymentModule.getIdentifier(), bdm); List<BeanDeploymentModule> additionalModules = subDeployment.getAttachmentList(WeldAttachments.VISIBLE_ADDITIONAL_BEAN_DEPLOYMENT_MODULE); bdm.addService(EjbInjectionServices.class, ejbInjectionServices); for(final BeanDeploymentModule additional : additionalModules) { additional.addBeanDeploymentModule(bdm); bdm.addBeanDeploymentModule(additional);bdm.addService(EjbInjectionServices.class, ejbInjectionServices); BeanDeploymentModule other = bdmsByIdentifier.get(dependency.getIdentifier()); if (other != null && other != bdm) { bdm.addBeanDeploymentModule(other); rootBeanDeploymentModule.addService(EjbInjectionServices.class, ejbInjectionServices); beanDeploymentArchives.addAll(additional.getBeanDeploymentArchives()); additional.addService(EjbInjectionServices.class, ejbInjectionServices);
final BeanDeploymentModule bdm = new BeanDeploymentModule(Collections.singleton(bda)); final JpaInjectionServices jpaInjectionServices = new WeldJpaInjectionServices(deploymentUnit, deploymentUnit.getServiceRegistry()); bdm.addService(JpaInjectionServices.class, jpaInjectionServices); deploymentUnit.addToAttachmentList(WeldAttachments.ADDITIONAL_BEAN_DEPLOYMENT_MODULES, bdm); for (DeploymentUnit du : entry.getValue()) {
/** * Adds additional edges to the accessibility graph that allow static CDI-enabled modules to inject beans from top-level deployment units */ private void makeTopLevelBdasVisibleFromStaticModules() { for (BeanDeploymentArchiveImpl bda : beanDeploymentArchives) { if (bda.getBeanArchiveType().equals(BeanDeploymentArchiveImpl.BeanArchiveType.EXTERNAL) || bda.getBeanArchiveType().equals(BeanDeploymentArchiveImpl.BeanArchiveType.SYNTHETIC)) { for (BeanDeploymentArchiveImpl topLevelBda : rootBeanDeploymentModule.getBeanDeploymentArchives()) { bda.addBeanDeploymentArchive(topLevelBda); } } } }
public BeanDeploymentModule(String moduleId, DeploymentUnit deploymentUnit, Collection<BeanDeploymentArchiveImpl> beanDeploymentArchives) { this.beanDeploymentArchives = ImmutableSet.copyOf(beanDeploymentArchives); for (BeanDeploymentArchiveImpl bda : beanDeploymentArchives) { bda.addBeanDeploymentArchives(beanDeploymentArchives); } this.moduleDescriptor = WeldEEModuleDescriptor.of(moduleId, deploymentUnit); if (moduleDescriptor != null) { addService(EEModuleDescriptor.class, moduleDescriptor); } }
final BeanDeploymentModule bdm = new BeanDeploymentModule(beanDeploymentArchives); bdm.addService(JpaInjectionServices.class, jpaInjectionServices); deploymentUnit.putAttachment(WeldAttachments.BEAN_DEPLOYMENT_MODULE, bdm);
newBda.addBeanDeploymentArchives(rootBeanDeploymentModule.getBeanDeploymentArchives());