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