diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java @ 1631:26e19cdaed5e

Improved database session handling in services and artifacts. flys-artifacts/trunk@2807 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 22 Sep 2011 10:07:22 +0000
parents b1ed0ec0236f
children e92bc9b0ca1d
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java	Thu Sep 22 07:58:24 2011 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/DistanceInfoService.java	Thu Sep 22 10:07:22 2011 +0000
@@ -14,9 +14,6 @@
 import de.intevation.artifacts.common.ArtifactNamespaceContext;
 import de.intevation.artifacts.common.utils.XMLUtils;
 
-import de.intevation.artifactdatabase.DefaultService;
-
-import de.intevation.flys.backend.SessionHolder;
 import de.intevation.flys.model.Annotation;
 import de.intevation.flys.model.Attribute;
 import de.intevation.flys.model.Position;
@@ -25,8 +22,6 @@
 
 import de.intevation.flys.artifacts.model.AnnotationsFactory;
 
-import org.hibernate.Session;
-
 import de.intevation.flys.artifacts.cache.CacheFactory;
 
 import net.sf.ehcache.Cache;
@@ -36,7 +31,7 @@
  *
  * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
  */
-public class DistanceInfoService extends DefaultService {
+public class DistanceInfoService extends FLYSService {
 
     private static enum DistanceFilter {
         NONE, LOCATIONS, DISTANCES
@@ -60,7 +55,7 @@
 
 
     @Override
-    public Document process(
+    public Document doProcess(
         Document      data,
         GlobalContext globalContext,
         CallMeta      callMeta
@@ -120,31 +115,23 @@
 
         Document result = XMLUtils.newDocument();
 
-        Session session = SessionHolder.acquire();
-
-        try {
-            Iterator<Annotation> iter =
-                AnnotationsFactory.getAnnotationsIterator(river);
-
-            Element all = result.createElement("distances");
-
-            DistanceFilter filter = getDistanceFilter(filtertype);
+        Iterator<Annotation> iter =
+            AnnotationsFactory.getAnnotationsIterator(river);
 
-            while (iter.hasNext()) {
-                Annotation a = iter.next();
-                Element distance = buildDistanceNode(result, a, filter);
+        Element all = result.createElement("distances");
 
-                if (distance != null) {
-                    all.appendChild(distance);
-                }
-            }
+        DistanceFilter filter = getDistanceFilter(filtertype);
 
-            result.appendChild(all);
+        while (iter.hasNext()) {
+            Annotation a = iter.next();
+            Element distance = buildDistanceNode(result, a, filter);
+
+            if (distance != null) {
+                all.appendChild(distance);
+            }
         }
-        finally {
-            session.close();
-            SessionHolder.release();
-        }
+
+        result.appendChild(all);
 
         return result;
     }

http://dive4elements.wald.intevation.org