annotate backend/src/main/java/org/dive4elements/river/backend/SedDBSessionHolder.java @ 9709:b74f817435fe

comment removed
author dnt_bjoernsen <d.tironi@bjoernsen.de>
date Wed, 27 Jan 2021 11:47:38 +0100
parents 0d711ecbcd49
children 0a5239a1e46e
rev   line source
5844
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5992
4c3ccf2b0304 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5844
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5992
4c3ccf2b0304 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
6 * documentation coming with Dive4Elements River for details.
5844
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5829
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
9 package org.dive4elements.river.backend;
3333
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
11 import org.apache.log4j.Logger;
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
12
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
13 import org.hibernate.Session;
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14 import org.hibernate.SessionFactory;
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
15
8576
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
16 public class SedDBSessionHolder
3333
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
17 {
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
18 private static Logger log =
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
19 Logger.getLogger(SedDBSessionHolder.class);
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
20
8576
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
21 public static final ThreadLocal<Session> HOLDER =
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
22 new ThreadLocal<Session>() {
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
23 @Override
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
24 protected Session initialValue() {
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
25 Session session = create();
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
26 log.debug("Initial session value: " + session.hashCode());
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
27 return session;
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
28 }
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
29 };
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
30
3333
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
31 public synchronized static Session create() {
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
32 log.debug("create");
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
33 SessionFactory sessionFactory =
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
34 SessionFactoryProvider.getSedDBSessionFactory();
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
35 return sessionFactory.openSession();
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
36 }
8576
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
37
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
38 public static Session acquire() {
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
39 Session session = create();
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
40 log.debug("acquired session: " + session.hashCode());
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
41 HOLDER.set(session);
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
42 return session;
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
43 }
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
44
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
45 public static void release() {
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
46 Session session = HOLDER.get();
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
47 if (session != null) {
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
48 log.debug("releasing session: " + session.hashCode());
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
49 session.close();
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
50 } else {
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
51 log.error("release() called on NULL session.");
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
52 }
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
53 HOLDER.remove();
0d711ecbcd49 Renable access to seddb sessions
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8566
diff changeset
54 }
3333
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
55 }
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
56 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org