diff backend/src/main/java/org/dive4elements/river/backend/SedDBCredentials.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 4c3ccf2b0304
children 026f4c684ee5
line wrap: on
line diff
--- a/backend/src/main/java/org/dive4elements/river/backend/SedDBCredentials.java	Thu Nov 06 15:16:37 2014 +0100
+++ b/backend/src/main/java/org/dive4elements/river/backend/SedDBCredentials.java	Wed Nov 12 13:31:53 2014 +0100
@@ -84,6 +84,9 @@
     public static final String XPATH_CONNECTION_INIT_SQLS =
         "/artifact-database/seddb-database/connection-init-sqls/text()";
 
+    public static final String XPATH_VALIDATION_QUERY =
+        "/artifact-database/seddb-database/validation-query/text()";
+
     public static final String DEFAULT_USER =
         System.getProperty("flys.seddb.user", "seddb");
 
@@ -109,6 +112,10 @@
         System.getProperty(
             "flys.seddb.connection.init.sqls");
 
+    public static final String DEFAULT_VALIDATION_QUERY =
+        System.getProperty(
+            "flys.seddb.connection.validation.query");
+
     public static final Class [] CLASSES = {
         BezugspegelgewId.class,
         Bezugspegelgew.class,
@@ -175,10 +182,12 @@
         String dialect,
         String driver,
         String url,
-        String connectionInitSqls
+        String connectionInitSqls,
+        String validationQuery
     ) {
         super(
-            user, password, dialect, driver, url, connectionInitSqls, CLASSES);
+            user, password, dialect, driver, url,
+            connectionInitSqls, validationQuery, CLASSES);
     }
 
     public static synchronized Credentials getInstance() {
@@ -197,9 +206,14 @@
                 Config.getStringXPath(
                     XPATH_CONNECTION_INIT_SQLS,
                     DEFAULT_CONNECTION_INIT_SQLS);
+            String validationQuery =
+                Config.getStringXPath(
+                    XPATH_VALIDATION_QUERY,
+                    DEFAULT_VALIDATION_QUERY);
 
             instance = new SedDBCredentials(
-                user, password, dialect, driver, url, connectionInitSqls);
+                user, password, dialect, driver, url,
+                connectionInitSqls, validationQuery);
         }
         return instance;
     }
@@ -211,7 +225,8 @@
             DEFAULT_DIALECT,
             DEFAULT_DRIVER,
             DEFAULT_URL,
-            DEFAULT_CONNECTION_INIT_SQLS);
+            DEFAULT_CONNECTION_INIT_SQLS,
+            DEFAULT_VALIDATION_QUERY);
     }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org