You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by mr...@apache.org on 2015/12/09 11:12:56 UTC
svn commit: r1718801 - in
/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr:
OakDocumentRDBRepositoryStub.java OakMongoNSRepositoryStub.java
Author: mreutegg
Date: Wed Dec 9 10:12:55 2015
New Revision: 1718801
URL: http://svn.apache.org/viewvc?rev=1718801&view=rev
Log:
OAK-3754: RepositoryStub does not dispose DocumentStore
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/OakMongoNSRepositoryStub.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=1718801&r1=1718800&r2=1718801&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 Wed Dec 9 10:12:55 2015
@@ -38,7 +38,7 @@ import org.apache.jackrabbit.oak.query.Q
*/
public class OakDocumentRDBRepositoryStub extends OakRepositoryStub {
- protected static final String URL = System.getProperty("rdb.jdbc-url", "jdbc:h2:file:./{fname}oaktest");
+ protected static final String URL = System.getProperty("rdb.jdbc-url", "jdbc:h2:file:./{fname}oaktest;DB_CLOSE_ON_EXIT=FALSE");
protected static final String USERNAME = System.getProperty("rdb.jdbc-user", "sa");
@@ -61,8 +61,18 @@ public class OakDocumentRDBRepositoryStu
super(settings);
Session session = null;
+ final DocumentNodeStore m;
try {
- this.repository = createRepository(OakDocumentRDBRepositoryStub.jdbcUrl, USERNAME, PASSWD);
+ String prefix = "T" + UUID.randomUUID().toString().replace("-", "");
+ RDBOptions options = new RDBOptions().tablePrefix(prefix).dropTablesOnClose(true);
+ m = new DocumentMK.Builder().
+ memoryCacheSize(64 * 1024 * 1024).
+ setPersistentCache("target/persistentCache,time").
+ setRDBConnection(RDBDataSourceFactory.forJdbcUrl(jdbcUrl, USERNAME, PASSWD), options).
+ getNodeStore();
+ QueryEngineSettings qs = new QueryEngineSettings();
+ qs.setFullTextComparisonWithoutIndex(true);
+ this.repository = new Jcr(m).with(qs).createRepository();
session = getRepository().login(superuser);
TestContentLoader loader = new TestContentLoader();
loader.loadTestContent(session);
@@ -73,20 +83,12 @@ public class OakDocumentRDBRepositoryStu
session.logout();
}
}
- // Runtime.getRuntime().addShutdownHook(new Thread(new ShutdownHook(connection)));
- }
-
- protected Repository createRepository(String url, String username, String password) {
- String prefix = "T" + UUID.randomUUID().toString().replace("-", "");
- RDBOptions options = new RDBOptions().tablePrefix(prefix).dropTablesOnClose(true);
- DocumentNodeStore m = new DocumentMK.Builder().
- memoryCacheSize(64 * 1024 * 1024).
- setPersistentCache("target/persistentCache,time").
- setRDBConnection(RDBDataSourceFactory.forJdbcUrl(url, username, password), options).
- getNodeStore();
- QueryEngineSettings qs = new QueryEngineSettings();
- qs.setFullTextComparisonWithoutIndex(true);
- return new Jcr(m).with(qs).createRepository();
+ Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
+ @Override
+ public void run() {
+ m.dispose();
+ }
+ }));
}
public static boolean isAvailable() {
Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OakMongoNSRepositoryStub.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OakMongoNSRepositoryStub.java?rev=1718801&r1=1718800&r2=1718801&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OakMongoNSRepositoryStub.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/OakMongoNSRepositoryStub.java Wed Dec 9 10:12:55 2015
@@ -16,7 +16,6 @@
*/
package org.apache.jackrabbit.oak.jcr;
-import java.lang.ref.WeakReference;
import java.util.Properties;
import javax.jcr.Repository;
@@ -24,6 +23,7 @@ import javax.jcr.RepositoryException;
import javax.jcr.Session;
import com.mongodb.BasicDBObject;
+
import org.apache.jackrabbit.oak.plugins.document.DocumentMK;
import org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore;
import org.apache.jackrabbit.oak.plugins.document.util.MongoConnection;
@@ -55,9 +55,17 @@ public class OakMongoNSRepositoryStub ex
public OakMongoNSRepositoryStub(Properties settings) throws RepositoryException {
super(settings);
Session session = null;
+ final DocumentNodeStore store;
try {
this.connection = new MongoConnection(HOST, PORT, DB);
- this.repository = createRepository(connection);
+ store = new DocumentMK.Builder().
+ memoryCacheSize(64 * 1024 * 1024).
+ setPersistentCache("target/persistentCache,time").
+ setMongoDB(connection.getDB()).
+ getNodeStore();
+ QueryEngineSettings qs = new QueryEngineSettings();
+ qs.setFullTextComparisonWithoutIndex(true);
+ this.repository = new Jcr(store).with(qs).createRepository();
session = getRepository().login(superuser);
TestContentLoader loader = new TestContentLoader();
@@ -69,39 +77,12 @@ public class OakMongoNSRepositoryStub ex
session.logout();
}
}
- Runtime.getRuntime().addShutdownHook(
- new Thread(new ShutdownHook(connection)));
- }
-
- private static Repository createRepository(MongoConnection connection) {
- DocumentNodeStore store = new DocumentMK.Builder().
- memoryCacheSize(64 * 1024 * 1024).
- setPersistentCache("target/persistentCache,time").
- setMongoDB(connection.getDB()).
- getNodeStore();
- QueryEngineSettings qs = new QueryEngineSettings();
- qs.setFullTextComparisonWithoutIndex(true);
- return new Jcr(store).with(qs).createRepository();
- }
-
- /**
- * A shutdown hook that closed the MongoDB connection if needed.
- */
- private static class ShutdownHook implements Runnable {
-
- private final WeakReference<MongoConnection> reference;
-
- public ShutdownHook(MongoConnection connection) {
- this.reference = new WeakReference<MongoConnection>(connection);
- }
-
- @Override
- public void run() {
- MongoConnection connection = reference.get();
- if (connection != null) {
- connection.close();
+ Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
+ @Override
+ public void run() {
+ store.dispose();
}
- }
+ }));
}
public static boolean isMongoDBAvailable() {