Package org.apache.isis.runtimes.dflt.runtime.system.session

Examples of org.apache.isis.runtimes.dflt.runtime.system.session.IsisSession


    @Override
    public IsisSession openSessionInstance(final AuthenticationSession authenticationSession) {
        final Thread thread = Thread.currentThread();
        synchronized (sessionsByThread) {
            applySessionClosePolicy();
            final IsisSession session = getSessionFactoryInstance().openSession(authenticationSession);
            LOG.debug("  opening session " + session + " (count " + sessionsByThread.size() + ") for " + authenticationSession.getUserName());
            saveSession(thread, session);
            session.open();
            return session;
        }
    }
View Full Code Here


            return session;
        }
    }

    protected IsisSession createAndOpenSession(final Thread thread, final AuthenticationSession authenticationSession) {
        final IsisSession session = getSessionFactoryInstance().openSession(authenticationSession);
        session.open();
        LOG.info("  opening session " + session + " (count " + sessionsByThread.size() + ") for " + authenticationSession.getUserName());
        return session;
    }
View Full Code Here

     * @see #openSessionInstance(AuthenticationSession)
     */
    @Override
    public IsisSession getSessionInstance() {
        final Thread thread = Thread.currentThread();
        final IsisSession session = sessionsByThread.get(thread);
        return session;
    }
View Full Code Here

        if (bootstrapSession != null) {
            return bootstrapSession;
        }

        final Session session = Session.get();
        final IsisSession isisSession = sessionMap.get(session);
        return isisSession;
    }
View Full Code Here

        // there could be multiple threads using a session.

        final AuthenticatedWebSessionForIsis webSession = (AuthenticatedWebSessionForIsis) Session.get();
        webSession.registerUseByThread();

        IsisSession isisSession = sessionMap.get(webSession);
        if (isisSession == null) {
            isisSession = getSessionFactoryInstance().openSession(authSession);
            // put into map prior to opening, so that subsequent calls to
            // getSessionInstance() will find this new session.
            sessionMap.put(webSession, isisSession);
            isisSession.open();
        }

        return isisSession;
    }
View Full Code Here

    private synchronized void closeSessionOrDeregisterUsageOnExisting() {
        final AuthenticatedWebSessionForIsis webSession = (AuthenticatedWebSessionForIsis) Session.get();
        final boolean shouldClose = webSession.deregisterUseByThread();

        final IsisSession isisSession = sessionMap.get(webSession);
        if (isisSession == null) {
            // nothing to be done
            return;
        }

        if (shouldClose) {
            isisSession.close();
            // remove after closing, so that any calls to getSessionInstance()
            // made while closing will still find this session
            sessionMap.remove(webSession);
        }
View Full Code Here

        getTransactionManager().startTransaction();
    }

    @Override
    protected synchronized void onEndRequest() {
        final IsisSession session = getIsisContext().getSessionInstance();
        if (session != null) {
            // in session
            commitTransactionIfAny();
            getIsisContext().closeSessionInstance();
        }
View Full Code Here

    // Session
    // //////////////////////////////////////////////

    @Override
    public void closeAllSessionsInstance() {
        final IsisSession sessionInstance = getSessionInstance();
        if (sessionInstance != null) {
            sessionInstance.closeAll();
        }
    }
View Full Code Here

    protected void shutdownAllThreads() {
        synchronized (sessionsByThread) {
            int i = 0;
            for (final Thread thread : sessionsByThread.keySet()) {
                LOG.info("Shutting down thread: " + i++);
                final IsisSession data = sessionsByThread.get(thread);
                data.closeAll();
            }
        }
    }
View Full Code Here

    @Override
    public String[] allSessionIds() {
        final String[] ids = new String[sessionsByThread.size()];
        int i = 0;
        for (final Thread thread : sessionsByThread.keySet()) {
            final IsisSession data = sessionsByThread.get(thread);
            ids[i++] = data.getId();
        }
        return ids;
    }
View Full Code Here

TOP

Related Classes of org.apache.isis.runtimes.dflt.runtime.system.session.IsisSession

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.