[exo-jcr-commits] exo-jcr SVN: r5086 - in jcr/trunk/exo.jcr.component.core: src/main/java/org/exoplatform/services/jcr/impl/clean/rdbms and 4 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Tue Oct 25 09:35:38 EDT 2011
Author: tolusha
Date: 2011-10-25 09:35:38 -0400 (Tue, 25 Oct 2011)
New Revision: 5086
Modified:
jcr/trunk/exo.jcr.component.core/pom.xml
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/JDBCWorkspaceDataContainerChecker.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SybaseMultiDbJDBCConnection.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SybaseSingleDbJDBCConnection.java
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/util/jdbc/TestDBCleaner.java
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-configuration-sybase-jbc.xml
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-configuration-sybase-sjdbc-jbc.xml
Log:
EXOJCR-1583: adopt JCR to Sybase jConnect JDBC driver v7
Modified: jcr/trunk/exo.jcr.component.core/pom.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/pom.xml 2011-10-25 09:35:27 UTC (rev 5085)
+++ jcr/trunk/exo.jcr.component.core/pom.xml 2011-10-25 13:35:38 UTC (rev 5086)
@@ -892,9 +892,9 @@
</properties>
<dependencies>
<dependency>
- <groupId>com.sybase.jdbc3.jdbc</groupId>
- <artifactId>jconn3</artifactId>
- <version>6.05</version>
+ <groupId>com.sybase.jdbc4.jdbc</groupId>
+ <artifactId>jconn4</artifactId>
+ <version>26502</version>
<scope>test</scope>
</dependency>
</dependencies>
@@ -906,9 +906,9 @@
</properties>
<dependencies>
<dependency>
- <groupId>com.sybase.jdbc3.jdbc</groupId>
- <artifactId>jconn3</artifactId>
- <version>6.05</version>
+ <groupId>com.sybase.jdbc4.jdbc</groupId>
+ <artifactId>jconn4</artifactId>
+ <version>26502</version>
<scope>test</scope>
</dependency>
</dependencies>
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-25 09:35:27 UTC (rev 5085)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/clean/rdbms/DBCleanService.java 2011-10-25 13:35:38 UTC (rev 5086)
@@ -93,7 +93,6 @@
}
});
- jdbcConn.setAutoCommit(false);
DBCleaner dbCleaner = getWorkspaceDBCleaner(jdbcConn, wsEntry);
try
@@ -169,6 +168,19 @@
|| dialect.equals(DBConstants.DB_DIALECT_MYSQL) || dialect.equals(DBConstants.DB_DIALECT_MYSQL_UTF8)
|| dialect.equals(DBConstants.DB_DIALECT_SYBASE) || dialect.equals(DBConstants.DB_DIALECT_HSQLDB))
{
+ // Sybase doesn't allow DDL scripts inside transaction
+ if (dialect.equals(DBConstants.DB_DIALECT_SYBASE))
+ {
+ if (!jdbcConn.getAutoCommit())
+ {
+ jdbcConn.setAutoCommit(true);
+ }
+ }
+ else
+ {
+ jdbcConn.setAutoCommit(false);
+ }
+
ArrayList<String> dbCleanerScripts = new ArrayList<String>();
dbCleanerScripts.addAll(getRenameScripts(isMultiDB, dialect));
dbCleanerScripts.addAll(prepareInirializationScript(getInitializationDBScript(isMultiDB, dialect), isMultiDB,
@@ -848,13 +860,25 @@
boolean isMultiDB =
Boolean.parseBoolean(wsEntry.getContainer().getParameterValue(JDBCWorkspaceDataContainer.MULTIDB));
- String containerName = wsEntry.getName();
String dialect = DialectDetecter.detect(jdbcConn.getMetaData());
if (dialect.equals(DBConstants.DB_DIALECT_ORACLE) || dialect.equals(DBConstants.DB_DIALECT_ORACLEOCI)
|| dialect.equals(DBConstants.DB_DIALECT_MYSQL) || dialect.equals(DBConstants.DB_DIALECT_MYSQL_UTF8)
|| dialect.equals(DBConstants.DB_DIALECT_SYBASE))
{
+ // Sybase doesn't allow DDL scripts inside transaction
+ if (dialect.equals(DBConstants.DB_DIALECT_SYBASE))
+ {
+ if (!jdbcConn.getAutoCommit())
+ {
+ jdbcConn.setAutoCommit(true);
+ }
+ }
+ else
+ {
+ jdbcConn.setAutoCommit(false);
+ }
+
ArrayList<String> dbCleanerScripts = new ArrayList<String>();
dbCleanerScripts.addAll(getRenameScripts(isMultiDB, dialect));
dbCleanerScripts.addAll(prepareInirializationScript(getInitializationDBScript(isMultiDB, dialect), isMultiDB,
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainerChecker.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainerChecker.java 2011-10-25 09:35:27 UTC (rev 5085)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainerChecker.java 2011-10-25 13:35:38 UTC (rev 5086)
@@ -157,11 +157,17 @@
"All properties that have not value record.", InspectionStatus.WARN));
queries
.add(new InspectionQuery(
- jdbcDataContainer.multiDb
- ? "select * from JCR_MVALUE where (STORAGE_DESC is null and DATA is null) or (STORAGE_DESC is not null and DATA is not null)"
- : "select V.* from JCR_SVALUE as V, JCR_SITEM as I where V.PROPERTY_ID = I.ID and I.CONTAINER_NAME='"
- + jdbcDataContainer.containerName
- + "' AND ((STORAGE_DESC is null and DATA is null) or (STORAGE_DESC is not null and DATA is not null))",
+ jdbcDataContainer.dbDialect.equals(DBConstants.DB_DIALECT_SYBASE)
+ ? jdbcDataContainer.multiDb
+ ? "select * from JCR_MVALUE where (STORAGE_DESC is null and DATA like null) or (STORAGE_DESC is not null and not DATA like null)"
+ : "select V.* from JCR_SVALUE as V, JCR_SITEM as I where V.PROPERTY_ID = I.ID and I.CONTAINER_NAME='"
+ + jdbcDataContainer.containerName
+ + "' AND ((STORAGE_DESC is null and DATA like null) or (STORAGE_DESC is not null and not DATA like null))"
+ : jdbcDataContainer.multiDb
+ ? "select * from JCR_MVALUE where (STORAGE_DESC is null and DATA is null) or (STORAGE_DESC is not null and DATA is not null)"
+ : "select V.* from JCR_SVALUE as V, JCR_SITEM as I where V.PROPERTY_ID = I.ID and I.CONTAINER_NAME='"
+ + jdbcDataContainer.containerName
+ + "' AND ((STORAGE_DESC is null and DATA is null) or (STORAGE_DESC is not null and DATA is not null))",
new String[]{DBConstants.COLUMN_ID}, "Incorrect JCR_VALUE records", InspectionStatus.ERR));
queries
.add(new InspectionQuery(
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SybaseMultiDbJDBCConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SybaseMultiDbJDBCConnection.java 2011-10-25 09:35:27 UTC (rev 5085)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SybaseMultiDbJDBCConnection.java 2011-10-25 13:35:38 UTC (rev 5086)
@@ -146,8 +146,8 @@
*/
protected ResultSet findNodesAndProperties(String lastNodeId, int offset, int limit) throws SQLException
{
- String tempTableAName = "#a" + IdGenerator.generate();
- String tempTableBName = "#b" + IdGenerator.generate();
+ String tempTableAName = "tempdb..a" + IdGenerator.generate();
+ String tempTableBName = "tempdb..b" + IdGenerator.generate();
boolean tempTableACreated = false;
boolean tempTableBCreated = false;
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SybaseSingleDbJDBCConnection.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SybaseSingleDbJDBCConnection.java 2011-10-25 09:35:27 UTC (rev 5085)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/optimisation/db/SybaseSingleDbJDBCConnection.java 2011-10-25 13:35:38 UTC (rev 5086)
@@ -146,8 +146,8 @@
*/
protected ResultSet findNodesAndProperties(String lastNodeId, int offset, int limit) throws SQLException
{
- String tempTableAName = "#a" + IdGenerator.generate();
- String tempTableBName = "#b" + IdGenerator.generate();
+ String tempTableAName = "tempdb..a" + IdGenerator.generate();
+ String tempTableBName = "tempdb..b" + IdGenerator.generate();
boolean tempTableACreated = false;
boolean tempTableBCreated = false;
Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/util/jdbc/TestDBCleaner.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/util/jdbc/TestDBCleaner.java 2011-10-25 09:35:27 UTC (rev 5085)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/util/jdbc/TestDBCleaner.java 2011-10-25 13:35:38 UTC (rev 5086)
@@ -247,7 +247,6 @@
// remove content
Connection jdbcConn = ds.getConnection();
- jdbcConn.setAutoCommit(false);
DBCleaner repositoryDBCleaner = DBCleanService.getRepositoryDBCleaner(jdbcConn, repositoryEntry);
repositoryDBCleaner.executeCleanScripts();
@@ -294,7 +293,6 @@
// remove content
Connection jdbcConn = ds.getConnection();
- jdbcConn.setAutoCommit(false);
DBCleaner repositoryDBCleaner = DBCleanService.getRepositoryDBCleaner(jdbcConn, repositoryEntry);
repositoryDBCleaner.executeCleanScripts();
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-configuration-sybase-jbc.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-configuration-sybase-jbc.xml 2011-10-25 09:35:27 UTC (rev 5085)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-configuration-sybase-jbc.xml 2011-10-25 13:35:38 UTC (rev 5086)
@@ -248,10 +248,10 @@
<properties-param>
<name>ref-addresses</name>
<description>ref-addresses</description>
- <property name="driverClassName" value="com.sybase.jdbc3.jdbc.SybDriver" />
- <property name="url" value="jdbc:sybase:Tds:dbs-jcr.exoplatform.com.ua:5000/db1_ws" />
- <property name="username" value="exoadmin" />
- <property name="password" value="exo12321" />
+ <property name="driverClassName" value="com.sybase.jdbc4.jdbc.SybDriver" />
+ <property name="url" value="jdbc:sybase:Tds:localhost:5003/db1_ws" />
+ <property name="username" value="sa" />
+ <property name="password" value="" />
</properties-param>
</init-params>
</component-plugin>
@@ -275,10 +275,10 @@
<properties-param>
<name>ref-addresses</name>
<description>ref-addresses</description>
- <property name="driverClassName" value="com.sybase.jdbc3.jdbc.SybDriver" />
- <property name="url" value="jdbc:sybase:Tds:dbs-jcr.exoplatform.com.ua:5000/db1_ws1" />
- <property name="username" value="exoadmin" />
- <property name="password" value="exo12321" />
+ <property name="driverClassName" value="com.sybase.jdbc4.jdbc.SybDriver" />
+ <property name="url" value="jdbc:sybase:Tds:localhost:5003/db1_ws1" />
+ <property name="username" value="sa" />
+ <property name="password" value="" />
</properties-param>
</init-params>
</component-plugin>
@@ -302,10 +302,10 @@
<properties-param>
<name>ref-addresses</name>
<description>ref-addresses</description>
- <property name="driverClassName" value="com.sybase.jdbc3.jdbc.SybDriver" />
- <property name="url" value="jdbc:sybase:Tds:dbs-jcr.exoplatform.com.ua:5000/db1_ws2" />
- <property name="username" value="exoadmin" />
- <property name="password" value="exo12321" />
+ <property name="driverClassName" value="com.sybase.jdbc4.jdbc.SybDriver" />
+ <property name="url" value="jdbc:sybase:Tds:localhost:5003/db1_ws2" />
+ <property name="username" value="sa" />
+ <property name="password" value="" />
</properties-param>
</init-params>
</component-plugin>
@@ -329,10 +329,10 @@
<properties-param>
<name>ref-addresses</name>
<description>ref-addresses</description>
- <property name="driverClassName" value="com.sybase.jdbc3.jdbc.SybDriver" />
- <property name="url" value="jdbc:sybase:Tds:dbs-jcr.exoplatform.com.ua:5000/db1_ws3" />
- <property name="username" value="exoadmin" />
- <property name="password" value="exo12321" />
+ <property name="driverClassName" value="com.sybase.jdbc4.jdbc.SybDriver" />
+ <property name="url" value="jdbc:sybase:Tds:localhost:5003/db1_ws3" />
+ <property name="username" value="sa" />
+ <property name="password" value="" />
</properties-param>
</init-params>
</component-plugin>
@@ -384,10 +384,10 @@
<properties-param>
<name>ref-addresses</name>
<description>ref-addresses</description>
- <property name="driverClassName" value="com.sybase.jdbc3.jdbc.SybDriver" />
- <property name="url" value="jdbc:sybase:Tds:dbs-jcr.exoplatform.com.ua:5000/db2_ws" />
- <property name="username" value="exoadmin" />
- <property name="password" value="exo12321" />
+ <property name="driverClassName" value="com.sybase.jdbc4.jdbc.SybDriver" />
+ <property name="url" value="jdbc:sybase:Tds:localhost:5003/db2_ws" />
+ <property name="username" value="sa" />
+ <property name="password" value="" />
</properties-param>
</init-params>
</component-plugin>
@@ -411,10 +411,10 @@
<properties-param>
<name>ref-addresses</name>
<description>ref-addresses</description>
- <property name="driverClassName" value="com.sybase.jdbc3.jdbc.SybDriver" />
- <property name="url" value="jdbc:sybase:Tds:dbs-jcr.exoplatform.com.ua:5000/db2_ws1" />
- <property name="username" value="exoadmin" />
- <property name="password" value="exo12321" />
+ <property name="driverClassName" value="com.sybase.jdbc4.jdbc.SybDriver" />
+ <property name="url" value="jdbc:sybase:Tds:localhost:5003/db2_ws1" />
+ <property name="username" value="sa" />
+ <property name="password" value="" />
</properties-param>
</init-params>
</component-plugin>
@@ -438,10 +438,10 @@
<properties-param>
<name>ref-addresses</name>
<description>ref-addresses</description>
- <property name="driverClassName" value="com.sybase.jdbc3.jdbc.SybDriver" />
- <property name="url" value="jdbc:sybase:Tds:dbs-jcr.exoplatform.com.ua:5000/db1tck_ws" />
- <property name="username" value="exoadmin" />
- <property name="password" value="exo12321" />
+ <property name="driverClassName" value="com.sybase.jdbc4.jdbc.SybDriver" />
+ <property name="url" value="jdbc:sybase:Tds:localhost:5003/db1tck_ws" />
+ <property name="username" value="sa" />
+ <property name="password" value="" />
</properties-param>
</init-params>
</component-plugin>
@@ -465,10 +465,10 @@
<properties-param>
<name>ref-addresses</name>
<description>ref-addresses</description>
- <property name="driverClassName" value="com.sybase.jdbc3.jdbc.SybDriver" />
- <property name="url" value="jdbc:sybase:Tds:dbs-jcr.exoplatform.com.ua:5000/db1tck_ws1" />
- <property name="username" value="exoadmin" />
- <property name="password" value="exo12321" />
+ <property name="driverClassName" value="com.sybase.jdbc4.jdbc.SybDriver" />
+ <property name="url" value="jdbc:sybase:Tds:localhost:5003/db1tck_ws1" />
+ <property name="username" value="sa" />
+ <property name="password" value="" />
</properties-param>
</init-params>
</component-plugin>
@@ -492,10 +492,10 @@
<properties-param>
<name>ref-addresses</name>
<description>ref-addresses</description>
- <property name="driverClassName" value="com.sybase.jdbc3.jdbc.SybDriver" />
- <property name="url" value="jdbc:sybase:Tds:dbs-jcr.exoplatform.com.ua:5000/db1tck_ws2" />
- <property name="username" value="exoadmin" />
- <property name="password" value="exo12321" />
+ <property name="driverClassName" value="com.sybase.jdbc4.jdbc.SybDriver" />
+ <property name="url" value="jdbc:sybase:Tds:localhost:5003/db1tck_ws2" />
+ <property name="username" value="sa" />
+ <property name="password" value="" />
</properties-param>
</init-params>
</component-plugin>
@@ -600,10 +600,10 @@
<properties-param>
<name>ref-addresses</name>
<description>ref-addresses</description>
- <property name="driverClassName" value="com.sybase.jdbc3.jdbc.SybDriver" />
- <property name="url" value="jdbc:sybase:Tds:dbs-jcr.exoplatform.com.ua:5000/testdbcleaner" />
- <property name="username" value="exoadmin" />
- <property name="password" value="exo12321" />
+ <property name="driverClassName" value="com.sybase.jdbc4.jdbc.SybDriver" />
+ <property name="url" value="jdbc:sybase:Tds:localhost:5003/testdbcleaner" />
+ <property name="username" value="sa" />
+ <property name="password" value="" />
</properties-param>
</init-params>
</component-plugin>
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-configuration-sybase-sjdbc-jbc.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-configuration-sybase-sjdbc-jbc.xml 2011-10-25 09:35:27 UTC (rev 5085)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-configuration-sybase-sjdbc-jbc.xml 2011-10-25 13:35:38 UTC (rev 5086)
@@ -248,10 +248,10 @@
<properties-param>
<name>ref-addresses</name>
<description>ref-addresses</description>
- <property name="driverClassName" value="com.sybase.jdbc3.jdbc.SybDriver" />
- <property name="url" value="jdbc:sybase:Tds:dbs-jcr.exoplatform.com.ua:5000/db1" />
- <property name="username" value="exoadmin" />
- <property name="password" value="exo12321" />
+ <property name="driverClassName" value="com.sybase.jdbc4.jdbc.SybDriver" />
+ <property name="url" value="jdbc:sybase:Tds:localhost:5003/db1" />
+ <property name="username" value="sa" />
+ <property name="password" value="" />
<property name="maxActive" value="20" />
</properties-param>
</init-params>
@@ -304,10 +304,10 @@
<properties-param>
<name>ref-addresses</name>
<description>ref-addresses</description>
- <property name="driverClassName" value="com.sybase.jdbc3.jdbc.SybDriver" />
- <property name="url" value="jdbc:sybase:Tds:dbs-jcr.exoplatform.com.ua:5000/db2" />
- <property name="username" value="exoadmin" />
- <property name="password" value="exo12321" />
+ <property name="driverClassName" value="com.sybase.jdbc4.jdbc.SybDriver" />
+ <property name="url" value="jdbc:sybase:Tds:localhost:5003/db2" />
+ <property name="username" value="sa" />
+ <property name="password" value="" />
</properties-param>
</init-params>
</component-plugin>
@@ -331,10 +331,10 @@
<properties-param>
<name>ref-addresses</name>
<description>ref-addresses</description>
- <property name="driverClassName" value="com.sybase.jdbc3.jdbc.SybDriver" />
- <property name="url" value="jdbc:sybase:Tds:dbs-jcr.exoplatform.com.ua:5000/db1_tck" />
- <property name="username" value="exoadmin" />
- <property name="password" value="exo12321" />
+ <property name="driverClassName" value="com.sybase.jdbc4.jdbc.SybDriver" />
+ <property name="url" value="jdbc:sybase:Tds:localhost:5003/db1_tck" />
+ <property name="username" value="sa" />
+ <property name="password" value="" />
</properties-param>
</init-params>
</component-plugin>
@@ -439,10 +439,10 @@
<properties-param>
<name>ref-addresses</name>
<description>ref-addresses</description>
- <property name="driverClassName" value="com.sybase.jdbc3.jdbc.SybDriver" />
- <property name="url" value="jdbc:sybase:Tds:dbs-jcr.exoplatform.com.ua:5000/testdbcleaner_sjdbc" />
- <property name="username" value="exoadmin" />
- <property name="password" value="exo12321" />
+ <property name="driverClassName" value="com.sybase.jdbc4.jdbc.SybDriver" />
+ <property name="url" value="jdbc:sybase:Tds:localhost:5003/testdbcleaner_sjdbc" />
+ <property name="username" value="sa" />
+ <property name="password" value="" />
<property name="maxActive" value="20" />
</properties-param>
</init-params>
More information about the exo-jcr-commits
mailing list