This is an automated email from the ASF dual-hosted git repository.

mreutegg pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 2369149  OAK-9658: Update flapdoodle version to 3.2.6
     new 74a1a68  Merge pull request #454 from mreutegg/OAK-9658
2369149 is described below

commit 2369149ddb93aec7998f20966f2d5308a9eb91aa
Author: Marcel Reutegger <[email protected]>
AuthorDate: Fri Jan 7 13:20:35 2022 +0100

    OAK-9658: Update flapdoodle version to 3.2.6
---
 oak-store-document/pom.xml                         |  2 +-
 .../oak/plugins/document/mongo/MongoUtils.java     |  4 +-
 .../oak/plugins/document/mongo/MongodProcess.java  | 45 +++++++++++++++-------
 .../document/mongo/MongodProcessFactory.java       | 35 +++++++----------
 .../mongo/ReplicaSetDefaultWriteConcernIT.java     |  3 +-
 5 files changed, 50 insertions(+), 39 deletions(-)

diff --git a/oak-store-document/pom.xml b/oak-store-document/pom.xml
index 28439e7..ab8ce6e 100644
--- a/oak-store-document/pom.xml
+++ b/oak-store-document/pom.xml
@@ -320,7 +320,7 @@
     <dependency>
       <groupId>de.flapdoodle.embed</groupId>
       <artifactId>de.flapdoodle.embed.mongo</artifactId>
-      <version>2.0.0</version>
+      <version>3.2.6</version>
       <scope>test</scope>
     </dependency>
     <dependency>
diff --git 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoUtils.java
 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoUtils.java
index 631ed08..42a3ebe 100644
--- 
a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoUtils.java
+++ 
b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoUtils.java
@@ -31,6 +31,7 @@ import com.mongodb.client.ClientSession;
 import com.mongodb.client.FindIterable;
 import com.mongodb.client.MongoCollection;
 import com.mongodb.client.model.IndexOptions;
+import com.mongodb.internal.connection.MongoWriteConcernWithResponseException;
 
 import org.apache.jackrabbit.oak.plugins.document.DocumentStoreException.Type;
 import org.bson.Document;
@@ -178,7 +179,8 @@ class MongoUtils {
                 || t instanceof MongoNotPrimaryException) {
             type = Type.TRANSIENT;
         } else if (t instanceof MongoCommandException
-                || t instanceof WriteConcernException) {
+                || t instanceof WriteConcernException
+                || t instanceof MongoWriteConcernWithResponseException) {
             int code = ((MongoException) t).getCode();
             if (code == 11600               // InterruptedAtShutdown
                     || code == 11601        // Interrupted
diff --git 
a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongodProcess.java
 
b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongodProcess.java
index 4fbb022..61d0f50 100644
--- 
a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongodProcess.java
+++ 
b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongodProcess.java
@@ -27,32 +27,32 @@ import com.mongodb.ServerAddress;
 import org.apache.commons.io.FileUtils;
 
 import de.flapdoodle.embed.mongo.MongodStarter;
-import de.flapdoodle.embed.mongo.config.IMongodConfig;
-import de.flapdoodle.embed.mongo.config.MongoCmdOptionsBuilder;
-import de.flapdoodle.embed.mongo.config.MongodConfigBuilder;
+import de.flapdoodle.embed.mongo.config.ImmutableMongoCmdOptions;
+import de.flapdoodle.embed.mongo.config.ImmutableMongodConfig;
+import de.flapdoodle.embed.mongo.config.MongodConfig;
 import de.flapdoodle.embed.mongo.config.Net;
 import de.flapdoodle.embed.mongo.config.Storage;
+import de.flapdoodle.embed.mongo.distribution.Feature;
 import de.flapdoodle.embed.mongo.distribution.Versions;
+import de.flapdoodle.embed.process.io.directories.Directory;
 import de.flapdoodle.embed.process.io.directories.FixedPath;
-import de.flapdoodle.embed.process.io.directories.IDirectory;
+import de.flapdoodle.embed.process.io.file.Files;
 import de.flapdoodle.embed.process.runtime.IStopable;
 
-import static de.flapdoodle.embed.process.io.directories.Directories.join;
-
 /**
  * Helper class for starting/stopping a mongod process.
  */
 public class MongodProcess {
 
-    private static final String VERSION = "3.4.10";
+    private static final String VERSION = "4.2.16";
 
-    private static final IDirectory TMP_DIR = join(new FixedPath("target"), 
new FixedPath("tmp"));
+    private static final Directory TMP_DIR = join(new FixedPath("target"), new 
FixedPath("tmp"));
 
     private IStopable process;
 
     private final MongodStarter starter;
 
-    private final IMongodConfig config;
+    private final MongodConfig config;
 
     MongodProcess(MongodStarter starter, String rsName, int port)
             throws IOException {
@@ -83,14 +83,33 @@ public class MongodProcess {
         return new ServerAddress(config.net().getBindIp(), 
config.net().getPort());
     }
 
-    private IMongodConfig createConfiguration(String rsName, int p)
+    static Directory join(final Directory left, final Directory right) {
+        return new Directory() {
+
+            @Override
+            public boolean isGenerated() {
+                return left.isGenerated() || right.isGenerated();
+            }
+
+            @Override
+            public File asFile() {
+                return Files.fileOf(left.asFile(), right.asFile());
+            }
+        };
+    }
+
+    private MongodConfig createConfiguration(String rsName, int p)
             throws IOException {
-        return new MongodConfigBuilder()
-                .version(Versions.withFeatures(() -> VERSION))
+        return ImmutableMongodConfig.builder()
+                .version(Versions.withFeatures(() -> VERSION, 
Feature.NO_HTTP_INTERFACE_ARG))
                 .net(new 
Net(InetAddress.getLoopbackAddress().getHostAddress(), p, false))
                 .replication(newStorage(p, rsName))
                 // enable journal
-                .cmdOptions(new 
MongoCmdOptionsBuilder().useNoJournal(false).build())
+                .cmdOptions(ImmutableMongoCmdOptions.builder()
+                        .useNoPrealloc(false)
+                        .useNoJournal(false)
+                        .useSmallFiles(false)
+                        .build())
                 .build();
     }
 
diff --git 
a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongodProcessFactory.java
 
b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongodProcessFactory.java
index 357e2e5..4949333 100644
--- 
a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongodProcessFactory.java
+++ 
b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongodProcessFactory.java
@@ -36,16 +36,14 @@ import org.slf4j.LoggerFactory;
 
 import de.flapdoodle.embed.mongo.Command;
 import de.flapdoodle.embed.mongo.MongodStarter;
-import de.flapdoodle.embed.mongo.config.DownloadConfigBuilder;
-import de.flapdoodle.embed.mongo.config.ExtractedArtifactStoreBuilder;
-import de.flapdoodle.embed.mongo.config.RuntimeConfigBuilder;
-import de.flapdoodle.embed.process.config.IRuntimeConfig;
+import de.flapdoodle.embed.mongo.config.Defaults;
+import de.flapdoodle.embed.process.config.RuntimeConfig;
+import de.flapdoodle.embed.process.io.directories.Directory;
 import de.flapdoodle.embed.process.io.directories.FixedPath;
-import de.flapdoodle.embed.process.io.directories.IDirectory;
 import de.flapdoodle.embed.process.io.progress.Slf4jProgressListener;
 import de.flapdoodle.embed.process.runtime.Network;
 
-import static de.flapdoodle.embed.process.io.directories.Directories.join;
+import static 
org.apache.jackrabbit.oak.plugins.document.mongo.MongodProcess.join;
 import static org.junit.Assert.assertTrue;
 
 /**
@@ -55,26 +53,21 @@ public class MongodProcessFactory extends ExternalResource {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(MongodProcessFactory.class);
 
-    private static final IDirectory EXTRACT_DIR = join(new 
FixedPath("target"), new FixedPath("mongo-extracted"));
+    private static final Directory DOWNLOAD_DIR = join(new 
FixedPath("target"), new FixedPath("mongo-download"));
 
-    private static final IDirectory DOWNLOAD_DIR = join(new 
FixedPath("target"), new FixedPath("mongo-download"));
-
-    private static final IDirectory TMP_DIR = join(new FixedPath("target"), 
new FixedPath("tmp"));
+    private static final Directory TMP_DIR = join(new FixedPath("target"), new 
FixedPath("tmp"));
 
     static {
         System.setProperty("de.flapdoodle.embed.io.tmpdir", 
TMP_DIR.asFile().getAbsolutePath());
     }
 
-    private static final IRuntimeConfig CONFIG = new RuntimeConfigBuilder()
-            .defaultsWithLogger(Command.MongoD, 
LoggerFactory.getLogger(MongodProcessFactory.class))
-            .artifactStore(new ExtractedArtifactStoreBuilder()
-                    .defaults(Command.MongoD)
-                    .download(new DownloadConfigBuilder()
-                            .defaultsForCommand(Command.MongoD)
+    private static final RuntimeConfig CONFIG = 
Defaults.runtimeConfigFor(Command.MongoD, LOG)
+            .artifactStore(Defaults.extractedArtifactStoreFor(Command.MongoD)
+                    
.withDownloadConfig(Defaults.downloadConfigFor(Command.MongoD)
                             .progressListener(new Slf4jProgressListener(LOG))
                             .artifactStorePath(DOWNLOAD_DIR).build())
-                    .extractDir(EXTRACT_DIR).build())
-            .daemonProcess(false)
+            )
+            .isDaemonProcess(false)
             .build();
 
     private static final MongodStarter STARTER = 
MongodStarter.getInstance(CONFIG);
@@ -83,7 +76,7 @@ public class MongodProcessFactory extends ExternalResource {
 
     public Map<Integer, MongodProcess> startReplicaSet(String replicaSetName, 
int size)
             throws IOException {
-        int[] ports = 
Network.getFreeServerPorts(InetAddress.getLoopbackAddress(), size);
+        int[] ports = 
Network.freeServerPorts(InetAddress.getLoopbackAddress(), size);
         return startReplicaSet(replicaSetName, ports);
     }
 
@@ -103,9 +96,6 @@ public class MongodProcessFactory extends ExternalResource {
 
     @Override
     protected void before() {
-        if (!EXTRACT_DIR.asFile().exists()) {
-            assertTrue(EXTRACT_DIR.asFile().mkdirs());
-        }
         if (!TMP_DIR.asFile().exists()) {
             assertTrue(TMP_DIR.asFile().mkdirs());
         }
@@ -160,4 +150,5 @@ public class MongodProcessFactory extends ExternalResource {
                     new Document("replSetInitiate", config));
         }
     }
+
 }
diff --git 
a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/ReplicaSetDefaultWriteConcernIT.java
 
b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/ReplicaSetDefaultWriteConcernIT.java
index e65f657..a6a4879 100644
--- 
a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/ReplicaSetDefaultWriteConcernIT.java
+++ 
b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/mongo/ReplicaSetDefaultWriteConcernIT.java
@@ -18,7 +18,6 @@
  */
 package org.apache.jackrabbit.oak.plugins.document.mongo;
 
-import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -46,7 +45,7 @@ public class ReplicaSetDefaultWriteConcernIT {
     @Rule
     public DocumentMKBuilderProvider builderProvider = new 
DocumentMKBuilderProvider();
 
-    private Map<Integer, MongodProcess> executables = new HashMap<>();
+    private final Map<Integer, MongodProcess> executables = new HashMap<>();
 
     @Before
     public void before() {

Reply via email to