annotate flys-backend/src/main/java/de/intevation/flys/backend/SessionFactoryProvider.java @ 5818:a4ff4167be1e

Request feature info on all layers and show it as html if the server does not return valid gml. Non queryable layers produce an error message when the request fails. This is good enough
author Andre Heinecke <aheinecke@intevation.de>
date Wed, 24 Apr 2013 17:33:27 +0200
parents a2da78fdbec0
children
rev   line source
176
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.backend;
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
2
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
3 import java.util.Properties;
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
4
3333
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
5 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: 3321
diff changeset
6
176
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
7 import org.hibernate.SessionFactory;
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
8
3333
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
9 import org.hibernate.cfg.Configuration;
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
10 import org.hibernate.cfg.Environment;
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
11
2361
e9b0fd1de89d Made flys-backend compatible with oracle spatial.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2360
diff changeset
12 import org.hibernate.impl.SessionFactoryImpl;
e9b0fd1de89d Made flys-backend compatible with oracle spatial.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2360
diff changeset
13
176
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14 public final class SessionFactoryProvider
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
15 {
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16 private static Logger log = Logger.getLogger(SessionFactoryProvider.class);
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
17
5564
a2da78fdbec0 Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5557
diff changeset
18 //public static final boolean ENABLE_JMX =
a2da78fdbec0 Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5557
diff changeset
19 // Boolean.getBoolean("flys.backend.enablejmx");
2337
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
20
3333
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
21 private static SessionFactory flysSessionFactory;
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
22 private static SessionFactory sedDBSessionFactory;
176
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
24 private SessionFactoryProvider() {
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
25 }
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
26
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
27 public static synchronized SessionFactory getSessionFactory() {
3333
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
28 if (flysSessionFactory == null) {
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
29 flysSessionFactory =
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
30 createSessionFactory(FLYSCredentials.getInstance());
176
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
31 }
3333
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
32 return flysSessionFactory;
176
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
33 }
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
34
179
aaac9c291067 Default connection parameters are now overwritable with system properties.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 178
diff changeset
35 public static SessionFactory createSessionFactory() {
3333
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
36 return createSessionFactory(FLYSCredentials.getDefault());
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
37 }
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
38
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
39 public static synchronized SessionFactory getSedDBSessionFactory() {
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
40 if (sedDBSessionFactory == null) {
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
41 sedDBSessionFactory =
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
42 createSessionFactory(SedDBCredentials.getInstance());
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
43 }
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
44 return sedDBSessionFactory;
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
45 }
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
46
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
47 public static SessionFactory createSedDBSessionFactory() {
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
48 return createSessionFactory(SedDBCredentials.getDefault());
179
aaac9c291067 Default connection parameters are now overwritable with system properties.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 178
diff changeset
49 }
aaac9c291067 Default connection parameters are now overwritable with system properties.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 178
diff changeset
50
178
82bc55666a97 Expose the creation of the SessionFactory to the public to
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 176
diff changeset
51 public static SessionFactory createSessionFactory(
3333
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
52 Credentials credentials
178
82bc55666a97 Expose the creation of the SessionFactory to the public to
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 176
diff changeset
53 ) {
3333
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
54 Configuration cfg = createConfiguration(credentials);
1229
8b12b338a3f6 Re-enabled Hibernate schema dumps.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1210
diff changeset
55
2337
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
56 SessionFactory factory = cfg.buildSessionFactory();
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
57
5564
a2da78fdbec0 Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5557
diff changeset
58 /*
2337
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
59 if (ENABLE_JMX) {
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
60 registerAsMBean(factory);
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
61 }
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
62 else {
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
63 log.info("No JMX support for hibernate.");
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
64 }
5564
a2da78fdbec0 Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5557
diff changeset
65 */
2337
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
66
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
67 return factory;
1229
8b12b338a3f6 Re-enabled Hibernate schema dumps.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1210
diff changeset
68 }
8b12b338a3f6 Re-enabled Hibernate schema dumps.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1210
diff changeset
69
5564
a2da78fdbec0 Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5557
diff changeset
70 /** XXX: Commented out till it is configured correctly.
2337
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
71 public static void registerAsMBean(SessionFactory factory) {
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
72
5564
a2da78fdbec0 Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5557
diff changeset
73 //
5557
fd7285e3829b FLYS backend: Commented out the Hibernate Management Bean statistic because they are not configured corrctly.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5193
diff changeset
74
2337
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
75 StatisticsService statsMBean = new StatisticsService();
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
76 statsMBean.setSessionFactory(factory);
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
77 statsMBean.setStatisticsEnabled(true);
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
78
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
79 try {
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
80 MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
81 mbs.registerMBean(
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
82 statsMBean,
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
83 new ObjectName("Hibernate:application=Statistics"));
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
84
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
85 log.info("Enabled JMX support for hibernate.");
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
86 }
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
87 catch (MalformedObjectNameException mone) {
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
88 log.warn(mone, mone);
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
89 }
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
90 catch (InstanceAlreadyExistsException iaee) {
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
91 log.warn(iaee, iaee);
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
92 }
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
93 catch (MBeanRegistrationException mbre) {
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
94 log.warn(mbre, mbre);
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
95 }
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
96 catch (NotCompliantMBeanException ncmbe) {
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
97 log.warn(ncmbe, ncmbe);
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
98 }
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
99 }
5564
a2da78fdbec0 Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5557
diff changeset
100 */
2337
52d712cd2384 Added code and a system property 'flys.backend.enablejmx=true' to enable JMX support for hibernate.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1237
diff changeset
101
1229
8b12b338a3f6 Re-enabled Hibernate schema dumps.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1210
diff changeset
102 public static Configuration createConfiguration() {
3333
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
103 return createConfiguration(FLYSCredentials.getInstance());
1229
8b12b338a3f6 Re-enabled Hibernate schema dumps.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1210
diff changeset
104 }
8b12b338a3f6 Re-enabled Hibernate schema dumps.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1210
diff changeset
105
8b12b338a3f6 Re-enabled Hibernate schema dumps.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1210
diff changeset
106 public static Configuration createConfiguration(
3333
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
107 Credentials credentials
1229
8b12b338a3f6 Re-enabled Hibernate schema dumps.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1210
diff changeset
108 ) {
176
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
109 Configuration cfg = new Configuration();
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
110
5564
a2da78fdbec0 Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5557
diff changeset
111 for (Class<?> clazz: credentials.getClasses()) {
3333
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
112 cfg.addAnnotatedClass(clazz);
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
113 }
176
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
114
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
115 if (log.isDebugEnabled()) {
3333
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
116 log.debug("user: " + credentials.getUser());
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
117 log.debug("dialect: " + credentials.getDialect());
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
118 log.debug("driver: " + credentials.getDriver());
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
119 log.debug("url: " + credentials.getUrl());
176
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
120 }
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
121
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
122 Properties props = new Properties();
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
123
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
124 // We rely on our own connection pool
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
125 props.setProperty(
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
126 "hibernate.connection.provider_class",
3337
69f06b83b3ec Set correct connection provider class which package had changed in the last commit.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3333
diff changeset
127 "de.intevation.flys.utils.DBCPConnectionProvider");
176
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
128
3333
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
129 props.setProperty(Environment.DIALECT, credentials.getDialect());
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
130 props.setProperty(Environment.USER, credentials.getUser());
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
131 props.setProperty(Environment.PASS, credentials.getPassword());
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
132 props.setProperty(Environment.DRIVER, credentials.getDriver());
76c75c8b9ee0 SedDB: Make access to SedDB configurable over conf.xml and provide access to sessions.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3321
diff changeset
133 props.setProperty(Environment.URL, credentials.getUrl());
176
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
134
5193
fb9dcc68b9c2 Possible fix for flys/1202. Initial SQL statements can now be issued at connection creation.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3337
diff changeset
135 String connectionInitSqls = credentials.getConnectionInitSqls();
fb9dcc68b9c2 Possible fix for flys/1202. Initial SQL statements can now be issued at connection creation.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3337
diff changeset
136 if (connectionInitSqls != null) {
fb9dcc68b9c2 Possible fix for flys/1202. Initial SQL statements can now be issued at connection creation.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3337
diff changeset
137 props.setProperty("connectionInitSqls", connectionInitSqls);
fb9dcc68b9c2 Possible fix for flys/1202. Initial SQL statements can now be issued at connection creation.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3337
diff changeset
138 }
fb9dcc68b9c2 Possible fix for flys/1202. Initial SQL statements can now be issued at connection creation.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3337
diff changeset
139
176
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
140 cfg.mergeProperties(props);
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
141
1229
8b12b338a3f6 Re-enabled Hibernate schema dumps.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1210
diff changeset
142 return cfg;
176
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
143 }
2361
e9b0fd1de89d Made flys-backend compatible with oracle spatial.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2360
diff changeset
144
e9b0fd1de89d Made flys-backend compatible with oracle spatial.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2360
diff changeset
145
2362
2649151c9500 Added some functions that return information about the db connection used by the current database session.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2361
diff changeset
146 public static String getProperty(SessionFactoryImpl factory, String key) {
2361
e9b0fd1de89d Made flys-backend compatible with oracle spatial.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2360
diff changeset
147 Properties props = factory.getProperties();
2362
2649151c9500 Added some functions that return information about the db connection used by the current database session.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2361
diff changeset
148 return props.getProperty(key);
2649151c9500 Added some functions that return information about the db connection used by the current database session.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2361
diff changeset
149 }
2361
e9b0fd1de89d Made flys-backend compatible with oracle spatial.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2360
diff changeset
150
2362
2649151c9500 Added some functions that return information about the db connection used by the current database session.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2361
diff changeset
151 public static String getUser(SessionFactoryImpl factory) {
2649151c9500 Added some functions that return information about the db connection used by the current database session.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2361
diff changeset
152 return getProperty(factory, Environment.USER);
2649151c9500 Added some functions that return information about the db connection used by the current database session.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2361
diff changeset
153 }
2649151c9500 Added some functions that return information about the db connection used by the current database session.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2361
diff changeset
154
2649151c9500 Added some functions that return information about the db connection used by the current database session.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2361
diff changeset
155
2649151c9500 Added some functions that return information about the db connection used by the current database session.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2361
diff changeset
156 public static String getPass(SessionFactoryImpl factory) {
2649151c9500 Added some functions that return information about the db connection used by the current database session.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2361
diff changeset
157 return getProperty(factory, Environment.PASS);
2649151c9500 Added some functions that return information about the db connection used by the current database session.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2361
diff changeset
158 }
2649151c9500 Added some functions that return information about the db connection used by the current database session.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2361
diff changeset
159
2649151c9500 Added some functions that return information about the db connection used by the current database session.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2361
diff changeset
160
2649151c9500 Added some functions that return information about the db connection used by the current database session.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2361
diff changeset
161 public static String getURL(SessionFactoryImpl factory) {
2649151c9500 Added some functions that return information about the db connection used by the current database session.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2361
diff changeset
162 return getProperty(factory, Environment.URL);
2649151c9500 Added some functions that return information about the db connection used by the current database session.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2361
diff changeset
163 }
2649151c9500 Added some functions that return information about the db connection used by the current database session.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2361
diff changeset
164
2649151c9500 Added some functions that return information about the db connection used by the current database session.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2361
diff changeset
165
2649151c9500 Added some functions that return information about the db connection used by the current database session.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2361
diff changeset
166 public static String getDriver(SessionFactoryImpl factory) {
2649151c9500 Added some functions that return information about the db connection used by the current database session.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2361
diff changeset
167 return getProperty(factory, Environment.DRIVER);
2361
e9b0fd1de89d Made flys-backend compatible with oracle spatial.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2360
diff changeset
168 }
176
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
169 }
3035d861a576 SessionFactoryProvider for access to the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
170 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org