@Override public void registerBean(AbstractBuiltInBean<?> bean) { deployment.getBeanDeployer().addBuiltInBean(bean); }
public BeanDeployer addLoadedClasses(Iterable<Class<?>> classes) { AnnotatedTypeLoader loader = createAnnotatedTypeLoader(); for (Class<?> clazz : classes) { addClass(clazz, loader); } return this; }
public void createClasses() { beanDeployer.addClasses(obtainClasses()); }
public void createClassBeans() { SetMultimap<Class<?>, SlimAnnotatedType<?>> otherWeldClasses = SetMultimap.newSetMultimap(); for (SlimAnnotatedTypeContext<?> ctx : getEnvironment().getAnnotatedTypes()) { createClassBean(ctx.getAnnotatedType(), otherWeldClasses); } // create session beans ejbSupport.createSessionBeans(getEnvironment(), otherWeldClasses, getManager()); }
ResourceLoader resourceLoader = registry.get(ResourceLoader.class); if (resourceLoader == null) { resourceLoader = DefaultResourceLoader.INSTANCE; registry.add(ResourceLoader.class, resourceLoader); services.addAll(deploymentServices.entrySet()); services.addAll(registry.entrySet()); services.add(InterceptorsApiAbstraction.class, new InterceptorsApiAbstraction(resourceLoader)); services.add(AnnotationApiAbstraction.class, new AnnotationApiAbstraction(resourceLoader)); this.beanManager = BeanManagerImpl.newManager(deploymentManager, BeanDeployments.getFinalId(beanDeploymentArchive.getId(), services.get(WeldConfiguration.class).getStringProperty(ROLLING_UPGRADES_ID_DELIMITER)), services); services.add(InjectionTargetService.class, new InjectionTargetService(beanManager)); beanDeployer = new ConcurrentBeanDeployer(beanManager, deploymentServices); } else { beanDeployer = new BeanDeployer(beanManager, deploymentServices); beanManager.getServices().get(SpecializationAndEnablementRegistry.class).registerEnvironment(beanManager, beanDeployer.getEnvironment(), additionalBeanArchive); beanManager.addBean(new BeanManagerBean(beanManager)); beanManager.addBean(new BeanManagerImplBean(beanManager));
public void endInitialization() { tracker.start(Tracker.OP_END_INIT); final BeanIdentifierIndex index = deploymentManager.getServices().get(BeanIdentifierIndex.class); if (index != null) { deploymentManager.getServices().cleanupAfterBoot(); deploymentManager.cleanupAfterBoot(); for (BeanDeployment beanDeployment : getBeanDeployments()) { BeanManagerImpl beanManager = beanDeployment.getBeanManager(); beanManager.getInterceptorMetadataReader().cleanAfterBoot(); beanManager.getServices().cleanupAfterBoot(); beanManager.cleanupAfterBoot(); beanDeployment.getBeanDeployer().cleanup(); deploymentManager.getBeanResolver().clear(); for (BeanDeployment beanDeployment : getBeanDeployments()) { beanDeployment.getBeanManager().getBeanResolver().clear(); deploymentManager.getServices().get(Validator.class).clearResolved(); deploymentManager.getServices().get(ClassTransformer.class).cleanupAfterBoot(); getContainer().setState(ContainerState.INITIALIZED);
public void createBeans(Environment environment) { getBeanManager().getServices().get(WeldModules.class).preBeanRegistration(this, environment); if (getBeanManager().getServices().get(EjbSupport.class) == EjbSupport.NOOP_IMPLEMENTATION) { beanDeployer.addBuiltInBean(new InjectionPointBean(beanManager)); beanDeployer.addBuiltInBean(new EventMetadataBean(beanManager)); beanDeployer.addBuiltInBean(new EventBean(beanManager)); beanDeployer.addBuiltInBean(new InstanceBean(beanManager)); beanDeployer.addBuiltInBean(new ConversationBean(beanManager)); beanDeployer.addBuiltInBean(new BeanMetadataBean(beanManager)); beanDeployer.addBuiltInBean(new InterceptedBeanMetadataBean(beanManager)); beanDeployer.addBuiltInBean(new DecoratedBeanMetadataBean(beanManager)); beanDeployer.addBuiltInBean(new InterceptorMetadataBean(beanManager)); beanDeployer.addBuiltInBean(new DecoratorMetadataBean(beanManager)); beanDeployer.addBuiltInBean(new InterceptionFactoryBean(beanManager)); if (beanManager.getServices().getRequired(SecurityServices.class) != NoopSecurityServices.INSTANCE) { beanDeployer.addBuiltInBean(new PrincipalBean(beanManager)); beanDeployer.addBuiltInBean(ContextBean.of(context, beanManager)); beanDeployer.addBuiltInBean(new RequestContextControllerBean(beanManager)); beanDeployer.getEnvironment().trim(); beanDeployer.createClassBeans();
private <E extends Extension> void deployBean(Metadata<E> extension, ClassTransformer classTransformer) { // Locate the BeanDeployment for this extension BeanDeployment beanDeployment = DeploymentStructures.getOrCreateBeanDeployment(deployment, beanManager, bdaMapping, contexts, extension.getValue() .getClass()); EnhancedAnnotatedType<E> enchancedAnnotatedType = getEnhancedAnnotatedType(classTransformer, extension, beanDeployment); if (enchancedAnnotatedType != null) { ExtensionBean<E> bean = new ExtensionBean<E>(beanDeployment.getBeanManager(), enchancedAnnotatedType, extension); Set<ObserverInitializationContext<?, ?>> observerMethodInitializers = new HashSet<ObserverInitializationContext<?, ?>>(); createObserverMethods(bean, beanDeployment.getBeanManager(), enchancedAnnotatedType, observerMethodInitializers); beanDeployment.getBeanManager().addBean(bean); beanDeployment.getBeanDeployer().addExtension(bean); for (ObserverInitializationContext<?, ?> observerMethodInitializer : observerMethodInitializers) { observerMethodInitializer.initialize(); beanDeployment.getBeanManager().addObserver(observerMethodInitializer.getObserver()); containerLifecycleEventObservers.processObserverMethod(observerMethodInitializer.getObserver()); } BootstrapLogger.LOG.extensionBeanDeployed(bean); } }
public void createBeans(Environment environment) { beanDeployer.addBuiltInBean(new InjectionPointBean(beanManager)); beanDeployer.addBuiltInBean(new EventMetadataBean(beanManager)); beanDeployer.addBuiltInBean(new EventBean(beanManager)); beanDeployer.addBuiltInBean(new InstanceBean(beanManager)); beanDeployer.addBuiltInBean(new ConversationBean(beanManager)); beanDeployer.addBuiltInBean(new BeanMetadataBean(beanManager)); beanDeployer.addBuiltInBean(new InterceptedBeanMetadataBean(beanManager)); beanDeployer.addBuiltInBean(new DecoratedBeanMetadataBean(beanManager)); beanDeployer.addBuiltInBean(new InterceptorMetadataBean(beanManager)); beanDeployer.addBuiltInBean(new DecoratorMetadataBean(beanManager)); if (Reflections.isClassLoadable(ServletApiAbstraction.SERVLET_CONTEXT_CLASS_NAME, WeldClassLoaderResourceLoader.INSTANCE)) { beanDeployer.addBuiltInBean(new HttpServletRequestBean(beanManager)); beanDeployer.addBuiltInBean(new HttpSessionBean(beanManager)); beanDeployer.addBuiltInBean(new ServletContextBean(beanManager)); if (beanManager.getServices().contains(TransactionServices.class)) { beanDeployer.addBuiltInBean(new UserTransactionBean(beanManager)); if (beanManager.getServices().contains(SecurityServices.class)) { beanDeployer.addBuiltInBean(new PrincipalBean(beanManager)); beanDeployer.addBuiltInBean(ContextBean.of(context, beanManager)); TrimmableBeansXml beansXml = (TrimmableBeansXml) beanDeploymentArchive.getBeansXml(); if (beansXml.isTrimmed()) { beanDeployer.getEnvironment().trim(); beanDeployer.createClassBeans();
public void createClassBeans() { SetMultimap<Class<?>, SlimAnnotatedType<?>> otherWeldClasses = SetMultimap.newConcurrentSetMultimap(); for (SlimAnnotatedTypeContext<?> ctx : getEnvironment().getAnnotatedTypes()) { createClassBean(ctx.getAnnotatedType(), otherWeldClasses); } // create session beans for (InternalEjbDescriptor<?> ejbDescriptor : getEnvironment().getEjbDescriptors()) { if (getEnvironment().isVetoed(ejbDescriptor.getBeanClass()) || Beans.isVetoed(ejbDescriptor.getBeanClass())) { continue; } if (ejbDescriptor.isSingleton() || ejbDescriptor.isStateful() || ejbDescriptor.isStateless()) { if (otherWeldClasses.get(ejbDescriptor.getBeanClass()) != null) { for (SlimAnnotatedType<?> annotatedType : otherWeldClasses.get(ejbDescriptor.getBeanClass())) { EnhancedAnnotatedType<?> weldClass = classTransformer.getEnhancedAnnotatedType(annotatedType); createSessionBean(ejbDescriptor, Reflections.<EnhancedAnnotatedType> cast(weldClass)); } } else { createSessionBean(ejbDescriptor); } } } }
public void createClasses() { Stream<String> classNames = beanDeploymentArchive.getBeanClasses().stream(); Collection<Class<?>> loadedClasses = beanDeploymentArchive.getLoadedBeanClasses(); // filter out names of classes that are available in beanDeploymentArchive.getLoadedBeanClasses() if (!loadedClasses.isEmpty()) { Set<String> preloadedClassNames = loadedClasses.stream().map(c -> c.getName()).collect(Collectors.toSet()); classNames = classNames.filter(name -> !preloadedClassNames.contains(name)); } // apply inclusion / exclusion filters Predicate<String> filter = createFilter(); if (filter != null) { classNames = classNames.filter(filter); loadedClasses = loadedClasses.stream().filter(clazz -> filter.test(clazz.getName())).collect(Collectors.toSet()); } beanDeployer.addLoadedClasses(loadedClasses); beanDeployer.addClasses(classNames.collect(Collectors.toSet())); }
protected void storeSyntheticAnnotatedType(BeanDeployment deployment, AnnotatedType<?> type, String id) { deployment.getBeanDeployer().addSyntheticClass(type, getReceiver(), id); } }
ResourceLoader resourceLoader = registry.get(ResourceLoader.class); if (resourceLoader == null) { resourceLoader = DefaultResourceLoader.INSTANCE; registry.add(ResourceLoader.class, resourceLoader); services.addAll(deploymentServices.entrySet()); services.addAll(registry.entrySet()); services.add(InterceptorsApiAbstraction.class, new InterceptorsApiAbstraction(resourceLoader)); services.add(AnnotationApiAbstraction.class, new AnnotationApiAbstraction(resourceLoader)); this.beanManager = BeanManagerImpl.newManager(deploymentManager, BeanDeployments.getFinalId(beanDeploymentArchive.getId(), services.get(WeldConfiguration.class).getStringProperty(ROLLING_UPGRADES_ID_DELIMITER)), services); services.add(InjectionTargetService.class, new InjectionTargetService(beanManager)); beanDeployer = new ConcurrentBeanDeployer(beanManager, deploymentServices); } else { beanDeployer = new BeanDeployer(beanManager, deploymentServices); beanManager.getServices().get(SpecializationAndEnablementRegistry.class).registerEnvironment(beanManager, beanDeployer.getEnvironment(), additionalBeanArchive); beanManager.addBean(new BeanManagerBean(beanManager)); beanManager.addBean(new BeanManagerImplBean(beanManager));
public void endInitialization() { tracker.start(Tracker.OP_END_INIT); final BeanIdentifierIndex index = deploymentManager.getServices().get(BeanIdentifierIndex.class); if (index != null) { deploymentManager.getServices().cleanupAfterBoot(); deploymentManager.cleanupAfterBoot(); for (BeanDeployment beanDeployment : getBeanDeployments()) { BeanManagerImpl beanManager = beanDeployment.getBeanManager(); beanManager.getInterceptorMetadataReader().cleanAfterBoot(); beanManager.getServices().cleanupAfterBoot(); beanManager.cleanupAfterBoot(); beanDeployment.getBeanDeployer().cleanup(); deploymentManager.getBeanResolver().clear(); for (BeanDeployment beanDeployment : getBeanDeployments()) { beanDeployment.getBeanManager().getBeanResolver().clear(); deploymentManager.getServices().get(Validator.class).clearResolved(); deploymentManager.getServices().get(ClassTransformer.class).cleanupAfterBoot(); getContainer().setState(ContainerState.INITIALIZED);
public void createBeans(Environment environment) { getBeanManager().getServices().get(WeldModules.class).preBeanRegistration(this, environment); if (getBeanManager().getServices().get(EjbSupport.class) == EjbSupport.NOOP_IMPLEMENTATION) { beanDeployer.addBuiltInBean(new InjectionPointBean(beanManager)); beanDeployer.addBuiltInBean(new EventMetadataBean(beanManager)); beanDeployer.addBuiltInBean(new EventBean(beanManager)); beanDeployer.addBuiltInBean(new InstanceBean(beanManager)); beanDeployer.addBuiltInBean(new ConversationBean(beanManager)); beanDeployer.addBuiltInBean(new BeanMetadataBean(beanManager)); beanDeployer.addBuiltInBean(new InterceptedBeanMetadataBean(beanManager)); beanDeployer.addBuiltInBean(new DecoratedBeanMetadataBean(beanManager)); beanDeployer.addBuiltInBean(new InterceptorMetadataBean(beanManager)); beanDeployer.addBuiltInBean(new DecoratorMetadataBean(beanManager)); beanDeployer.addBuiltInBean(new InterceptionFactoryBean(beanManager)); if (beanManager.getServices().getRequired(SecurityServices.class) != NoopSecurityServices.INSTANCE) { beanDeployer.addBuiltInBean(new PrincipalBean(beanManager)); beanDeployer.addBuiltInBean(ContextBean.of(context, beanManager)); beanDeployer.addBuiltInBean(new RequestContextControllerBean(beanManager)); beanDeployer.getEnvironment().trim(); beanDeployer.createClassBeans();
private <E extends Extension> void deployBean(Metadata<E> extension, ClassTransformer classTransformer) { // Locate the BeanDeployment for this extension BeanDeployment beanDeployment = DeploymentStructures.getOrCreateBeanDeployment(deployment, beanManager, bdaMapping, contexts, extension.getValue() .getClass()); // Do not register synthetic extension as a bean, only register container lifecycle observer methods if (extension.getValue() instanceof SyntheticExtension) { SyntheticExtension synthetic = (SyntheticExtension) extension.getValue(); synthetic.initialize(beanDeployment.getBeanManager()); for (ObserverMethod<?> observer : synthetic.getObservers()) { beanDeployment.getBeanManager().addObserver(observer); containerLifecycleEventObservers.processObserverMethod(observer); } return; } EnhancedAnnotatedType<E> enchancedAnnotatedType = getEnhancedAnnotatedType(classTransformer, extension, beanDeployment); if (enchancedAnnotatedType != null) { ExtensionBean<E> bean = new ExtensionBean<E>(beanDeployment.getBeanManager(), enchancedAnnotatedType, extension); Set<ObserverInitializationContext<?, ?>> observerMethodInitializers = new HashSet<ObserverInitializationContext<?, ?>>(); createObserverMethods(bean, beanDeployment.getBeanManager(), enchancedAnnotatedType, observerMethodInitializers); beanDeployment.getBeanManager().addBean(bean); beanDeployment.getBeanDeployer().addExtension(bean); for (ObserverInitializationContext<?, ?> observerMethodInitializer : observerMethodInitializers) { observerMethodInitializer.initialize(); beanDeployment.getBeanManager().addObserver(observerMethodInitializer.getObserver()); containerLifecycleEventObservers.processObserverMethod(observerMethodInitializer.getObserver()); } BootstrapLogger.LOG.extensionBeanDeployed(bean); } }
public void createClassBeans() { SetMultimap<Class<?>, SlimAnnotatedType<?>> otherWeldClasses = SetMultimap.newSetMultimap(); for (SlimAnnotatedTypeContext<?> ctx : getEnvironment().getAnnotatedTypes()) { createClassBean(ctx.getAnnotatedType(), otherWeldClasses); } // create session beans ejbSupport.createSessionBeans(getEnvironment(), otherWeldClasses, getManager()); }
public void createClasses() { Stream<String> classNames = beanDeploymentArchive.getBeanClasses().stream(); Collection<Class<?>> loadedClasses = beanDeploymentArchive.getLoadedBeanClasses(); // filter out names of classes that are available in beanDeploymentArchive.getLoadedBeanClasses() if (!loadedClasses.isEmpty()) { Set<String> preloadedClassNames = loadedClasses.stream().map(c -> c.getName()).collect(Collectors.toSet()); classNames = classNames.filter(name -> !preloadedClassNames.contains(name)); } // apply inclusion / exclusion filters Predicate<String> filter = createFilter(); if (filter != null) { classNames = classNames.filter(filter); loadedClasses = loadedClasses.stream().filter(clazz -> filter.test(clazz.getName())).collect(Collectors.toSet()); } beanDeployer.addLoadedClasses(loadedClasses); beanDeployer.addClasses(classNames.collect(Collectors.toSet())); }
protected void storeSyntheticAnnotatedType(BeanDeployment deployment, AnnotatedType<?> type, String id) { deployment.getBeanDeployer().addSyntheticClass(type, getReceiver(), id); }
ResourceLoader resourceLoader = registry.get(ResourceLoader.class); if (resourceLoader == null) { resourceLoader = DefaultResourceLoader.INSTANCE; registry.add(ResourceLoader.class, resourceLoader); services.addAll(deploymentServices.entrySet()); services.addAll(registry.entrySet()); services.add(InterceptorsApiAbstraction.class, new InterceptorsApiAbstraction(resourceLoader)); services.add(AnnotationApiAbstraction.class, new AnnotationApiAbstraction(resourceLoader)); this.beanManager = BeanManagerImpl.newManager(deploymentManager, BeanDeployments.getFinalId(beanDeploymentArchive.getId(), services.get(WeldConfiguration.class).getStringProperty(ROLLING_UPGRADES_ID_DELIMITER)), services); services.add(InjectionTargetService.class, new InjectionTargetService(beanManager)); beanDeployer = new ConcurrentBeanDeployer(beanManager, deploymentServices); } else { beanDeployer = new BeanDeployer(beanManager, deploymentServices); beanManager.getServices().get(SpecializationAndEnablementRegistry.class).registerEnvironment(beanManager, beanDeployer.getEnvironment(), additionalBeanArchive); beanManager.addBean(new BeanManagerBean(beanManager)); beanManager.addBean(new BeanManagerImplBean(beanManager));