diff --git a/BUILDING.adoc b/BUILDING.adoc
index edb19b1e40b..d6257b2b85b 100644
--- a/BUILDING.adoc
+++ b/BUILDING.adoc
@@ -52,6 +52,13 @@ To remedy this, you can execute the following:
printf '127.0.0.1 %s\n::1 %s\n' `hostname` `hostname` | sudo tee -a /etc/hosts
----
+[#docker]
+=== Docker tests
+
+Certain tests use Docker to spawn necessary external services.
+Docker tests are configured using the `docker` Maven profile, which is activated by default for the CI environment.
+You can locally enable this profile by passing a `-P docker` argument to your `./mvnw` commands.
+
[#website]
== Building the website
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/CoreDefaultBundle.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/CoreDefaultBundle.java
index 66598fc776c..9b686e6a956 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/CoreDefaultBundle.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/CoreDefaultBundle.java
@@ -238,8 +238,10 @@ public MergeStrategy defaultMergeStrategy() {
@SingletonFactory
@Named("StatusLogger")
@ConditionalOnMissingBinding
- public Level defaultStatusLevel() {
- return Level.ERROR;
+ public Level defaultStatusLevel(PropertyEnvironment environment) {
+ return environment
+ .getProperty(CoreProperties.StatusLoggerProperties.class)
+ .level();
}
@SingletonFactory
diff --git a/log4j-mongodb/pom.xml b/log4j-mongodb/pom.xml
index 3ccd7f9df7c..b2c62370664 100644
--- a/log4j-mongodb/pom.xml
+++ b/log4j-mongodb/pom.xml
@@ -35,29 +35,63 @@
~ OSGi and JPMS options
-->
org.apache.logging.log4j.core
+
+
+ 5.1.3
+ 2.0.15
+
+
+
+
+ org.mongodb
+ bson
+ ${mongodb.version}
+
+
+
+ org.mongodb
+ mongodb-driver-core
+ ${mongodb.version}
+
+
+
+ org.mongodb
+ mongodb-driver-sync
+ ${mongodb.version}
+
+
+
+
+
+
org.apache.logging.log4j
log4j-api
+
org.apache.logging.log4j
log4j-core
+
org.mongodb
bson
+
org.mongodb
mongodb-driver-core
+
org.mongodb
mongodb-driver-sync
+
org.apache.logging.log4j
log4j-api-test
@@ -69,6 +103,7 @@
+
org.apache.logging.log4j
log4j-core-test
@@ -88,31 +123,19 @@
+
org.apache.commons
commons-lang3
test
-
- de.flapdoodle.embed
- de.flapdoodle.embed.mongo
- test
-
-
- de.flapdoodle.embed
- de.flapdoodle.embed.process
- test
-
-
- de.flapdoodle.reverse
- de.flapdoodle.reverse
- test
-
+
org.junit.jupiter
junit-jupiter-api
test
+
@@ -122,8 +145,7 @@
org.apache.maven.plugins
maven-surefire-plugin
-
- 1
+ true
@@ -142,4 +164,110 @@
+
+
+
+ docker
+
+
+
+
+ linux
+
+
+ env.CI
+ true
+
+
+
+
+
+
+
+ io.fabric8
+ docker-maven-plugin
+
+ all
+ true
+ true
+
+
+ mongo
+ mongo:latest
+
+
+
+ localhost:mongo.port:27017
+
+
+
+
+
+
+
+ start-mongo
+
+ start
+
+
+
+ stop-mongo
+
+ stop
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-failsafe-plugin
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ ${junit-jupiter.version}
+
+
+ org.slf4j
+ slf4j-nop
+ ${slf4j2.version}
+
+
+
+
+
+ integration-test
+ verify
+
+
+ true
+
+ **/*IT.java
+
+
+
+ OFF
+
+ ${mongo.port}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/AbstractMongoDbCappedTest.java b/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/AbstractMongoDbCappedIT.java
similarity index 84%
rename from log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/AbstractMongoDbCappedTest.java
rename to log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/AbstractMongoDbCappedIT.java
index 07e39339941..56cf3a89bee 100644
--- a/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/AbstractMongoDbCappedTest.java
+++ b/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/AbstractMongoDbCappedIT.java
@@ -23,17 +23,16 @@
import org.apache.logging.log4j.core.LoggerContext;
import org.bson.Document;
import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-public abstract class AbstractMongoDbCappedTest {
+abstract class AbstractMongoDbCappedIT {
- @Test
- public void test(final LoggerContext ctx, final MongoClient mongoClient) {
- final Logger logger = ctx.getLogger(AbstractMongoDbCappedTest.class);
+ protected void test(final LoggerContext ctx, final MongoClient mongoClient) {
+ final Logger logger = ctx.getLogger(AbstractMongoDbCappedIT.class);
logger.info("Hello log");
final MongoDatabase database = mongoClient.getDatabase(MongoDbTestConstants.DATABASE_NAME);
Assertions.assertNotNull(database);
- final MongoCollection collection = database.getCollection(MongoDbTestConstants.COLLECTION_NAME);
+ final MongoCollection collection =
+ database.getCollection(getClass().getSimpleName());
Assertions.assertNotNull(collection);
final Document first = collection.find().first();
Assertions.assertNotNull(first);
diff --git a/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbAdditionalFieldsTest.java b/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbAdditionalFieldsIT.java
similarity index 88%
rename from log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbAdditionalFieldsTest.java
rename to log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbAdditionalFieldsIT.java
index c74172925f5..f63ecf4ecfd 100644
--- a/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbAdditionalFieldsTest.java
+++ b/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbAdditionalFieldsIT.java
@@ -26,21 +26,25 @@
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
+import org.apache.logging.log4j.test.junit.UsingStatusListener;
import org.bson.Document;
import org.junit.jupiter.api.Test;
@UsingMongoDb
-@LoggerContextSource("log4j2-mongodb-additional-fields.xml")
-public class MongoDbAdditionalFieldsTest {
+@LoggerContextSource("MongoDbAdditionalFields.xml")
+// Print debug status logger output upon failure
+@UsingStatusListener
+class MongoDbAdditionalFieldsIT {
@Test
- public void test(final LoggerContext ctx, final MongoClient mongoClient) {
- final Logger logger = ctx.getLogger(MongoDbAdditionalFieldsTest.class);
+ void test(final LoggerContext ctx, final MongoClient mongoClient) {
+ final Logger logger = ctx.getLogger(MongoDbAdditionalFieldsIT.class);
logger.info("Hello log 1");
logger.info("Hello log 2", new RuntimeException("Hello ex 2"));
final MongoDatabase database = mongoClient.getDatabase(MongoDbTestConstants.DATABASE_NAME);
assertNotNull(database);
- final MongoCollection collection = database.getCollection(MongoDbTestConstants.COLLECTION_NAME);
+ final MongoCollection collection =
+ database.getCollection(getClass().getSimpleName());
assertNotNull(collection);
final FindIterable found = collection.find();
final Document first = found.first();
diff --git a/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbAuthFailureTest.java b/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbAuthFailureIT.java
similarity index 77%
rename from log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbAuthFailureTest.java
rename to log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbAuthFailureIT.java
index 3247dc28c06..5a44aa5456e 100644
--- a/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbAuthFailureTest.java
+++ b/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbAuthFailureIT.java
@@ -25,20 +25,25 @@
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
+import org.apache.logging.log4j.test.junit.UsingStatusListener;
import org.bson.Document;
import org.junit.jupiter.api.Test;
@UsingMongoDb
-@LoggerContextSource("log4j2-mongodb-auth-failure.xml")
-public class MongoDbAuthFailureTest {
+@LoggerContextSource("MongoDbAuthFailureIT.xml")
+// Print debug status logger output upon failure
+@UsingStatusListener
+class MongoDbAuthFailureIT {
@Test
- public void test(final LoggerContext ctx, final MongoClient mongoClient) {
- final Logger logger = ctx.getLogger(MongoDbAuthFailureTest.class);
+ void test(final LoggerContext ctx, final MongoClient mongoClient) {
+ final Logger logger = ctx.getLogger(MongoDbAuthFailureIT.class);
logger.info("Hello log");
final MongoDatabase database = mongoClient.getDatabase(MongoDbTestConstants.DATABASE_NAME);
assertNotNull(database);
- final MongoCollection collection = database.getCollection(MongoDbTestConstants.DATABASE_NAME);
+ final MongoCollection collection =
+ database.getCollection(getClass().getSimpleName());
+ ;
assertNotNull(collection);
final Document first = collection.find().first();
assertNull(first);
diff --git a/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbCappedLongTest.java b/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbCappedIntIT.java
similarity index 64%
rename from log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbCappedLongTest.java
rename to log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbCappedIntIT.java
index 34f921fe7bf..887132ded40 100644
--- a/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbCappedLongTest.java
+++ b/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbCappedIntIT.java
@@ -16,11 +16,21 @@
*/
package org.apache.logging.log4j.mongodb;
+import com.mongodb.client.MongoClient;
+import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
+import org.apache.logging.log4j.test.junit.UsingStatusListener;
+import org.junit.jupiter.api.Test;
@UsingMongoDb
-@LoggerContextSource("log4j2-mongodb-capped-long.xml")
-public class MongoDbCappedLongTest extends AbstractMongoDbCappedTest {
+@LoggerContextSource("MongoDbCappedIntIT.xml")
+// Print debug status logger output upon failure
+@UsingStatusListener
+class MongoDbCappedIntIT extends AbstractMongoDbCappedIT {
- // test is in superclass
+ @Test
+ @Override
+ protected void test(LoggerContext ctx, MongoClient mongoClient) {
+ super.test(ctx, mongoClient);
+ }
}
diff --git a/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbCappedIntTest.java b/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbCappedLongIT.java
similarity index 64%
rename from log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbCappedIntTest.java
rename to log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbCappedLongIT.java
index 500964aff08..bb6b4e65722 100644
--- a/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbCappedIntTest.java
+++ b/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbCappedLongIT.java
@@ -16,11 +16,21 @@
*/
package org.apache.logging.log4j.mongodb;
+import com.mongodb.client.MongoClient;
+import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
+import org.apache.logging.log4j.test.junit.UsingStatusListener;
+import org.junit.jupiter.api.Test;
@UsingMongoDb
-@LoggerContextSource("log4j2-mongodb-capped-int.xml")
-public class MongoDbCappedIntTest extends AbstractMongoDbCappedTest {
+@LoggerContextSource("MongoDbCappedLongIT.xml")
+// Print debug status logger output upon failure
+@UsingStatusListener
+class MongoDbCappedLongIT extends AbstractMongoDbCappedIT {
- // test is in superclass
+ @Test
+ @Override
+ protected void test(LoggerContext ctx, MongoClient mongoClient) {
+ super.test(ctx, mongoClient);
+ }
}
diff --git a/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbTest.java b/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbIT.java
similarity index 84%
rename from log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbTest.java
rename to log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbIT.java
index 5c4bbb750c1..d0f43cc70fd 100644
--- a/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbTest.java
+++ b/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbIT.java
@@ -26,21 +26,25 @@
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
+import org.apache.logging.log4j.test.junit.UsingStatusListener;
import org.bson.Document;
import org.junit.jupiter.api.Test;
@UsingMongoDb
-@LoggerContextSource("log4j2-mongodb.xml")
-public class MongoDbTest {
+@LoggerContextSource("MongoDbIT.xml")
+// Print debug status logger output upon failure
+@UsingStatusListener
+class MongoDbIT {
@Test
- public void test(final LoggerContext ctx, final MongoClient mongoClient) {
- final Logger logger = ctx.getLogger(MongoDbTest.class);
+ void test(final LoggerContext ctx, final MongoClient mongoClient) {
+ final Logger logger = ctx.getLogger(MongoDbIT.class);
logger.info("Hello log 1");
logger.info("Hello log 2", new RuntimeException("Hello ex 2"));
final MongoDatabase database = mongoClient.getDatabase(MongoDbTestConstants.DATABASE_NAME);
assertNotNull(database);
- final MongoCollection collection = database.getCollection(MongoDbTestConstants.COLLECTION_NAME);
+ final MongoCollection collection =
+ database.getCollection(getClass().getSimpleName());
assertNotNull(collection);
final FindIterable found = collection.find();
final Document first = found.first();
diff --git a/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbMapMessageTest.java b/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbMapMessageIT.java
similarity index 81%
rename from log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbMapMessageTest.java
rename to log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbMapMessageIT.java
index 2733554dbd3..b285529c0ce 100644
--- a/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbMapMessageTest.java
+++ b/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbMapMessageIT.java
@@ -23,24 +23,28 @@
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
import org.apache.logging.log4j.message.MapMessage;
+import org.apache.logging.log4j.test.junit.UsingStatusListener;
import org.bson.Document;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
@UsingMongoDb
-@LoggerContextSource("log4j2-mongodb-map-message.xml")
-public class MongoDbMapMessageTest {
+@LoggerContextSource("MongoDbMapMessageIT.xml")
+// Print debug status logger output upon failure
+@UsingStatusListener
+class MongoDbMapMessageIT {
@Test
- public void test(final LoggerContext ctx, final MongoClient mongoClient) {
- final Logger logger = ctx.getLogger(MongoDbMapMessageTest.class);
+ void test(final LoggerContext ctx, final MongoClient mongoClient) {
+ final Logger logger = ctx.getLogger(MongoDbMapMessageIT.class);
final MapMessage, Object> mapMessage = new MapMessage<>();
mapMessage.with("SomeName", "SomeValue");
mapMessage.with("SomeInt", 1);
logger.info(mapMessage);
final MongoDatabase database = mongoClient.getDatabase(MongoDbTestConstants.DATABASE_NAME);
Assertions.assertNotNull(database);
- final MongoCollection collection = database.getCollection(MongoDbTestConstants.COLLECTION_NAME);
+ final MongoCollection collection =
+ database.getCollection(getClass().getSimpleName());
Assertions.assertNotNull(collection);
final Document first = collection.find().first();
Assertions.assertNotNull(first);
diff --git a/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbResolver.java b/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbResolver.java
index 3fff459b74e..3c0888fc9d8 100644
--- a/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbResolver.java
+++ b/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbResolver.java
@@ -18,35 +18,9 @@
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
-import de.flapdoodle.embed.mongo.commands.ServerAddress;
-import de.flapdoodle.embed.mongo.distribution.Version;
-import de.flapdoodle.embed.mongo.packageresolver.Command;
-import de.flapdoodle.embed.mongo.transitions.Mongod;
-import de.flapdoodle.embed.mongo.transitions.PackageOfCommandDistribution;
-import de.flapdoodle.embed.mongo.transitions.RunningMongodProcess;
-import de.flapdoodle.embed.mongo.types.DistributionBaseUrl;
-import de.flapdoodle.embed.process.config.store.FileSet;
-import de.flapdoodle.embed.process.config.store.FileType;
-import de.flapdoodle.embed.process.config.store.Package;
-import de.flapdoodle.embed.process.distribution.Distribution;
-import de.flapdoodle.embed.process.io.ProcessOutput;
-import de.flapdoodle.embed.process.io.Processors;
-import de.flapdoodle.embed.process.io.StreamProcessor;
-import de.flapdoodle.embed.process.types.Name;
-import de.flapdoodle.embed.process.types.ProcessConfig;
-import de.flapdoodle.os.OSType;
-import de.flapdoodle.reverse.TransitionWalker.ReachedState;
-import de.flapdoodle.reverse.transitions.Derive;
-import de.flapdoodle.reverse.transitions.Start;
-import java.util.Objects;
import java.util.function.Supplier;
-import org.apache.commons.lang3.NotImplementedException;
-import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.test.TestProperties;
import org.apache.logging.log4j.test.junit.ExtensionContextAnchor;
-import org.apache.logging.log4j.test.junit.TestPropertySource;
+import org.apache.logging.log4j.util.PropertiesUtil;
import org.junit.jupiter.api.extension.BeforeAllCallback;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.jupiter.api.extension.ExtensionContext.Store.CloseableResource;
@@ -54,68 +28,13 @@
import org.junit.jupiter.api.extension.ParameterResolutionException;
import org.junit.jupiter.api.extension.support.TypeBasedParameterResolver;
-public class MongoDbResolver extends TypeBasedParameterResolver implements BeforeAllCallback {
+class MongoDbResolver extends TypeBasedParameterResolver implements BeforeAllCallback {
- private static final Logger LOGGER = StatusLogger.getLogger();
- private static final String LOGGING_TARGET_PROPERTY = "log4j2.mongoDbLoggingTarget";
-
- private static final int BUILDER_TIMEOUT_MILLIS = 30000;
-
- private static ProcessOutput getProcessOutput(final LoggingTarget loggingTarget, final String label) {
- if (loggingTarget != null) {
- switch (loggingTarget) {
- case STATUS_LOGGER:
- return ProcessOutput.builder()
- .output(Processors.named(
- "[" + label + " output]", new StatusLoggerStreamProcessor(Level.INFO)))
- .error(Processors.named(
- "[" + label + " error]", new StatusLoggerStreamProcessor(Level.ERROR)))
- .commands(new StatusLoggerStreamProcessor(Level.DEBUG))
- .build();
- case CONSOLE:
- return ProcessOutput.namedConsole(label);
- default:
- }
- }
- throw new NotImplementedException(Objects.toString(loggingTarget));
- }
+ static final String PORT_PROPERTY = "log4j2.mongo.port";
@Override
public void beforeAll(ExtensionContext context) throws Exception {
- final TestProperties props = TestPropertySource.createProperties(context);
- final Mongod mongod = Mongod.builder()
- .processOutput(Derive.given(Name.class)
- .state(ProcessOutput.class)
- .deriveBy(name -> getProcessOutput(
- LoggingTarget.getLoggingTarget(LoggingTarget.STATUS_LOGGER), name.value())))
- .processConfig(Start.to(ProcessConfig.class)
- .initializedWith(ProcessConfig.defaults().withStopTimeoutInMillis(BUILDER_TIMEOUT_MILLIS))
- .withTransitionLabel("create default"))
- // workaround for https://github.com/flapdoodle-oss/de.flapdoodle.embed.mongo/issues/309
- .packageOfDistribution(new PackageOfCommandDistribution() {
-
- @Override
- protected Package packageOf(
- Command command, Distribution distribution, DistributionBaseUrl baseUrl) {
- if (distribution.platform().operatingSystem().type() == OSType.Windows) {
- final Package relativePackage =
- commandPackageResolver().apply(command).packageFor(distribution);
- final FileSet.Builder fileSetBuilder = FileSet.builder()
- .addEntry(FileType.Library, "ssleay32.dll")
- .addEntry(FileType.Library, "libeay32.dll");
- relativePackage.fileSet().entries().forEach(fileSetBuilder::addEntries);
- return Package.builder()
- .archiveType(relativePackage.archiveType())
- .fileSet(fileSetBuilder.build())
- .url(baseUrl.value() + relativePackage.url())
- .hint(relativePackage.hint())
- .build();
- }
- return super.packageOf(command, distribution, baseUrl);
- }
- })
- .build();
- ExtensionContextAnchor.setAttribute(MongoClientHolder.class, new MongoClientHolder(mongod, props), context);
+ ExtensionContextAnchor.setAttribute(MongoClientHolder.class, new MongoClientHolder(), context);
}
@Override
@@ -125,25 +44,13 @@ public MongoClient resolveParameter(ParameterContext parameterContext, Extension
.get();
}
- public enum LoggingTarget {
- CONSOLE,
- STATUS_LOGGER;
-
- public static LoggingTarget getLoggingTarget(final LoggingTarget defaultValue) {
- return LoggingTarget.valueOf(System.getProperty(LOGGING_TARGET_PROPERTY, defaultValue.name()));
- }
- }
-
private static final class MongoClientHolder implements CloseableResource, Supplier {
- private final ReachedState state;
private final MongoClient mongoClient;
- public MongoClientHolder(final Mongod mongod, final TestProperties props) {
- state = mongod.start(Version.Main.V4_4);
- final RunningMongodProcess mongodProcess = state.current();
- final ServerAddress addr = mongodProcess.getServerAddress();
- mongoClient = MongoClients.create(String.format("mongodb://%s:%d", addr.getHost(), addr.getPort()));
- props.setProperty(MongoDbTestConstants.PROP_NAME_PORT, addr.getPort());
+ public MongoClientHolder() {
+ mongoClient = MongoClients.create(String.format(
+ "mongodb://localhost:%d",
+ PropertiesUtil.getProperties().getIntegerProperty(MongoDbTestConstants.PROP_NAME_PORT, 27017)));
}
@Override
@@ -154,30 +61,6 @@ public MongoClient get() {
@Override
public void close() throws Exception {
mongoClient.close();
- state.close();
- }
- }
-
- private static final class StatusLoggerStreamProcessor implements StreamProcessor {
-
- private final Level level;
-
- public StatusLoggerStreamProcessor(Level level) {
- this.level = level;
- }
-
- @Override
- public void process(String line) {
- LOGGER.log(level, () -> stripLineEndings(line));
- }
-
- @Override
- public void onProcessed() {}
-
- protected String stripLineEndings(String line) {
- // we still need to remove line endings that are passed on by
- // StreamToLineProcessor...
- return line.replaceAll("[\n\r]+", "");
}
}
}
diff --git a/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbResolverTest.java b/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbResolverIT.java
similarity index 86%
rename from log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbResolverTest.java
rename to log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbResolverIT.java
index 199cabcb2fe..dd6a544ca95 100644
--- a/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbResolverTest.java
+++ b/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbResolverIT.java
@@ -20,6 +20,7 @@
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoIterable;
+import org.apache.logging.log4j.test.junit.UsingStatusListener;
import org.junit.jupiter.api.Test;
/**
@@ -29,10 +30,12 @@
*
*/
@UsingMongoDb
-public class MongoDbResolverTest {
+// Print debug status logger output upon failure
+@UsingStatusListener
+class MongoDbResolverIT {
@Test
- public void testAccess(final MongoClient mongoClient) {
+ void testAccess(final MongoClient mongoClient) {
final MongoIterable databaseNames = mongoClient.listDatabaseNames();
assertNotNull(databaseNames);
assertNotNull(databaseNames.first());
diff --git a/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbTestConstants.java b/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbTestConstants.java
index ed5435599b9..95ed9ccbb5d 100644
--- a/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbTestConstants.java
+++ b/log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbTestConstants.java
@@ -18,7 +18,6 @@
public class MongoDbTestConstants {
- public static final String PROP_NAME_PORT = "MongoDBTestPort";
- static final String COLLECTION_NAME = "testCollection";
+ public static final String PROP_NAME_PORT = "log4j.mongo.port";
static final String DATABASE_NAME = "testDb";
}
diff --git a/log4j-mongodb/src/test/resources/MongoDbAdditionalFields.xml b/log4j-mongodb/src/test/resources/MongoDbAdditionalFields.xml
new file mode 100644
index 00000000000..600296753eb
--- /dev/null
+++ b/log4j-mongodb/src/test/resources/MongoDbAdditionalFields.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/log4j-mongodb/src/test/resources/log4j2-mongodb-auth-failure.xml b/log4j-mongodb/src/test/resources/MongoDbAuthFailureIT.xml
similarity index 67%
rename from log4j-mongodb/src/test/resources/log4j2-mongodb-auth-failure.xml
rename to log4j-mongodb/src/test/resources/MongoDbAuthFailureIT.xml
index e84603a0a52..797dfb47ed7 100644
--- a/log4j-mongodb/src/test/resources/log4j2-mongodb-auth-failure.xml
+++ b/log4j-mongodb/src/test/resources/MongoDbAuthFailureIT.xml
@@ -15,16 +15,20 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-
+
-
+
+ connection="mongodb://log4jUser:12345678@localhost:${sys:log4j.mongo.port:-27017}/testDb.MongoDbAuthFailureIT" />
-
+
diff --git a/log4j-mongodb/src/test/resources/log4j2-mongodb-capped-int.xml b/log4j-mongodb/src/test/resources/MongoDbCappedIntIT.xml
similarity index 70%
rename from log4j-mongodb/src/test/resources/log4j2-mongodb-capped-int.xml
rename to log4j-mongodb/src/test/resources/MongoDbCappedIntIT.xml
index 746b19914e7..f1574d396ae 100644
--- a/log4j-mongodb/src/test/resources/log4j2-mongodb-capped-int.xml
+++ b/log4j-mongodb/src/test/resources/MongoDbCappedIntIT.xml
@@ -15,18 +15,22 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-
+
-
+
-
+
diff --git a/log4j-mongodb/src/test/resources/log4j2-mongodb-capped-long.xml b/log4j-mongodb/src/test/resources/MongoDbCappedLongIT.xml
similarity index 71%
rename from log4j-mongodb/src/test/resources/log4j2-mongodb-capped-long.xml
rename to log4j-mongodb/src/test/resources/MongoDbCappedLongIT.xml
index 941ea71c4e2..0ac524fdea7 100644
--- a/log4j-mongodb/src/test/resources/log4j2-mongodb-capped-long.xml
+++ b/log4j-mongodb/src/test/resources/MongoDbCappedLongIT.xml
@@ -15,19 +15,23 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-
+
-
+
-
+
diff --git a/log4j-mongodb/src/test/resources/log4j2-mongodb-additional-fields.xml b/log4j-mongodb/src/test/resources/MongoDbIT.xml
similarity index 68%
rename from log4j-mongodb/src/test/resources/log4j2-mongodb-additional-fields.xml
rename to log4j-mongodb/src/test/resources/MongoDbIT.xml
index 89a642f3b5d..df713f01795 100644
--- a/log4j-mongodb/src/test/resources/log4j2-mongodb-additional-fields.xml
+++ b/log4j-mongodb/src/test/resources/MongoDbIT.xml
@@ -15,19 +15,19 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-
+
-
-
-
-
-
-
+
+
-
+
diff --git a/log4j-mongodb/src/test/resources/log4j2-mongodb-map-message.xml b/log4j-mongodb/src/test/resources/MongoDbMapMessageIT.xml
similarity index 68%
rename from log4j-mongodb/src/test/resources/log4j2-mongodb-map-message.xml
rename to log4j-mongodb/src/test/resources/MongoDbMapMessageIT.xml
index 4b740bc947e..774fa4bfaed 100644
--- a/log4j-mongodb/src/test/resources/log4j2-mongodb-map-message.xml
+++ b/log4j-mongodb/src/test/resources/MongoDbMapMessageIT.xml
@@ -15,16 +15,20 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-
+
-
-
+
+
-
+
diff --git a/log4j-mongodb/src/test/resources/log4j2-mongodb.xml b/log4j-mongodb/src/test/resources/log4j2-mongodb.xml
deleted file mode 100644
index 4f0865b2c46..00000000000
--- a/log4j-mongodb/src/test/resources/log4j2-mongodb.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/log4j-parent/pom.xml b/log4j-parent/pom.xml
index 8b9a935dcae..eb835fd6760 100644
--- a/log4j-parent/pom.xml
+++ b/log4j-parent/pom.xml
@@ -108,8 +108,6 @@
7.17.24
0.9.0
7.0.5
- 4.13.1
- 1.8.0
24.0.2
4.0.23
33.3.0-jre
@@ -137,7 +135,6 @@
1.4.14
3.9.9
5.13.0
- 5.1.3
15.4
1.3.0
3.21.0
@@ -263,12 +260,6 @@
${bsh.version}
-
- org.mongodb
- bson
- ${mongodb.version}
-
-
net.bytebuddy
byte-buddy
@@ -324,24 +315,6 @@
${commons-pool2.version}
-
- de.flapdoodle.embed
- de.flapdoodle.embed.mongo
- ${flapdoodle-embed.version}
-
-
-
- de.flapdoodle.embed
- de.flapdoodle.embed.process
- ${flapdoodle-embed.version}
-
-
-
- de.flapdoodle.reverse
- de.flapdoodle.reverse
- ${flapdoodle-reverse.version}
-
-
com.lmax
disruptor
@@ -550,18 +523,6 @@
${maven.version}
-
- org.mongodb
- mongodb-driver-core
- ${mongodb.version}
-
-
-
- org.mongodb
- mongodb-driver-sync
- ${mongodb.version}
-
-
org.openjdk.nashorn
nashorn-core
@@ -758,6 +719,12 @@
+
+ io.fabric8
+ docker-maven-plugin
+ ${docker-maven-plugin.version}
+
+
org.ops4j.pax.exam
exam-maven-plugin
diff --git a/pom.xml b/pom.xml
index 389afde6a3f..d8cba99194f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -367,6 +367,8 @@
${maven.multiModuleProjectDirectory}/target/plugin-descriptors/phase1
${maven.multiModuleProjectDirectory}/target/plugin-descriptors/phase2
+
+ 3.2.5
diff --git a/src/changelog/.3.x.x/2229_mongodb_docker.xml b/src/changelog/.3.x.x/2229_mongodb_docker.xml
new file mode 100644
index 00000000000..1d5b36ed1ca
--- /dev/null
+++ b/src/changelog/.3.x.x/2229_mongodb_docker.xml
@@ -0,0 +1,8 @@
+
+
+
+ Switch MongoDB tests to use Docker.
+