Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/context/SessionCallContextListener.java @ 4282:8b4988815974
Added marker for Ws and Qs in Historical Discharge WQ charts.
Therefore, the XYChartGenerator got two new methods addDomainMarker(Marker, boolean) and addValueMarker(Marker, boolean).
The boolean parameters determine, if the marker should be visible or not. This is analogous to addAxisSeries(XYSeries, int, boolean).
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 29 Oct 2012 05:59:27 +0100 |
parents | 94c176fdcb89 |
children |
rev | line source |
---|---|
307
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.artifacts.context; |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
2 |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
3 import org.apache.log4j.Logger; |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
4 |
310
6d2c8915e22c
Finalized the SessionCallContextListener and registered it as CallContext.Listener in the configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
308
diff
changeset
|
5 import org.w3c.dom.Document; |
6d2c8915e22c
Finalized the SessionCallContextListener and registered it as CallContext.Listener in the configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
308
diff
changeset
|
6 import org.w3c.dom.Node; |
6d2c8915e22c
Finalized the SessionCallContextListener and registered it as CallContext.Listener in the configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
308
diff
changeset
|
7 |
307
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
8 import org.hibernate.Session; |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
9 |
315
94c176fdcb89
Removed the SessionHolder and adapted imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
310
diff
changeset
|
10 import de.intevation.flys.backend.SessionHolder; |
94c176fdcb89
Removed the SessionHolder and adapted imports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
310
diff
changeset
|
11 |
307
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
12 import de.intevation.artifacts.CallContext; |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 import de.intevation.artifacts.CallContext.Listener; |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
14 |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
15 |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
16 /** |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
17 * This CallContextListener is used to initialize a ThreadLocal variable in |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
18 * each CallContext (for each request) that holds Sessions. |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
19 * |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
20 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
21 */ |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
22 public class SessionCallContextListener implements Listener { |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
23 |
308
084995dd1c9c
Added a session holder to hold hibernate sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
307
diff
changeset
|
24 public static final String SESSION_KEY = "context.session"; |
307
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
25 |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
26 /** The logger that is used in this class.*/ |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
27 private static Logger logger = |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
28 Logger.getLogger(SessionCallContextListener.class); |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
29 |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
30 |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
31 public SessionCallContextListener() { |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
32 } |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
33 |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
34 |
310
6d2c8915e22c
Finalized the SessionCallContextListener and registered it as CallContext.Listener in the configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
308
diff
changeset
|
35 public void setup(Document config, Node listenerConfig) { |
6d2c8915e22c
Finalized the SessionCallContextListener and registered it as CallContext.Listener in the configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
308
diff
changeset
|
36 // nothing to do here |
6d2c8915e22c
Finalized the SessionCallContextListener and registered it as CallContext.Listener in the configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
308
diff
changeset
|
37 } |
6d2c8915e22c
Finalized the SessionCallContextListener and registered it as CallContext.Listener in the configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
308
diff
changeset
|
38 |
6d2c8915e22c
Finalized the SessionCallContextListener and registered it as CallContext.Listener in the configuration.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
308
diff
changeset
|
39 |
307
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
40 /** |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
41 * Initializes a ThreadLocal variable that is used to hold sessions. |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
42 * |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
43 * @param context The CallContext. |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
44 */ |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
45 public void init(CallContext context) { |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
46 logger.debug("SessionCallContextListener.init"); |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
47 |
308
084995dd1c9c
Added a session holder to hold hibernate sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
307
diff
changeset
|
48 Session session = SessionHolder.acquire(); |
307
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
49 |
308
084995dd1c9c
Added a session holder to hold hibernate sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
307
diff
changeset
|
50 context.putContextValue(SESSION_KEY, session); |
307
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
51 } |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
52 |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
53 |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
54 /** |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
55 * Closes open sessions of the ThreadLocal variable opened in init(). |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
56 * |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
57 * @param context The CallContext. |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
58 */ |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
59 public void close(CallContext context) { |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
60 logger.debug("SessionCallContextListener.close"); |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
61 |
308
084995dd1c9c
Added a session holder to hold hibernate sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
307
diff
changeset
|
62 Session session = (Session)context.getContextValue(SESSION_KEY); |
084995dd1c9c
Added a session holder to hold hibernate sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
307
diff
changeset
|
63 session.close(); |
307
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
64 |
308
084995dd1c9c
Added a session holder to hold hibernate sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
307
diff
changeset
|
65 SessionHolder.release(); |
307
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
66 } |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
67 } |
84f8462790cb
Added an Implementation of CallContext.Listener to open/close Hibernate Sessions for each request.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
68 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |