Beispiel #1
0
  protected Collection<ContextHolder<? extends Context>> createContexts(ServiceRegistry services) {
    List<ContextHolder<? extends Context>> contexts =
        new ArrayList<ContextHolder<? extends Context>>();

    BeanIdentifierIndex beanIdentifierIndex = services.get(BeanIdentifierIndex.class);

    /*
     * Register a full set of bound and unbound contexts. Although we may not use all of
     * these (e.g. if we are running in a servlet environment) they may be
     * useful for an application.
     */
    contexts.add(
        new ContextHolder<ApplicationContext>(
            new ApplicationContextImpl(contextId),
            ApplicationContext.class,
            UnboundLiteral.INSTANCE));
    contexts.add(
        new ContextHolder<SingletonContext>(
            new SingletonContextImpl(contextId), SingletonContext.class, UnboundLiteral.INSTANCE));
    contexts.add(
        new ContextHolder<BoundSessionContext>(
            new BoundSessionContextImpl(contextId, beanIdentifierIndex),
            BoundSessionContext.class,
            BoundLiteral.INSTANCE));
    contexts.add(
        new ContextHolder<BoundConversationContext>(
            new BoundConversationContextImpl(contextId, services),
            BoundConversationContext.class,
            BoundLiteral.INSTANCE));
    contexts.add(
        new ContextHolder<BoundRequestContext>(
            new BoundRequestContextImpl(contextId),
            BoundRequestContext.class,
            BoundLiteral.INSTANCE));
    contexts.add(
        new ContextHolder<RequestContext>(
            new RequestContextImpl(contextId), RequestContext.class, UnboundLiteral.INSTANCE));
    contexts.add(
        new ContextHolder<DependentContext>(
            new DependentContextImpl(services.get(ContextualStore.class)),
            DependentContext.class,
            UnboundLiteral.INSTANCE));

    services.get(WeldModules.class).postContextRegistration(contextId, services, contexts);

    /*
     * Register the contexts with the bean manager and add the beans to the
     * deployment manager so that they are easily accessible (contexts are app
     * scoped)
     */
    for (ContextHolder<? extends Context> context : contexts) {
      deploymentManager.addContext(context.getContext());
      deploymentManager.addBean(ContextBean.of(context, deploymentManager));
    }

    return contexts;
  }
  /** Check the getter and setter. */
  @Test
  public void testGetterAndSetter() {
    ServletContext servletContext = context.mock(ServletContext.class);

    sut = new ContextHolder();

    sut.setServletContext(servletContext);

    assertEquals("ServletContext does not match", servletContext, sut.getContext());
  }