示例#1
0
 private Object readResolve() throws ObjectStreamException {
   InterceptionModel<ClassMetadata<?>> interceptionModel =
       manager.getInterceptorModelRegistry().get(targetClass);
   MetadataCachingReader reader = manager.getInterceptorMetadataReader();
   TargetClassInterceptorMetadata<?> targetClassInterceptorMetadata =
       reader.getTargetClassInterceptorMetadata(reader.getClassMetadata(targetClass));
   return new InterceptionContext(
       interceptorInstances, manager, targetClassInterceptorMetadata, interceptionModel);
 }
示例#2
0
 private static InterceptionContext of(
     InterceptionModel<ClassMetadata<?>> interceptionModel,
     CreationalContext<?> ctx,
     BeanManagerImpl manager,
     Set<InterceptionType> interceptionTypes) {
   TargetClassInterceptorMetadata<?> targetClassInterceptorMetadata =
       manager
           .getInterceptorMetadataReader()
           .getTargetClassInterceptorMetadata(interceptionModel.getInterceptedEntity());
   return new InterceptionContext(
       initInterceptorInstanceMap(interceptionModel, ctx, manager, interceptionTypes),
       manager,
       targetClassInterceptorMetadata,
       interceptionModel);
 }
示例#3
0
  public void endInitialization() {

    final BeanIdentifierIndex index =
        deploymentManager.getServices().get(BeanIdentifierIndex.class);
    if (index != null) {
      // Build a special index of bean identifiers
      index.build(getBeansForBeanIdentifierIndex());
    }

    // TODO rebuild the manager accessibility graph if the bdas have changed
    // 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) {
      // fire @Initialized(ApplicationScoped.class) for non-web modules
      // web modules are handled by HttpContextLifecycle
      for (BeanDeploymentModule module : modules) {
        if (!module.isWebModule()) {
          module.fireEvent(
              Object.class, ContextEvent.APPLICATION_INITIALIZED, InitializedLiteral.APPLICATION);
        }
      }
    }
  }