/** * Gets the {@link BeanManager} linked to the root bean deployment archive. This BeanManager has access to all beans in a * deployment * * @throws IllegalStateException if the container is not running */ public BeanManagerImpl getBeanManager() { if (!started) { throw WeldLogger.ROOT_LOGGER.notStarted("WeldContainer"); } return bootstrap.getManager(rootBeanDeploymentArchive); }
public WeldBootstrapService(final WeldDeployment deployment, final Environment environment, final String deploymentName, final Consumer<WeldBootstrapService> weldBootstrapServiceConsumer, final Supplier<ExecutorServices> executorServicesSupplier, final Supplier<ExecutorService> serverExecutorSupplier, final Supplier<SecurityServices> securityServicesSupplier, final Supplier<TransactionServices> weldTransactionServicesSupplier ) { this.deployment = deployment; this.environment = environment; this.deploymentName = deploymentName; this.weldBootstrapServiceConsumer = weldBootstrapServiceConsumer; this.executorServicesSupplier = executorServicesSupplier; this.serverExecutorSupplier = serverExecutorSupplier; this.securityServicesSupplier = securityServicesSupplier; this.weldTransactionServicesSupplier = weldTransactionServicesSupplier; this.bootstrap = new WeldBootstrap(); Map<String, BeanDeploymentArchive> bdas = new HashMap<String, BeanDeploymentArchive>(); BeanDeploymentArchiveImpl rootBeanDeploymentArchive = null; for (BeanDeploymentArchive archive : deployment.getBeanDeploymentArchives()) { bdas.put(archive.getId(), archive); if (archive instanceof BeanDeploymentArchiveImpl) { BeanDeploymentArchiveImpl bda = (BeanDeploymentArchiveImpl) archive; if (bda.isRoot()) { rootBeanDeploymentArchive = bda; } } } this.rootBeanDeploymentArchive = rootBeanDeploymentArchive; this.beanDeploymentArchives = Collections.unmodifiableMap(bdas); }
bootstrapSupplier.get().getBootstrap().startInitialization(); bootstrapSupplier.get().getBootstrap().deployBeans(); bootstrapSupplier.get().getBootstrap().validateBeans(); } finally {
if (!deployment.getServices().contains(ExecutorServices.class)) { addWeldService(ExecutorServices.class, executorServicesSupplier.get()); try { WildFlySecurityManager.setCurrentContextClassLoaderPrivileged(deployment.getModule().getClassLoader()); bootstrap.startContainer(deploymentName, environment, deployment); WeldProvider.containerInitialized(Container.instance(deploymentName), getBeanManager(), deployment); } finally {
public void createProducersAndObservers() { for (AbstractClassBean<?> bean : getEnvironment().getClassBeans()) { createObserversProducersDisposers(bean); } }
FastAnnotatedTypeLoader(BeanManagerImpl manager, ClassTransformer transformer, ClassFileServices classFileServices, ContainerLifecycleEvents events, FastProcessAnnotatedTypeResolver resolver) { super(manager, transformer, events); this.fallback = new AnnotatedTypeLoader(manager, transformer, events); this.classFileServices = classFileServices; this.resolver = resolver; this.checkTypeModifiers = initCheckTypeModifiers(); }
protected void searchForNewBeanDeclarations(Iterable<? extends AbstractBean<?, ?>> beans) { for (AbstractBean<?, ?> bean : beans) { getEnvironment().addNewBeansFromInjectionPoints(bean); } }
@Override public synchronized Bootstrap validateBeans() { checkInitializationNotAlreadyEnded(); weldStartup.validateBeans(); return this; }
@Override public synchronized Bootstrap startInitialization() { checkInitializationNotAlreadyEnded(); weldStartup.startInitialization(); return this; }
@Override public synchronized Bootstrap deployBeans() { checkInitializationNotAlreadyEnded(); weldStartup.deployBeans(); return this; }
private static CompositePredicate assignable(Class<?>[] classes) { Predicate<ClassFileInfo>[] predicates = new Predicate[classes.length]; for (int i = 0; i < classes.length; i++) { predicates[i] = new AssignableToPredicate(classes[i]); } return new CompositePredicate(predicates); }
private <T> SlimAnnotatedTypeContext<T> addIfNotNull(SlimAnnotatedTypeContext<T> ctx) { if (ctx != null) { getEnvironment().addAnnotatedType(ctx); } return ctx; }
bootstrapSupplier.get().getBootstrap().endInitialization(); } finally { for (SetupAction action : setupActions) {
/** * Stops the container * Executed in WeldStartService to shutdown the runtime before NamingService is closed. * * @throws IllegalStateException if the container is not running */ @Override public void stop(final StopContext context) { final WeldBootstrapService bootstrapService = bootstrapSupplier.get(); if (!bootstrapService.isStarted()) { throw WeldLogger.ROOT_LOGGER.notStarted("WeldContainer"); } WeldLogger.DEPLOYMENT_LOGGER.stoppingWeldService(bootstrapService.getDeploymentName()); ClassLoader oldTccl = WildFlySecurityManager.getCurrentContextClassLoaderPrivileged(); try { WildFlySecurityManager.setCurrentContextClassLoaderPrivileged(bootstrapService.getDeployment().getModule().getClassLoader()); WeldProvider.containerShutDown(Container.instance(bootstrapService.getDeploymentName())); bootstrapService.getBootstrap().shutdown(); } finally { WildFlySecurityManager.setCurrentContextClassLoaderPrivileged(oldTccl); ModuleGroupSingletonProvider.removeClassLoader(bootstrapService.getDeployment().getModule().getClassLoader()); } bootstrapService.setStarted(false); }
public void createProducersAndObservers() { for (AbstractClassBean<?> bean : getEnvironment().getClassBeans()) { createObserversProducersDisposers(bean); } }
FastAnnotatedTypeLoader(BeanManagerImpl manager, ClassTransformer transformer, ClassFileServices classFileServices, ContainerLifecycleEvents events, FastProcessAnnotatedTypeResolver resolver) { super(manager, transformer, events); this.fallback = new AnnotatedTypeLoader(manager, transformer, events); this.classFileServices = classFileServices; this.resolver = resolver; this.checkTypeModifiers = initCheckTypeModifiers(); }
protected void searchForNewBeanDeclarations(Iterable<? extends AbstractBean<?, ?>> beans) { for (AbstractBean<?, ?> bean : beans) { getEnvironment().addNewBeansFromInjectionPoints(bean); } }
@Override public synchronized Bootstrap validateBeans() { checkInitializationNotAlreadyEnded(); weldStartup.validateBeans(); return this; }
/** * Gets the {@link BeanManager} for a given bean deployment archive id. * * @throws IllegalStateException if the container is not running * @throws IllegalArgumentException if the bean deployment archive id is not found */ public BeanManagerImpl getBeanManager(String beanArchiveId) { if (!started) { throw WeldLogger.ROOT_LOGGER.notStarted("WeldContainer"); } BeanDeploymentArchive beanDeploymentArchive = beanDeploymentArchives.get(beanArchiveId); if (beanDeploymentArchive == null) { throw WeldLogger.ROOT_LOGGER.beanDeploymentNotFound(beanArchiveId); } return bootstrap.getManager(beanDeploymentArchive); }
FastAnnotatedTypeLoader(BeanManagerImpl manager, ClassTransformer transformer, ClassFileServices classFileServices, ContainerLifecycleEvents events, FastProcessAnnotatedTypeResolver resolver) { super(manager, transformer, events); this.fallback = new AnnotatedTypeLoader(manager, transformer, events); this.classFileServices = classFileServices; this.resolver = resolver; this.checkTypeModifiers = initCheckTypeModifiers(); }