/** * Makes the {@link BeanDeploymentArchiveImpl} accessible to all bdas in the module * * @param archive The archive to make accessible */ public synchronized void addBeanDeploymentArchive(BeanDeploymentArchiveImpl archive) { for (BeanDeploymentArchiveImpl bda : beanDeploymentArchives) { bda.addBeanDeploymentArchive(archive); } }
newBda.addBeanDeploymentArchive(bda); bda.addBeanDeploymentArchive(newBda);
/** * {@link org.jboss.as.weld.deployment.processors.WeldDeploymentProcessor} assembles a basic accessibility graph based on * the deployment structure. Here, we complete the graph by examining classloader visibility. This allows additional * accessibility edges caused e.g. by the Class-Path declaration in the manifest file, to be recognized. * * @param beanDeploymentArchives */ private void calculateAccessibilityGraph(Iterable<BeanDeploymentArchiveImpl> beanDeploymentArchives) { for (BeanDeploymentArchiveImpl from : beanDeploymentArchives) { for (BeanDeploymentArchiveImpl target : beanDeploymentArchives) { if (from.isAccessible(target)) { from.addBeanDeploymentArchive(target); } } } }
public WeldDeployment(Set<BeanDeploymentArchiveImpl> beanDeploymentArchives, Collection<Metadata<Extension>> extensions, Module module, Set<ClassLoader> subDeploymentClassLoaders) { this.subDeploymentClassLoaders = new HashSet<ClassLoader>(subDeploymentClassLoaders); this.additionalBeanDeploymentArchive = new BeanDeploymentArchiveImpl(Collections.<String> emptySet(), BeansXml.EMPTY_BEANS_XML, module, getClass().getName() + ADDITIONAL_CLASSES_BDA_SUFFIX); this.beanDeploymentArchives = new HashSet<BeanDeploymentArchiveImpl>(beanDeploymentArchives); this.extensions = new HashSet<Metadata<Extension>>(extensions); this.serviceRegistry = new SimpleServiceRegistry(); this.beanDeploymentsByClassName = new HashMap<String, BeanDeploymentArchiveImpl>(); this.module = module; // add static services this.serviceRegistry.add(ProxyServices.class, new ProxyServicesImpl(module)); this.serviceRegistry.add(ResourceLoader.class, new WeldModuleResourceLoader(module)); // set up the additional bean archives accessibility rules // and map class names to bean deployment archives for (BeanDeploymentArchiveImpl bda : beanDeploymentArchives) { bda.addBeanDeploymentArchive(additionalBeanDeploymentArchive); for (String className : bda.getBeanClasses()) { beanDeploymentsByClassName.put(className, bda); } } additionalBeanDeploymentArchive.addBeanDeploymentArchives(this.beanDeploymentArchives); }
/** * 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); } } } }
for(BeanDeploymentArchiveImpl j : moduleBdas) { if(i != j) { i.addBeanDeploymentArchive(j);
/** * Makes the {@link BeanDeploymentArchiveImpl} accessible to all bdas in the module * * @param archive The archive to make accessible */ public synchronized void addBeanDeploymentArchive(BeanDeploymentArchiveImpl archive) { for (BeanDeploymentArchiveImpl bda : beanDeploymentArchives) { bda.addBeanDeploymentArchive(archive); } }
@Override public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException { DeploymentUnit depUnit = phaseContext.getDeploymentUnit(); CamelDeploymentSettings depSettings = depUnit.getAttachment(CamelDeploymentSettings.ATTACHMENT_KEY); List<DeploymentUnit> subDeployments = depUnit.getAttachmentList(Attachments.SUB_DEPLOYMENTS); // Return if camel disabled or not a CDI deployment if (!depSettings.isEnabled() || !WeldDeploymentMarker.isPartOfWeldDeployment(depUnit)) { return; } // Return if we're not an EAR deployment if (!DeploymentTypeMarker.isType(DeploymentType.EAR, depUnit)) { return; } // Make sure external bean archives from the camel-cdi module are visible to sub deployments List<BeanDeploymentArchiveImpl> deploymentArchives = depUnit.getAttachmentList(WeldAttachments.ADDITIONAL_BEAN_DEPLOYMENT_MODULES); BeanDeploymentArchiveImpl rootArchive = depUnit.getAttachment(WeldAttachments.DEPLOYMENT_ROOT_BEAN_DEPLOYMENT_ARCHIVE); for (BeanDeploymentArchiveImpl bda : deploymentArchives) { if (bda.getBeanArchiveType().equals(BeanDeploymentArchiveImpl.BeanArchiveType.EXTERNAL)) { for (BeanDeploymentArchive topLevelBda : rootArchive.getBeanDeploymentArchives()) { bda.addBeanDeploymentArchive(topLevelBda); } } for (DeploymentUnit subDepUnit : subDeployments) { BeanDeploymentArchive subBda = subDepUnit.getAttachment(WeldAttachments.DEPLOYMENT_ROOT_BEAN_DEPLOYMENT_ARCHIVE); bda.addBeanDeploymentArchive(subBda); } } }