Author: mreutegg
Date: Tue Jul 24 12:13:54 2018
New Revision: 1836549

URL: http://svn.apache.org/viewvc?rev=1836549&view=rev
Log:
OAK-7654: Remove usage of deprecated MongoDB Java driver 2.x API

Modified:
    
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilderBase.java
    
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
    
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/RevisionEntry.java
    
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MongoConnection.java
    
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AbstractMongoConnectionTest.java
    
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobTest.java
    
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobThroughPutTest.java
    
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CollisionWithSplitTest.java
    
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoBlobGCTest.java
    
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoDbTest.java
    
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoDocumentStoreTest.java
    
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoUtils.java
    
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/cloud/DocumentMKCloudGetLengthTest.java
    
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/cloud/DocumentMKCloudReadTest.java
    
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/cloud/DocumentMKCloudWriteTest.java
    
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/ds/DocumentMKDataStoreGetLengthTest.java
    
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/ds/DocumentMKDataStoreReadTest.java
    
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/blob/ds/DocumentMKDataStoreWriteTest.java
    
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/JournalIT.java
    
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoConnectionTest.java
    
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoMissingLastRevSeekerTest.java
    
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoUtilsTest.java
    
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/ReadPreferenceIT.java

Modified: 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilderBase.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilderBase.java?rev=1836549&r1=1836548&r2=1836549&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilderBase.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentNodeStoreBuilderBase.java
 Tue Jul 24 12:13:54 2018
@@ -18,8 +18,6 @@ package org.apache.jackrabbit.oak.plugin
 
 import java.util.concurrent.TimeUnit;
 
-import com.mongodb.DB;
-import com.mongodb.Mongo;
 import com.mongodb.MongoClient;
 import com.mongodb.MongoClientOptions;
 import com.mongodb.MongoClientURI;
@@ -95,18 +93,6 @@ public abstract class MongoDocumentNodeS
     /**
      * Use the given MongoDB as backend storage for the DocumentNodeStore.
      *
-     * @param db the MongoDB connection
-     * @return this
-     * @deprecated use {@link #setMongoDB(MongoClient, String, int)} instead.
-     */
-    public T setMongoDB(@NotNull DB db,
-                        int blobCacheSizeMB) {
-        return setMongoDB(mongoClientFrom(db), db.getName(), blobCacheSizeMB);
-    }
-
-    /**
-     * Use the given MongoDB as backend storage for the DocumentNodeStore.
-     *
      * @param client the MongoDB connection
      * @param dbName the database name
      * @param blobCacheSizeMB the size of the blob cache in MB.
@@ -122,17 +108,6 @@ public abstract class MongoDocumentNodeS
     /**
      * Use the given MongoDB as backend storage for the DocumentNodeStore.
      *
-     * @param db the MongoDB connection
-     * @return this
-     * @deprecated use {@link #setMongoDB(MongoClient, String)} instead.
-     */
-    public T setMongoDB(@NotNull DB db) {
-        return setMongoDB(mongoClientFrom(db), db.getName());
-    }
-
-    /**
-     * Use the given MongoDB as backend storage for the DocumentNodeStore.
-     *
      * @param client the MongoDB connection
      * @param dbName the database name
      * @return this
@@ -257,12 +232,4 @@ public abstract class MongoDocumentNodeS
         }
         return thisBuilder();
     }
-
-    private static MongoClient mongoClientFrom(DB db) {
-        Mongo mongo = db.getMongo();
-        if (mongo instanceof MongoClient) {
-            return (MongoClient) mongo;
-        }
-        throw new UnsupportedOperationException("DB must be constructed from 
MongoClient");
-    }
 }

Modified: 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java?rev=1836549&r1=1836548&r2=1836549&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java
 Tue Jul 24 12:13:54 2018
@@ -1309,7 +1309,7 @@ public class MongoDocumentStore implemen
                         break;
                 }
             }
-            if (!doc.containsKey(Document.MOD_COUNT)) {
+            if (!doc.containsField(Document.MOD_COUNT)) {
                 doc.put(Document.MOD_COUNT, 1L);
                 target.put(Document.MOD_COUNT, 1L);
             }

Modified: 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/RevisionEntry.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/RevisionEntry.java?rev=1836549&r1=1836548&r2=1836549&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/RevisionEntry.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/RevisionEntry.java
 Tue Jul 24 12:13:54 2018
@@ -25,6 +25,7 @@ import org.bson.BSONObject;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
+import com.mongodb.BasicDBObject;
 import com.mongodb.DBObject;
 import com.mongodb.util.JSON;
 
@@ -102,6 +103,6 @@ public class RevisionEntry implements DB
 
     @Override
     public String toString() {
-        return JSON.serialize(this);
+        return new BasicDBObject(revision.toString(), value).toJson();
     }
 }

Modified: 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MongoConnection.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MongoConnection.java?rev=1836549&r1=1836548&r2=1836549&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MongoConnection.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/MongoConnection.java
 Tue Jul 24 12:13:54 2018
@@ -21,8 +21,6 @@ import java.util.concurrent.TimeUnit;
 
 import com.google.common.base.Objects;
 import com.google.common.collect.ImmutableSet;
-import com.mongodb.DB;
-import com.mongodb.Mongo;
 import com.mongodb.MongoClient;
 import com.mongodb.MongoClientOptions;
 import com.mongodb.MongoClientURI;
@@ -105,15 +103,6 @@ public class MongoConnection {
     }
 
     /**
-     * Returns the {@link DB} as passed in the URI of the constructor.
-     *
-     * @return The {@link DB}.
-     */
-    public DB getDB() {
-        return mongo.getDB(mongoURI.getDatabase());
-    }
-
-    /**
      * Returns the {@link MongoDatabase} as passed in the URI of the
      * constructor.
      *
@@ -124,15 +113,6 @@ public class MongoConnection {
     }
 
     /**
-     * Returns the {@link DB} with the given name.
-     *
-     * @return The {@link DB}.
-     */
-    public DB getDB(@NotNull String name) {
-        return mongo.getDB(name);
-    }
-
-    /**
      * Returns the {@link MongoDatabase} with the given name.
      *
      * @return The {@link MongoDatabase}.
@@ -218,25 +198,10 @@ public class MongoConnection {
      *     <li>{@link WriteConcern#ACKNOWLEDGED}: for single MongoDB 
instance</li>
      * </ul>
      *
-     * @param db the connection to MongoDB.
-     * @return the default write concern to use for Oak.
-     * @deprecated use {@link #getDefaultWriteConcern(Mongo)} instead.
-     */
-    public static WriteConcern getDefaultWriteConcern(@NotNull DB db) {
-        return getDefaultWriteConcern(db.getMongo());
-    }
-
-    /**
-     * Returns the default write concern depending on MongoDB deployment.
-     * <ul>
-     *     <li>{@link WriteConcern#MAJORITY}: for a MongoDB replica set</li>
-     *     <li>{@link WriteConcern#ACKNOWLEDGED}: for single MongoDB 
instance</li>
-     * </ul>
-     *
      * @param client the connection to MongoDB.
      * @return the default write concern to use for Oak.
      */
-    public static WriteConcern getDefaultWriteConcern(@NotNull Mongo client) {
+    public static WriteConcern getDefaultWriteConcern(@NotNull MongoClient 
client) {
         WriteConcern w;
         if (client.getReplicaSetStatus() != null) {
             w = WriteConcern.MAJORITY;
@@ -255,29 +220,8 @@ public class MongoConnection {
      *
      * @param db the connection to MongoDB.
      * @return the default write concern to use for Oak.
-     * @deprecated use {@link #getDefaultReadConcern(Mongo, MongoDatabase)} 
instead.
      */
-    public static ReadConcern getDefaultReadConcern(@NotNull DB db) {
-        ReadConcern r;
-        if (checkNotNull(db).getMongo().getReplicaSetStatus() != null && 
isMajorityWriteConcern(db)) {
-            r = ReadConcern.MAJORITY;
-        } else {
-            r = ReadConcern.LOCAL;
-        }
-        return r;
-    }
-
-    /**
-     * Returns the default read concern depending on MongoDB deployment.
-     * <ul>
-     *     <li>{@link ReadConcern#MAJORITY}: for a MongoDB replica set with 
w=majority</li>
-     *     <li>{@link ReadConcern#LOCAL}: for other cases</li>
-     * </ul>
-     *
-     * @param db the connection to MongoDB.
-     * @return the default write concern to use for Oak.
-     */
-    public static ReadConcern getDefaultReadConcern(@NotNull Mongo client,
+    public static ReadConcern getDefaultReadConcern(@NotNull MongoClient 
client,
                                                     @NotNull MongoDatabase db) 
{
         ReadConcern r;
         if (checkNotNull(client).getReplicaSetStatus() != null && 
isMajorityWriteConcern(db)) {
@@ -294,35 +238,11 @@ public class MongoConnection {
      * @param db the connection to MongoDB.
      * @return true if the majority write concern has been configured; false 
otherwise
      */
-    public static boolean isMajorityWriteConcern(@NotNull DB db) {
-        return 
WriteConcern.MAJORITY.getWString().equals(db.getWriteConcern().getWObject());
-    }
-
-    /**
-     * Returns true if the majority write concern is used for the given DB.
-     *
-     * @param db the connection to MongoDB.
-     * @return true if the majority write concern has been configured; false 
otherwise
-     */
     public static boolean isMajorityWriteConcern(@NotNull MongoDatabase db) {
         return 
WriteConcern.MAJORITY.getWString().equals(db.getWriteConcern().getWObject());
     }
 
     /**
-     * Returns {@code true} if the default write concern on the {@code db} is
-     * sufficient for Oak. On a replica set Oak expects at least w=2. For
-     * a single MongoDB node deployment w=1 is sufficient.
-     *
-     * @param db the database.
-     * @return whether the write concern is sufficient.
-     * @deprecated use {@link #isSufficientWriteConcern(Mongo, WriteConcern)}
-     *              instead.
-     */
-    public static boolean hasSufficientWriteConcern(@NotNull DB db) {
-        return isSufficientWriteConcern(checkNotNull(db).getMongo(), 
db.getWriteConcern());
-    }
-
-    /**
      * Returns {@code true} if the given write concern is sufficient for Oak. 
On
      * a replica set Oak expects at least w=2. For a single MongoDB node
      * deployment w=1 is sufficient.
@@ -331,7 +251,7 @@ public class MongoConnection {
      * @param wc the write concern.
      * @return whether the write concern is sufficient.
      */
-    public static boolean isSufficientWriteConcern(@NotNull Mongo client,
+    public static boolean isSufficientWriteConcern(@NotNull MongoClient client,
                                                    @NotNull WriteConcern wc) {
         Object wObj = checkNotNull(wc).getWObject();
         int w;
@@ -355,20 +275,6 @@ public class MongoConnection {
     }
 
     /**
-     * Returns {@code true} if the default read concern on the {@code db} is
-     * sufficient for Oak. On a replica set Oak expects majority or linear. For
-     * a single MongoDB node deployment local is sufficient.
-     *
-     * @param db the database.
-     * @return whether the read concern is sufficient.
-     * @deprecated use {@link #isSufficientReadConcern(Mongo, ReadConcern)}
-     *              instead.
-     */
-    public static boolean hasSufficientReadConcern(@NotNull DB db) {
-        return isSufficientReadConcern(checkNotNull(db).getMongo(), 
db.getReadConcern());
-    }
-
-    /**
      * Returns {@code true} if the given read concern is sufficient for Oak. On
      * a replica set Oak expects majority or linear. For a single MongoDB node
      * deployment local is sufficient.
@@ -377,7 +283,7 @@ public class MongoConnection {
      * @param rc the read concern.
      * @return whether the read concern is sufficient.
      */
-    public static boolean isSufficientReadConcern(@NotNull Mongo client,
+    public static boolean isSufficientReadConcern(@NotNull MongoClient client,
                                                   @NotNull ReadConcern rc) {
         ReadConcernLevel r = readConcernLevel(checkNotNull(rc));
         if (client.getReplicaSetStatus() == null) {

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=1836549&r1=1836548&r2=1836549&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
 Tue Jul 24 12:13:54 2018
@@ -47,7 +47,7 @@ public abstract class AbstractMongoConne
     @Before
     public void setUpConnection() throws Exception {
         mongoConnection = connectionFactory.getConnection();
-        MongoUtils.dropCollections(mongoConnection.getDB());
+        MongoUtils.dropCollections(mongoConnection.getDatabase());
         setRevisionClock(getTestClock());
         setClusterNodeInfoClock(getTestClock());
         mk = newBuilder(mongoConnection.getMongoClient(),

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=1836549&r1=1836548&r2=1836549&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
 Tue Jul 24 12:13:54 2018
@@ -66,7 +66,7 @@ public class BlobTest {
 
     void dropCollections() {
         if (MONGO_DB) {
-            
MongoUtils.dropCollections(connectionFactory.getConnection().getDB());
+            
MongoUtils.dropCollections(connectionFactory.getConnection().getDatabase());
         }
     }
 

Modified: 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobThroughPutTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobThroughPutTest.java?rev=1836549&r1=1836548&r2=1836549&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobThroughPutTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/BlobThroughPutTest.java
 Tue Jul 24 12:13:54 2018
@@ -18,7 +18,6 @@ package org.apache.jackrabbit.oak.plugin
 
 import java.io.IOException;
 import java.io.PrintStream;
-import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
@@ -31,21 +30,19 @@ import com.google.common.collect.HashBiM
 import com.google.common.collect.Maps;
 import com.google.common.io.ByteStreams;
 import com.mongodb.BasicDBObject;
-import com.mongodb.DB;
-import com.mongodb.DBAddress;
-import com.mongodb.DBCollection;
-import com.mongodb.DBObject;
-import com.mongodb.Mongo;
 import com.mongodb.MongoClient;
-import com.mongodb.QueryBuilder;
+import com.mongodb.MongoClientURI;
 import com.mongodb.WriteConcern;
+import com.mongodb.client.MongoCollection;
+import com.mongodb.client.MongoDatabase;
+import com.mongodb.client.model.Filters;
+
 import org.junit.Ignore;
 import org.junit.Test;
 
 import static org.apache.jackrabbit.oak.commons.IOUtils.humanReadableByteCount;
 import static org.junit.Assert.assertNotNull;
 
-
 public class BlobThroughPutTest {
     private static final int NO_OF_NODES = 100;
     private static final int BLOB_SIZE = 1024 * 1024 * 2;
@@ -78,9 +75,9 @@ public class BlobThroughPutTest {
 
     @Ignore
     @Test
-    public void performBenchMark() throws UnknownHostException, 
InterruptedException {
-        MongoClient local = new MongoClient(new DBAddress(localServer));
-        MongoClient remote = new MongoClient(new DBAddress(remoteServer));
+    public void performBenchMark() throws InterruptedException {
+        MongoClient local = new MongoClient(new MongoClientURI(localServer));
+        MongoClient remote = new MongoClient(new MongoClientURI(remoteServer));
 
         run(local, false, false);
         run(local, true, false);
@@ -92,21 +89,21 @@ public class BlobThroughPutTest {
 
     @Ignore
     @Test
-    public void performBenchMark_WriteConcern() throws UnknownHostException, 
InterruptedException {
-        Mongo mongo = new Mongo(new DBAddress(remoteServer));
-        final DB db = mongo.getDB(TEST_DB1);
-        final DBCollection nodes = db.getCollection("nodes");
-        final DBCollection blobs = db.getCollection("blobs");
+    public void performBenchMark_WriteConcern() throws InterruptedException {
+        MongoClient mongo = new MongoClient(new MongoClientURI(remoteServer));
+        final MongoDatabase db = mongo.getDatabase(TEST_DB1);
+        final MongoCollection<BasicDBObject> nodes = db.getCollection("nodes", 
BasicDBObject.class);
+        final MongoCollection<BasicDBObject> blobs = db.getCollection("blobs", 
BasicDBObject.class);
         int readers = 0;
         int writers = 2;
         for(WriteConcern wc : namedConcerns.keySet()){
-            prepareDB(nodes,blobs);
+            prepareDB(nodes, blobs);
             final Benchmark b = new Benchmark(nodes, blobs);
             Result r = b.run(readers, writers, true, wc);
             results.add(r);
         }
 
-        prepareDB(nodes,blobs);
+        prepareDB(nodes, blobs);
 
         dumpResult();
     }
@@ -121,15 +118,15 @@ public class BlobThroughPutTest {
         }
     }
 
-    private void run(Mongo mongo, boolean useSameDB, boolean remote) throws 
InterruptedException {
-        final DB nodeDB = mongo.getDB(TEST_DB1);
-        final DB blobDB = useSameDB ? mongo.getDB(TEST_DB1) : 
mongo.getDB(TEST_DB2);
-        final DBCollection nodes = nodeDB.getCollection("nodes");
-        final DBCollection blobs = blobDB.getCollection("blobs");
+    private void run(MongoClient mongo, boolean useSameDB, boolean remote) 
throws InterruptedException {
+        final MongoDatabase nodeDB = mongo.getDatabase(TEST_DB1);
+        final MongoDatabase blobDB = useSameDB ? mongo.getDatabase(TEST_DB1) : 
mongo.getDatabase(TEST_DB2);
+        final MongoCollection<BasicDBObject> nodes = 
nodeDB.getCollection("nodes", BasicDBObject.class);
+        final MongoCollection<BasicDBObject> blobs = 
blobDB.getCollection("blobs", BasicDBObject.class);
 
         for (int readers : READERS) {
             for (int writers : WRITERS) {
-                prepareDB(nodes,blobs);
+                prepareDB(nodes, blobs);
                 final Benchmark b = new Benchmark(nodes, blobs);
                 Result r = b.run(readers, writers, remote, WriteConcern.SAFE);
                 results.add(r);
@@ -137,18 +134,19 @@ public class BlobThroughPutTest {
         }
     }
 
-    private void prepareDB(DBCollection nodes, DBCollection blobs) {
-        MongoUtils.dropCollections(nodes.getDB());
-        MongoUtils.dropCollections(blobs.getDB());
+    private void prepareDB(MongoCollection<BasicDBObject> nodes,
+                           MongoCollection<BasicDBObject> blobs) {
+        MongoUtils.dropCollections(nodes.getNamespace().getDatabaseName());
+        MongoUtils.dropCollections(blobs.getNamespace().getDatabaseName());
 
         createTestNodes(nodes);
     }
 
-    private void createTestNodes(DBCollection nodes) {
+    private void createTestNodes(MongoCollection<BasicDBObject> nodes) {
         for (int i = 0; i < NO_OF_NODES; i++) {
-            DBObject obj = new BasicDBObject("_id", i)
+            BasicDBObject obj = new BasicDBObject("_id", i)
                     .append("foo", "bar1" + i);
-            nodes.insert(obj, WriteConcern.SAFE);
+            nodes.insertOne(obj);
         }
     }
 
@@ -194,8 +192,8 @@ public class BlobThroughPutTest {
     }
 
     private static class Benchmark {
-        private final DBCollection nodes;
-        private final DBCollection blobs;
+        private final MongoCollection<BasicDBObject> nodes;
+        private final MongoCollection<BasicDBObject> blobs;
         private final Random random = new Random();
         private final AtomicBoolean stopTest = new AtomicBoolean(false);
         private final static byte[] DATA;
@@ -209,13 +207,14 @@ public class BlobThroughPutTest {
             }
         }
 
-        private Benchmark(DBCollection nodes, DBCollection blobs) {
+        private Benchmark(MongoCollection<BasicDBObject> nodes,
+                          MongoCollection<BasicDBObject> blobs) {
             this.nodes = nodes;
             this.blobs = blobs;
         }
 
         public Result run(int noOfReaders, int noOfWriters, boolean remote, 
WriteConcern writeConcern) throws InterruptedException {
-            boolean sameDB = 
nodes.getDB().getName().equals(blobs.getDB().getName());
+            boolean sameDB = 
nodes.getNamespace().getDatabaseName().equals(blobs.getNamespace().getDatabaseName());
 
             List<Reader> readers = new ArrayList<Reader>(noOfReaders);
             List<Writer> writers = new ArrayList<Writer>(noOfWriters);
@@ -299,7 +298,7 @@ public class BlobThroughPutTest {
                 waitForStart();
                 while (!stopTest.get()) {
                     int id = random.nextInt(NO_OF_NODES);
-                    DBObject o = 
nodes.findOne(QueryBuilder.start("_id").is(id).get());
+                    BasicDBObject o = nodes.find(Filters.eq("_id", 
id)).first();
                     assertNotNull("did not found object with id " + id, o);
                     readCount++;
                 }
@@ -323,10 +322,10 @@ public class BlobThroughPutTest {
                 waitForStart();
                 while (!stopTest.get()) {
                     String _id = id + "-" + writeCount;
-                    DBObject obj = new BasicDBObject()
+                    BasicDBObject obj = new BasicDBObject()
                             .append("foo", _id);
                     obj.put("blob", DATA);
-                    blobs.insert(obj, writeConcern);
+                    blobs.withWriteConcern(writeConcern).insertOne(obj);
                     writeCount++;
                 }
                 stopLatch.countDown();

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=1836549&r1=1836548&r2=1836549&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
 Tue Jul 24 12:13:54 2018
@@ -46,9 +46,10 @@ public class CollisionWithSplitTest exte
     private DocumentNodeStore ns2;
 
     @Override
-    public void setUpConnection() throws Exception {
+    public void setUpConnection() {
         mongoConnection = connectionFactory.getConnection();
-        MongoUtils.dropCollections(mongoConnection.getDB());
+        assertNotNull(mongoConnection);
+        MongoUtils.dropCollections(mongoConnection.getDatabase());
         mk = newDocumentMK(mongoConnection, 2);
         ns1 = mk.getNodeStore();
     }

Modified: 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoBlobGCTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoBlobGCTest.java?rev=1836549&r1=1836548&r2=1836549&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoBlobGCTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoBlobGCTest.java
 Tue Jul 24 12:13:54 2018
@@ -40,8 +40,8 @@ import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 import com.google.common.io.Closeables;
 import com.mongodb.BasicDBObject;
-import com.mongodb.DBCollection;
 import com.mongodb.ReadPreference;
+import com.mongodb.client.MongoCollection;
 
 import org.apache.commons.io.filefilter.FileFilterUtils;
 import org.apache.jackrabbit.oak.api.Blob;
@@ -197,10 +197,11 @@ public class MongoBlobGCTest extends Abs
     }
 
     private void deleteFromMongo(String nodeId) {
-        DBCollection coll = mongoConnection.getDB().getCollection("nodes");
+        MongoCollection<BasicDBObject> coll = mongoConnection.getDatabase()
+                .getCollection("nodes", BasicDBObject.class);
         BasicDBObject blobNodeObj = new BasicDBObject();
         blobNodeObj.put("_id", "1:/" + nodeId);
-        coll.remove(blobNodeObj);
+        coll.deleteOne(blobNodeObj);
     }
 
     @Test

Modified: 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoDbTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoDbTest.java?rev=1836549&r1=1836548&r2=1836549&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoDbTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoDbTest.java
 Tue Jul 24 12:13:54 2018
@@ -16,16 +16,21 @@
  */
 package org.apache.jackrabbit.oak.plugins.document;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.jackrabbit.oak.plugins.document.util.MongoConnection;
+import org.bson.conversions.Bson;
 import org.junit.Ignore;
 import org.junit.Test;
 
 import com.mongodb.BasicDBObject;
-import com.mongodb.DB;
-import com.mongodb.DBCollection;
-import com.mongodb.DBCursor;
-import com.mongodb.DBObject;
-import com.mongodb.QueryBuilder;
-import com.mongodb.WriteConcern;
+import com.mongodb.client.FindIterable;
+import com.mongodb.client.MongoCollection;
+import com.mongodb.client.MongoDatabase;
+import com.mongodb.client.model.Filters;
+import com.mongodb.client.model.FindOneAndUpdateOptions;
+import com.mongodb.client.model.IndexOptions;
 
 /**
  * Test directly ran against MongoDB.
@@ -35,16 +40,17 @@ public class MongoDbTest {
     @Test
     @Ignore
     public void manyChildNodes() {
-        DB db = MongoUtils.getConnection().getDB();
-        MongoUtils.dropCollections(db);
-        DBCollection nodes = db.getCollection(Collection.NODES.toString());
-        DBObject index = new BasicDBObject();
+        MongoConnection c = MongoUtils.getConnection();
+        MongoDatabase db = c.getDatabase();
+        MongoUtils.dropCollections(c.getDatabase());
+        MongoCollection<BasicDBObject> nodes = 
db.getCollection(Collection.NODES.toString(), BasicDBObject.class);
+        BasicDBObject index = new BasicDBObject();
         // modification time (descending)
         index.put("_mod", -1L);
         // and then id (ascending)
         index.put("_id", 1L);
-        DBObject options = new BasicDBObject();
-        // options.put("unique", Boolean.TRUE);
+        IndexOptions options = new IndexOptions();
+        // options.unique(true);
         nodes.createIndex(index, options);
 
         // index on (_id, _mod):
@@ -72,30 +78,29 @@ public class MongoDbTest {
         int group = 0;
         String parent = "/parent/node/abc";
         for (int i = 0; i < children;) {
-            DBObject[] inserts = new DBObject[perInsert];
+            List<BasicDBObject> inserts = new ArrayList<>();
             group++;
             for (int j = 0; j < perInsert; j++, i++) {
                 BasicDBObject doc = new BasicDBObject();
-                inserts[j] = doc;
+                inserts.add(doc);
                 doc.put("_id", parent + "/node" + i);
                 doc.put("_mod", group);
             }
-            nodes.insert(inserts, WriteConcern.SAFE);
+            nodes.insertMany(inserts);
             log("inserted " + i + "/" + children);
         }
-        QueryBuilder queryBuilder = QueryBuilder.start("_mod");
-        queryBuilder.greaterThanEquals(group - 1);
-        queryBuilder.and("_id").greaterThan(parent + "/");
-        queryBuilder.and("_id").lessThanEquals(parent + "0");
-        DBObject query = queryBuilder.get();
+        Bson query = Filters.and(
+                Filters.gte("_mod", group - 1),
+                Filters.gt("_id", parent + "/"),
+                Filters.lte("_id", parent + "0")
+        );
         BasicDBObject keys = new BasicDBObject();
         keys.put("_id", 1);
-        DBCursor cursor = nodes.find(query, keys);
+        FindIterable<BasicDBObject> cursor = 
nodes.find(query).projection(keys);
         int count = 0;
-        log("Query plan: " + cursor.explain());
+        log("Query plan: " + explain(nodes, query));
         long time = System.currentTimeMillis();
-        while (cursor.hasNext()) {
-            DBObject obj = cursor.next();
+        for (BasicDBObject obj : cursor) {
             // dummy read operation (to ensure we did get the data)
             obj.get("_id");
             count++;
@@ -104,22 +109,23 @@ public class MongoDbTest {
         time = System.currentTimeMillis() - time;
         log("Time: " + time + " ms");
         log("Count: " + count);
-        db.getMongo().close();
+        c.close();
     }
 
     @Test
     @Ignore
     public void updateDocument() {
-        DB db = MongoUtils.getConnection().getDB();
-        MongoUtils.dropCollections(db);
-        DBCollection nodes = db.getCollection(Collection.NODES.toString());
-        DBObject index = new BasicDBObject();
+        MongoConnection c = MongoUtils.getConnection();
+        MongoDatabase db = c.getDatabase();
+        MongoUtils.dropCollections(c.getDatabase());
+        MongoCollection<BasicDBObject> nodes = 
db.getCollection(Collection.NODES.toString(), BasicDBObject.class);
+        BasicDBObject index = new BasicDBObject();
         // modification time (descending)
         index.put("_mod", -1L);
         // and then id (ascending)
         index.put("_id", 1L);
-        DBObject options = new BasicDBObject();
-        // options.put("unique", Boolean.TRUE);
+        IndexOptions options = new IndexOptions();
+        // options.unique(true);
         nodes.createIndex(index, options);
 
         long time;
@@ -127,27 +133,29 @@ public class MongoDbTest {
 
         int nodeCount = 4500;
         String parent = "/parent/node/abc";
-        DBObject[] inserts = new DBObject[nodeCount];
+        List<BasicDBObject> inserts = new ArrayList<>(nodeCount);
         for (int i = 0; i < nodeCount; i++) {
             BasicDBObject doc = new BasicDBObject();
-            inserts[i] = doc;
+            inserts.add(doc);
             doc.put("_id", parent + "/node" + i);
             doc.put("_mod", 0);
             doc.put("_counter", 0);
             doc.put("x", 10);
         }
-        nodes.insert(inserts, WriteConcern.SAFE);
+        nodes.insertMany(inserts);
 
         time = System.currentTimeMillis() - time;
         System.out.println("insert: " + time);
         time = System.currentTimeMillis();
 
         for (int i = 0; i < nodeCount; i++) {
-            QueryBuilder queryBuilder = 
QueryBuilder.start(Document.ID).is(parent + "/node" + i);
-            DBObject fields = new BasicDBObject();
+            BasicDBObject fields = new BasicDBObject();
             // return _id only
             fields.put("_id", 1);
-            DBObject query = queryBuilder.get();
+            FindOneAndUpdateOptions updateOptions = new 
FindOneAndUpdateOptions()
+                    .projection(fields).upsert(true);
+
+            BasicDBObject query = new BasicDBObject(Document.ID, parent + 
"/node" + i);
 
             BasicDBObject setUpdates = new BasicDBObject();
             BasicDBObject incUpdates = new BasicDBObject();
@@ -171,12 +179,10 @@ public class MongoDbTest {
             // 1087 ms (upsert true+false, returnNew = false)
             // 1100 ms (returnNew = true)
 //            DBObject oldNode =
-            nodes.findAndModify(query, fields,
-                    null /*sort*/, false /*remove*/, update, false 
/*returnNew*/,
-                    true /*upsert*/);
+            nodes.findOneAndUpdate(query, update, updateOptions);
 
             // 250 ms WriteConcern.NORMAL, NONE
-            // 891 ms WriteConvern.SAFE
+            // 891 ms WriteConcern.SAFE
             // > 10 s WriteConcern.JOURNAL_SAFE, FSYNC_SAFE
 
 //            WriteResult result =
@@ -190,7 +196,12 @@ public class MongoDbTest {
         System.out.println("update: " + time);
         time = System.currentTimeMillis();
 
-        db.getMongo().close();
+        c.close();
+    }
+
+    private static BasicDBObject explain(MongoCollection<BasicDBObject> 
collection,
+                                         Bson query) {
+        return collection.find(query).modifiers(new BasicDBObject("$explain", 
true)).first();
     }
 
     private static void log(String msg) {

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=1836549&r1=1836548&r2=1836549&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
 Tue Jul 24 12:13:54 2018
@@ -42,8 +42,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.mongodb.BasicDBObject;
-import com.mongodb.DBCollection;
-import com.mongodb.DBObject;
+import com.mongodb.client.MongoCollection;
+import com.mongodb.client.model.IndexOptions;
 
 /**
  * Tests the document store.
@@ -72,7 +72,7 @@ public class MongoDocumentStoreTest {
 
     void dropCollections() {
         if (MONGO_DB) {
-            
MongoUtils.dropCollections(connectionFactory.getConnection().getDB());
+            
MongoUtils.dropCollections(connectionFactory.getConnection().getDatabase());
         }
     }
 
@@ -248,28 +248,30 @@ public class MongoDocumentStoreTest {
         doInsert(NODE_COUNT, false);
     }
 
-    private void doInsert(int n, boolean batch) throws Exception {
+    private void doInsert(int n, boolean batch) {
         dropCollections();
 
-        DBCollection collection = 
connectionFactory.getConnection().getDB().getCollection("batchInsertTest");
-        DBObject index = new BasicDBObject();
+        MongoConnection c = connectionFactory.getConnection();
+        assertNotNull(c);
+        MongoCollection<BasicDBObject> collection = c.getDatabase()
+                .getCollection("batchInsertTest", BasicDBObject.class);
+        BasicDBObject index = new BasicDBObject();
         index.put("_path", 1L);
-        DBObject options = new BasicDBObject();
-        options.put("unique", Boolean.TRUE);
+        IndexOptions options = new IndexOptions().unique(true);
         collection.createIndex(index, options);
 
         log("Inserting " + n + " batch? " + batch);
         long start = System.currentTimeMillis();
 
         if (batch) {
-            DBObject[] arr = new BasicDBObject[n];
+            List<BasicDBObject> docs = new ArrayList<>();
             for (int i = 0; i < n; i++) {
-                arr[i] = new BasicDBObject("_path", "/a" + i);
+                docs.add(new BasicDBObject("_path", "/a" + i));
             }
-            collection.insert(arr);
+            collection.insertMany(docs);
         } else {
             for (int i = 0; i < n; i++) {
-                collection.insert(new BasicDBObject("_path", "/a" + i));
+                collection.insertOne(new BasicDBObject("_path", "/a" + i));
             }
 
         }

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=1836549&r1=1836548&r2=1836549&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
 Tue Jul 24 12:13:54 2018
@@ -82,7 +82,7 @@ public class MongoUtils {
             return;
         }
         try {
-            dropCollections(c.getDB());
+            dropCollections(c.getDatabase());
         } finally {
             c.close();
         }
@@ -127,7 +127,7 @@ public class MongoUtils {
             return;
         }
         try {
-            c.getDB().dropDatabase();
+            c.getDatabase().drop();
         } finally {
             c.close();
         }
@@ -162,7 +162,7 @@ public class MongoUtils {
         MongoConnection mongoConnection;
         try {
             mongoConnection = new MongoConnection(url);
-            mongoConnection.getDB().command(new BasicDBObject("ping", 1));
+            mongoConnection.getDatabase().runCommand(new BasicDBObject("ping", 
1));
             // dropCollections(mongoConnection.getDB());
         } catch (Exception e) {
             exception = e;

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=1836549&r1=1836548&r2=1836549&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
 Tue Jul 24 12:13:54 2018
@@ -25,12 +25,14 @@ import org.junit.Assume;
 import org.junit.Before;
 import org.junit.BeforeClass;
 
+import static org.junit.Assert.assertNotNull;
+
 /**
  * Tests for {@code DocumentMK#getLength(String)} with {@link CloudBlobStore}
  */
 public class DocumentMKCloudGetLengthTest extends DocumentMKGetLengthTest {
     @BeforeClass
-    public static void setUpBeforeClass() throws Exception {
+    public static void setUpBeforeClass() {
         try {
             Assume.assumeNotNull(CloudStoreUtils.getBlobStore());
         } catch (Exception e) {
@@ -42,6 +44,7 @@ public class DocumentMKCloudGetLengthTes
     @Before
     public void setUpConnection() throws Exception {
         mongoConnection = connectionFactory.getConnection();
+        assertNotNull(mongoConnection);
         MongoUtils.dropCollections(mongoConnection.getDBName());
         mk = new DocumentMK.Builder()
                 .setMongoDB(mongoConnection.getMongoClient(), 
mongoConnection.getDBName())
@@ -50,9 +53,9 @@ public class DocumentMKCloudGetLengthTes
 
     @Override
     @After
-    public void tearDownConnection() throws Exception {
+    public void tearDownConnection() {
         ((CloudBlobStore) mk.getNodeStore().getBlobStore()).deleteBucket();
         mk.dispose();
-        MongoUtils.dropCollections(connectionFactory.getConnection().getDB());
+        
MongoUtils.dropCollections(connectionFactory.getConnection().getDatabase());
     }
 }
\ No newline at end of file

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=1836549&r1=1836548&r2=1836549&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
 Tue Jul 24 12:13:54 2018
@@ -25,13 +25,15 @@ import org.junit.Assume;
 import org.junit.Before;
 import org.junit.BeforeClass;
 
+import static org.junit.Assert.assertNotNull;
+
 /**
  * Tests for {@code DocumentMK#read(String, long, byte[], int, int)} with
  * {@link CloudBlobStore}
  */
 public class DocumentMKCloudReadTest extends DocumentMKReadTest {
     @BeforeClass
-    public static void setUpBeforeClass() throws Exception {
+    public static void setUpBeforeClass() {
         try {
             Assume.assumeNotNull(CloudStoreUtils.getBlobStore());
         } catch (Exception e) {
@@ -43,6 +45,7 @@ public class DocumentMKCloudReadTest ext
     @Before
     public void setUpConnection() throws Exception {
         mongoConnection = connectionFactory.getConnection();
+        assertNotNull(mongoConnection);
         MongoUtils.dropCollections(mongoConnection.getDBName());
         mk = new DocumentMK.Builder()
                 .setMongoDB(mongoConnection.getMongoClient(), 
mongoConnection.getDBName())
@@ -51,9 +54,9 @@ public class DocumentMKCloudReadTest ext
 
     @Override
     @After
-    public void tearDownConnection() throws Exception {
+    public void tearDownConnection() {
         ((CloudBlobStore) mk.getNodeStore().getBlobStore()).deleteBucket();
         mk.dispose();
-        MongoUtils.dropCollections(connectionFactory.getConnection().getDB());
+        
MongoUtils.dropCollections(connectionFactory.getConnection().getDatabase());
     }
 }
\ No newline at end of file

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=1836549&r1=1836548&r2=1836549&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
 Tue Jul 24 12:13:54 2018
@@ -25,13 +25,15 @@ import org.junit.Assume;
 import org.junit.Before;
 import org.junit.BeforeClass;
 
+import static org.junit.Assert.assertNotNull;
+
 /**
  * Tests for {@code DocumentMK#write(java.io.InputStream)} with
  * {@link CloudBlobStore}
  */
 public class DocumentMKCloudWriteTest extends DocumentMKWriteTest {
     @BeforeClass
-    public static void setUpBeforeClass() throws Exception {
+    public static void setUpBeforeClass() {
         try {
             Assume.assumeNotNull(CloudStoreUtils.getBlobStore());
         } catch (Exception e) {
@@ -43,6 +45,7 @@ public class DocumentMKCloudWriteTest ex
     @Before
     public void setUpConnection() throws Exception {
         mongoConnection = connectionFactory.getConnection();
+        assertNotNull(mongoConnection);
         MongoUtils.dropCollections(mongoConnection.getDBName());
         mk = new DocumentMK.Builder()
                 .setMongoDB(mongoConnection.getMongoClient(), 
mongoConnection.getDBName())
@@ -51,9 +54,9 @@ public class DocumentMKCloudWriteTest ex
 
     @Override
     @After
-    public void tearDownConnection() throws Exception {
+    public void tearDownConnection() {
         ((CloudBlobStore) mk.getNodeStore().getBlobStore()).deleteBucket();
         mk.dispose();
-        MongoUtils.dropCollections(connectionFactory.getConnection().getDB());
+        
MongoUtils.dropCollections(connectionFactory.getConnection().getDatabase());
     }
 }
\ No newline at end of file

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=1836549&r1=1836548&r2=1836549&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
 Tue Jul 24 12:13:54 2018
@@ -28,12 +28,14 @@ import org.junit.Assume;
 import org.junit.Before;
 import org.junit.BeforeClass;
 
+import static org.junit.Assert.assertNotNull;
+
 /**
  * Tests for {@code DocumentMK#getLength(String)} using {@link DataStore}
  */
 public class DocumentMKDataStoreGetLengthTest extends DocumentMKGetLengthTest {
     @BeforeClass
-    public static void setUpBeforeClass() throws Exception {
+    public static void setUpBeforeClass() {
         try {
             Assume.assumeNotNull(DataStoreUtils.getBlobStore());
         } catch (Exception e) {
@@ -45,6 +47,7 @@ public class DocumentMKDataStoreGetLengt
     @Before
     public void setUpConnection() throws Exception {
         mongoConnection = connectionFactory.getConnection();
+        assertNotNull(mongoConnection);
         MongoUtils.dropCollections(mongoConnection.getDBName());
         mk = new DocumentMK.Builder()
                 .setMongoDB(mongoConnection.getMongoClient(), 
mongoConnection.getDBName())
@@ -56,6 +59,6 @@ public class DocumentMKDataStoreGetLengt
     public void tearDownConnection() throws Exception {
         FileUtils.deleteDirectory(new File(DataStoreUtils.getHomeDir()));
         mk.dispose();
-        MongoUtils.dropCollections(connectionFactory.getConnection().getDB());
+        
MongoUtils.dropCollections(connectionFactory.getConnection().getDatabase());
     }
 }

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=1836549&r1=1836548&r2=1836549&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
 Tue Jul 24 12:13:54 2018
@@ -28,13 +28,15 @@ import org.junit.Assume;
 import org.junit.Before;
 import org.junit.BeforeClass;
 
+import static com.google.common.base.Preconditions.checkNotNull;
+
 /**
  * Tests for {@code DocumentMK#read(String, long, byte[], int, int)} using
  * {@link DataStore}
  */
 public class DocumentMKDataStoreReadTest extends DocumentMKReadTest {
     @BeforeClass
-    public static void setUpBeforeClass() throws Exception {
+    public static void setUpBeforeClass() {
         try {
             Assume.assumeNotNull(DataStoreUtils.getBlobStore());
         } catch (Exception e) {
@@ -46,6 +48,7 @@ public class DocumentMKDataStoreReadTest
     @Before
     public void setUpConnection() throws Exception {
         mongoConnection = connectionFactory.getConnection();
+        checkNotNull(mongoConnection);
         MongoUtils.dropCollections(mongoConnection.getDBName());
         mk = new DocumentMK.Builder()
                 .setMongoDB(mongoConnection.getMongoClient(), 
mongoConnection.getDBName())
@@ -57,6 +60,6 @@ public class DocumentMKDataStoreReadTest
     public void tearDownConnection() throws Exception {
         FileUtils.deleteDirectory(new File(DataStoreUtils.getHomeDir()));
         mk.dispose();
-        MongoUtils.dropCollections(connectionFactory.getConnection().getDB());
+        
MongoUtils.dropCollections(connectionFactory.getConnection().getDatabase());
     }
 }

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=1836549&r1=1836548&r2=1836549&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
 Tue Jul 24 12:13:54 2018
@@ -28,13 +28,15 @@ import org.junit.Assume;
 import org.junit.Before;
 import org.junit.BeforeClass;
 
+import static org.junit.Assert.assertNotNull;
+
 /**
  * Tests for {@code DocumentMK#write(java.io.InputStream)} using
  * {@link DataStore}
  */
 public class DocumentMKDataStoreWriteTest extends DocumentMKWriteTest {
     @BeforeClass
-    public static void setUpBeforeClass() throws Exception {
+    public static void setUpBeforeClass() {
         try {
             Assume.assumeNotNull(DataStoreUtils.getBlobStore());
         } catch (Exception e) {
@@ -46,6 +48,7 @@ public class DocumentMKDataStoreWriteTes
     @Before
     public void setUpConnection() throws Exception {
         mongoConnection = connectionFactory.getConnection();
+        assertNotNull(mongoConnection);
         MongoUtils.dropCollections(mongoConnection.getDBName());
         mk = new DocumentMK.Builder()
                 .setMongoDB(mongoConnection.getMongoClient(), 
mongoConnection.getDBName())
@@ -57,6 +60,6 @@ public class DocumentMKDataStoreWriteTes
     public void tearDownConnection() throws Exception {
         FileUtils.deleteDirectory(new File(DataStoreUtils.getHomeDir()));
         mk.dispose();
-        MongoUtils.dropCollections(connectionFactory.getConnection().getDB());
+        
MongoUtils.dropCollections(connectionFactory.getConnection().getDatabase());
     }
 }

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=1836549&r1=1836548&r2=1836549&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
 Tue Jul 24 12:13:54 2018
@@ -41,6 +41,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
 
 public class JournalIT extends AbstractJournalTest {
 
@@ -58,7 +59,8 @@ public class JournalIT extends AbstractJ
     public void clear() {
         super.clear();
         MongoConnection mongoConnection = connectionFactory.getConnection();
-        MongoUtils.dropCollections(mongoConnection.getDB());
+        assertNotNull(mongoConnection);
+        MongoUtils.dropCollections(mongoConnection.getDatabase());
     }
 
     @Test

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=1836549&r1=1836548&r2=1836549&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
 Tue Jul 24 12:13:54 2018
@@ -16,8 +16,7 @@
  */
 package org.apache.jackrabbit.oak.plugins.document.mongo;
 
-import com.mongodb.DB;
-import com.mongodb.Mongo;
+import com.mongodb.MongoClient;
 import com.mongodb.MongoClientOptions;
 import com.mongodb.ReadConcern;
 import com.mongodb.ReplicaSetStatus;
@@ -119,8 +118,8 @@ public class MongoConnectionTest {
     private void sufficientWriteConcern(WriteConcern w,
                                         boolean replicaSet,
                                         boolean sufficient) {
-        DB db = mockDB(ReadConcern.DEFAULT, w, replicaSet);
-        assertEquals(sufficient, 
MongoConnection.hasSufficientWriteConcern(db));
+        MongoClient mongo = mockMongoClient(replicaSet);
+        assertEquals(sufficient, 
MongoConnection.isSufficientWriteConcern(mongo, w));
     }
 
     private void sufficientReadConcernReplicaSet(ReadConcern r,
@@ -135,25 +134,19 @@ public class MongoConnectionTest {
     private void sufficientReadConcern(ReadConcern r,
                                        boolean replicaSet,
                                        boolean sufficient) {
-        DB db = mockDB(r, replicaSet ? WriteConcern.MAJORITY : 
WriteConcern.W1, replicaSet);
-        assertEquals(sufficient, MongoConnection.hasSufficientReadConcern(db));
+        MongoClient mongo = mockMongoClient(replicaSet);
+        assertEquals(sufficient, 
MongoConnection.isSufficientReadConcern(mongo, r));
     }
 
-    private DB mockDB(ReadConcern r,
-                      WriteConcern w,
-                      boolean replicaSet) {
+    private MongoClient mockMongoClient(boolean replicaSet) {
         ReplicaSetStatus status;
         if (replicaSet) {
             status = mock(ReplicaSetStatus.class);
         } else {
             status = null;
         }
-        DB db = mock(DB.class);
-        Mongo mongo = mock(Mongo.class);
-        when(db.getMongo()).thenReturn(mongo);
-        when(db.getWriteConcern()).thenReturn(w);
-        when(db.getReadConcern()).thenReturn(r);
-        when(mongo.getReplicaSetStatus()).thenReturn(status);
-        return db;
+        MongoClient client = mock(MongoClient.class);
+        when(client.getReplicaSetStatus()).thenReturn(status);
+        return client;
     }
 }

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=1836549&r1=1836548&r2=1836549&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
 Tue Jul 24 12:13:54 2018
@@ -52,18 +52,18 @@ public class MongoMissingLastRevSeekerTe
     private DocumentNodeStore ns;
 
     @Before
-    public void before() throws Exception {
+    public void before() {
         c = MongoUtils.getConnection();
         assumeTrue(c != null);
-        dbName = c.getDB().getName();
-        MongoUtils.dropCollections(c.getDB());
+        dbName = c.getDatabase().getName();
+        MongoUtils.dropCollections(c.getDatabase());
         builder = new DocumentMK.Builder().setMongoDB(c.getMongoClient(), 
c.getDBName());
         store = (MongoDocumentStore) builder.getDocumentStore();
         ns = builder.getNodeStore();
     }
 
     @After
-    public void after() throws Exception {
+    public void after() {
         if (ns != null) {
             ns.dispose();
         }

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=1836549&r1=1836548&r2=1836549&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
 Tue Jul 24 12:13:54 2018
@@ -61,7 +61,8 @@ public class MongoUtilsTest {
     @Test
     public void createIndex() {
         MongoConnection c = connectionFactory.getConnection();
-        c.getDB().dropDatabase();
+        assertNotNull(c);
+        c.getDatabase().drop();
         MongoCollection collection = c.getDatabase().getCollection("test");
         MongoUtils.createIndex(collection, "foo", true, false, true);
         MongoUtils.createIndex(collection, "bar", false, true, false);
@@ -93,13 +94,14 @@ public class MongoUtilsTest {
             }
         }
 
-        c.getDB().dropDatabase();
+        c.getDatabase().drop();
     }
 
     @Test
     public void createPartialIndex() {
         MongoConnection c = connectionFactory.getConnection();
-        c.getDB().dropDatabase();
+        assertNotNull(c);
+        c.getDatabase().drop();
         MongoStatus status = new MongoStatus(c.getMongoClient(), 
c.getDBName());
         assumeTrue(status.isVersion(3, 2));
 
@@ -126,12 +128,13 @@ public class MongoUtilsTest {
             }
         }
 
-        c.getDB().dropDatabase();
+        c.getDatabase().drop();
     }
 
     @Test(expected = IllegalArgumentException.class)
     public void checkArguments() {
         MongoConnection c = connectionFactory.getConnection();
+        assertNotNull(c);
         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/ReadPreferenceIT.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/ReadPreferenceIT.java?rev=1836549&r1=1836548&r2=1836549&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/ReadPreferenceIT.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/ReadPreferenceIT.java
 Tue Jul 24 12:13:54 2018
@@ -119,7 +119,9 @@ public class ReadPreferenceIT extends Ab
 
         assertEquals(ReadPreference.secondary(), 
mongoDS.getDBCollection(NODES).getReadPreference());
         assertEquals(2, 
mongoDS.getDBCollection(NODES).getWriteConcern().getW());
-        assertTrue(mongoDS.getDBCollection(NODES).getWriteConcern().getJ());
+        Boolean journal = 
mongoDS.getDBCollection(NODES).getWriteConcern().getJournal();
+        assertNotNull(journal);
+        assertTrue(journal);
 
         assertEquals(ReadPreference.secondary(), 
mongoDS.getConfiguredReadPreference(NODES));
     }


Reply via email to