comparison backend/src/main/java/org/dive4elements/river/backend/FLYSCredentials.java @ 8470:c5a7aae52396

Added a validation SQL query to database backends. Enable it by storing something like "SELECT 1 FROM DUAL" in config under /artifact-database/backend-database/validation-query/text() or /artifact-database/seddb-database/validation-query/text().
author Sascha L. Teichmann <teichmann@intevation.de>
date Wed, 12 Nov 2014 13:31:53 +0100
parents cc53aae06303
children 026f4c684ee5
comparison
equal deleted inserted replaced
8469:079147282650 8470:c5a7aae52396
106 "/artifact-database/backend-database/url/text()"; 106 "/artifact-database/backend-database/url/text()";
107 107
108 public static final String XPATH_CONNECTION_INIT_SQLS = 108 public static final String XPATH_CONNECTION_INIT_SQLS =
109 "/artifact-database/backend-database/connection-init-sqls/text()"; 109 "/artifact-database/backend-database/connection-init-sqls/text()";
110 110
111 public static final String XPATH_VALIDATION_QUERY =
112 "/artifact-database/backend-database/validation-query/text()";
113
111 public static final String DEFAULT_USER = 114 public static final String DEFAULT_USER =
112 System.getProperty("flys.backend.user", "flys"); 115 System.getProperty("flys.backend.user", "flys");
113 116
114 public static final String DEFAULT_PASSWORD = 117 public static final String DEFAULT_PASSWORD =
115 System.getProperty("flys.backend.password", "flys"); 118 System.getProperty("flys.backend.password", "flys");
130 "jdbc:postgresql://localhost:5432/flys"); 133 "jdbc:postgresql://localhost:5432/flys");
131 134
132 public static final String DEFAULT_CONNECTION_INIT_SQLS = 135 public static final String DEFAULT_CONNECTION_INIT_SQLS =
133 System.getProperty( 136 System.getProperty(
134 "flys.backend.connection.init.sqls"); 137 "flys.backend.connection.init.sqls");
138
139 public static final String DEFAULT_VALIDATION_QUERY =
140 System.getProperty(
141 "flys.backend.connection.validation.query");
135 142
136 public static final Class [] CLASSES = { 143 public static final Class [] CLASSES = {
137 Annotation.class, 144 Annotation.class,
138 AnnotationType.class, 145 AnnotationType.class,
139 Attribute.class, 146 Attribute.class,
219 String user, 226 String user,
220 String password, 227 String password,
221 String dialect, 228 String dialect,
222 String driver, 229 String driver,
223 String url, 230 String url,
224 String connectionInitSqls 231 String connectionInitSqls,
232 String validationQuery
225 ) { 233 ) {
226 super( 234 super(
227 user, password, dialect, driver, url, connectionInitSqls, CLASSES); 235 user, password, dialect, driver, url,
236 connectionInitSqls, validationQuery, CLASSES);
228 } 237 }
229 238
230 private static Credentials instance; 239 private static Credentials instance;
231 240
232 public static synchronized Credentials getInstance() { 241 public static synchronized Credentials getInstance() {
243 Config.getStringXPath(XPATH_URL, DEFAULT_URL); 252 Config.getStringXPath(XPATH_URL, DEFAULT_URL);
244 String connectionInitSqls = 253 String connectionInitSqls =
245 Config.getStringXPath( 254 Config.getStringXPath(
246 XPATH_CONNECTION_INIT_SQLS, 255 XPATH_CONNECTION_INIT_SQLS,
247 DEFAULT_CONNECTION_INIT_SQLS); 256 DEFAULT_CONNECTION_INIT_SQLS);
257 String validationQuery =
258 Config.getStringXPath(
259 XPATH_VALIDATION_QUERY,
260 DEFAULT_VALIDATION_QUERY);
248 261
249 instance = new FLYSCredentials( 262 instance = new FLYSCredentials(
250 user, password, dialect, driver, url, connectionInitSqls); 263 user, password, dialect, driver, url, connectionInitSqls, validationQuery);
251 } 264 }
252 return instance; 265 return instance;
253 } 266 }
254 267
255 public static Credentials getDefault() { 268 public static Credentials getDefault() {
257 DEFAULT_USER, 270 DEFAULT_USER,
258 DEFAULT_PASSWORD, 271 DEFAULT_PASSWORD,
259 DEFAULT_DIALECT, 272 DEFAULT_DIALECT,
260 DEFAULT_DRIVER, 273 DEFAULT_DRIVER,
261 DEFAULT_URL, 274 DEFAULT_URL,
262 DEFAULT_CONNECTION_INIT_SQLS); 275 DEFAULT_CONNECTION_INIT_SQLS,
276 DEFAULT_VALIDATION_QUERY);
263 } 277 }
264 } 278 }
265 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 279 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org