Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/context/SessionCallContextListener.java @ 4655:cd44d28d0fbc
Move the access to artifact data to the Access object
Use BedHeightAccess class to receive the data from the artifact. This abstracts
the data access from the actual artifact.
author | Björn Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Tue, 11 Dec 2012 09:44:04 +0100 |
parents | 94c176fdcb89 |
children |
line wrap: on
line source
package de.intevation.flys.artifacts.context; import org.apache.log4j.Logger; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.hibernate.Session; import de.intevation.flys.backend.SessionHolder; import de.intevation.artifacts.CallContext; import de.intevation.artifacts.CallContext.Listener; /** * This CallContextListener is used to initialize a ThreadLocal variable in * each CallContext (for each request) that holds Sessions. * * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ public class SessionCallContextListener implements Listener { public static final String SESSION_KEY = "context.session"; /** The logger that is used in this class.*/ private static Logger logger = Logger.getLogger(SessionCallContextListener.class); public SessionCallContextListener() { } public void setup(Document config, Node listenerConfig) { // nothing to do here } /** * Initializes a ThreadLocal variable that is used to hold sessions. * * @param context The CallContext. */ public void init(CallContext context) { logger.debug("SessionCallContextListener.init"); Session session = SessionHolder.acquire(); context.putContextValue(SESSION_KEY, session); } /** * Closes open sessions of the ThreadLocal variable opened in init(). * * @param context The CallContext. */ public void close(CallContext context) { logger.debug("SessionCallContextListener.close"); Session session = (Session)context.getContextValue(SESSION_KEY); session.close(); SessionHolder.release(); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :