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 2016/04/11 15:23:22 UTC
svn commit: r1738582 - in /jackrabbit/oak/trunk:
oak-core/src/test/java/org/apache/jackrabbit/oak/fixture/
oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/
oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/
oak-jcr/src/test/java/org...
Author: mreutegg
Date: Mon Apr 11 13:23:21 2016
New Revision: 1738582
URL: http://svn.apache.org/viewvc?rev=1738582&view=rev
Log:
OAK-3858: Review slow running tests
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/fixture/DocumentMongoFixture.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoUtils.java
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/ReferenceBinaryIT.java
jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/cluster/NonLocalObservationIT.java
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/fixture/DocumentMongoFixture.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/fixture/DocumentMongoFixture.java?rev=1738582&r1=1738581&r2=1738582&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/fixture/DocumentMongoFixture.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/fixture/DocumentMongoFixture.java Mon Apr 11 13:23:21 2016
@@ -26,6 +26,7 @@ import java.util.concurrent.atomic.Atomi
import org.apache.jackrabbit.oak.plugins.document.DocumentMK;
import org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore;
+import org.apache.jackrabbit.oak.plugins.document.MongoUtils;
import org.apache.jackrabbit.oak.plugins.document.util.MongoConnection;
import org.apache.jackrabbit.oak.spi.blob.BlobStore;
import org.apache.jackrabbit.oak.spi.state.NodeStore;
@@ -34,16 +35,12 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.mongodb.DB;
-import com.mongodb.Mongo;
-import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
public class DocumentMongoFixture extends NodeStoreFixture {
private static final Logger log = LoggerFactory.getLogger(DocumentMongoFixture.class);
- public static final String DEFAULT_URI = "mongodb://localhost:27017/oak";
-
private final String uri;
private final BlobStore blobStore;
@@ -60,7 +57,7 @@ public class DocumentMongoFixture extend
}
public DocumentMongoFixture() {
- this(System.getProperty("mongo.url", DEFAULT_URI), null);
+ this(MongoUtils.URL, null);
}
@Override
@@ -89,36 +86,13 @@ public class DocumentMongoFixture extend
}
@Override
- public synchronized boolean isAvailable() {
+ public boolean isAvailable() {
if (isAvailable == null) {
- isAvailable = testMongoAvailability(uri);
+ isAvailable = MongoUtils.isAvailable();
}
return isAvailable;
}
- private static boolean testMongoAvailability(String uri) {
- Mongo mongo = null;
- try {
- StringBuilder uriWithTimeout = new StringBuilder(uri);
- if (uri.contains("?")) {
- uriWithTimeout.append("&");
- } else {
- uriWithTimeout.append("?");
- }
- uriWithTimeout.append("connectTimeoutMS=3000");
- MongoClientURI mongoUri = new MongoClientURI(uriWithTimeout.toString());
- mongo = new MongoClient(mongoUri);
- mongo.getDatabaseNames();
- return true;
- } catch (Exception e) {
- return false;
- } finally {
- if (mongo != null) {
- mongo.close();
- }
- }
- }
-
@Override
public void dispose(NodeStore nodeStore) {
if (nodeStore instanceof DocumentNodeStore) {
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoUtils.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoUtils.java?rev=1738582&r1=1738581&r2=1738582&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoUtils.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoUtils.java Mon Apr 11 13:23:21 2016
@@ -36,6 +36,9 @@ public class MongoUtils {
protected static final String DB =
System.getProperty("mongo.db", "MongoMKDB");
+ public static final String URL =
+ System.getProperty("mongo.url", "mongodb://" + HOST + ":" + PORT + "/" + DB + "?connectTimeoutMS=3000");
+
protected static Exception exception;
/**
@@ -44,7 +47,7 @@ public class MongoUtils {
* @return the connection or null
*/
public static MongoConnection getConnection() {
- return getConnection(DB);
+ return getConnectionByURL(URL);
}
/**
@@ -54,19 +57,7 @@ public class MongoUtils {
* @return the connection or null
*/
public static MongoConnection getConnection(String dbName) {
- if (exception != null) {
- return null;
- }
- MongoConnection mongoConnection = null;
- try {
- mongoConnection = new MongoConnection(HOST, PORT, dbName);
- mongoConnection.getDB().command(new BasicDBObject("ping", 1));
- // dropCollections(mongoConnection.getDB());
- } catch (Exception e) {
- exception = e;
- mongoConnection = null;
- }
- return mongoConnection;
+ return getConnectionByURL("mongodb://" + HOST + ":" + PORT + "/" + dbName);
}
/**
@@ -133,4 +124,27 @@ public class MongoUtils {
}
}
+ //----------------------------< internal >----------------------------------
+
+ /**
+ * Get a connection if available. If not available, null is returned.
+ *
+ * @param url the mongodb url
+ * @return the connection or null
+ */
+ private static MongoConnection getConnectionByURL(String url) {
+ if (exception != null) {
+ return null;
+ }
+ MongoConnection mongoConnection;
+ try {
+ mongoConnection = new MongoConnection(url);
+ mongoConnection.getDB().command(new BasicDBObject("ping", 1));
+ // dropCollections(mongoConnection.getDB());
+ } catch (Exception e) {
+ exception = e;
+ mongoConnection = null;
+ }
+ return mongoConnection;
+ }
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/ReferenceBinaryIT.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/ReferenceBinaryIT.java?rev=1738582&r1=1738581&r2=1738582&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/ReferenceBinaryIT.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/ReferenceBinaryIT.java Mon Apr 11 13:23:21 2016
@@ -44,6 +44,7 @@ import org.apache.jackrabbit.oak.fixture
import org.apache.jackrabbit.oak.fixture.NodeStoreFixture;
import org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreBlobStore;
import org.apache.jackrabbit.oak.plugins.blob.datastore.OakFileDataStore;
+import org.apache.jackrabbit.oak.plugins.document.MongoUtils;
import org.apache.jackrabbit.oak.plugins.segment.SegmentStore;
import org.apache.jackrabbit.oak.plugins.segment.file.FileStore;
import org.apache.jackrabbit.oak.plugins.segment.fixture.SegmentFixture;
@@ -151,7 +152,7 @@ public class ReferenceBinaryIT {
fixtures.add(new Object[] {segmentFixtureFBS});
}
- DocumentMongoFixture documentFixture = new DocumentMongoFixture(DocumentMongoFixture.DEFAULT_URI, createBlobStore());
+ DocumentMongoFixture documentFixture = new DocumentMongoFixture(MongoUtils.URL, createBlobStore());
if (documentFixture.isAvailable()) {
fixtures.add(new Object[]{documentFixture});
}
Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/cluster/NonLocalObservationIT.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/cluster/NonLocalObservationIT.java?rev=1738582&r1=1738581&r2=1738582&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/cluster/NonLocalObservationIT.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/cluster/NonLocalObservationIT.java Mon Apr 11 13:23:21 2016
@@ -16,7 +16,9 @@
*/
package org.apache.jackrabbit.oak.jcr.cluster;
+import static org.apache.jackrabbit.oak.commons.FixturesHelper.Fixture.DOCUMENT_NS;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assume.assumeTrue;
import java.util.Date;
import java.util.HashSet;
@@ -33,12 +35,15 @@ import javax.jcr.observation.EventListen
import javax.jcr.observation.ObservationManager;
import org.apache.jackrabbit.api.observation.JackrabbitEvent;
+import org.apache.jackrabbit.oak.commons.FixturesHelper;
import org.apache.jackrabbit.oak.fixture.DocumentMongoFixture;
import org.apache.jackrabbit.oak.fixture.NodeStoreFixture;
import org.apache.jackrabbit.oak.plugins.document.DocumentMK;
import org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore;
+import org.apache.jackrabbit.oak.plugins.document.MongoUtils;
import org.apache.jackrabbit.oak.spi.state.NodeStore;
import org.junit.AssumptionViolatedException;
+import org.junit.BeforeClass;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -54,6 +59,11 @@ public class NonLocalObservationIT exten
AtomicReference<Exception> exception = new AtomicReference<Exception>();
+ @BeforeClass
+ public static void assumeMongoDB() {
+ assumeTrue(FixturesHelper.getFixtures().contains(DOCUMENT_NS) && MongoUtils.isAvailable());
+ }
+
@Override
protected NodeStoreFixture getFixture() {
/**