Search in sources :

Example 1 with LazyHttpConversationContextImpl

use of org.jboss.weld.module.web.context.http.LazyHttpConversationContextImpl in project core by weld.

the class WeldWebModule method postContextRegistration.

@Override
public void postContextRegistration(PostContextRegistrationContext ctx) {
    final BeanIdentifierIndex index = ctx.getServices().get(BeanIdentifierIndex.class);
    final String contextId = ctx.getContextId();
    if (Reflections.isClassLoadable(ServletApiAbstraction.SERVLET_CONTEXT_CLASS_NAME, WeldClassLoaderResourceLoader.INSTANCE)) {
        // Register the Http contexts if not in
        Set<Annotation> httpQualifiers = ImmutableSet.<Annotation>builder().addAll(Bindings.DEFAULT_QUALIFIERS).add(HttpLiteral.INSTANCE).build();
        ctx.addContext(new ContextHolder<HttpSessionContext>(new HttpSessionContextImpl(contextId, index), HttpSessionContext.class, httpQualifiers));
        ctx.addContext(new ContextHolder<HttpSessionDestructionContext>(new HttpSessionDestructionContext(contextId, index), HttpSessionDestructionContext.class, httpQualifiers));
        ctx.addContext(new ContextHolder<HttpConversationContext>(new LazyHttpConversationContextImpl(contextId, ctx.getServices()), HttpConversationContext.class, httpQualifiers));
        ctx.addContext(new ContextHolder<HttpRequestContext>(new HttpRequestContextImpl(contextId), HttpRequestContext.class, httpQualifiers));
    }
}
Also used : HttpSessionDestructionContext(org.jboss.weld.module.web.context.http.HttpSessionDestructionContext) LazyHttpConversationContextImpl(org.jboss.weld.module.web.context.http.LazyHttpConversationContextImpl) Annotation(java.lang.annotation.Annotation) BeanIdentifierIndex(org.jboss.weld.serialization.BeanIdentifierIndex) HttpSessionContextImpl(org.jboss.weld.module.web.context.http.HttpSessionContextImpl) HttpSessionContext(org.jboss.weld.context.http.HttpSessionContext) HttpRequestContext(org.jboss.weld.context.http.HttpRequestContext) HttpRequestContextImpl(org.jboss.weld.module.web.context.http.HttpRequestContextImpl) HttpConversationContext(org.jboss.weld.context.http.HttpConversationContext)

Example 2 with LazyHttpConversationContextImpl

use of org.jboss.weld.module.web.context.http.LazyHttpConversationContextImpl in project core by weld.

the class ConversationContextActivator method deactivateConversationContext.

protected void deactivateConversationContext(HttpServletRequest request) {
    try {
        ConversationContext conversationContext = httpConversationContext();
        if (conversationContext.isActive()) {
            // Only deactivate the context if one is already active, otherwise we get Exceptions
            if (conversationContext instanceof LazyHttpConversationContextImpl) {
                LazyHttpConversationContextImpl lazyConversationContext = (LazyHttpConversationContextImpl) conversationContext;
                if (!lazyConversationContext.isInitialized()) {
                    // if this lazy conversation has not been touched yet, just deactivate it
                    lazyConversationContext.deactivate();
                    processDestructionQueue(request);
                    return;
                }
            }
            boolean isTransient = conversationContext.getCurrentConversation().isTransient();
            if (ConversationLogger.LOG.isTraceEnabled()) {
                if (isTransient) {
                    ConversationLogger.LOG.cleaningUpTransientConversation();
                } else {
                    ConversationLogger.LOG.cleaningUpConversation(conversationContext.getCurrentConversation().getId());
                }
            }
            if (isTransient) {
                conversationBeforeDestroyedEvent.fire(request);
            }
            conversationContext.invalidate();
            conversationContext.deactivate();
            if (isTransient) {
                conversationDestroyedEvent.fire(request);
            }
            processDestructionQueue(request);
        }
    } catch (Exception e) {
        ServletLogger.LOG.unableToDeactivateContext(httpConversationContext(), request);
        ServletLogger.LOG.catchingDebug(e);
    }
}
Also used : LazyHttpConversationContextImpl(org.jboss.weld.module.web.context.http.LazyHttpConversationContextImpl) HttpConversationContext(org.jboss.weld.context.http.HttpConversationContext) ConversationContext(org.jboss.weld.context.ConversationContext) AbstractConversationContext(org.jboss.weld.contexts.AbstractConversationContext)

Aggregations

HttpConversationContext (org.jboss.weld.context.http.HttpConversationContext)2 LazyHttpConversationContextImpl (org.jboss.weld.module.web.context.http.LazyHttpConversationContextImpl)2 Annotation (java.lang.annotation.Annotation)1 ConversationContext (org.jboss.weld.context.ConversationContext)1 HttpRequestContext (org.jboss.weld.context.http.HttpRequestContext)1 HttpSessionContext (org.jboss.weld.context.http.HttpSessionContext)1 AbstractConversationContext (org.jboss.weld.contexts.AbstractConversationContext)1 HttpRequestContextImpl (org.jboss.weld.module.web.context.http.HttpRequestContextImpl)1 HttpSessionContextImpl (org.jboss.weld.module.web.context.http.HttpSessionContextImpl)1 HttpSessionDestructionContext (org.jboss.weld.module.web.context.http.HttpSessionDestructionContext)1 BeanIdentifierIndex (org.jboss.weld.serialization.BeanIdentifierIndex)1