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/04/04 14:25:36 UTC

svn commit: r1828349 - in /jackrabbit/oak/trunk: oak-parent/ oak-run/ oak-store-document/ oak-store-document/src/test/java/com/mongodb/ oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/

Author: mreutegg
Date: Wed Apr  4 14:25:35 2018
New Revision: 1828349

URL: http://svn.apache.org/viewvc?rev=1828349&view=rev
Log:
OAK-7359: Update to MongoDB Java driver 3.6

Modified:
    jackrabbit/oak/trunk/oak-parent/pom.xml
    jackrabbit/oak/trunk/oak-run/pom.xml
    jackrabbit/oak/trunk/oak-store-document/pom.xml
    jackrabbit/oak/trunk/oak-store-document/src/test/java/com/mongodb/OakFongo.java
    jackrabbit/oak/trunk/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoConnectionTest.java

Modified: jackrabbit/oak/trunk/oak-parent/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-parent/pom.xml?rev=1828349&r1=1828348&r2=1828349&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-parent/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-parent/pom.xml Wed Apr  4 14:25:35 2018
@@ -51,7 +51,7 @@
     <segment.db>SegmentMK</segment.db>
     <lucene.version>4.7.1</lucene.version>
     <solr.version>5.5.5</solr.version>
-    <mongo.driver.version>3.4.0</mongo.driver.version>
+    <mongo.driver.version>3.6.3</mongo.driver.version>
     <slf4j.api.version>1.7.25</slf4j.api.version>
     <slf4j.version>1.7.25</slf4j.version> <!-- sync with logback version -->
     <logback.version>1.2.3</logback.version>

Modified: jackrabbit/oak/trunk/oak-run/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/pom.xml?rev=1828349&r1=1828348&r2=1828349&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-run/pom.xml Wed Apr  4 14:25:35 2018
@@ -35,13 +35,14 @@
     <groovy.version>2.4.7</groovy.version>
     <!--
       Size History:
+      + 49 MB MongoDB Java driver 3.6.3 is bigger (OAK-7359)
       + 48 MB Transitive dependencies needed for aws-java-sdk (OAK-6899)
       + 47 MB release profile build slightly bigger jar (OAK-6252)
       + 46 MB re-introduced the ServerCommand and required dependencies (OAK-6252)
       + 41 MB build failing on the release profile (OAK-6250)
       + 38 MB. Initial value. Current 35MB plus a 10%
     -->
-    <max.jar.size>48000000</max.jar.size>
+    <max.jar.size>49000000</max.jar.size>
   </properties>
 
   <build>

Modified: jackrabbit/oak/trunk/oak-store-document/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/pom.xml?rev=1828349&r1=1828348&r2=1828349&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-store-document/pom.xml Wed Apr  4 14:25:35 2018
@@ -39,7 +39,7 @@
         <configuration>
           <instructions>
             <Import-Package>
-              com.mongodb*;version="[3, 4)";resolution:=optional,
+              com.mongodb*;version="[3.6, 4)";resolution:=optional,
               *
             </Import-Package>
             <Export-Package>
@@ -309,7 +309,7 @@
     <dependency>
       <groupId>com.github.fakemongo</groupId>
       <artifactId>fongo</artifactId>
-      <version>2.0.6</version>
+      <version>2.2.0-RC1</version>
       <scope>test</scope>
     </dependency>
     <dependency>

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=1828349&r1=1828348&r2=1828349&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 Wed Apr  4 14:25:35 2018
@@ -33,6 +33,7 @@ import com.mongodb.client.model.WriteMod
 import com.mongodb.client.result.DeleteResult;
 import com.mongodb.client.result.UpdateResult;
 import com.mongodb.connection.ServerVersion;
+import com.mongodb.session.ClientSession;
 
 import org.apache.jackrabbit.oak.plugins.document.MongoUtils;
 import org.bson.Document;
@@ -171,13 +172,14 @@ public class OakFongo extends Fongo {
 
         @Override
         public synchronized FongoDBCollection doGetCollection(String name,
-                                                              boolean idIsNotUniq) {
+                                                              boolean idIsNotUniq,
+                                                              boolean validateOnInsert) {
             if (name.startsWith("system.")) {
-                return super.doGetCollection(name, idIsNotUniq);
+                return super.doGetCollection(name, idIsNotUniq, validateOnInsert);
             }
             FongoDBCollection coll = collMap.get(name);
             if (coll == null) {
-                coll = new OakFongoDBCollection(this, name, idIsNotUniq);
+                coll = new OakFongoDBCollection(this, name, idIsNotUniq, validateOnInsert);
                 collMap.put(name, coll);
             }
             return coll;
@@ -200,8 +202,9 @@ public class OakFongo extends Fongo {
 
         public OakFongoDBCollection(FongoDB db,
                                     String name,
-                                    boolean idIsNotUniq) {
-            super(db, name, idIsNotUniq);
+                                    boolean idIsNotUniq,
+                                    boolean validateOnInsert) {
+            super(db, name, idIsNotUniq, validateOnInsert);
         }
 
         @Override
@@ -311,56 +314,62 @@ public class OakFongo extends Fongo {
         }
 
         @Override
-        public void insertMany(List<? extends Document> documents,
+        public void insertMany(ClientSession clientSession,
+                               List<? extends Document> documents,
                                InsertManyOptions options) {
             beforeInsert(asDBObjects(documents), new InsertOptions());
-            super.insertMany(documents, options);
+            super.insertMany(clientSession, documents, options);
             WriteResult result = new WriteResult(documents.size(), false, null);
             afterInsert(result);
         }
 
         @Override
-        public DeleteResult deleteMany(Bson filter,
+        public DeleteResult deleteMany(ClientSession clientSession,
+                                       Bson filter,
                                        DeleteOptions options) {
             beforeRemove(asDBObject(filter), getWriteConcern());
-            DeleteResult result = super.deleteMany(filter, options);
+            DeleteResult result = super.deleteMany(clientSession, filter, options);
             afterRemove(new WriteResult((int) result.getDeletedCount(), false, null));
             return result;
         }
 
         @Override
-        public UpdateResult updateMany(Bson filter,
+        public UpdateResult updateMany(ClientSession clientSession,
+                                       Bson filter,
                                        Bson update,
                                        UpdateOptions updateOptions) {
             beforeUpdate(asDBObject(filter), asDBObject(update), updateOptions.isUpsert(), true, getWriteConcern(), new DefaultDBEncoder());
-            UpdateResult result = super.updateMany(filter, update, updateOptions);
+            UpdateResult result = super.updateMany(clientSession, filter, update, updateOptions);
             afterUpdate(new WriteResult((int) result.getModifiedCount(), true, result.getUpsertedId().asString().getValue()));
             return result;
         }
 
         @Override
-        public Document findOneAndUpdate(Bson filter,
+        public Document findOneAndUpdate(ClientSession clientSession,
+                                         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);
+            Document result = super.findOneAndUpdate(clientSession, filter, update, options);
             afterFindAndModify(asDBObject(result));
             return result;
         }
 
         @Override
-        public FindIterable<Document> find(Bson filter) {
+        public FindIterable<Document> find(ClientSession clientSession,
+                                           Bson filter) {
             beforeFind(asDBObject(filter), null);
-            FindIterable<Document> result = super.find(filter);
+            FindIterable<Document> result = super.find(clientSession, 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,
+        public com.mongodb.bulk.BulkWriteResult bulkWrite(ClientSession clientSession,
+                                                          List<? extends WriteModel<? extends Document>> requests,
                                                           BulkWriteOptions options) {
             beforeExecuteBulkWriteOperation(options.isOrdered(), options.getBypassDocumentValidation(), requests, getWriteConcern());
-            com.mongodb.bulk.BulkWriteResult result = super.bulkWrite(requests, options);
+            com.mongodb.bulk.BulkWriteResult result = super.bulkWrite(clientSession, requests, options);
             afterExecuteBulkWriteOperation(new AcknowledgedBulkWriteResult(result.getInsertedCount(), result.getMatchedCount(), result.getDeletedCount(), result.getModifiedCount(), this.transform(result.getUpserts())));
             return result;
         }

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=1828349&r1=1828348&r2=1828349&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 Wed Apr  4 14:25:35 2018
@@ -90,17 +90,17 @@ public class MongoConnectionTest {
     public void socketKeepAlive() throws Exception {
         assumeTrue(MongoUtils.isAvailable());
         MongoClientOptions.Builder options = MongoConnection.getDefaultBuilder();
-        options.socketKeepAlive(true);
+        options.socketKeepAlive(false);
         MongoConnection c = new MongoConnection(MongoUtils.URL, options);
         try {
-            assertTrue(c.getMongoClient().getMongoClientOptions().isSocketKeepAlive());
+            assertFalse(c.getMongoClient().getMongoClientOptions().isSocketKeepAlive());
         } finally {
             c.close();
         }
-        // default is without keep-alive
+        // default is with keep-alive (starting with 3.6 driver)
         c = new MongoConnection(MongoUtils.URL);
         try {
-            assertFalse(c.getMongoClient().getMongoClientOptions().isSocketKeepAlive());
+            assertTrue(c.getMongoClient().getMongoClientOptions().isSocketKeepAlive());
         } finally {
             c.close();
         }