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 2018/03/29 13:06:11 UTC

svn commit: r1827987 [3/4] - in /jackrabbit/oak/trunk: oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/blob/migration/ oak-it/src/test/java/org/apache/jackrabbit/oak/plugins/document/ oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/ oak-jcr/...

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/com/mongodb/OakFongo.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/com/mongodb/OakFongo.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/com/mongodb/OakFongo.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/com/mongodb/OakFongo.java Thu Mar 29 13:06:10 2018
@@ -21,15 +21,48 @@ import java.util.List;
 import java.util.Map;
 
 import com.github.fakemongo.Fongo;
+import com.mongodb.client.FindIterable;
+import com.mongodb.client.MongoCollection;
+import com.mongodb.client.model.BulkWriteOptions;
+import com.mongodb.client.model.DeleteOptions;
+import com.mongodb.client.model.FindOneAndUpdateOptions;
+import com.mongodb.client.model.InsertManyOptions;
+import com.mongodb.client.model.ReturnDocument;
+import com.mongodb.client.model.UpdateOptions;
+import com.mongodb.client.model.WriteModel;
+import com.mongodb.client.result.DeleteResult;
+import com.mongodb.client.result.UpdateResult;
 import com.mongodb.connection.ServerVersion;
 
+import org.apache.jackrabbit.oak.plugins.document.MongoUtils;
+import org.bson.Document;
+import org.bson.codecs.configuration.CodecRegistry;
+import org.bson.conversions.Bson;
+
+import static java.util.stream.Collectors.toList;
+import static org.bson.codecs.configuration.CodecRegistries.fromRegistries;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
 public class OakFongo extends Fongo {
 
+    private static final CodecRegistry CODEC_REGISTRY = fromRegistries(
+            MongoClient.getDefaultCodecRegistry()
+    );
+
     private final Map<String, FongoDB> dbMap;
 
+    private final MongoClient client;
+
     public OakFongo(String name) throws Exception {
         super(name);
         this.dbMap = getDBMap();
+        this.client = createClientProxy();
+    }
+
+    @Override
+    public MongoClient getMongo() {
+        return client;
     }
 
     @Override
@@ -48,6 +81,11 @@ public class OakFongo extends Fongo {
         }
     }
 
+    @Override
+    public FongoMongoDatabase getDatabase(String databaseName) {
+        return new OakFongoMongoDatabase(databaseName, this);
+    }
+
     @SuppressWarnings("unchecked")
     private Map<String, FongoDB> getDBMap() throws Exception {
         Field f = Fongo.class.getDeclaredField("dbMap");
@@ -55,6 +93,14 @@ public class OakFongo extends Fongo {
         return (Map<String, FongoDB>) f.get(this);
     }
 
+    private MongoClient createClientProxy() {
+        MongoClient c = spy(super.getMongo());
+        for (String dbName : new String[]{MongoUtils.DB, "oak"}) {
+            when(c.getDatabase(dbName)).thenReturn(new OakFongoMongoDatabase(dbName, this));
+        }
+        return c;
+    }
+
     protected void beforeInsert(List<? extends DBObject> documents,
                                 InsertOptions insertOptions) {}
 
@@ -93,6 +139,7 @@ public class OakFongo extends Fongo {
     protected void afterFind(DBCursor cursor) {}
 
     protected void afterExecuteBulkWriteOperation(BulkWriteResult result) {}
+
     private class OakFongoDB extends FongoDB {
 
         private final Map<String, FongoDBCollection> collMap;
@@ -136,16 +183,17 @@ public class OakFongo extends Fongo {
             return coll;
         }
 
-        private String asString(ServerVersion serverVersion) {
-            StringBuilder sb = new StringBuilder();
-            for (int i : serverVersion.getVersionList()) {
-                if (sb.length() != 0) {
-                    sb.append('.');
-                }
-                sb.append(String.valueOf(i));
+    }
+
+    private static String asString(ServerVersion serverVersion) {
+        StringBuilder sb = new StringBuilder();
+        for (int i : serverVersion.getVersionList()) {
+            if (sb.length() != 0) {
+                sb.append('.');
             }
-            return sb.toString();
+            sb.append(String.valueOf(i));
         }
+        return sb.toString();
     }
 
     private class OakFongoDBCollection extends FongoDBCollection {
@@ -219,4 +267,134 @@ public class OakFongo extends Fongo {
             return result;
         }
     }
+
+    private class OakFongoMongoDatabase extends FongoMongoDatabase {
+
+        private final Fongo fongo;
+
+        public OakFongoMongoDatabase(String databaseName, Fongo fongo) {
+            super(databaseName, fongo);
+            this.fongo = fongo;
+        }
+
+        @Override
+        public MongoCollection<Document> getCollection(String collectionName) {
+            return new OakFongoMongoCollection(this.fongo, new MongoNamespace(super.getName(), collectionName), super.getCodecRegistry(), super.getReadPreference(), super.getWriteConcern(), super.getReadConcern());
+        }
+
+        @SuppressWarnings("unchecked")
+        @Override
+        public <TResult> TResult runCommand(Bson command,
+                                            ReadPreference readPreference,
+                                            Class<TResult> tResultClass) {
+            if (BasicDBObject.class.equals(tResultClass)) {
+                BasicDBObject result = new BasicDBObject();
+                result.append("version", asString(getServerVersion()));
+                return (TResult) result;
+            }
+            return super.runCommand(command, readPreference, tResultClass);
+        }
+    }
+
+    private class OakFongoMongoCollection extends FongoMongoCollection<Document> {
+
+        private final Fongo fongo;
+
+        OakFongoMongoCollection(Fongo fongo,
+                                MongoNamespace namespace,
+                                CodecRegistry codecRegistry,
+                                ReadPreference readPreference,
+                                WriteConcern writeConcern,
+                                ReadConcern readConcern) {
+            super(fongo, namespace, Document.class, codecRegistry, readPreference, writeConcern, readConcern);
+            this.fongo = fongo;
+        }
+
+        @Override
+        public void insertMany(List<? extends Document> documents,
+                               InsertManyOptions options) {
+            beforeInsert(asDBObjects(documents), new InsertOptions());
+            super.insertMany(documents, options);
+            WriteResult result = new WriteResult(documents.size(), false, null);
+            afterInsert(result);
+        }
+
+        @Override
+        public DeleteResult deleteMany(Bson filter,
+                                       DeleteOptions options) {
+            beforeRemove(asDBObject(filter), getWriteConcern());
+            DeleteResult result = super.deleteMany(filter, options);
+            afterRemove(new WriteResult((int) result.getDeletedCount(), false, null));
+            return result;
+        }
+
+        @Override
+        public UpdateResult updateMany(Bson filter,
+                                       Bson update,
+                                       UpdateOptions updateOptions) {
+            beforeUpdate(asDBObject(filter), asDBObject(update), updateOptions.isUpsert(), true, getWriteConcern(), new DefaultDBEncoder());
+            UpdateResult result = super.updateMany(filter, update, updateOptions);
+            afterUpdate(new WriteResult((int) result.getModifiedCount(), true, result.getUpsertedId().asString().getValue()));
+            return result;
+        }
+
+        @Override
+        public Document findOneAndUpdate(Bson filter,
+                                         Bson update,
+                                         FindOneAndUpdateOptions options) {
+            beforeFindAndModify(asDBObject(filter), null, null, false, asDBObject(update), options.getReturnDocument() == ReturnDocument.AFTER, options.isUpsert());
+            Document result = super.findOneAndUpdate(filter, update, options);
+            afterFindAndModify(asDBObject(result));
+            return result;
+        }
+
+        @Override
+        public FindIterable<Document> find(Bson filter) {
+            beforeFind(asDBObject(filter), null);
+            FindIterable<Document> result = super.find(filter);
+            afterFind(new FongoDBCursor(fongo.getDB(getNamespace().getDatabaseName()).getCollection(getNamespace().getCollectionName()), asDBObject(filter), null));
+            return result;
+        }
+
+        @Override
+        public com.mongodb.bulk.BulkWriteResult bulkWrite(List<? extends WriteModel<? extends Document>> requests,
+                                                          BulkWriteOptions options) {
+            beforeExecuteBulkWriteOperation(options.isOrdered(), options.getBypassDocumentValidation(), requests, getWriteConcern());
+            com.mongodb.bulk.BulkWriteResult result = super.bulkWrite(requests, options);
+            afterExecuteBulkWriteOperation(new AcknowledgedBulkWriteResult(result.getInsertedCount(), result.getMatchedCount(), result.getDeletedCount(), result.getModifiedCount(), this.transform(result.getUpserts())));
+            return result;
+        }
+
+        private List<BulkWriteUpsert> transform(List<com.mongodb.bulk.BulkWriteUpsert> upserts) {
+            return upserts.stream().map(bulkWriteUpsert -> new BulkWriteUpsert(bulkWriteUpsert.getIndex(), bulkWriteUpsert.getId().asString().getValue())).collect(toList());
+        }
+
+        @Override
+        public MongoCollection<Document> withCodecRegistry(CodecRegistry codecRegistry) {
+            return new OakFongoMongoCollection(fongo, super.getNamespace(), codecRegistry, super.getReadPreference(), super.getWriteConcern(), super.getReadConcern());
+        }
+
+        @Override
+        public MongoCollection<Document> withReadPreference(ReadPreference readPreference) {
+            return new OakFongoMongoCollection(fongo, super.getNamespace(), super.getCodecRegistry(), readPreference, super.getWriteConcern(), super.getReadConcern());
+        }
+
+        @Override
+        public MongoCollection<Document> withWriteConcern(WriteConcern writeConcern) {
+            return new OakFongoMongoCollection(fongo, super.getNamespace(), super.getCodecRegistry(), super.getReadPreference(), writeConcern, super.getReadConcern());
+        }
+
+        @Override
+        public MongoCollection<Document> withReadConcern(ReadConcern readConcern) {
+            return new OakFongoMongoCollection(fongo, super.getNamespace(), super.getCodecRegistry(), super.getReadPreference(), super.getWriteConcern(), readConcern);
+        }
+
+        private List<DBObject> asDBObjects(List<? extends Document> docs) {
+            return docs.stream().map(this::asDBObject).collect(toList());
+        }
+
+        private DBObject asDBObject(Bson bson) {
+            return new BasicDBObject(bson.toBsonDocument(Document.class, CODEC_REGISTRY));
+        }
+    }
 }

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/fixture/DocumentMongoFixture.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/fixture/DocumentMongoFixture.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/fixture/DocumentMongoFixture.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/fixture/DocumentMongoFixture.java Thu Mar 29 13:06:10 2018
@@ -19,7 +19,6 @@
 
 package org.apache.jackrabbit.oak.fixture;
 
-import java.net.UnknownHostException;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -27,14 +26,13 @@ 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;
 import org.junit.AssumptionViolatedException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.mongodb.DB;
+import com.mongodb.MongoClient;
 import com.mongodb.MongoClientURI;
 
 public class DocumentMongoFixture extends NodeStoreFixture {
@@ -70,7 +68,7 @@ public class DocumentMongoFixture extend
                 builder.setBlobStore(blobStore);
             }
             builder.setPersistentCache("target/persistentCache,time");
-            builder.setMongoDB(getDb(suffix));
+            builder.setMongoDB(createClient(), getDBName(suffix));
             DocumentNodeStore ns = builder.getNodeStore();
             suffixes.put(ns, suffix);
             return ns;
@@ -79,10 +77,13 @@ public class DocumentMongoFixture extend
         }
     }
 
-    protected DB getDb(String suffix) throws UnknownHostException {
+    protected MongoClient createClient() {
+        return new MongoClient(new MongoClientURI(uri));
+    }
+
+    protected String getDBName(String suffix) {
         String dbName = new MongoClientURI(uri).getDatabase();
-        MongoConnection connection = new MongoConnection(uri);
-        return connection.getDB(dbName + "-" + suffix);
+        return dbName + "-" + suffix;
     }
 
     @Override
@@ -103,10 +104,8 @@ public class DocumentMongoFixture extend
         }
         String suffix = suffixes.remove(nodeStore);
         if (suffix != null) {
-            try {
-                DB db = getDb(suffix);
-                db.dropDatabase();
-                db.getMongo().close();
+            try (MongoClient client = createClient()) {
+                client.dropDatabase(getDBName(suffix));
             } catch (Exception e) {
                 log.error("Can't close Mongo", e);
             }

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AbstractMongoConnectionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AbstractMongoConnectionTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AbstractMongoConnectionTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AbstractMongoConnectionTest.java Thu Mar 29 13:06:10 2018
@@ -16,7 +16,7 @@
  */
 package org.apache.jackrabbit.oak.plugins.document;
 
-import com.mongodb.DB;
+import com.mongodb.MongoClient;
 
 import org.apache.jackrabbit.oak.plugins.document.util.MongoConnection;
 import org.apache.jackrabbit.oak.stats.Clock;
@@ -50,7 +50,8 @@ public abstract class AbstractMongoConne
         MongoUtils.dropCollections(mongoConnection.getDB());
         setRevisionClock(getTestClock());
         setClusterNodeInfoClock(getTestClock());
-        mk = newBuilder(mongoConnection.getDB()).open();
+        mk = newBuilder(mongoConnection.getMongoClient(),
+                mongoConnection.getDBName()).open();
     }
 
     protected void setRevisionClock(Clock c) {
@@ -61,8 +62,8 @@ public abstract class AbstractMongoConne
         ClusterNodeInfo.setClock(c);
     }
 
-    protected DocumentMK.Builder newBuilder(DB db) throws Exception {
-        return addToBuilder(new DocumentMK.Builder()).clock(getTestClock()).setMongoDB(db);
+    protected DocumentMK.Builder newBuilder(MongoClient client, String dbName) throws Exception {
+        return addToBuilder(new DocumentMK.Builder()).clock(getTestClock()).setMongoDB(client, dbName);
     }
 
     protected DocumentMK.Builder addToBuilder(DocumentMK.Builder mk) {
@@ -75,10 +76,9 @@ public abstract class AbstractMongoConne
 
     @After
     public void tearDownConnection() throws Exception {
+        String dbName = mongoConnection.getDBName();
         mk.dispose();
-        DB db = connectionFactory.getConnection().getDB();
-        MongoUtils.dropCollections(db);
-        db.getMongo().close();
+        MongoUtils.dropCollections(dbName);
         Revision.resetClockToDefault();
         ClusterNodeInfo.resetClockToDefault();
     }

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/BaseDocumentDiscoveryLiteServiceTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/BaseDocumentDiscoveryLiteServiceTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/BaseDocumentDiscoveryLiteServiceTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/BaseDocumentDiscoveryLiteServiceTest.java Thu Mar 29 13:06:10 2018
@@ -67,7 +67,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.Lists;
-import com.mongodb.DB;
+import com.mongodb.client.MongoDatabase;
 
 import junitx.util.PrivateAccessor;
 
@@ -687,7 +687,7 @@ public abstract class BaseDocumentDiscov
         if (MONGO_DB) {
             MongoConnection connection = connectionFactory.getConnection();
             if (connection != null) {
-                DB db = connection.getDB();
+                MongoDatabase db = connection.getDatabase();
                 if (db != null) {
                     MongoUtils.dropCollections(db);
                 }
@@ -697,8 +697,10 @@ public abstract class BaseDocumentDiscov
 
     DocumentMK createMK(int clusterId, int asyncDelay) {
         if (MONGO_DB) {
-            DB db = connectionFactory.getConnection().getDB();
-            return register(new DocumentMK.Builder().setMongoDB(db).setLeaseCheck(false).setClusterId(clusterId)
+            MongoConnection connection = connectionFactory.getConnection();
+            return register(new DocumentMK.Builder()
+                    .setMongoDB(connection.getMongoClient(), connection.getDBName())
+                    .setLeaseCheck(false).setClusterId(clusterId)
                     .setAsyncDelay(asyncDelay).open());
         } else {
             if (ds == null) {

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobTest.java Thu Mar 29 13:06:10 2018
@@ -27,6 +27,7 @@ import java.util.Random;
 import org.apache.jackrabbit.oak.api.Blob;
 import org.apache.jackrabbit.oak.json.BlobSerializer;
 import org.apache.jackrabbit.oak.plugins.blob.BlobStoreBlob;
+import org.apache.jackrabbit.oak.plugins.document.util.MongoConnection;
 import org.apache.jackrabbit.oak.plugins.memory.ArrayBasedBlob;
 import org.apache.jackrabbit.oak.spi.blob.MemoryBlobStore;
 import org.junit.Rule;
@@ -34,8 +35,6 @@ import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.mongodb.DB;
-
 /**
  * Tests the blob store.
  */
@@ -59,7 +58,8 @@ public class BlobTest {
 
     DocumentMK.Builder setMongoConnection(DocumentMK.Builder builder) {
         if (MONGO_DB) {
-            builder.setMongoDB(connectionFactory.getConnection().getDB());
+            MongoConnection connection = connectionFactory.getConnection();
+            builder.setMongoDB(connection.getMongoClient(), connection.getDBName());
         }
         return builder;
     }

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CacheConsistencyTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CacheConsistencyTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CacheConsistencyTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CacheConsistencyTest.java Thu Mar 29 13:06:10 2018
@@ -30,10 +30,12 @@ import org.junit.Before;
 import org.junit.Test;
 
 import com.google.common.collect.Maps;
-import com.mongodb.DB;
 import com.mongodb.DBObject;
+import com.mongodb.MongoClient;
+import com.mongodb.client.MongoDatabase;
 
 import static org.apache.jackrabbit.oak.plugins.document.Collection.NODES;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 /**
@@ -47,11 +49,12 @@ public class CacheConsistencyTest extend
     @Override
     public void setUpConnection() throws Exception {
         mongoConnection = connectionFactory.getConnection();
-        DB db = mongoConnection.getDB();
+        assertNotNull(mongoConnection);
+        MongoDatabase db = mongoConnection.getDatabase();
         MongoUtils.dropCollections(db);
         DocumentMK.Builder builder = new DocumentMK.Builder()
                 .clock(getTestClock()).setAsyncDelay(0);
-        store = new TestStore(db, builder);
+        store = new TestStore(mongoConnection.getMongoClient(), db.getName(), builder);
         mk = builder.setDocumentStore(store).open();
     }
 
@@ -106,8 +109,8 @@ public class CacheConsistencyTest extend
 
         final Map<Thread, Semaphore> semaphores = Maps.newConcurrentMap();
 
-        TestStore(DB db, DocumentMK.Builder builder) {
-            super(db, builder);
+        TestStore(MongoClient client, String dbName, DocumentMK.Builder builder) {
+            super(client, dbName, builder);
         }
 
         @Override

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/ClusterJoinTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/ClusterJoinTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/ClusterJoinTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/ClusterJoinTest.java Thu Mar 29 13:06:10 2018
@@ -16,6 +16,7 @@
  */
 package org.apache.jackrabbit.oak.plugins.document;
 
+import org.apache.jackrabbit.oak.plugins.document.util.MongoConnection;
 import org.json.simple.JSONObject;
 import org.junit.Test;
 
@@ -35,9 +36,10 @@ public class ClusterJoinTest extends Abs
 
         // start a new DocumentMK instance. this instance sees /foo
         // because it started after the commit on the first DocumentMK
+        MongoConnection connection = connectionFactory.getConnection();
         DocumentMK mk2 = new DocumentMK.Builder().
                 setAsyncDelay(0).
-                setMongoDB(connectionFactory.getConnection().getDB()).
+                setMongoDB(connection.getMongoClient(), connection.getDBName()).
                 setClusterId(mk.getNodeStore().getClusterId() + 1).
                 open();
 

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/ClusterTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/ClusterTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/ClusterTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/ClusterTest.java Thu Mar 29 13:06:10 2018
@@ -26,15 +26,15 @@ import java.util.HashSet;
 import java.util.List;
 
 import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
-import com.mongodb.DB;
+import com.mongodb.client.MongoDatabase;
 
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.commons.PathUtils;
 import org.apache.jackrabbit.oak.plugins.document.memory.MemoryDocumentStore;
+import org.apache.jackrabbit.oak.plugins.document.util.MongoConnection;
 import org.apache.jackrabbit.oak.spi.blob.BlobStore;
 import org.apache.jackrabbit.oak.spi.blob.MemoryBlobStore;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
@@ -395,7 +395,7 @@ public class ClusterTest {
         }
         mks.clear();
         if (MONGO_DB) {
-            DB db = connectionFactory.getConnection().getDB();
+            MongoDatabase db = connectionFactory.getConnection().getDatabase();
             MongoUtils.dropCollections(db);
         }
     }
@@ -411,8 +411,9 @@ public class ClusterTest {
 
     private DocumentMK createMK(int clusterId, int asyncDelay) {
         if (MONGO_DB) {
-            DB db = connectionFactory.getConnection().getDB();
-            return register(new DocumentMK.Builder().setMongoDB(db)
+            MongoConnection connection = connectionFactory.getConnection();
+            return register(new DocumentMK.Builder()
+                    .setMongoDB(connection.getMongoClient(), connection.getDBName())
                     .setClusterId(clusterId).setAsyncDelay(asyncDelay).open());
         } else {
             if (ds == null) {

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CollisionWithSplitTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CollisionWithSplitTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CollisionWithSplitTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CollisionWithSplitTest.java Thu Mar 29 13:06:10 2018
@@ -19,9 +19,8 @@ package org.apache.jackrabbit.oak.plugin
 import java.util.Collections;
 import java.util.List;
 
-import com.mongodb.DB;
-
 import org.apache.jackrabbit.oak.api.CommitFailedException;
+import org.apache.jackrabbit.oak.plugins.document.util.MongoConnection;
 import org.apache.jackrabbit.oak.plugins.document.util.Utils;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.commit.EmptyHook;
@@ -50,13 +49,13 @@ public class CollisionWithSplitTest exte
     public void setUpConnection() throws Exception {
         mongoConnection = connectionFactory.getConnection();
         MongoUtils.dropCollections(mongoConnection.getDB());
-        mk = newDocumentMK(mongoConnection.getDB(), 2);
+        mk = newDocumentMK(mongoConnection, 2);
         ns1 = mk.getNodeStore();
     }
 
     @Before
     public void setup() throws Exception {
-        ns2 = newDocumentMK(connectionFactory.getConnection().getDB(), 3).getNodeStore();
+        ns2 = newDocumentMK(connectionFactory.getConnection(), 3).getNodeStore();
     }
 
     @After
@@ -121,9 +120,9 @@ public class CollisionWithSplitTest exte
                 ourRev, c.mark(ns2.getDocumentStore()));
     }
 
-    private static DocumentMK newDocumentMK(DB db, int clusterId) {
+    private static DocumentMK newDocumentMK(MongoConnection c, int clusterId) {
         return new DocumentMK.Builder().setAsyncDelay(0)
-                .setMongoDB(db)
+                .setMongoDB(c.getMongoClient(), c.getDBName())
                 .setClusterId(clusterId)
                 .open();
     }

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderTest.java Thu Mar 29 13:06:10 2018
@@ -17,7 +17,7 @@
 package org.apache.jackrabbit.oak.plugins.document;
 
 import com.google.common.collect.Iterables;
-import com.mongodb.DB;
+import com.mongodb.MongoClient;
 
 import org.apache.jackrabbit.oak.cache.CacheStats;
 import org.junit.Test;
@@ -40,8 +40,8 @@ public class DocumentMKBuilderTest exten
             cacheSize(DEFAULT_PREV_DOC_CACHE_PERCENTAGE);
 
     @Override
-    protected DocumentMK.Builder newBuilder(DB db) throws Exception {
-        return super.newBuilder(db).memoryCacheSize(CACHE_SIZE);
+    protected DocumentMK.Builder newBuilder(MongoClient client, String dbName) throws Exception {
+        return super.newBuilder(client, dbName).memoryCacheSize(CACHE_SIZE);
     }
 
     @Test

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreDiffTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreDiffTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreDiffTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreDiffTest.java Thu Mar 29 13:06:10 2018
@@ -16,7 +16,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.document;
 
-import com.mongodb.DB;
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.cache.CacheStats;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreServiceTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreServiceTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreServiceTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreServiceTest.java Thu Mar 29 13:06:10 2018
@@ -20,9 +20,11 @@ import java.io.File;
 import java.lang.reflect.Field;
 import java.util.Map;
 
+import javax.annotation.Nonnull;
+
 import com.google.common.base.Supplier;
 import com.google.common.collect.Maps;
-import com.mongodb.DB;
+import com.mongodb.MongoClient;
 
 import org.apache.commons.io.FilenameUtils;
 import org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore;
@@ -154,8 +156,8 @@ public class DocumentNodeStoreServiceTes
         MockOsgi.activate(service, context.bundleContext());
         DocumentNodeStore store = context.getService(DocumentNodeStore.class);
         MongoDocumentStore mds = getMongoDocumentStore(store);
-        DB db = MongoDocumentStoreTestHelper.getDB(mds);
-        assertTrue(db.getMongo().getMongoOptions().isSocketKeepAlive());
+        MongoClient client = MongoDocumentStoreTestHelper.getClient(mds);
+        assertTrue(client.getMongoClientOptions().isSocketKeepAlive());
     }
 
     @Test
@@ -213,8 +215,8 @@ public class DocumentNodeStoreServiceTes
         DocumentNodeStore store = context.getService(DocumentNodeStore.class);
         MongoDocumentStore mds = getMongoDocumentStore(store);
         assertNotNull(mds);
-        DB db = MongoDocumentStoreTestHelper.getDB(mds);
-        assertTrue(db.getMongo().getMongoOptions().isSocketKeepAlive());
+        MongoClient client = MongoDocumentStoreTestHelper.getClient(mds);
+        assertTrue(client.getMongoClientOptions().isSocketKeepAlive());
     }
 
     @Test
@@ -232,10 +234,11 @@ public class DocumentNodeStoreServiceTes
 
         DocumentNodeStore store = context.getService(DocumentNodeStore.class);
         MongoDocumentStore mds = getMongoDocumentStore(store);
-        DB db = MongoDocumentStoreTestHelper.getDB(mds);
-        assertFalse(db.getMongo().getMongoOptions().isSocketKeepAlive());
+        MongoClient client = MongoDocumentStoreTestHelper.getClient(mds);
+        assertFalse(client.getMongoClientOptions().isSocketKeepAlive());
     }
 
+    @Nonnull
     private static MongoDocumentStore getMongoDocumentStore(DocumentNodeStore s) {
         try {
             Field f = s.getClass().getDeclaredField("nonLeaseCheckingStore");
@@ -243,8 +246,8 @@ public class DocumentNodeStoreServiceTes
             return (MongoDocumentStore) f.get(s);
         } catch (Exception e) {
             fail(e.getMessage());
-            return null;
         }
+        throw new IllegalStateException();
     }
 
     private void assertPersistentCachePath(String expectedPath,

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreFixture.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreFixture.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreFixture.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreFixture.java Thu Mar 29 13:06:10 2018
@@ -34,7 +34,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.Lists;
-import com.mongodb.DB;
 
 import static org.apache.jackrabbit.oak.commons.FixturesHelper.Fixture.DOCUMENT_MEM;
 import static org.apache.jackrabbit.oak.commons.FixturesHelper.Fixture.DOCUMENT_NS;
@@ -214,8 +213,8 @@ public abstract class DocumentStoreFixtu
             try {
                 MongoConnection connection = MongoUtils.getConnection();
                 connections.add(connection);
-                DB db = connection.getDB();
-                return new MongoDocumentStore(db, builder);
+                return new MongoDocumentStore(connection.getMongoClient(),
+                        connection.getDBName(), builder);
             } catch (Exception e) {
                 throw new RuntimeException(e);
             }

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoDocumentStoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoDocumentStoreTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoDocumentStoreTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoDocumentStoreTest.java Thu Mar 29 13:06:10 2018
@@ -31,6 +31,7 @@ import java.util.concurrent.TimeUnit;
 import com.google.common.collect.Lists;
 import org.apache.jackrabbit.oak.plugins.document.memory.MemoryDocumentStore;
 import org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore;
+import org.apache.jackrabbit.oak.plugins.document.util.MongoConnection;
 import org.apache.jackrabbit.oak.plugins.document.util.Utils;
 import org.junit.After;
 import org.junit.Before;
@@ -62,7 +63,9 @@ public class MongoDocumentStoreTest {
 
     DocumentStore openDocumentStore() {
         if (MONGO_DB) {
-            return new MongoDocumentStore(connectionFactory.getConnection().getDB(), new DocumentMK.Builder());
+            MongoConnection c = connectionFactory.getConnection();
+            assertNotNull(c);
+            return new MongoDocumentStore(c.getMongoClient(), c.getDBName(), new DocumentMK.Builder());
         }
         return new MemoryDocumentStore();
     }

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoUtils.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoUtils.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoUtils.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoUtils.java Thu Mar 29 13:06:10 2018
@@ -20,6 +20,7 @@ import org.apache.jackrabbit.oak.plugins
 
 import com.mongodb.BasicDBObject;
 import com.mongodb.DB;
+import com.mongodb.client.MongoDatabase;
 
 /**
  * A utility class to get a {@link MongoConnection} to a local mongo instance
@@ -84,12 +85,26 @@ public class MongoUtils {
      * Drop all user defined collections. System collections are not dropped.
      *
      * @param db the connection
+     * @deprecated use {@link #dropCollections(MongoDatabase)} instead.
      */
     public static void dropCollections(DB db) {
         for (String name : db.getCollectionNames()) {
             if (!name.startsWith("system.")) {
                 db.getCollection(name).drop();
             }
+        }
+    }
+
+    /**
+     * Drop all user defined collections. System collections are not dropped.
+     *
+     * @param db the connection
+     */
+    public static void dropCollections(MongoDatabase db) {
+        for (String name : db.listCollectionNames()) {
+            if (!name.startsWith("system.")) {
+                db.getCollection(name).drop();
+            }
         }
     }
 

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/RandomizedClusterTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/RandomizedClusterTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/RandomizedClusterTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/RandomizedClusterTest.java Thu Mar 29 13:06:10 2018
@@ -27,6 +27,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Random;
 
+import org.apache.jackrabbit.oak.plugins.document.util.MongoConnection;
 import org.apache.jackrabbit.oak.spi.blob.MemoryBlobStore;
 import org.apache.jackrabbit.oak.commons.json.JsonObject;
 import org.apache.jackrabbit.oak.commons.json.JsopBuilder;
@@ -35,8 +36,6 @@ import org.apache.jackrabbit.oak.plugins
 import org.junit.Rule;
 import org.junit.Test;
 
-import com.mongodb.DB;
-
 /**
  * A simple randomized dual-instance test.
  */
@@ -377,9 +376,9 @@ public class RandomizedClusterTest {
         DocumentMK.Builder builder = new DocumentMK.Builder();
         builder.setAsyncDelay(0);
         if (MONGO_DB) {
-            DB db = connectionFactory.getConnection().getDB();
-            MongoUtils.dropCollections(db);
-            builder.setMongoDB(db);
+            MongoConnection c = connectionFactory.getConnection();
+            MongoUtils.dropCollections(c.getDBName());
+            builder.setMongoDB(c.getMongoClient(), c.getDBName());
         } else {
             if (ds == null) {
                 ds = new MemoryDocumentStore();

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/SimpleTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/SimpleTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/SimpleTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/SimpleTest.java Thu Mar 29 13:06:10 2018
@@ -33,12 +33,12 @@ import org.apache.jackrabbit.oak.api.Pro
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.commons.json.JsopBuilder;
 import org.apache.jackrabbit.oak.plugins.document.DocumentNodeState.Children;
+import org.apache.jackrabbit.oak.plugins.document.util.MongoConnection;
 import org.apache.jackrabbit.oak.plugins.document.util.Utils;
 import org.junit.Rule;
 import org.junit.Test;
 
 import com.google.common.collect.Lists;
-import com.mongodb.DB;
 
 /**
  * A set of simple tests.
@@ -441,9 +441,9 @@ public class SimpleTest {
         DocumentMK.Builder builder = builderProvider.newBuilder();
 
         if (MONGO_DB) {
-            DB db = connectionFactory.getConnection().getDB();
-            MongoUtils.dropCollections(db);
-            builder.setMongoDB(db);
+            MongoConnection c = connectionFactory.getConnection();
+            MongoUtils.dropCollections(c.getDBName());
+            builder.setMongoDB(c.getMongoClient(), c.getDBName());
         }
 
         builder.setUseSimpleRevision(useSimpleRevision);

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/MongoBlobStoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/MongoBlobStoreTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/MongoBlobStoreTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/MongoBlobStoreTest.java Thu Mar 29 13:06:10 2018
@@ -46,9 +46,9 @@ public class MongoBlobStoreTest extends
     @Override
     public void setUp() throws Exception {
         mongoConnection = MongoUtils.getConnection();
-        MongoUtils.dropCollections(mongoConnection.getDB());
+        MongoUtils.dropCollections(mongoConnection.getDatabase());
 
-        MongoBlobStore blobStore = new MongoBlobStore(mongoConnection.getDB());
+        MongoBlobStore blobStore = new MongoBlobStore(mongoConnection.getDatabase());
         blobStore.setBlockSize(128);
         blobStore.setBlockSizeMin(48);
         this.store = blobStore;
@@ -57,7 +57,7 @@ public class MongoBlobStoreTest extends
     @After
     @Override
     public void tearDown() throws Exception {
-        MongoUtils.dropCollections(mongoConnection.getDB());
+        MongoUtils.dropCollections(mongoConnection.getDatabase());
         mongoConnection.close();
         super.tearDown();
     }

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/cloud/DocumentMKCloudGetLengthTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/cloud/DocumentMKCloudGetLengthTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/cloud/DocumentMKCloudGetLengthTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/cloud/DocumentMKCloudGetLengthTest.java Thu Mar 29 13:06:10 2018
@@ -42,8 +42,9 @@ public class DocumentMKCloudGetLengthTes
     @Before
     public void setUpConnection() throws Exception {
         mongoConnection = connectionFactory.getConnection();
-        MongoUtils.dropCollections(mongoConnection.getDB());
-        mk = new DocumentMK.Builder().setMongoDB(mongoConnection.getDB())
+        MongoUtils.dropCollections(mongoConnection.getDBName());
+        mk = new DocumentMK.Builder()
+                .setMongoDB(mongoConnection.getMongoClient(), mongoConnection.getDBName())
                 .setBlobStore(CloudStoreUtils.getBlobStore()).open();
     }
 

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/cloud/DocumentMKCloudReadTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/cloud/DocumentMKCloudReadTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/cloud/DocumentMKCloudReadTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/cloud/DocumentMKCloudReadTest.java Thu Mar 29 13:06:10 2018
@@ -43,8 +43,9 @@ public class DocumentMKCloudReadTest ext
     @Before
     public void setUpConnection() throws Exception {
         mongoConnection = connectionFactory.getConnection();
-        MongoUtils.dropCollections(mongoConnection.getDB());
-        mk = new DocumentMK.Builder().setMongoDB(mongoConnection.getDB())
+        MongoUtils.dropCollections(mongoConnection.getDBName());
+        mk = new DocumentMK.Builder()
+                .setMongoDB(mongoConnection.getMongoClient(), mongoConnection.getDBName())
                 .setBlobStore(CloudStoreUtils.getBlobStore()).open();
     }
 

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/cloud/DocumentMKCloudWriteTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/cloud/DocumentMKCloudWriteTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/cloud/DocumentMKCloudWriteTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/cloud/DocumentMKCloudWriteTest.java Thu Mar 29 13:06:10 2018
@@ -43,8 +43,9 @@ public class DocumentMKCloudWriteTest ex
     @Before
     public void setUpConnection() throws Exception {
         mongoConnection = connectionFactory.getConnection();
-        MongoUtils.dropCollections(mongoConnection.getDB());
-        mk = new DocumentMK.Builder().setMongoDB(mongoConnection.getDB())
+        MongoUtils.dropCollections(mongoConnection.getDBName());
+        mk = new DocumentMK.Builder()
+                .setMongoDB(mongoConnection.getMongoClient(), mongoConnection.getDBName())
                 .setBlobStore(CloudStoreUtils.getBlobStore()).open();
     }
 

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/cloud/MongoCloudBlobGCTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/cloud/MongoCloudBlobGCTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/cloud/MongoCloudBlobGCTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/cloud/MongoCloudBlobGCTest.java Thu Mar 29 13:06:10 2018
@@ -43,8 +43,9 @@ public class MongoCloudBlobGCTest extend
     @Override
     public void setUpConnection() throws Exception {
         mongoConnection = connectionFactory.getConnection();
-        MongoUtils.dropCollections(mongoConnection.getDB());
-        mk = new DocumentMK.Builder().setMongoDB(mongoConnection.getDB())
+        MongoUtils.dropCollections(mongoConnection.getDBName());
+        mk = new DocumentMK.Builder()
+                .setMongoDB(mongoConnection.getMongoClient(), mongoConnection.getDBName())
                 .setBlobStore(CloudStoreUtils.getBlobStore()).open();
     }
 

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/ds/DocumentMKDataStoreGetLengthTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/ds/DocumentMKDataStoreGetLengthTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/ds/DocumentMKDataStoreGetLengthTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/ds/DocumentMKDataStoreGetLengthTest.java Thu Mar 29 13:06:10 2018
@@ -45,8 +45,9 @@ public class DocumentMKDataStoreGetLengt
     @Before
     public void setUpConnection() throws Exception {
         mongoConnection = connectionFactory.getConnection();
-        MongoUtils.dropCollections(mongoConnection.getDB());
-        mk = new DocumentMK.Builder().setMongoDB(mongoConnection.getDB())
+        MongoUtils.dropCollections(mongoConnection.getDBName());
+        mk = new DocumentMK.Builder()
+                .setMongoDB(mongoConnection.getMongoClient(), mongoConnection.getDBName())
                 .setBlobStore(DataStoreUtils.getBlobStore()).open();
     }
 

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/ds/DocumentMKDataStoreReadTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/ds/DocumentMKDataStoreReadTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/ds/DocumentMKDataStoreReadTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/ds/DocumentMKDataStoreReadTest.java Thu Mar 29 13:06:10 2018
@@ -46,8 +46,9 @@ public class DocumentMKDataStoreReadTest
     @Before
     public void setUpConnection() throws Exception {
         mongoConnection = connectionFactory.getConnection();
-        MongoUtils.dropCollections(mongoConnection.getDB());
-        mk = new DocumentMK.Builder().setMongoDB(mongoConnection.getDB())
+        MongoUtils.dropCollections(mongoConnection.getDBName());
+        mk = new DocumentMK.Builder()
+                .setMongoDB(mongoConnection.getMongoClient(), mongoConnection.getDBName())
                 .setBlobStore(DataStoreUtils.getBlobStore()).open();
     }
 

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/ds/DocumentMKDataStoreWriteTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/ds/DocumentMKDataStoreWriteTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/ds/DocumentMKDataStoreWriteTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/ds/DocumentMKDataStoreWriteTest.java Thu Mar 29 13:06:10 2018
@@ -46,8 +46,9 @@ public class DocumentMKDataStoreWriteTes
     @Before
     public void setUpConnection() throws Exception {
         mongoConnection = connectionFactory.getConnection();
-        MongoUtils.dropCollections(mongoConnection.getDB());
-        mk = new DocumentMK.Builder().setMongoDB(mongoConnection.getDB())
+        MongoUtils.dropCollections(mongoConnection.getDBName());
+        mk = new DocumentMK.Builder()
+                .setMongoDB(mongoConnection.getMongoClient(), mongoConnection.getDBName())
                 .setBlobStore(DataStoreUtils.getBlobStore()).open();
     }
 

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/ds/MongoDataStoreBlobGCTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/ds/MongoDataStoreBlobGCTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/ds/MongoDataStoreBlobGCTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/ds/MongoDataStoreBlobGCTest.java Thu Mar 29 13:06:10 2018
@@ -50,9 +50,10 @@ public class MongoDataStoreBlobGCTest ex
     public void setUpConnection() throws Exception {
         startDate = new Date();
         mongoConnection = connectionFactory.getConnection();
-        MongoUtils.dropCollections(mongoConnection.getDB());
+        MongoUtils.dropCollections(mongoConnection.getDBName());
         blobStore = DataStoreUtils.getBlobStore(folder.newFolder());
-        mk = new DocumentMK.Builder().clock(getTestClock()).setMongoDB(mongoConnection.getDB())
+        mk = new DocumentMK.Builder().clock(getTestClock())
+                .setMongoDB(mongoConnection.getMongoClient(), mongoConnection.getDBName())
                 .setBlobStore(blobStore).open();
     }
 

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/impl/DocumentMKConcurrentAddTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/impl/DocumentMKConcurrentAddTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/impl/DocumentMKConcurrentAddTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/impl/DocumentMKConcurrentAddTest.java Thu Mar 29 13:06:10 2018
@@ -31,8 +31,6 @@ import org.apache.jackrabbit.oak.plugins
 import org.junit.After;
 import org.junit.Test;
 
-import com.mongodb.DB;
-
 /**
  * Test for OAK-566.
  */
@@ -45,8 +43,9 @@ public class DocumentMKConcurrentAddTest
 
     private DocumentMK createMicroKernel(int clusterId) throws Exception {
         MongoConnection connection = connectionFactory.getConnection();
-        DB mongoDB = connection.getDB();
-        return new DocumentMK.Builder().memoryCacheSize(CACHE_SIZE).setMongoDB(mongoDB).setClusterId(clusterId).open();
+        return new DocumentMK.Builder().memoryCacheSize(CACHE_SIZE)
+                .setMongoDB(connection.getMongoClient(), connection.getDBName())
+                .setClusterId(clusterId).open();
     }
 
     @After

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/AcquireRecoveryLockTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/AcquireRecoveryLockTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/AcquireRecoveryLockTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/AcquireRecoveryLockTest.java Thu Mar 29 13:06:10 2018
@@ -18,12 +18,13 @@ package org.apache.jackrabbit.oak.plugin
 
 import java.util.List;
 
-import com.mongodb.DB;
+import com.mongodb.MongoClient;
 
 import org.apache.jackrabbit.oak.plugins.document.AbstractMongoConnectionTest;
 import org.apache.jackrabbit.oak.plugins.document.ClusterNodeInfo;
 import org.apache.jackrabbit.oak.plugins.document.ClusterNodeInfoDocument;
 import org.apache.jackrabbit.oak.plugins.document.DocumentMK;
+import org.apache.jackrabbit.oak.plugins.document.util.MongoConnection;
 import org.apache.jackrabbit.oak.stats.Clock;
 import org.junit.After;
 import org.junit.Before;
@@ -33,6 +34,7 @@ import static com.google.common.collect.
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assume.assumeNotNull;
 
 public class AcquireRecoveryLockTest extends AbstractMongoConnectionTest {
 
@@ -43,8 +45,10 @@ public class AcquireRecoveryLockTest ext
     @Before
     public void before() throws Exception {
         clock.waitUntil(System.currentTimeMillis());
+        MongoConnection connection = connectionFactory.getConnection();
+        assumeNotNull(connection);
         store = new MongoDocumentStore(
-                connectionFactory.getConnection().getDB(),
+                connection.getMongoClient(), connection.getDBName(),
                 new DocumentMK.Builder());
     }
 
@@ -54,9 +58,9 @@ public class AcquireRecoveryLockTest ext
     }
 
     @Override
-    protected DocumentMK.Builder newBuilder(DB db) throws Exception {
+    protected DocumentMK.Builder newBuilder(MongoClient client, String dbName) throws Exception {
         // disable lease check because test waits until lease times out
-        return super.newBuilder(db).setLeaseCheck(false);
+        return super.newBuilder(client, dbName).setLeaseCheck(false);
     }
 
     @Override

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/CacheInvalidationIT.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/CacheInvalidationIT.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/CacheInvalidationIT.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/CacheInvalidationIT.java Thu Mar 29 13:06:10 2018
@@ -196,7 +196,7 @@ public class CacheInvalidationIT extends
     private DocumentNodeStore createNS(int clusterId) throws Exception {
         MongoConnection mc = connectionFactory.getConnection();
         return new DocumentMK.Builder()
-                          .setMongoDB(mc.getDB())
+                          .setMongoDB(mc.getMongoClient(), mc.getDBName())
                           .setClusterId(clusterId)
                           //Set delay to 0 so that effect of changes are immediately reflected
                           .setAsyncDelay(0)

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/ClusterConflictTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/ClusterConflictTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/ClusterConflictTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/ClusterConflictTest.java Thu Mar 29 13:06:10 2018
@@ -18,13 +18,14 @@ package org.apache.jackrabbit.oak.plugin
 
 import javax.annotation.Nonnull;
 
-import com.mongodb.DB;
+import com.mongodb.MongoClient;
 
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.commons.PathUtils;
 import org.apache.jackrabbit.oak.plugins.document.AbstractMongoConnectionTest;
 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;
 import org.apache.jackrabbit.oak.spi.commit.CommitHook;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.commit.EmptyHook;
@@ -43,12 +44,14 @@ public class ClusterConflictTest extends
     @Override
     public void setUpConnection() throws Exception {
         super.setUpConnection();
-        ns2 = newBuilder(connectionFactory.getConnection().getDB()).setClusterId(2).getNodeStore();
+        MongoConnection connection = connectionFactory.getConnection();
+        ns2 = newBuilder(connection.getMongoClient(), connection.getDBName())
+                .setClusterId(2).getNodeStore();
     }
 
     @Override
-    protected DocumentMK.Builder newBuilder(DB db) throws Exception {
-        return super.newBuilder(db).setAsyncDelay(0).setLeaseCheck(false);
+    protected DocumentMK.Builder newBuilder(MongoClient client, String dbName) throws Exception {
+        return super.newBuilder(client, dbName).setAsyncDelay(0).setLeaseCheck(false);
     }
 
     @Override

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/CollisionMarkerTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/CollisionMarkerTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/CollisionMarkerTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/CollisionMarkerTest.java Thu Mar 29 13:06:10 2018
@@ -16,8 +16,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.document.mongo;
 
-import com.mongodb.DB;
-
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.plugins.document.AbstractMongoConnectionTest;
 import org.apache.jackrabbit.oak.plugins.document.DocumentMK;
@@ -25,6 +23,7 @@ import org.apache.jackrabbit.oak.plugins
 import org.apache.jackrabbit.oak.plugins.document.MongoUtils;
 import org.apache.jackrabbit.oak.plugins.document.NodeDocument;
 import org.apache.jackrabbit.oak.plugins.document.Revision;
+import org.apache.jackrabbit.oak.plugins.document.util.MongoConnection;
 import org.apache.jackrabbit.oak.plugins.document.util.Utils;
 import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
 import org.apache.jackrabbit.oak.spi.commit.EmptyHook;
@@ -49,8 +48,8 @@ public class CollisionMarkerTest extends
     @Override
     public void setUpConnection() throws Exception {
         mongoConnection = connectionFactory.getConnection();
-        MongoUtils.dropCollections(mongoConnection.getDB());
-        mk = newDocumentMK(mongoConnection.getDB(), 2);
+        MongoUtils.dropCollections(mongoConnection.getDBName());
+        mk = newDocumentMK(mongoConnection, 2);
         ns1 = mk.getNodeStore();
     }
 
@@ -69,7 +68,7 @@ public class CollisionMarkerTest extends
         ns1.runBackgroundOperations();
         // initialize second node store after background ops
         // on ns1. this makes sure ns2 sees all changes done so far
-        ns2 = newDocumentMK(connectionFactory.getConnection().getDB(), 3).getNodeStore();
+        ns2 = newDocumentMK(connectionFactory.getConnection(), 3).getNodeStore();
 
         b1 = ns1.getRoot().builder();
         b1.child("node").child("foo");
@@ -93,10 +92,10 @@ public class CollisionMarkerTest extends
                 " committed revision", root.getValueMap(COLLISIONS).containsKey(head));
     }
 
-    private static DocumentMK newDocumentMK(DB db, int clusterId) {
+    private static DocumentMK newDocumentMK(MongoConnection c, int clusterId) {
         DocumentMK mk = new DocumentMK.Builder().setAsyncDelay(0)
                 .setLeaseCheck(false)
-                .setMongoDB(db)
+                .setMongoDB(c.getMongoClient(), c.getDBName())
                 .setClusterId(clusterId)
                 .open();
         // do not retry on conflicts

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/JournalIT.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/JournalIT.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/JournalIT.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/JournalIT.java Thu Mar 29 13:06:10 2018
@@ -19,8 +19,6 @@ package org.apache.jackrabbit.oak.plugin
 import java.util.List;
 import java.util.Set;
 
-import com.mongodb.DB;
-
 import org.apache.jackrabbit.oak.cache.CacheStats;
 import org.apache.jackrabbit.oak.plugins.document.AbstractJournalTest;
 import org.apache.jackrabbit.oak.plugins.document.DocumentMK;
@@ -210,9 +208,9 @@ public class JournalIT extends AbstractJ
     }
 
     protected DocumentMK createMK(int clusterId, int asyncDelay) {
-        DB db = connectionFactory.getConnection().getDB();
+        MongoConnection c = connectionFactory.getConnection();
         builder = newDocumentMKBuilder();
-        return register(builder.setMongoDB(db)
+        return register(builder.setMongoDB(c.getMongoClient(), c.getDBName())
                 .setClusterId(clusterId).setAsyncDelay(asyncDelay).setBundlingDisabled(true).open());
     }
 

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoCacheConsistencyTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoCacheConsistencyTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoCacheConsistencyTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoCacheConsistencyTest.java Thu Mar 29 13:06:10 2018
@@ -91,7 +91,7 @@ public class MongoCacheConsistencyTest e
             }
         };
         DocumentMK.Builder builder = provider.newBuilder().setAsyncDelay(0);
-        final DocumentStore store = new MongoDocumentStore(fongo.getDB("oak"), builder);
+        final DocumentStore store = new MongoDocumentStore(fongo.getMongo(), "oak", builder);
         return new DocumentStoreFixture() {
             @Override
             public String getName() {

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoConnectionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoConnectionTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoConnectionTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoConnectionTest.java Thu Mar 29 13:06:10 2018
@@ -93,14 +93,14 @@ public class MongoConnectionTest {
         options.socketKeepAlive(true);
         MongoConnection c = new MongoConnection(MongoUtils.URL, options);
         try {
-            assertTrue(c.getDB().getMongo().getMongoOptions().isSocketKeepAlive());
+            assertTrue(c.getMongoClient().getMongoClientOptions().isSocketKeepAlive());
         } finally {
             c.close();
         }
         // default is without keep-alive
         c = new MongoConnection(MongoUtils.URL);
         try {
-            assertFalse(c.getDB().getMongo().getMongoOptions().isSocketKeepAlive());
+            assertFalse(c.getMongoClient().getMongoClientOptions().isSocketKeepAlive());
         } finally {
             c.close();
         }

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDBExceptionTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDBExceptionTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDBExceptionTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDBExceptionTest.java Thu Mar 29 13:06:10 2018
@@ -89,7 +89,7 @@ public class MongoDBExceptionTest {
                 }
             }
         };
-        store = new MongoDocumentStore(fongo.getDB("oak"),
+        store = new MongoDocumentStore(fongo.getMongo(), "oak",
                 new DocumentMK.Builder());
 
     }

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStoreMetricsTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStoreMetricsTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStoreMetricsTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStoreMetricsTest.java Thu Mar 29 13:06:10 2018
@@ -54,7 +54,8 @@ public class MongoDocumentStoreMetricsTe
         MongoConnection connection = connectionFactory.getConnection();
         assumeNotNull(connection);
         MongoDocumentStore store = new MongoDocumentStore(
-                connection.getDB(), newMongoDocumentNodeStoreBuilder());
+                connection.getMongoClient(), connection.getDBName(),
+                newMongoDocumentNodeStoreBuilder());
         try {
             MongoDocumentStoreMetrics metrics = new MongoDocumentStoreMetrics(store, statsProvider);
             metrics.run();

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStoreTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStoreTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStoreTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStoreTest.java Thu Mar 29 13:06:10 2018
@@ -18,8 +18,6 @@ package org.apache.jackrabbit.oak.plugin
 
 import java.util.Map;
 
-import com.mongodb.DB;
-
 import org.apache.jackrabbit.oak.plugins.document.AbstractMongoConnectionTest;
 import org.apache.jackrabbit.oak.plugins.document.Collection;
 import org.apache.jackrabbit.oak.plugins.document.Document;
@@ -47,11 +45,11 @@ public class MongoDocumentStoreTest exte
     @Override
     public void setUpConnection() throws Exception {
         mongoConnection = connectionFactory.getConnection();
-        MongoUtils.dropCollections(mongoConnection.getDB());
+        MongoUtils.dropCollections(mongoConnection.getDBName());
         DocumentMK.Builder builder = new DocumentMK.Builder();
-        store = new TestStore(mongoConnection.getDB(), builder);
+        store = new TestStore(mongoConnection, builder);
         builder.setDocumentStore(store);
-        mk = builder.setMongoDB(mongoConnection.getDB()).open();
+        mk = builder.setMongoDB(mongoConnection.getMongoClient(), mongoConnection.getDBName()).open();
     }
 
     @Test
@@ -59,7 +57,7 @@ public class MongoDocumentStoreTest exte
         assertTrue(hasIndex(store.getDBCollection(Collection.NODES), Document.ID));
         assertFalse(hasIndex(store.getDBCollection(Collection.NODES), NodeDocument.SD_TYPE));
         assertTrue(hasIndex(store.getDBCollection(Collection.NODES), NodeDocument.SD_TYPE, NodeDocument.SD_MAX_REV_TIME_IN_SECS));
-        if (new MongoStatus(mongoConnection.getDB()).isVersion(3, 2)) {
+        if (new MongoStatus(mongoConnection.getMongoClient(), mongoConnection.getDBName()).isVersion(3, 2)) {
             assertTrue(hasIndex(store.getDBCollection(Collection.NODES), NodeDocument.DELETED_ONCE, NodeDocument.MODIFIED_IN_SECS));
         } else {
             assertTrue(hasIndex(store.getDBCollection(Collection.NODES), NodeDocument.DELETED_ONCE));
@@ -75,8 +73,8 @@ public class MongoDocumentStoreTest exte
         MongoConnection c = connectionFactory.getConnection();
         assertNotNull(c);
         DocumentMK.Builder builder = new DocumentMK.Builder();
-        TestStore s = new TestStore(c.getDB(), builder);
-        if (new MongoStatus(mongoConnection.getDB()).isVersion(3, 2)) {
+        TestStore s = new TestStore(c, builder);
+        if (new MongoStatus(mongoConnection.getMongoClient(), mongoConnection.getDBName()).isVersion(3, 2)) {
             assertFalse(hasIndex(s.getDBCollection(Collection.NODES), NodeDocument.DELETED_ONCE));
         } else {
             assertFalse(hasIndex(s.getDBCollection(Collection.NODES), NodeDocument.DELETED_ONCE, NodeDocument.MODIFIED_IN_SECS));
@@ -93,8 +91,8 @@ public class MongoDocumentStoreTest exte
     }
 
     static final class TestStore extends MongoDocumentStore {
-        TestStore(DB db, DocumentMK.Builder builder) {
-            super(db, builder);
+        TestStore(MongoConnection c, DocumentMK.Builder builder) {
+            super(c.getMongoClient(), c.getDBName(), builder);
         }
     }
 }

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStoreTestHelper.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStoreTestHelper.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStoreTestHelper.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStoreTestHelper.java Thu Mar 29 13:06:10 2018
@@ -16,13 +16,16 @@
  */
 package org.apache.jackrabbit.oak.plugins.document.mongo;
 
-import com.mongodb.DB;
-
-import org.apache.jackrabbit.oak.plugins.document.Collection;
+import com.mongodb.MongoClient;
+import com.mongodb.client.MongoDatabase;
 
 public final class MongoDocumentStoreTestHelper {
 
-    public static DB getDB(MongoDocumentStore store) {
-        return store.getDBCollection(Collection.NODES).getDB();
+    public static MongoDatabase getDB(MongoDocumentStore store) {
+        return store.getDatabase();
+    }
+
+    public static MongoClient getClient(MongoDocumentStore store) {
+        return store.getClient();
     }
 }

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoMissingLastRevSeekerTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoMissingLastRevSeekerTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoMissingLastRevSeekerTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoMissingLastRevSeekerTest.java Thu Mar 29 13:06:10 2018
@@ -57,7 +57,7 @@ public class MongoMissingLastRevSeekerTe
         assumeTrue(c != null);
         dbName = c.getDB().getName();
         MongoUtils.dropCollections(c.getDB());
-        builder = new DocumentMK.Builder().setMongoDB(c.getDB());
+        builder = new DocumentMK.Builder().setMongoDB(c.getMongoClient(), c.getDBName());
         store = (MongoDocumentStore) builder.getDocumentStore();
         ns = builder.getNodeStore();
     }

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoStatusTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoStatusTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoStatusTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoStatusTest.java Thu Mar 29 13:06:10 2018
@@ -46,7 +46,7 @@ public class MongoStatusTest {
     @Before
     public void createStatus() {
         MongoConnection c = connectionFactory.getConnection();
-        status = new MongoStatus(c.getDB());
+        status = new MongoStatus(c.getMongoClient(), c.getDBName());
     }
 
     @Test

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoUtilsTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoUtilsTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoUtilsTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoUtilsTest.java Thu Mar 29 13:06:10 2018
@@ -17,21 +17,23 @@
 package org.apache.jackrabbit.oak.plugins.document.mongo;
 
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
 
-import com.mongodb.DBCollection;
-import com.mongodb.DBObject;
 import com.mongodb.DuplicateKeyException;
 import com.mongodb.MongoCommandException;
 import com.mongodb.MongoException;
 import com.mongodb.MongoSocketException;
 import com.mongodb.ServerAddress;
 import com.mongodb.WriteConcernException;
+import com.mongodb.client.MongoCollection;
 
 import org.apache.jackrabbit.oak.plugins.document.MongoConnectionFactory;
 import org.apache.jackrabbit.oak.plugins.document.util.MongoConnection;
 import org.bson.BsonDocument;
 import org.bson.BsonInt32;
 import org.bson.BsonString;
+import org.bson.Document;
 import org.junit.BeforeClass;
 import org.junit.Rule;
 import org.junit.Test;
@@ -60,7 +62,7 @@ public class MongoUtilsTest {
     public void createIndex() {
         MongoConnection c = connectionFactory.getConnection();
         c.getDB().dropDatabase();
-        DBCollection collection = c.getDB().getCollection("test");
+        MongoCollection collection = c.getDatabase().getCollection("test");
         MongoUtils.createIndex(collection, "foo", true, false, true);
         MongoUtils.createIndex(collection, "bar", false, true, false);
         MongoUtils.createIndex(collection, new String[]{"baz", "qux"},
@@ -71,9 +73,11 @@ public class MongoUtilsTest {
         assertFalse(MongoUtils.hasIndex(collection, "foo", "bar"));
         assertTrue(MongoUtils.hasIndex(collection, "baz", "qux"));
 
-        assertEquals(4, collection.getIndexInfo().size());
-        for (DBObject info : collection.getIndexInfo()) {
-            DBObject key = (DBObject) info.get("key");
+        List<Document> indexes = new ArrayList<>();
+        collection.listIndexes().into(indexes);
+        assertEquals(4, indexes.size());
+        for (Document info : indexes) {
+            Document key = (Document) info.get("key");
             if (key.keySet().contains("foo")) {
                 assertEquals(1, key.keySet().size());
                 assertEquals(1, key.get("foo"));
@@ -96,25 +100,27 @@ public class MongoUtilsTest {
     public void createPartialIndex() {
         MongoConnection c = connectionFactory.getConnection();
         c.getDB().dropDatabase();
-        MongoStatus status = new MongoStatus(c.getDB());
+        MongoStatus status = new MongoStatus(c.getMongoClient(), c.getDBName());
         assumeTrue(status.isVersion(3, 2));
 
-        DBCollection collection = c.getDB().getCollection("test");
+        MongoCollection collection = c.getDatabase().getCollection("test");
 
         MongoUtils.createPartialIndex(collection, new String[]{"foo", "bar"},
                 new boolean[]{true, true}, "{foo:true}");
         assertTrue(MongoUtils.hasIndex(collection, "_id"));
         assertTrue(MongoUtils.hasIndex(collection, "foo", "bar"));
 
-        assertEquals(2, collection.getIndexInfo().size());
-        for (DBObject info : collection.getIndexInfo()) {
-            DBObject key = (DBObject) info.get("key");
+        List<Document> indexes = new ArrayList<>();
+        collection.listIndexes().into(indexes);
+        assertEquals(2, indexes.size());
+        for (Document info : indexes) {
+            Document key = (Document) info.get("key");
             assertNotNull(key);
             if (key.keySet().contains("foo")) {
                 assertEquals(2, key.keySet().size());
                 assertEquals(1, key.get("foo"));
                 assertEquals(1, key.get("bar"));
-                DBObject filter = (DBObject) info.get("partialFilterExpression");
+                Document filter = (Document) info.get("partialFilterExpression");
                 assertNotNull(filter);
                 assertEquals(Boolean.TRUE, filter.get("foo"));
             }
@@ -126,7 +132,7 @@ public class MongoUtilsTest {
     @Test(expected = IllegalArgumentException.class)
     public void checkArguments() {
         MongoConnection c = connectionFactory.getConnection();
-        DBCollection collection = c.getDB().getCollection("test");
+        MongoCollection collection = c.getDatabase().getCollection("test");
         MongoUtils.createIndex(collection, new String[]{"foo", "bar"},
                 new boolean[]{true}, false, true);
     }

Modified: jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/QueryHintTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/QueryHintTest.java?rev=1827987&r1=1827986&r2=1827987&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/QueryHintTest.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/QueryHintTest.java Thu Mar 29 13:06:10 2018
@@ -55,7 +55,8 @@ public class QueryHintTest extends Abstr
         //TODO Temp mode to change the default setting so as to test it
         //If we retain this feature then need to have better config support for it
         System.setProperty("oak.mongo.maxDeltaForModTimeIdxSecs", "120");
-        mongoDS = new MongoDocumentStore(mongoConnection.getDB(), new DocumentMK.Builder());
+        mongoDS = new MongoDocumentStore(mongoConnection.getMongoClient(),
+                mongoConnection.getDBName(), new DocumentMK.Builder());
         mongoDS.setClock(clock);
         TRACE_LOGGER.addHandler(testHandler);
         TRACE_LOGGER.setLevel(Level.FINEST);