Mercurial > dive4elements > river
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; }