Search in sources :

Example 1 with GlobalObserverNotifierService

use of org.jboss.weld.event.GlobalObserverNotifierService in project core by weld.

the class AccessibleManagerResolutionTest method beforeMethod.

@BeforeMethod
public void beforeMethod() {
    BeanIdentifierIndex beanIdentifierIndex = new BeanIdentifierIndex();
    beanIdentifierIndex.build(Collections.<Bean<?>>emptySet());
    this.typeStore = new TypeStore();
    this.classTransformer = new ClassTransformer(typeStore, new SharedObjectCache(), ReflectionCacheFactory.newInstance(typeStore), RegistrySingletonProvider.STATIC_INSTANCE);
    this.services = new SimpleServiceRegistry();
    this.services.add(MetaAnnotationStore.class, new MetaAnnotationStore(classTransformer));
    this.services.add(ContextualStore.class, new ContextualStoreImpl(STATIC_INSTANCE, beanIdentifierIndex));
    this.services.add(ClassTransformer.class, classTransformer);
    this.services.add(SharedObjectCache.class, new SharedObjectCache());
    this.services.add(WeldConfiguration.class, new WeldConfiguration(this.services, new MockDeployment(services)));
    this.services.add(SecurityServices.class, NoopSecurityServices.INSTANCE);
    this.services.add(ObserverNotifierFactory.class, DefaultObserverNotifierFactory.INSTANCE);
    this.services.add(GlobalObserverNotifierService.class, new GlobalObserverNotifierService(services, RegistrySingletonProvider.STATIC_INSTANCE));
    this.services.add(ExpressionLanguageSupport.class, WeldWebModule.EL_SUPPORT);
    this.services.add(SpecializationAndEnablementRegistry.class, new SpecializationAndEnablementRegistry());
    this.services.add(InterceptorsApiAbstraction.class, new InterceptorsApiAbstraction(DefaultResourceLoader.INSTANCE));
    this.services.add(ProxyInstantiator.class, DefaultProxyInstantiator.INSTANCE);
    this.services.add(ResourceInjectionFactory.class, new ResourceInjectionFactory());
    this.services.add(EjbSupport.class, EjbSupport.NOOP_IMPLEMENTATION);
    // create BeanManagerImpl and initialize container
    root = BeanManagerImpl.newRootManager(STATIC_INSTANCE, "root", services);
    Container.initialize(root, services);
    // add injection target service; has to be done once container was initialized
    this.services.add(InjectionTargetService.class, new InjectionTargetService(root));
}
Also used : SpecializationAndEnablementRegistry(org.jboss.weld.bootstrap.SpecializationAndEnablementRegistry) ResourceInjectionFactory(org.jboss.weld.injection.ResourceInjectionFactory) MetaAnnotationStore(org.jboss.weld.metadata.cache.MetaAnnotationStore) ClassTransformer(org.jboss.weld.resources.ClassTransformer) BeanIdentifierIndex(org.jboss.weld.serialization.BeanIdentifierIndex) InterceptorsApiAbstraction(org.jboss.weld.interceptor.builder.InterceptorsApiAbstraction) SharedObjectCache(org.jboss.weld.resources.SharedObjectCache) SimpleServiceRegistry(org.jboss.weld.bootstrap.api.helpers.SimpleServiceRegistry) TypeStore(org.jboss.weld.metadata.TypeStore) InjectionTargetService(org.jboss.weld.injection.producer.InjectionTargetService) GlobalObserverNotifierService(org.jboss.weld.event.GlobalObserverNotifierService) WeldConfiguration(org.jboss.weld.config.WeldConfiguration) ContextualStoreImpl(org.jboss.weld.serialization.ContextualStoreImpl) BeforeMethod(org.testng.annotations.BeforeMethod)

Example 2 with GlobalObserverNotifierService

use of org.jboss.weld.event.GlobalObserverNotifierService in project core by weld.

the class WeldStartup method addImplementationServices.

private void addImplementationServices(ServiceRegistry services) {
    final WeldModules modules = new WeldModules();
    services.add(WeldModules.class, modules);
    final WeldConfiguration configuration = services.get(WeldConfiguration.class);
    services.add(SlimAnnotatedTypeStore.class, new SlimAnnotatedTypeStoreImpl());
    if (services.get(ClassTransformer.class) == null) {
        throw new IllegalStateException(ClassTransformer.class.getSimpleName() + " not installed.");
    }
    services.add(MemberTransformer.class, new MemberTransformer(services.get(ClassTransformer.class)));
    services.add(MetaAnnotationStore.class, new MetaAnnotationStore(services.get(ClassTransformer.class)));
    BeanIdentifierIndex beanIdentifierIndex = null;
    if (configuration.getBooleanProperty(ConfigurationKey.BEAN_IDENTIFIER_INDEX_OPTIMIZATION)) {
        beanIdentifierIndex = new BeanIdentifierIndex();
        services.add(BeanIdentifierIndex.class, beanIdentifierIndex);
    }
    services.add(ContextualStore.class, new ContextualStoreImpl(contextId, beanIdentifierIndex));
    services.add(CurrentInjectionPoint.class, new CurrentInjectionPoint());
    services.add(CurrentEventMetadata.class, new CurrentEventMetadata());
    services.add(SpecializationAndEnablementRegistry.class, new SpecializationAndEnablementRegistry());
    services.add(MissingDependenciesRegistry.class, new MissingDependenciesRegistry());
    /*
         * Setup ExecutorServices
         */
    ExecutorServices executor = services.get(ExecutorServices.class);
    if (executor == null) {
        executor = ExecutorServicesFactory.create(DefaultResourceLoader.INSTANCE, configuration);
        if (executor != null) {
            services.add(ExecutorServices.class, executor);
        }
    }
    services.add(RequiredAnnotationDiscovery.class, new RequiredAnnotationDiscovery(services.get(ReflectionCache.class)));
    services.add(GlobalEnablementBuilder.class, new GlobalEnablementBuilder());
    if (!services.contains(HttpContextActivationFilter.class)) {
        services.add(HttpContextActivationFilter.class, AcceptingHttpContextActivationFilter.INSTANCE);
    }
    services.add(ProtectionDomainCache.class, new ProtectionDomainCache());
    services.add(ProxyInstantiator.class, ProxyInstantiator.Factory.create(configuration));
    services.add(ObserverNotifierFactory.class, DefaultObserverNotifierFactory.INSTANCE);
    services.add(ResourceInjectionFactory.class, new ResourceInjectionFactory());
    modules.postServiceRegistration(contextId, services);
    /*
         * Setup Validator
         */
    if (configuration.getBooleanProperty(ConfigurationKey.CONCURRENT_DEPLOYMENT) && services.contains(ExecutorServices.class)) {
        services.add(Validator.class, new ConcurrentValidator(modules.getPluggableValidators(), executor));
    } else {
        services.add(Validator.class, new Validator(modules.getPluggableValidators()));
    }
    GlobalObserverNotifierService observerNotificationService = new GlobalObserverNotifierService(services, contextId);
    services.add(GlobalObserverNotifierService.class, observerNotificationService);
    /*
         * Preloader for container lifecycle events
         */
    ContainerLifecycleEventPreloader preloader = null;
    int preloaderThreadPoolSize = configuration.getIntegerProperty(ConfigurationKey.PRELOADER_THREAD_POOL_SIZE);
    if (preloaderThreadPoolSize > 0 && Permissions.hasPermission(Permissions.MODIFY_THREAD_GROUP)) {
        preloader = new ContainerLifecycleEventPreloader(preloaderThreadPoolSize, observerNotificationService.getGlobalLenientObserverNotifier());
    }
    services.add(ContainerLifecycleEvents.class, new ContainerLifecycleEvents(preloader, services.get(RequiredAnnotationDiscovery.class)));
    if (environment.isEEModulesAware()) {
        services.add(BeanDeploymentModules.class, new BeanDeploymentModules(contextId, services));
    }
}
Also used : MemberTransformer(org.jboss.weld.resources.MemberTransformer) RequiredAnnotationDiscovery(org.jboss.weld.bootstrap.events.RequiredAnnotationDiscovery) CurrentInjectionPoint(org.jboss.weld.injection.CurrentInjectionPoint) AcceptingHttpContextActivationFilter(org.jboss.weld.servlet.spi.helpers.AcceptingHttpContextActivationFilter) HttpContextActivationFilter(org.jboss.weld.servlet.spi.HttpContextActivationFilter) GlobalEnablementBuilder(org.jboss.weld.bootstrap.enablement.GlobalEnablementBuilder) ContainerLifecycleEventPreloader(org.jboss.weld.bootstrap.events.ContainerLifecycleEventPreloader) MetaAnnotationStore(org.jboss.weld.metadata.cache.MetaAnnotationStore) ClassTransformer(org.jboss.weld.resources.ClassTransformer) BeanIdentifierIndex(org.jboss.weld.serialization.BeanIdentifierIndex) ContainerLifecycleEvents(org.jboss.weld.bootstrap.events.ContainerLifecycleEvents) ContextualStoreImpl(org.jboss.weld.serialization.ContextualStoreImpl) ResourceInjectionFactory(org.jboss.weld.injection.ResourceInjectionFactory) WeldModules(org.jboss.weld.module.WeldModules) CurrentInjectionPoint(org.jboss.weld.injection.CurrentInjectionPoint) SlimAnnotatedTypeStoreImpl(org.jboss.weld.annotated.slim.SlimAnnotatedTypeStoreImpl) ExecutorServices(org.jboss.weld.manager.api.ExecutorServices) ProtectionDomainCache(org.jboss.weld.bean.proxy.ProtectionDomainCache) GlobalObserverNotifierService(org.jboss.weld.event.GlobalObserverNotifierService) WeldConfiguration(org.jboss.weld.config.WeldConfiguration) CurrentEventMetadata(org.jboss.weld.event.CurrentEventMetadata)

Example 3 with GlobalObserverNotifierService

use of org.jboss.weld.event.GlobalObserverNotifierService in project core by weld.

the class WeldStartup method installFastProcessAnnotatedTypeResolver.

// needs to be resolved once extension beans are deployed
private void installFastProcessAnnotatedTypeResolver(ServiceRegistry services) {
    ClassFileServices classFileServices = services.get(ClassFileServices.class);
    if (classFileServices != null) {
        final GlobalObserverNotifierService observers = services.get(GlobalObserverNotifierService.class);
        try {
            final FastProcessAnnotatedTypeResolver resolver = new FastProcessAnnotatedTypeResolver(observers.getAllObserverMethods());
            services.add(FastProcessAnnotatedTypeResolver.class, resolver);
        } catch (UnsupportedObserverMethodException e) {
            BootstrapLogger.LOG.notUsingFastResolver(e.getObserver());
            return;
        }
    }
}
Also used : ClassFileServices(org.jboss.weld.resources.spi.ClassFileServices) GlobalObserverNotifierService(org.jboss.weld.event.GlobalObserverNotifierService)

Aggregations

GlobalObserverNotifierService (org.jboss.weld.event.GlobalObserverNotifierService)3 WeldConfiguration (org.jboss.weld.config.WeldConfiguration)2 ResourceInjectionFactory (org.jboss.weld.injection.ResourceInjectionFactory)2 MetaAnnotationStore (org.jboss.weld.metadata.cache.MetaAnnotationStore)2 ClassTransformer (org.jboss.weld.resources.ClassTransformer)2 BeanIdentifierIndex (org.jboss.weld.serialization.BeanIdentifierIndex)2 ContextualStoreImpl (org.jboss.weld.serialization.ContextualStoreImpl)2 SlimAnnotatedTypeStoreImpl (org.jboss.weld.annotated.slim.SlimAnnotatedTypeStoreImpl)1 ProtectionDomainCache (org.jboss.weld.bean.proxy.ProtectionDomainCache)1 SpecializationAndEnablementRegistry (org.jboss.weld.bootstrap.SpecializationAndEnablementRegistry)1 SimpleServiceRegistry (org.jboss.weld.bootstrap.api.helpers.SimpleServiceRegistry)1 GlobalEnablementBuilder (org.jboss.weld.bootstrap.enablement.GlobalEnablementBuilder)1 ContainerLifecycleEventPreloader (org.jboss.weld.bootstrap.events.ContainerLifecycleEventPreloader)1 ContainerLifecycleEvents (org.jboss.weld.bootstrap.events.ContainerLifecycleEvents)1 RequiredAnnotationDiscovery (org.jboss.weld.bootstrap.events.RequiredAnnotationDiscovery)1 CurrentEventMetadata (org.jboss.weld.event.CurrentEventMetadata)1 CurrentInjectionPoint (org.jboss.weld.injection.CurrentInjectionPoint)1 InjectionTargetService (org.jboss.weld.injection.producer.InjectionTargetService)1 InterceptorsApiAbstraction (org.jboss.weld.interceptor.builder.InterceptorsApiAbstraction)1 ExecutorServices (org.jboss.weld.manager.api.ExecutorServices)1