use of org.jboss.weld.metadata.cache.MetaAnnotationStore 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));
}
use of org.jboss.weld.metadata.cache.MetaAnnotationStore 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));
}
}
Aggregations