diff flys-backend/src/main/java/de/intevation/flys/importer/Importer.java @ 497:67fd63e4ef66

Importer: centralized caching flys-backend/trunk@1851 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Sun, 08 May 2011 15:29:45 +0000
parents ed38839a6b08
children 763c4137d6e1
line wrap: on
line diff
--- a/flys-backend/src/main/java/de/intevation/flys/importer/Importer.java	Sun May 08 11:20:39 2011 +0000
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/Importer.java	Sun May 08 15:29:45 2011 +0000
@@ -9,13 +9,9 @@
 
 import org.apache.log4j.Logger;
 
-import org.hibernate.SessionFactory;
-import org.hibernate.Session;
 import org.hibernate.Transaction;
 import org.hibernate.HibernateException;
 
-import de.intevation.flys.backend.SessionFactoryProvider;
-
 public class Importer
 {
     private static Logger log = Logger.getLogger(Importer.class);
@@ -23,9 +19,6 @@
     public static final boolean DRY_RUN =
         Boolean.getBoolean("flys.backend.importer.dry.run");
 
-    public static final ThreadLocal<Session> sessionHolder =
-        new ThreadLocal<Session>();
-
     protected List<ImportRiver> rivers;
 
     public Importer() {
@@ -46,29 +39,22 @@
     public void writeRivers() {
         log.debug("write rivers started");
 
-        Session session = sessionHolder.get();
-
         for (ImportRiver river: rivers) {
             log.debug("writing river '" + river.getName() + "'");
             river.storeDependencies();
-            session.flush();
+            ImporterSession.getInstance().getDatabaseSession().flush();
         }
 
         log.debug("write rivers finished");
     }
 
     public void writeToDatabase() {
-        SessionFactory sessionFactory =
-            SessionFactoryProvider.createSessionFactory();
-
-        Session session = sessionFactory.openSession();
-
-        sessionHolder.set(session);
 
         Transaction tx = null;
 
         try {
-            tx = session.beginTransaction();
+            tx = ImporterSession.getInstance()
+                .getDatabaseSession().beginTransaction();
 
             try {
                 writeRivers();
@@ -91,10 +77,6 @@
             }
             throw re;
         }
-        finally {
-            session.close();
-            sessionHolder.remove();
-        }
     }
 
     public static void main(String [] args) {

http://dive4elements.wald.intevation.org