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() {
         /**