Search in sources :

Example 1 with RIBean

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();
}
Also used : BeanManagerImpl(org.jboss.weld.manager.BeanManagerImpl) DecoratorImpl(org.jboss.weld.bean.DecoratorImpl) RIBean(org.jboss.weld.bean.RIBean) BeanIdentifierIndex(org.jboss.weld.serialization.BeanIdentifierIndex) InterceptorImpl(org.jboss.weld.bean.InterceptorImpl)

Aggregations

DecoratorImpl (org.jboss.weld.bean.DecoratorImpl)1 InterceptorImpl (org.jboss.weld.bean.InterceptorImpl)1 RIBean (org.jboss.weld.bean.RIBean)1 BeanManagerImpl (org.jboss.weld.manager.BeanManagerImpl)1 BeanIdentifierIndex (org.jboss.weld.serialization.BeanIdentifierIndex)1