[exo-jcr-commits] exo-jcr SVN: r5111 - in jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl: storage/jdbc and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Oct 27 09:18:52 EDT 2011


Author: tolusha
Date: 2011-10-27 09:18:52 -0400 (Thu, 27 Oct 2011)
New Revision: 5111

Modified:
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/clean/rdbms/DBCleanService.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainer.java
Log:
EXOJCR-1591: support usecase when parameter dialect is not set into conf

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/clean/rdbms/DBCleanService.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/clean/rdbms/DBCleanService.java	2011-10-27 12:53:34 UTC (rev 5110)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/clean/rdbms/DBCleanService.java	2011-10-27 13:18:52 UTC (rev 5111)
@@ -21,6 +21,7 @@
 import org.exoplatform.services.jcr.config.RepositoryEntry;
 import org.exoplatform.services.jcr.config.WorkspaceEntry;
 import org.exoplatform.services.jcr.impl.storage.jdbc.DBConstants;
+import org.exoplatform.services.jcr.impl.storage.jdbc.DialectDetecter;
 import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer;
 import org.exoplatform.services.jcr.impl.util.jdbc.DBInitializerHelper;
 import org.exoplatform.services.log.ExoLogger;
@@ -152,8 +153,8 @@
       RepositoryConfigurationException
    {
       final boolean isMultiDB =
-         Boolean.parseBoolean(repoEntry.getWorkspaceEntries().get(0).getContainer().getParameterValue(
-            JDBCWorkspaceDataContainer.MULTIDB));
+         Boolean.parseBoolean(repoEntry.getWorkspaceEntries().get(0).getContainer()
+            .getParameterValue(JDBCWorkspaceDataContainer.MULTIDB));
 
       if (isMultiDB)
       {
@@ -161,7 +162,12 @@
       }
 
       String dialect =
-         repoEntry.getWorkspaceEntries().get(0).getContainer().getParameterValue(JDBCWorkspaceDataContainer.DB_DIALECT);
+         repoEntry.getWorkspaceEntries().get(0).getContainer()
+            .getParameterValue(JDBCWorkspaceDataContainer.DB_DIALECT, DBConstants.DB_DIALECT_AUTO);
+      if (DBConstants.DB_DIALECT_GENERIC.equals(dialect) || DBConstants.DB_DIALECT_AUTO.equalsIgnoreCase(dialect))
+      {
+         dialect = DialectDetecter.detect(jdbcConn.getMetaData());
+      }
 
       if (dialect.equalsIgnoreCase(DBConstants.DB_DIALECT_ORACLE)
          || dialect.equalsIgnoreCase(DBConstants.DB_DIALECT_ORACLEOCI)
@@ -816,7 +822,12 @@
       boolean isMultiDB =
          Boolean.parseBoolean(wsEntry.getContainer().getParameterValue(JDBCWorkspaceDataContainer.MULTIDB));
 
-      String dialect = wsEntry.getContainer().getParameterValue(JDBCWorkspaceDataContainer.DB_DIALECT);
+      String dialect =
+         wsEntry.getContainer().getParameterValue(JDBCWorkspaceDataContainer.DB_DIALECT, DBConstants.DB_DIALECT_AUTO);
+      if (DBConstants.DB_DIALECT_GENERIC.equals(dialect) || DBConstants.DB_DIALECT_AUTO.equalsIgnoreCase(dialect))
+      {
+         dialect = DialectDetecter.detect(jdbcConn.getMetaData());
+      }
 
       if (dialect.equalsIgnoreCase(DBConstants.DB_DIALECT_ORACLE)
          || dialect.equalsIgnoreCase(DBConstants.DB_DIALECT_ORACLEOCI)

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainer.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainer.java	2011-10-27 12:53:34 UTC (rev 5110)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainer.java	2011-10-27 13:18:52 UTC (rev 5111)
@@ -317,7 +317,8 @@
          this.isManaged = false;
          LOG.info("Connect to JCR database as user '" + this.dbUserName + "'");
 
-         if (pDbDialect == DBConstants.DB_DIALECT_GENERIC || DBConstants.DB_DIALECT_AUTO.equalsIgnoreCase(pDbDialect))
+         if (DBConstants.DB_DIALECT_GENERIC.equals(pDbDialect)
+            || DBConstants.DB_DIALECT_AUTO.equalsIgnoreCase(pDbDialect))
          {
             // try to detect via JDBC metadata
             Connection jdbcConn = null;



More information about the exo-jcr-commits mailing list