OK,
with this commit the TCK tests can now run against the Relation DB (RDB)
Document Store. Right now the only DB tested is H2.
To enable this, pass the JDBC URL of the DB into "rdb.jdbc-url", for
instance
mvn test -Drdb.jdbc-url=jdbc:h2:mem:oaknodes
Right now I'm getting one test failure in the query tests which I
haven't looked at yet in detail.
Best regards, Julian
On 2014-01-23 17:11, resc...@apache.org wrote:
Author: reschke
Date: Thu Jan 23 16:11:13 2014
New Revision: 1560720
URL: http://svn.apache.org/r1560720
Log:
OAK-1266 - optionally allow TCK based tests to execute the RDB persistence
Modified:
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OakDocumentRDBRepositoryStub.java
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/tck/TCKBase.java
Modified:
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OakDocumentRDBRepositoryStub.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OakDocumentRDBRepositoryStub.java?rev=1560720&r1=1560719&r2=1560720&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OakDocumentRDBRepositoryStub.java
(original)
+++
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OakDocumentRDBRepositoryStub.java
Thu Jan 23 16:11:13 2014
@@ -17,6 +17,9 @@
package org.apache.jackrabbit.oak.jcr;
import java.security.Principal;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
import java.util.Properties;
import javax.jcr.Credentials;
@@ -36,7 +39,7 @@ import org.apache.jackrabbit.test.Reposi
*/
public class OakDocumentRDBRepositoryStub extends RepositoryStub {
- protected static final String URL = System.getProperty("rdb.jdbc-url",
"jdbc:h2:mem:oaknodes");
+ protected static final String URL = System.getProperty("rdb.jdbc-url",
""); // such as: jdbc:h2:mem:oaknodes
protected static final String USERNAME = System.getProperty("rdb.jcbc-user",
"sa");
@@ -86,6 +89,18 @@ public class OakDocumentRDBRepositoryStu
return jcr.createRepository();
}
+ public static boolean isAvailable() {
+ try {
+ Connection c = DriverManager.getConnection(URL, USERNAME, PASSWD);
+ c.close();
+ return true;
+ }
+ catch (SQLException ex) {
+ // expected
+ return false;
+ }
+ }
+
/**
* Returns the configured repository instance.
*
Modified:
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/tck/TCKBase.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/tck/TCKBase.java?rev=1560720&r1=1560719&r2=1560720&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/tck/TCKBase.java
(original)
+++
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/tck/TCKBase.java
Thu Jan 23 16:11:13 2014
@@ -23,6 +23,7 @@ import java.util.List;
import java.util.Map;
import java.util.Properties;
+import org.apache.jackrabbit.oak.jcr.OakDocumentRDBRepositoryStub;
import org.apache.jackrabbit.oak.jcr.OakMongoMKRepositoryStub;
import org.apache.jackrabbit.oak.jcr.OakSegmentMKRepositoryStub;
import org.apache.jackrabbit.oak.jcr.OakTarMKRepositoryStub;
@@ -54,7 +55,9 @@ public abstract class TCKBase extends Te
if (OakMongoMKRepositoryStub.isMongoDBAvailable()) {
Setup.wrap(this, OakMongoMKRepositoryStub.class.getName());
}
- // Setup.wrap(this, OakDocumentRDBRepositoryStub.class.getName());
+ if (OakDocumentRDBRepositoryStub.isAvailable()) {
+ Setup.wrap(this, OakDocumentRDBRepositoryStub.class.getName());
+ }
}
abstract protected void addTests();