sascha@308: package de.intevation.flys.artifacts.model; sascha@308: sascha@308: import org.apache.log4j.Logger; sascha@308: sascha@308: import org.hibernate.Session; sascha@308: import org.hibernate.SessionFactory; sascha@308: sascha@308: import de.intevation.flys.backend.SessionFactoryProvider; sascha@308: sascha@308: public class SessionHolder sascha@308: { sascha@308: private static Logger logger = sascha@308: Logger.getLogger(SessionHolder.class); sascha@308: sascha@308: public static final ThreadLocal HOLDER = sascha@308: new ThreadLocal() { sascha@308: protected Session initialValue() { sascha@308: return create(); sascha@308: } sascha@308: }; sascha@308: sascha@308: private SessionHolder() { sascha@308: } sascha@308: sascha@308: public synchronized static Session create() { sascha@308: logger.debug("create"); sascha@308: SessionFactory sessionFactory = ingo@309: SessionFactoryProvider.getSessionFactory(); sascha@308: return sessionFactory.openSession(); sascha@308: } sascha@308: sascha@308: public static Session acquire() { sascha@308: logger.debug("acquire"); sascha@308: Session session = create(); sascha@308: HOLDER.set(session); sascha@308: return session; sascha@308: } sascha@308: sascha@308: public static void release() { sascha@308: logger.debug("release"); sascha@308: HOLDER.remove(); sascha@308: } sascha@308: } sascha@308: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :