Package org.itsnat.impl.core.servlet

Examples of org.itsnat.impl.core.servlet.ItsNatServletContextImpl


        return "1.3.2";
    }

    public ItsNatServletContextImpl getItsNatServletContext(ServletContext context)
    {
        ItsNatServletContextImpl itsNatContext =
                (ItsNatServletContextImpl)context.getAttribute("itsnat_servlet_context");
        if (itsNatContext == null)
        {
            // La primera vez es la �nica necesaria pero as� evitamos sincronizaciones.
            // Es rar�simo que este m�todo se llame en multihilo y menos a�n estado
            // el contexto no registrado como atributo.
            // En teor�a podr�amos usar un javax.servlet.ServletContextListener pero obligamos
            // al programador registrarlo en el web.xml haciendo p�blica
            // una API con un fin claramente interno.
            // Cre�ndolo la primera vez que se necesita podemos iniciarlo correctamente con el ServletContext
            // afortunadamente la de-serializaci�n la hemos mejorado para no necesitar el ItsNatServletContextImpl
            // hasta el primer request.
            itsNatContext = new ItsNatServletContextImpl(this,context);
            context.setAttribute("itsnat_servlet_context",itsNatContext);
        }

        return itsNatContext;
    }
View Full Code Here


        long currentTimeStamp = source.getCurrentTimestamp(request,response);
        InputSource inputSource = source.createInputSource(request,response);
        ItsNatStfulDocumentTemplateVersionImpl templateVer =
                (ItsNatStfulDocumentTemplateVersionImpl)parent.createMarkupTemplateVersion(inputSource,currentTimeStamp,request,response);

        ItsNatServletContextImpl context = parent.getItsNatServletImpl().getItsNatServletContextImpl();
        if (context.isSessionReplicationCapable()) // S�lo lo salvamos cuando es estrictamente necesario pues ocupa bastante memoria pues contiene el markup original en texto
            templateVer.setMarkupSourceStringMarkup((MarkupSourceStringMarkupImpl)source);

        return templateVer;
    }
View Full Code Here

        // Permite liberar la sesi�n en los maps del ItsNatServletContext

        HttpSession session = event.getSession();

        ItsNatImpl itsNat = (ItsNatImpl)ItsNatBoot.get();
        ItsNatServletContextImpl itsNatContext = itsNat.getItsNatServletContext(session.getServletContext());

        ItsNatSessionImpl itsNatSession = itsNatContext.getItsNatSessionByStandardId(session.getId());
        if (itsNatSession == null) return; // Por si acaso
        itsNatSession.destroy();
    }
View Full Code Here

    }

    protected static ItsNatHttpSessionImpl getItsNatHttpSession(ItsNatHttpServletRequestImpl itsNatRequest)
    {
        ItsNatHttpSessionImpl itsNatSession;
        ItsNatServletContextImpl context = itsNatRequest.getItsNatServletContext();
        HttpServletRequest request = itsNatRequest.getHttpServletRequest();
        HttpSession session = request.getSession();
        if (session == null) throw new ItsNatException("INTERNAL ERROR");

        boolean useAttribute = context.isSessionReplicationCapable();

        synchronized(session)
        {
            // Quiz�s se pudiera evitar el synchronized usando AtomicReference (cuando portemos a Java 1.5)
            // http://www.ibm.com/developerworks/java/library/j-jtp09238.html?ca=drs-
            // De todas maneras el impacto en el rendimiento es �nfimo
            if (useAttribute)
                itsNatSession = ItsNatHttpSessionReplicationCapableImpl.readItsNatHttpSessionFromAttribute(session,context,itsNatRequest);
            else
                itsNatSession = ItsNatHttpSessionStickyImpl.getItsNatHttpSessionStickyByStandardId(session,context);

            if (itsNatSession == null)
            {
                itsNatSession = createItsNatHttpSession(session, context, itsNatRequest);
                context.addItsNatSession(itsNatSession); // �til para el control remoto, siempre hay que hacerlo

                if (session.getAttribute(SESSION_CLEAN_ATTRIBUTE_NAME) == null)
                {
                    // Esta anterior comprobaci�n es muy importante en SessionReplicationCapable = false
                    // pues el cleaner es lo �nico que se serializa en el caso SessionReplicationCapable = false
View Full Code Here

        }
        else
        {
            // La sesi�n que se quiere monitorizar no tiene porqu� ser la misma del monitorizador
            String targetSessionId = getAttrOrParamExist("itsnat_session_id"); // Debe existir (sino da error)
            ItsNatServletContextImpl context = itsNatRequest.getItsNatServletContext();
            ItsNatSessionImpl targetSession = context.findItsNatSessionByItsNatId(targetSessionId);
            if (targetSession == null)
            {
                processTargetSessionNotFound(targetSessionId);
                return;
            }
View Full Code Here

    public ItsNatSessionImpl getBoundParentItsNatSession()
    {
        String stdSessionParentId = parent.getAttrOrParam("itsnat_jsessionid_parent");
        if (stdSessionParentId != null)
        {
            ItsNatServletContextImpl context = parent.getItsNatServletRequest().getItsNatServletContext();
            return context.getItsNatSessionByStandardId(stdSessionParentId); // Puede ser null (no encuentra la sesi�n, raro)
        }
        else
        {
            return parent.getItsNatSession(); // La sesi�n del padre es la misma que la del hijo
        }
View Full Code Here

TOP

Related Classes of org.itsnat.impl.core.servlet.ItsNatServletContextImpl

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.