[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