private void startSessionContext() { SessionContext ctx = new SessionContext(); ctx.setActive(true); sessionContext.set(ctx); webBeansContext.getBeanManagerImpl().fireContextLifecyleEvent( new Object(), InitializedLiteral.INSTANCE_SESSION_SCOPED); }
/** * Destroys the session context and all of its components at the end of the * session. * * @param session http session object */ private void destroySessionContext(final HttpSession session) { if (session != null) { //Get current session context final SessionContext context = sessionContext.get(); //Destroy context if (context != null) { context.destroy(); } //Clear thread locals sessionContext.set(null); sessionContext.remove(); //Remove session from manager sessionCtxManager.removeSessionContextWithSessionId(session.getId()); } }
private Context getSessionContext() { SessionContext context = sessionContext.get(); if (context == null || !context.isActive()) { lazyStartSessionContext(); context = sessionContext.get(); } return context; }
/** * Creates the session context at the session start. * * @param session http session object */ private void initSessionContext(final HttpSession session) { if (session == null) { // no session -> no SessionContext return; } final String sessionId = session.getId(); //Current context SessionContext currentSessionContext = sessionCtxManager.getSessionContextWithSessionId(sessionId); //No current context if (currentSessionContext == null) { currentSessionContext = newSessionContext(session); sessionCtxManager.addNewSessionContext(sessionId, currentSessionContext); } //Activate currentSessionContext.setActive(true); //Set thread local sessionContext.set(currentSessionContext); }
private SessionContext newSessionContext(final HttpSession session) { final String classname = SystemInstance.get().getComponent(ThreadSingletonService.class).sessionContextClass(); if (classname != null) { try { final Class<?> clazz = Thread.currentThread().getContextClassLoader().loadClass(classname); try { final Constructor<?> constr = clazz.getConstructor(HttpSession.class); return (SessionContext) constr.newInstance(session); } catch (final Exception e) { return (SessionContext) clazz.newInstance(); } } catch (final Exception e) { logger.error("Can't instantiate " + classname + ", using default session context", e); } } return new SessionContext(); }
sessionContext.setActive(true);
if (currentSessionContext == null) currentSessionContext = new SessionContext(); currentSessionContext.setActive(true); currentSessionContext.setActive(true);
private void stopSessionContext() { webBeansContext.getBeanManagerImpl().fireContextLifecyleEvent( new Object(), BeforeDestroyedLiteral.INSTANCE_SESSION_SCOPED); if(sessionContext.get() != null) { sessionContext.get().destroy(); } sessionContext.set(null); sessionContext.remove(); SessionScopedBeanInterceptorHandler.removeThreadLocals(); webBeansContext.getBeanManagerImpl().fireContextLifecyleEvent( new Object(), DestroyedLiteral.INSTANCE_SESSION_SCOPED); }
@Override public void destroy(Object destroyObject) { RequestContext requestCtx = requestContext.get(); if (requestCtx != null) { requestCtx.destroy(); RequestScopedBeanInterceptorHandler.removeThreadLocals(); requestContext.set(null); requestContext.remove(); } SessionContext sessionCtx = sessionContext.get(); if (sessionCtx != null) { sessionCtx.destroy(); SessionScopedBeanInterceptorHandler.removeThreadLocals(); sessionContext.set(null); sessionContext.remove(); } ConversationContext conversationCtx = conversationContext.get(); if (conversationCtx != null) { conversationCtx.destroy(); conversationContext.set(null); conversationContext.remove(); } dependentContext.set(null); dependentContext.remove(); destroyGlobalContexts(); }
if (sessionCtx != null) sessionCtx.destroy(); sessionContexts.set(null); sessionContexts.remove();
payload != null ? payload : new Object(), BeforeDestroyedLiteral.INSTANCE_SESSION_SCOPED); sessionContext.destroy();