diff 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
line wrap: on
line diff
--- a/backend/src/main/java/org/dive4elements/river/backend/FLYSCredentials.java	Thu Nov 06 15:16:37 2014 +0100
+++ b/backend/src/main/java/org/dive4elements/river/backend/FLYSCredentials.java	Wed Nov 12 13:31:53 2014 +0100
@@ -108,6 +108,9 @@
     public static final String XPATH_CONNECTION_INIT_SQLS =
         "/artifact-database/backend-database/connection-init-sqls/text()";
 
+    public static final String XPATH_VALIDATION_QUERY =
+        "/artifact-database/backend-database/validation-query/text()";
+
     public static final String DEFAULT_USER =
         System.getProperty("flys.backend.user", "flys");
 
@@ -133,6 +136,10 @@
         System.getProperty(
             "flys.backend.connection.init.sqls");
 
+    public static final String DEFAULT_VALIDATION_QUERY =
+        System.getProperty(
+            "flys.backend.connection.validation.query");
+
     public static final Class [] CLASSES = {
         Annotation.class,
         AnnotationType.class,
@@ -221,10 +228,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);
     }
 
     private static Credentials instance;
@@ -245,9 +254,13 @@
                 Config.getStringXPath(
                     XPATH_CONNECTION_INIT_SQLS,
                     DEFAULT_CONNECTION_INIT_SQLS);
+            String validationQuery =
+                Config.getStringXPath(
+                    XPATH_VALIDATION_QUERY,
+                    DEFAULT_VALIDATION_QUERY);
 
             instance = new FLYSCredentials(
-                user, password, dialect, driver, url, connectionInitSqls);
+                user, password, dialect, driver, url, connectionInitSqls, validationQuery);
         }
         return instance;
     }
@@ -259,7 +272,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