use of org.jboss.weld.bean.RIBean in project core by weld.
the class WeldStartup method endInitialization.
public void endInitialization() {
tracker.start(Tracker.OP_END_INIT);
final BeanIdentifierIndex index = deploymentManager.getServices().get(BeanIdentifierIndex.class);
if (index != null) {
// Build a special index of bean identifiers
index.build(getBeansForBeanIdentifierIndex());
}
// Register the managers so external requests can handle them
// clear the TypeSafeResolvers, so data that is only used at startup
// is not kept around using up memory
flushCaches();
deploymentManager.getServices().cleanupAfterBoot();
deploymentManager.cleanupAfterBoot();
for (BeanDeployment beanDeployment : getBeanDeployments()) {
BeanManagerImpl beanManager = beanDeployment.getBeanManager();
beanManager.getInterceptorMetadataReader().cleanAfterBoot();
beanManager.getServices().cleanupAfterBoot();
beanManager.cleanupAfterBoot();
// clean up beans
for (Bean<?> bean : beanManager.getBeans()) {
if (bean instanceof RIBean<?>) {
RIBean<?> riBean = (RIBean<?>) bean;
riBean.cleanupAfterBoot();
}
}
// clean up decorators
for (Decorator<?> decorator : beanManager.getDecorators()) {
if (decorator instanceof DecoratorImpl<?>) {
Reflections.<DecoratorImpl<?>>cast(decorator).cleanupAfterBoot();
}
}
// clean up interceptors
for (Interceptor<?> interceptor : beanManager.getInterceptors()) {
if (interceptor instanceof InterceptorImpl<?>) {
Reflections.<InterceptorImpl<?>>cast(interceptor).cleanupAfterBoot();
}
}
}
for (BeanDeployment beanDeployment : getBeanDeployments()) {
beanDeployment.getBeanDeployer().cleanup();
}
// feed BeanDeploymentModule registry
final BeanDeploymentModules modules = deploymentManager.getServices().get(BeanDeploymentModules.class);
if (modules != null) {
modules.processBeanDeployments(getBeanDeployments());
BootstrapLogger.LOG.debugv("EE modules: {0}", modules);
}
getContainer().setState(ContainerState.INITIALIZED);
if (modules != null) {
// web modules are handled by HttpContextLifecycle
for (BeanDeploymentModule module : modules) {
if (!module.isWebModule()) {
module.fireEvent(Object.class, ContextEvent.APPLICATION_INITIALIZED, InitializedLiteral.APPLICATION);
}
}
}
tracker.close();
}
Aggregations