comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/FLYSService.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
children a5f327849b85
comparison
equal deleted inserted replaced
1630:cafd8af6734a 1631:26e19cdaed5e
1 package de.intevation.flys.artifacts.services;
2
3 import org.w3c.dom.Document;
4
5 import org.apache.log4j.Logger;
6
7 import org.hibernate.Session;
8
9 import de.intevation.artifacts.CallMeta;
10 import de.intevation.artifacts.GlobalContext;
11
12 import de.intevation.artifactdatabase.DefaultService;
13
14 import de.intevation.flys.backend.SessionHolder;
15
16
17 public abstract class FLYSService extends DefaultService {
18
19 private static final Logger logger = Logger.getLogger(FLYSService.class);
20
21
22 public Document process(
23 Document data,
24 GlobalContext globalContext,
25 CallMeta callMeta
26 ) {
27 init();
28
29 try {
30 return doProcess(data, globalContext, callMeta);
31 }
32 finally {
33 shutdown();
34 }
35 }
36
37
38 protected abstract Document doProcess(
39 Document data,
40 GlobalContext globalContext,
41 CallMeta callMeta);
42
43
44 protected void init() {
45 logger.debug("init");
46 SessionHolder.acquire();
47 }
48
49
50 protected void shutdown() {
51 logger.debug("shutdown");
52 Session session = SessionHolder.HOLDER.get();
53 session.close();
54
55 SessionHolder.release();
56 }
57 }
58 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org