use of org.jboss.weld.module.web.context.http.HttpRequestContextImpl 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));
}
}
use of org.jboss.weld.module.web.context.http.HttpRequestContextImpl in project core by weld.
the class HttpContextLifecycle method sessionDestroyed.
public void sessionDestroyed(HttpSession session) {
// Mark the session context and conversation contexts to destroy
// instances when appropriate
deactivateSessionDestructionContext(session);
boolean destroyed = getSessionContext().destroy(session);
SessionHolder.clear();
RequestScopedCache.endRequest();
if (destroyed) {
// we are outside of a request (the session timed out) and therefore the session was destroyed immediately
// we can fire the @Destroyed(SessionScoped.class) event immediately
sessionDestroyedEvent.fire(session);
} else {
// let's store its reference until then
if (getRequestContext() instanceof HttpRequestContextImpl) {
HttpServletRequest request = Reflections.<HttpRequestContextImpl>cast(getRequestContext()).getHttpServletRequest();
request.setAttribute(HTTP_SESSION, session);
}
}
}
Aggregations