[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