You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by re...@apache.org on 2016/02/22 15:03:58 UTC

svn commit: r1731647 - in /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb: RDBBlobStore.java RDBDocumentStore.java RDBJDBCTools.java

Author: reschke
Date: Mon Feb 22 14:03:58 2016
New Revision: 1731647

URL: http://svn.apache.org/viewvc?rev=1731647&view=rev
Log:
RDBDocumentStore: refactor version check to address driver version as well

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBJDBCTools.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java?rev=1731647&r1=1731646&r2=1731647&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBBlobStore.java Mon Feb 22 14:03:58 2016
@@ -167,7 +167,7 @@ public class RDBBlobStore extends Cachin
         RDBBlobStoreDB db = RDBBlobStoreDB.getValue(md.getDatabaseProductName());
         String versionDiags = db.checkVersion(md);
         if (!versionDiags.isEmpty()) {
-            LOG.info(versionDiags);
+            LOG.error(versionDiags);
         }
 
         String dbDesc = String.format("%s %s (%d.%d)", md.getDatabaseProductName(), md.getDatabaseProductVersion(),

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java?rev=1731647&r1=1731646&r2=1731647&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java Mon Feb 22 14:03:58 2016
@@ -782,7 +782,7 @@ public class RDBDocumentStore implements
                 .build();
         String versionDiags = dbInfo.checkVersion(md);
         if (!versionDiags.isEmpty()) {
-            LOG.info(versionDiags);
+            LOG.error(versionDiags);
         }
 
         if (! "".equals(dbInfo.getInitializationStatement())) {

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBJDBCTools.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBJDBCTools.java?rev=1731647&r1=1731646&r2=1731647&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBJDBCTools.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBJDBCTools.java Mon Feb 22 14:03:58 2016
@@ -206,17 +206,70 @@ public class RDBJDBCTools {
     }
 
     /**
-     * Generate version diagnostics.
+     * Generate database + driver version diagnostics.
+     * 
+     * @param md
+     *            metadata object
+     * @param dbmax
+     *            minimal DB major version number (where {@code -1} disables the
+     *            check)
+     * @param dbmin
+     *            minimal DB minor version number
+     * @param drmax
+     *            minimal driver major version number (where {@code -1} disables
+     *            the check)
+     * @param drin
+     *            minimal driver minor version number
+     * @param dbname
+     *            database type
+     * @return diagnostics (empty when there's nothing to complain about)
      */
-    protected static String versionCheck(DatabaseMetaData md, int xmaj, int xmin, String description) throws SQLException {
-        int maj = md.getDatabaseMajorVersion();
-        int min = md.getDatabaseMinorVersion();
-        if (maj < xmaj || (maj == xmaj && min < xmin)) {
-            return "Unsupported " + description + " version: " + maj + "." + min + ", expected at least " + xmaj + "." + xmin;
+    protected static String versionCheck(DatabaseMetaData md, int dbmax, int dbmin, int drmax, int drmin, String dbname)
+            throws SQLException {
+        StringBuilder result = new StringBuilder();
+
+        if (dbmax != -1) {
+            int maj = md.getDatabaseMajorVersion();
+            int min = md.getDatabaseMinorVersion();
+
+            if (maj < dbmax || (maj == dbmax && min < dbmin)) {
+                result.append(
+                        "Unsupported " + dbname + " version: " + maj + "." + min + ", expected at least " + dbmax + "." + dbmin);
+            }
         }
-        else {
-            return "";
+
+        if (drmax != -1) {
+            int maj = md.getDriverMajorVersion();
+            int min = md.getDriverMinorVersion();
+
+            if (maj < drmax || (maj == dbmax && min < dbmin)) {
+                if (result.length() != 0) {
+                    result.append(", ");
+                }
+                result.append("Unsupported " + dbname + " driver version: " + md.getDriverName() + " " + maj + "." + min
+                        + ", expected at least " + dbmax + "." + dbmin);
+            }
         }
+
+        return result.toString();
+    }
+
+    /**
+     * Generate database version diagnostics.
+     * 
+     * @param md
+     *            metadata object
+     * @param dbmax
+     *            minimal DB major version number (where {@code -1} disables the
+     *            check)
+     * @param dbmin
+     *            minimal DB minor version number
+     * @param dbname
+     *            database type
+     * @return diagnostics (empty when there's nothing to complain about)
+     */
+    protected static String versionCheck(DatabaseMetaData md, int dbmax, int dbmin, String dbname) throws SQLException {
+        return versionCheck(md, dbmax, dbmin, -1, -1, dbname);
     }
 
     /**