Mercurial > dive4elements > river
annotate flys-backend/src/main/java/de/intevation/flys/backend/SessionHolder.java @ 4254:33b15ac17fd1
Only create and add GaugePanel when necessary
The GaugePanel isn't created always and only show if WINFO and a river is
selected now. It is only created on demand. Therefore all access to the
GaugePanel is abstraced via methods that check if the GaugePanel is null before
accessing it's methods.
author | Björn Ricks <bjoern.ricks@intevation.de> |
---|---|
date | Thu, 25 Oct 2012 13:58:53 +0200 |
parents | 76c75c8b9ee0 |
children |
rev | line source |
---|---|
466
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.backend; |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
2 |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
3 import org.apache.log4j.Logger; |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
4 |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
5 import org.hibernate.Session; |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
6 import org.hibernate.SessionFactory; |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
7 |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
8 |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
9 public class SessionHolder |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 { |
3333
76c75c8b9ee0
SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
466
diff
changeset
|
11 private static Logger log = |
466
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
12 Logger.getLogger(SessionHolder.class); |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
14 public static final ThreadLocal<Session> HOLDER = |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
15 new ThreadLocal<Session>() { |
3333
76c75c8b9ee0
SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
466
diff
changeset
|
16 @Override |
466
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
17 protected Session initialValue() { |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
18 return create(); |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
19 } |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
20 }; |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
21 |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
22 private SessionHolder() { |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
23 } |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
24 |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
25 public synchronized static Session create() { |
3333
76c75c8b9ee0
SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
466
diff
changeset
|
26 log.debug("create"); |
466
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
27 SessionFactory sessionFactory = |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
28 SessionFactoryProvider.getSessionFactory(); |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
29 return sessionFactory.openSession(); |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
30 } |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
31 |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
32 public static Session acquire() { |
3333
76c75c8b9ee0
SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
466
diff
changeset
|
33 log.debug("acquire"); |
466
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
34 Session session = create(); |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
35 HOLDER.set(session); |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
36 return session; |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
37 } |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
38 |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
39 public static void release() { |
3333
76c75c8b9ee0
SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
466
diff
changeset
|
40 log.debug("release"); |
466
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
41 HOLDER.remove(); |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
42 } |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
43 } |
8bd50b41dea6
Moved the SessionHolder from flys-artifacts to flys-backend.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
44 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |