This is an automated email from the ASF dual-hosted git repository.
pkarwasz pushed a commit to branch 2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
The following commit(s) were added to refs/heads/2.x by this push:
new 8c4e45dbf0 Switch MongoDB tests to use Docker
8c4e45dbf0 is described below
commit 8c4e45dbf033b917c442e0cd1f8f19d42a88820d
Author: Piotr P. Karwasz <[email protected]>
AuthorDate: Fri Sep 6 08:53:43 2024 +0200
Switch MongoDB tests to use Docker
MongoDB is a binary server. The current `log4j-mongodb`
tests download a **generic** binary MongoDB distribution
and try to run it. The distribution is not self-contained
and requires several libraries (e.g., OpenSSL) to be available
on the target host.
Those libraries are not always available in the required version:
e.g., currently MongoDB needs OpenSSL 1, but OpenSSL 3 is bundled
in the most recent Debian.
This PR switches from the binary distribution to the usage of
the **latest** Docker image available.
The advantages of this approach are:
- We always test against the newest server version available.
- The success of the tests does not depend on the libraries
installed on the host.
- Tests can run in parallel. In the current approach, parallel
tests failed since each one tried to download MongoDB
separately.
The main disadvantage is that Docker will be required to test
`log4j-mongodb`. This is the case for the CI, but individual
developers might need to install it too.
Co-authored-by: Volkan Yazıcı <[email protected]>
---
BUILDING.adoc | 7 +
log4j-mongodb/pom.xml | 157 +++++++++++++++++----
...appedTest.java => AbstractMongoDbCappedIT.java} | 11 +-
...ldsTest.java => MongoDbAdditionalFieldsIT.java} | 14 +-
...hFailureTest.java => MongoDbAuthFailureIT.java} | 15 +-
...bCappedIntTest.java => MongoDbCappedIntIT.java} | 16 ++-
...appedLongTest.java => MongoDbCappedLongIT.java} | 16 ++-
.../mongodb/{MongoDbTest.java => MongoDbIT.java} | 14 +-
...apMessageTest.java => MongoDbMapMessageIT.java} | 14 +-
.../logging/log4j/mongodb/MongoDbResolver.java | 135 ++----------------
...oDbResolverTest.java => MongoDbResolverIT.java} | 7 +-
.../log4j/mongodb/MongoDbTestConstants.java | 3 +-
...onal-fields.xml => MongoDbAdditionalFields.xml} | 20 +--
...b-auth-failure.xml => MongoDbAuthFailureIT.xml} | 12 +-
...ngodb-capped-int.xml => MongoDbCappedIntIT.xml} | 12 +-
...odb-capped-long.xml => MongoDbCappedLongIT.xml} | 12 +-
...mongodb-additional-fields.xml => MongoDbIT.xml} | 16 +--
...odb-map-message.xml => MongoDbMapMessageIT.xml} | 12 +-
.../src/test/resources/log4j2-mongodb.xml | 29 ----
log4j-mongodb4/pom.xml | 144 ++++++++++++++++---
...ppedTest.java => AbstractMongoDb4CappedIT.java} | 11 +-
...dsTest.java => MongoDb4AdditionalFieldsIT.java} | 14 +-
...FailureTest.java => MongoDb4AuthFailureIT.java} | 15 +-
...CappedIntTest.java => MongoDb4CappedIntIT.java} | 16 ++-
...ppedLongTest.java => MongoDb4CappedLongIT.java} | 16 ++-
.../{MongoDb4Test.java => MongoDb4IT.java} | 14 +-
...pMessageTest.java => MongoDb4MapMessageIT.java} | 14 +-
.../logging/log4j/mongodb4/MongoDb4Resolver.java | 137 ++----------------
...b4ResolverTest.java => MongoDb4ResolverIT.java} | 7 +-
.../log4j/mongodb4/MongoDb4TestConstants.java | 3 +-
.../test/resources/MongoDb4AdditionalFields.xml | 20 +--
...-auth-failure.xml => MongoDb4AuthFailureIT.xml} | 12 +-
...godb-capped-int.xml => MongoDb4CappedIntIT.xml} | 12 +-
...db-capped-long.xml => MongoDb4CappedLongIT.xml} | 12 +-
.../src/test/resources/MongoDb4IT.xml | 13 +-
...db-map-message.xml => MongoDb4MapMessageIT.xml} | 12 +-
.../resources/log4j2-mongodb-additional-fields.xml | 33 -----
.../src/test/resources/log4j2-mongodb.xml | 29 ----
log4j-parent/pom.xml | 22 +--
src/changelog/.2.x.x/2229_mongodb_docker.xml | 8 ++
40 files changed, 534 insertions(+), 552 deletions(-)
diff --git a/BUILDING.adoc b/BUILDING.adoc
index 27d76641b6..98166cae28 100644
--- a/BUILDING.adoc
+++ b/BUILDING.adoc
@@ -85,6 +85,13 @@ You either need to have a user-level configuration in
`~/.m2/toolchains.xml` or
./mvnw verify -Pjava8-tests,!java8-incompat-fixes
----
+[#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-mongodb/pom.xml b/log4j-mongodb/pom.xml
index e76c2ad14c..754b772f20 100644
--- a/log4j-mongodb/pom.xml
+++ b/log4j-mongodb/pom.xml
@@ -30,56 +30,59 @@
<!-- OSGi and JPMS options -->
<Fragment-Host>org.apache.logging.log4j.core</Fragment-Host>
<!-- Dependency versions -->
- <mongodb5.version>5.1.4</mongodb5.version>
- <!-- TODO: Remove in next release after 2.24.0. -->
- <bnd.baseline.fail.on.missing>false</bnd.baseline.fail.on.missing>
- <bnd.baseline.skip>true</bnd.baseline.skip>
+ <mongodb.version>5.1.3</mongodb.version>
+ <slf4j2.version>2.0.15</slf4j2.version>
</properties>
<dependencyManagement>
<dependencies>
+
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId>
- <version>${mongodb5.version}</version>
+ <version>${mongodb.version}</version>
</dependency>
+
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-core</artifactId>
- <version>${mongodb5.version}</version>
- </dependency>
- <dependency>
- <groupId>org.mongodb</groupId>
- <artifactId>mongodb-driver-legacy</artifactId>
- <version>${mongodb5.version}</version>
+ <version>${mongodb.version}</version>
</dependency>
+
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
- <version>${mongodb5.version}</version>
+ <version>${mongodb.version}</version>
</dependency>
+
</dependencies>
</dependencyManagement>
<dependencies>
+
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
+
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-mongodb4</artifactId>
</dependency>
+
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId>
</dependency>
+
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-core</artifactId>
</dependency>
+
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
</dependency>
+
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api-test</artifactId>
@@ -91,6 +94,7 @@
</exclusion>
</exclusions>
</dependency>
+
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core-test</artifactId>
@@ -102,31 +106,19 @@
</exclusion>
</exclusions>
</dependency>
+
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>de.flapdoodle.embed</groupId>
- <artifactId>de.flapdoodle.embed.mongo</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>de.flapdoodle.embed</groupId>
- <artifactId>de.flapdoodle.embed.process</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>de.flapdoodle.reverse</groupId>
- <artifactId>de.flapdoodle.reverse</artifactId>
- <scope>test</scope>
- </dependency>
+
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
+
</dependencies>
<build>
<plugins>
@@ -134,8 +126,7 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
- <!-- TODO: fix concurrent download of MongoDB distribution. -->
- <forkCount>1</forkCount>
+ <skip>true</skip>
</configuration>
<dependencies>
<dependency>
@@ -145,6 +136,114 @@
</dependency>
</dependencies>
</plugin>
+
</plugins>
</build>
+
+ <profiles>
+ <profile>
+
+ <id>docker</id>
+
+ <!--
+ ~ Only the `ubuntu` CI runners have access to Docker
+ -->
+ <activation>
+ <os>
+ <family>linux</family>
+ </os>
+ <property>
+ <name>env.CI</name>
+ <value>true</value>
+ </property>
+ </activation>
+
+ <build>
+ <plugins>
+
+ <plugin>
+ <groupId>io.fabric8</groupId>
+ <artifactId>docker-maven-plugin</artifactId>
+ <configuration>
+ <verbose>all</verbose>
+ <startParallel>true</startParallel>
+ <autoCreateCustomNetworks>true</autoCreateCustomNetworks>
+ <images>
+ <image>
+ <alias>mongo</alias>
+ <name>mongo:latest</name>
+ <run>
+ <ports>
+ <!--
+ ~ Binds an ephemeral port on the host to port 27017 in
the container.
+ ~ Assigns the value of the port to the `mongo.port`
property.
+ -->
+ <port>localhost:mongo.port:27017</port>
+ </ports>
+ </run>
+ </image>
+ </images>
+ </configuration>
+ <executions>
+ <execution>
+ <id>start-mongo</id>
+ <goals>
+ <goal>start</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>stop-mongo</id>
+ <goals>
+ <goal>stop</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-engine</artifactId>
+ <version>${junit-jupiter.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-nop</artifactId>
+ <version>${slf4j2.version}</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ <configuration>
+ <reuseForks>true</reuseForks>
+ <includes>
+ <include>**/*IT.java</include>
+ </includes>
+ <systemPropertyVariables>
+ <!--
+ ~ Silence the tests.
+ ~ Annotate tests with `@UsingStatusListener` to see
debug output on error
+ -->
+ <log4j.statusLogger.level>OFF</log4j.statusLogger.level>
+ <!-- The `mongo.port` variable is created by
`docker-maven-plugin` -->
+ <log4j.mongo.port>${mongo.port}</log4j.mongo.port>
+ </systemPropertyVariables>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+
+ </profile>
+ </profiles>
+
</project>
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 07e3933994..56cf3a89be 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.Logger;
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<Document> collection =
database.getCollection(MongoDbTestConstants.COLLECTION_NAME);
+ final MongoCollection<Document> 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 c74172925f..f63ecf4ecf 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 com.mongodb.client.MongoDatabase;
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<Document> collection =
database.getCollection(MongoDbTestConstants.COLLECTION_NAME);
+ final MongoCollection<Document> collection =
+ database.getCollection(getClass().getSimpleName());
assertNotNull(collection);
final FindIterable<Document> 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 3247dc28c0..5a44aa5456 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 com.mongodb.client.MongoDatabase;
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<Document> collection =
database.getCollection(MongoDbTestConstants.DATABASE_NAME);
+ final MongoCollection<Document> 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/MongoDbCappedIntTest.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/MongoDbCappedIntTest.java
rename to
log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbCappedIntIT.java
index 500964aff0..887132ded4 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/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-int.xml")
-public class MongoDbCappedIntTest 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/MongoDbCappedLongTest.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/MongoDbCappedLongTest.java
rename to
log4j-mongodb/src/test/java/org/apache/logging/log4j/mongodb/MongoDbCappedLongIT.java
index 34f921fe7b..bb6b4e6572 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/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-long.xml")
-public class MongoDbCappedLongTest 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 5c4bbb750c..d0f43cc70f 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 com.mongodb.client.MongoDatabase;
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<Document> collection =
database.getCollection(MongoDbTestConstants.COLLECTION_NAME);
+ final MongoCollection<Document> collection =
+ database.getCollection(getClass().getSimpleName());
assertNotNull(collection);
final FindIterable<Document> 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 2733554dbd..b285529c0c 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.Logger;
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<Document> collection =
database.getCollection(MongoDbTestConstants.COLLECTION_NAME);
+ final MongoCollection<Document> 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 4b1f394b76..1246d48e49 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,67 +18,19 @@ package org.apache.logging.log4j.mongodb;
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.test.junit.TypeBasedParameterResolver;
+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;
import org.junit.jupiter.api.extension.ParameterContext;
import org.junit.jupiter.api.extension.ParameterResolutionException;
-public class MongoDbResolver extends TypeBasedParameterResolver<MongoClient>
implements BeforeAllCallback {
+class MongoDbResolver extends TypeBasedParameterResolver<MongoClient>
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";
public MongoDbResolver() {
super(MongoClient.class);
@@ -86,40 +38,7 @@ public class MongoDbResolver extends
TypeBasedParameterResolver<MongoClient> imp
@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
@@ -129,25 +48,13 @@ public class MongoDbResolver extends
TypeBasedParameterResolver<MongoClient> imp
.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<MongoClient> {
- private final ReachedState<RunningMongodProcess> state;
private final MongoClient mongoClient;
- public MongoClientHolder(final Mongod mongod, final TestProperties
props) {
- state = mongod.start(Version.Main.V7_0);
- 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
@@ -158,32 +65,6 @@ public class MongoDbResolver extends
TypeBasedParameterResolver<MongoClient> imp
@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() {
- // noop
- }
-
- 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 199cabcb2f..dd6a544ca9 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 static org.junit.jupiter.api.Assertions.assertNotNull;
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 @@ import org.junit.jupiter.api.Test;
* </p>
*/
@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<String> 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 ed5435599b..95ed9ccbb5 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 @@ package org.apache.logging.log4j.mongodb;
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/log4j2-mongodb-additional-fields.xml
b/log4j-mongodb/src/test/resources/MongoDbAdditionalFields.xml
similarity index 60%
copy from log4j-mongodb/src/test/resources/log4j2-mongodb-additional-fields.xml
copy to log4j-mongodb/src/test/resources/MongoDbAdditionalFields.xml
index d9d27461a0..96528f1391 100644
--- a/log4j-mongodb/src/test/resources/log4j2-mongodb-additional-fields.xml
+++ b/log4j-mongodb/src/test/resources/MongoDbAdditionalFields.xml
@@ -15,19 +15,23 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<Configuration status="TRACE">
+<Configuration xmlns="https://logging.apache.org/xml/ns"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ https://logging.apache.org/xml/ns
+ https://logging.apache.org/xml/ns/log4j-config-2.xsd">
<Appenders>
- <NoSql name="MongoDbAppender">
- <MongoDb
connection="mongodb://localhost:${test:MongoDBTestPort:-27017}/testDb.testCollection"
/>
- <KeyValuePair key="A" value="1" />
- <KeyValuePair key="B" value="2" />
- <KeyValuePair key="env1" value="${env:PATH}" />
- <KeyValuePair key="env2" value="$${env:PATH}" />
+ <NoSql name="MONGO">
+ <MongoDb
connection="mongodb://localhost:${sys:log4j.mongo.port:-27017}/testDb.MongoDbAdditionalFieldsIT"/>
+ <KeyValuePair key="A" value="1"/>
+ <KeyValuePair key="B" value="2"/>
+ <KeyValuePair key="env1" value="${env:PATH}"/>
+ <KeyValuePair key="env2" value="$${env:PATH}"/>
</NoSql>
</Appenders>
<Loggers>
<Root level="ALL">
- <AppenderRef ref="MongoDbAppender" />
+ <AppenderRef ref="MONGO"/>
</Root>
</Loggers>
</Configuration>
diff --git a/log4j-mongodb/src/test/resources/log4j2-mongodb-auth-failure.xml
b/log4j-mongodb/src/test/resources/MongoDbAuthFailureIT.xml
similarity index 67%
copy from log4j-mongodb/src/test/resources/log4j2-mongodb-auth-failure.xml
copy to log4j-mongodb/src/test/resources/MongoDbAuthFailureIT.xml
index e84603a0a5..23fbbdf3ac 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.
-->
-<Configuration status="WARN">
+<Configuration xmlns="https://logging.apache.org/xml/ns"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ https://logging.apache.org/xml/ns
+ https://logging.apache.org/xml/ns/log4j-config-2.xsd">
<Appenders>
- <NoSql name="MongoDbAppender">
+ <NoSql name="MONGO">
<MongoDb
-
connection="mongodb://log4jUser:12345678@localhost:${test:MongoDBTestPort:-27017}/testDb.testCollection"
/>
+
connection="mongodb://log4jUser:12345678@localhost:${sys:log4j.mongo.port:-27017}/testDb.MongoDbAuthFailureIT"
/>
</NoSql>
</Appenders>
<Loggers>
<Root level="ALL">
- <AppenderRef ref="MongoDbAppender" />
+ <AppenderRef ref="MONGO" />
</Root>
</Loggers>
</Configuration>
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 746b19914e..bdaa8e3f40 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.
-->
-<Configuration status="WARN">
+<Configuration xmlns="https://logging.apache.org/xml/ns"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ https://logging.apache.org/xml/ns
+ https://logging.apache.org/xml/ns/log4j-config-2.xsd">
<Appenders>
- <NoSql name="MongoDbAppender">
+ <NoSql name="MONGO">
<MongoDb
-
connection="mongodb://localhost:${test:MongoDBTestPort:-27017}/testDb.testCollection"
+
connection="mongodb://localhost:${sys:log4j.mongo.port:-27017}/testDb.MongoDbCappedIntIT"
capped="true"
collectionSize="1073741824"/>
</NoSql>
</Appenders>
<Loggers>
<Root level="ALL">
- <AppenderRef ref="MongoDbAppender" />
+ <AppenderRef ref="MONGO" />
</Root>
</Loggers>
</Configuration>
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 941ea71c4e..6e3b8d6aad 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.
-->
-<Configuration status="WARN">
+<Configuration xmlns="https://logging.apache.org/xml/ns"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ https://logging.apache.org/xml/ns
+ https://logging.apache.org/xml/ns/log4j-config-2.xsd">
<Appenders>
- <NoSql name="MongoDbAppender">
+ <NoSql name="MONGO">
<!-- collectionSize="2147483657" is max int + 10 -->
<MongoDb
-
connection="mongodb://localhost:${test:MongoDBTestPort:-27017}/testDb.testCollection"
+
connection="mongodb://localhost:${sys:log4j.mongo.port:-27017}/testDb.MongoDbCappedLongIT"
capped="true"
collectionSize="2147483657"/>
</NoSql>
</Appenders>
<Loggers>
<Root level="ALL">
- <AppenderRef ref="MongoDbAppender" />
+ <AppenderRef ref="MONGO" />
</Root>
</Loggers>
</Configuration>
diff --git
a/log4j-mongodb/src/test/resources/log4j2-mongodb-additional-fields.xml
b/log4j-mongodb/src/test/resources/MongoDbIT.xml
similarity index 68%
copy from log4j-mongodb/src/test/resources/log4j2-mongodb-additional-fields.xml
copy to log4j-mongodb/src/test/resources/MongoDbIT.xml
index d9d27461a0..9c9ab6037e 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.
-->
-<Configuration status="TRACE">
+<Configuration xmlns="https://logging.apache.org/xml/ns"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ https://logging.apache.org/xml/ns
+ https://logging.apache.org/xml/ns/log4j-config-2.xsd">
<Appenders>
- <NoSql name="MongoDbAppender">
- <MongoDb
connection="mongodb://localhost:${test:MongoDBTestPort:-27017}/testDb.testCollection"
/>
- <KeyValuePair key="A" value="1" />
- <KeyValuePair key="B" value="2" />
- <KeyValuePair key="env1" value="${env:PATH}" />
- <KeyValuePair key="env2" value="$${env:PATH}" />
+ <NoSql name="MONGO">
+ <MongoDb
connection="mongodb://localhost:${sys:log4j.mongo.port:-27017}/testDb.MongoDbIT"
/>
</NoSql>
</Appenders>
<Loggers>
<Root level="ALL">
- <AppenderRef ref="MongoDbAppender" />
+ <AppenderRef ref="MONGO" />
</Root>
</Loggers>
</Configuration>
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 4b740bc947..dc6aa6846b 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.
-->
-<Configuration status="WARN">
+<Configuration xmlns="https://logging.apache.org/xml/ns"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ https://logging.apache.org/xml/ns
+ https://logging.apache.org/xml/ns/log4j-config-2.xsd">
<Appenders>
- <NoSql name="MongoDbAppender">
- <MongoDb
connection="mongodb://localhost:${test:MongoDBTestPort:-27017}/testDb.testCollection"
/>
+ <NoSql name="MONGO">
<MessageLayout />
+ <MongoDb
connection="mongodb://localhost:${sys:log4j.mongo.port:-27017}/testDb.MongoDbMapMessageIT"
/>
</NoSql>
</Appenders>
<Loggers>
<Root level="ALL">
- <AppenderRef ref="MongoDbAppender" />
+ <AppenderRef ref="MONGO" />
</Root>
</Loggers>
</Configuration>
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 4f0865b2c4..0000000000
--- a/log4j-mongodb/src/test/resources/log4j2-mongodb.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ~ Licensed to the Apache Software Foundation (ASF) under one or more
- ~ contributor license agreements. See the NOTICE file distributed with
- ~ this work for additional information regarding copyright ownership.
- ~ The ASF licenses this file to you under the Apache License, Version 2.0
- ~ (the "License"); you may not use this file except in compliance with
- ~ the License. You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License.
- -->
-<Configuration status="WARN">
- <Appenders>
- <NoSql name="MongoDbAppender">
- <MongoDb
connection="mongodb://localhost:${test:MongoDBTestPort:-27017}/testDb.testCollection"
/>
- </NoSql>
- </Appenders>
- <Loggers>
- <Root level="ALL">
- <AppenderRef ref="MongoDbAppender" />
- </Root>
- </Loggers>
-</Configuration>
diff --git a/log4j-mongodb4/pom.xml b/log4j-mongodb4/pom.xml
index af55eb78e1..04639d0b53 100644
--- a/log4j-mongodb4/pom.xml
+++ b/log4j-mongodb4/pom.xml
@@ -36,54 +36,60 @@
<Fragment-Host>org.apache.logging.log4j.core</Fragment-Host>
<!-- Dependency versions -->
<mongodb4.version>4.11.4</mongodb4.version>
+ <slf4j.version>1.7.36</slf4j.version>
</properties>
<dependencyManagement>
<dependencies>
+
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId>
<version>${mongodb4.version}</version>
</dependency>
+
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-core</artifactId>
<version>${mongodb4.version}</version>
</dependency>
- <dependency>
- <groupId>org.mongodb</groupId>
- <artifactId>mongodb-driver-legacy</artifactId>
- <version>${mongodb4.version}</version>
- </dependency>
+
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>${mongodb4.version}</version>
</dependency>
+
</dependencies>
</dependencyManagement>
<dependencies>
+
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
+
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
+
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId>
</dependency>
+
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-core</artifactId>
</dependency>
+
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
</dependency>
+
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api-test</artifactId>
@@ -95,6 +101,7 @@
</exclusion>
</exclusions>
</dependency>
+
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core-test</artifactId>
@@ -106,31 +113,19 @@
</exclusion>
</exclusions>
</dependency>
+
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>de.flapdoodle.embed</groupId>
- <artifactId>de.flapdoodle.embed.mongo</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>de.flapdoodle.embed</groupId>
- <artifactId>de.flapdoodle.embed.process</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>de.flapdoodle.reverse</groupId>
- <artifactId>de.flapdoodle.reverse</artifactId>
- <scope>test</scope>
- </dependency>
+
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
+
</dependencies>
<build>
@@ -140,8 +135,7 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
- <!-- TODO: fix concurrent download of MongoDB distribution. -->
- <forkCount>1</forkCount>
+ <skip>true</skip>
</configuration>
<dependencies>
<dependency>
@@ -155,4 +149,110 @@
</plugins>
</build>
+ <profiles>
+ <profile>
+
+ <id>docker</id>
+
+ <!--
+ ~ Only the `ubuntu` CI runners have access to Docker
+ -->
+ <activation>
+ <os>
+ <family>linux</family>
+ </os>
+ <property>
+ <name>env.CI</name>
+ <value>true</value>
+ </property>
+ </activation>
+
+ <build>
+ <plugins>
+
+ <plugin>
+ <groupId>io.fabric8</groupId>
+ <artifactId>docker-maven-plugin</artifactId>
+ <configuration>
+ <verbose>all</verbose>
+ <startParallel>true</startParallel>
+ <autoCreateCustomNetworks>true</autoCreateCustomNetworks>
+ <images>
+ <image>
+ <alias>mongo</alias>
+ <name>mongo:latest</name>
+ <run>
+ <ports>
+ <!--
+ ~ Binds an ephemeral port on the host to port 27017 in
the container.
+ ~ Assigns the value of the port to the `mongo.port`
property.
+ -->
+ <port>localhost:mongo.port:27017</port>
+ </ports>
+ </run>
+ </image>
+ </images>
+ </configuration>
+ <executions>
+ <execution>
+ <id>start-mongo</id>
+ <goals>
+ <goal>start</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>stop-mongo</id>
+ <goals>
+ <goal>stop</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter-engine</artifactId>
+ <version>${junit-jupiter.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-nop</artifactId>
+ <version>${slf4j.version}</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ <configuration>
+ <reuseForks>true</reuseForks>
+ <includes>
+ <include>**/*IT.java</include>
+ </includes>
+ <systemPropertyVariables>
+ <!--
+ ~ Silence the tests.
+ ~ Annotate tests with `@UsingStatusListener` to see
debug output on error
+ -->
+ <log4j.statusLogger.level>OFF</log4j.statusLogger.level>
+ <!-- The `mongo.port` variable is created by
`docker-maven-plugin` -->
+ <log4j.mongo.port>${mongo.port}</log4j.mongo.port>
+ </systemPropertyVariables>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+
+ </profile>
+ </profiles>
+
</project>
diff --git
a/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/AbstractMongoDb4CappedTest.java
b/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/AbstractMongoDb4CappedIT.java
similarity index 84%
rename from
log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/AbstractMongoDb4CappedTest.java
rename to
log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/AbstractMongoDb4CappedIT.java
index 6f54e77c7e..6be4f7f685 100644
---
a/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/AbstractMongoDb4CappedTest.java
+++
b/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/AbstractMongoDb4CappedIT.java
@@ -23,17 +23,16 @@ import org.apache.logging.log4j.Logger;
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 AbstractMongoDb4CappedTest {
+abstract class AbstractMongoDb4CappedIT {
- @Test
- public void test(final LoggerContext ctx, final MongoClient mongoClient) {
- final Logger logger = ctx.getLogger(AbstractMongoDb4CappedTest.class);
+ protected void test(final LoggerContext ctx, final MongoClient
mongoClient) {
+ final Logger logger = ctx.getLogger(AbstractMongoDb4CappedIT.class);
logger.info("Hello log");
final MongoDatabase database =
mongoClient.getDatabase(MongoDb4TestConstants.DATABASE_NAME);
Assertions.assertNotNull(database);
- final MongoCollection<Document> collection =
database.getCollection(MongoDb4TestConstants.COLLECTION_NAME);
+ final MongoCollection<Document> collection =
+ database.getCollection(getClass().getSimpleName());
Assertions.assertNotNull(collection);
final Document first = collection.find().first();
Assertions.assertNotNull(first);
diff --git
a/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4AdditionalFieldsTest.java
b/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4AdditionalFieldsIT.java
similarity index 88%
rename from
log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4AdditionalFieldsTest.java
rename to
log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4AdditionalFieldsIT.java
index 27062452bf..b5ccc77e73 100644
---
a/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4AdditionalFieldsTest.java
+++
b/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4AdditionalFieldsIT.java
@@ -26,21 +26,25 @@ import com.mongodb.client.MongoDatabase;
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;
@UsingMongoDb4
-@LoggerContextSource("log4j2-mongodb-additional-fields.xml")
-public class MongoDb4AdditionalFieldsTest {
+@LoggerContextSource("MongoDb4AdditionalFields.xml")
+// Print debug status logger output upon failure
+@UsingStatusListener
+class MongoDb4AdditionalFieldsIT {
@Test
- public void test(final LoggerContext ctx, final MongoClient mongoClient) {
- final Logger logger =
ctx.getLogger(MongoDb4AdditionalFieldsTest.class);
+ void test(final LoggerContext ctx, final MongoClient mongoClient) {
+ final Logger logger = ctx.getLogger(MongoDb4AdditionalFieldsIT.class);
logger.info("Hello log 1");
logger.info("Hello log 2", new RuntimeException("Hello ex 2"));
final MongoDatabase database =
mongoClient.getDatabase(MongoDb4TestConstants.DATABASE_NAME);
assertNotNull(database);
- final MongoCollection<Document> collection =
database.getCollection(MongoDb4TestConstants.COLLECTION_NAME);
+ final MongoCollection<Document> collection =
+ database.getCollection(getClass().getSimpleName());
assertNotNull(collection);
final FindIterable<Document> found = collection.find();
final Document first = found.first();
diff --git
a/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4AuthFailureTest.java
b/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4AuthFailureIT.java
similarity index 76%
rename from
log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4AuthFailureTest.java
rename to
log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4AuthFailureIT.java
index 641305256c..c5b5b15c6d 100644
---
a/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4AuthFailureTest.java
+++
b/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4AuthFailureIT.java
@@ -25,20 +25,25 @@ import com.mongodb.client.MongoDatabase;
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;
@UsingMongoDb4
-@LoggerContextSource("log4j2-mongodb-auth-failure.xml")
-public class MongoDb4AuthFailureTest {
+@LoggerContextSource("MongoDb4AuthFailureIT.xml")
+// Print debug status logger output upon failure
+@UsingStatusListener
+class MongoDb4AuthFailureIT {
@Test
- public void test(final LoggerContext ctx, final MongoClient mongoClient) {
- final Logger logger = ctx.getLogger(MongoDb4AuthFailureTest.class);
+ void test(final LoggerContext ctx, final MongoClient mongoClient) {
+ final Logger logger = ctx.getLogger(MongoDb4AuthFailureIT.class);
logger.info("Hello log");
final MongoDatabase database =
mongoClient.getDatabase(MongoDb4TestConstants.DATABASE_NAME);
assertNotNull(database);
- final MongoCollection<Document> collection =
database.getCollection(MongoDb4TestConstants.DATABASE_NAME);
+ final MongoCollection<Document> collection =
+ database.getCollection(getClass().getSimpleName());
+ ;
assertNotNull(collection);
final Document first = collection.find().first();
assertNull(first);
diff --git
a/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4CappedIntTest.java
b/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4CappedIntIT.java
similarity index 64%
rename from
log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4CappedIntTest.java
rename to
log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4CappedIntIT.java
index e01e0c0d63..24add71aa5 100644
---
a/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4CappedIntTest.java
+++
b/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4CappedIntIT.java
@@ -16,11 +16,21 @@
*/
package org.apache.logging.log4j.mongodb4;
+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;
@UsingMongoDb4
-@LoggerContextSource("log4j2-mongodb-capped-int.xml")
-public class MongoDb4CappedIntTest extends AbstractMongoDb4CappedTest {
+@LoggerContextSource("MongoDb4CappedIntIT.xml")
+// Print debug status logger output upon failure
+@UsingStatusListener
+class MongoDb4CappedIntIT extends AbstractMongoDb4CappedIT {
- // test is in superclass
+ @Test
+ @Override
+ protected void test(LoggerContext ctx, MongoClient mongoClient) {
+ super.test(ctx, mongoClient);
+ }
}
diff --git
a/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4CappedLongTest.java
b/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4CappedLongIT.java
similarity index 64%
rename from
log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4CappedLongTest.java
rename to
log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4CappedLongIT.java
index 0a99dbf5b8..580c6c60fa 100644
---
a/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4CappedLongTest.java
+++
b/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4CappedLongIT.java
@@ -16,11 +16,21 @@
*/
package org.apache.logging.log4j.mongodb4;
+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;
@UsingMongoDb4
-@LoggerContextSource("log4j2-mongodb-capped-long.xml")
-public class MongoDb4CappedLongTest extends AbstractMongoDb4CappedTest {
+@LoggerContextSource("MongoDb4CappedLongIT.xml")
+// Print debug status logger output upon failure
+@UsingStatusListener
+class MongoDb4CappedLongIT extends AbstractMongoDb4CappedIT {
- // test is in superclass
+ @Test
+ @Override
+ protected void test(LoggerContext ctx, MongoClient mongoClient) {
+ super.test(ctx, mongoClient);
+ }
}
diff --git
a/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4Test.java
b/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4IT.java
similarity index 84%
rename from
log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4Test.java
rename to
log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4IT.java
index 140a959750..ac0c550efc 100644
---
a/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4Test.java
+++
b/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4IT.java
@@ -26,21 +26,25 @@ import com.mongodb.client.MongoDatabase;
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;
@UsingMongoDb4
-@LoggerContextSource("log4j2-mongodb.xml")
-public class MongoDb4Test {
+@LoggerContextSource("MongoDb4IT.xml")
+// Print debug status logger output upon failure
+@UsingStatusListener
+class MongoDb4IT {
@Test
- public void test(final LoggerContext ctx, final MongoClient mongoClient) {
- final Logger logger = ctx.getLogger(MongoDb4Test.class);
+ void test(final LoggerContext ctx, final MongoClient mongoClient) {
+ final Logger logger = ctx.getLogger(MongoDb4IT.class);
logger.info("Hello log 1");
logger.info("Hello log 2", new RuntimeException("Hello ex 2"));
final MongoDatabase database =
mongoClient.getDatabase(MongoDb4TestConstants.DATABASE_NAME);
assertNotNull(database);
- final MongoCollection<Document> collection =
database.getCollection(MongoDb4TestConstants.COLLECTION_NAME);
+ final MongoCollection<Document> collection =
+ database.getCollection(getClass().getSimpleName());
assertNotNull(collection);
final FindIterable<Document> found = collection.find();
final Document first = found.first();
diff --git
a/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4MapMessageTest.java
b/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4MapMessageIT.java
similarity index 80%
rename from
log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4MapMessageTest.java
rename to
log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4MapMessageIT.java
index d887739244..b7a384c23b 100644
---
a/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4MapMessageTest.java
+++
b/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4MapMessageIT.java
@@ -23,24 +23,28 @@ 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.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;
@UsingMongoDb4
-@LoggerContextSource("log4j2-mongodb-map-message.xml")
-public class MongoDb4MapMessageTest {
+@LoggerContextSource("MongoDb4MapMessageIT.xml")
+// Print debug status logger output upon failure
+@UsingStatusListener
+class MongoDb4MapMessageIT {
@Test
- public void test(final LoggerContext ctx, final MongoClient mongoClient) {
- final Logger logger = ctx.getLogger(MongoDb4MapMessageTest.class);
+ void test(final LoggerContext ctx, final MongoClient mongoClient) {
+ final Logger logger = ctx.getLogger(MongoDb4MapMessageIT.class);
final MapMessage<?, Object> mapMessage = new MapMessage<>();
mapMessage.with("SomeName", "SomeValue");
mapMessage.with("SomeInt", 1);
logger.info(mapMessage);
final MongoDatabase database =
mongoClient.getDatabase(MongoDb4TestConstants.DATABASE_NAME);
Assertions.assertNotNull(database);
- final MongoCollection<Document> collection =
database.getCollection(MongoDb4TestConstants.COLLECTION_NAME);
+ final MongoCollection<Document> collection =
+ database.getCollection(getClass().getSimpleName());
Assertions.assertNotNull(collection);
final Document first = collection.find().first();
Assertions.assertNotNull(first);
diff --git
a/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4Resolver.java
b/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4Resolver.java
index 90c71606cf..e7994f1029 100644
---
a/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4Resolver.java
+++
b/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4Resolver.java
@@ -18,69 +18,19 @@ package org.apache.logging.log4j.mongodb4;
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.test.junit.TypeBasedParameterResolver;
+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;
import org.junit.jupiter.api.extension.ParameterContext;
import org.junit.jupiter.api.extension.ParameterResolutionException;
-public class MongoDb4Resolver extends TypeBasedParameterResolver<MongoClient>
implements BeforeAllCallback {
+class MongoDb4Resolver extends TypeBasedParameterResolver<MongoClient>
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:
- // @formatter:off
- 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();
- // @formatter:on
- case CONSOLE:
- return ProcessOutput.namedConsole(label);
- default:
- }
- }
- throw new NotImplementedException(Objects.toString(loggingTarget));
- }
+ static final String PORT_PROPERTY = "log4j2.mongo.port";
public MongoDb4Resolver() {
super(MongoClient.class);
@@ -88,40 +38,7 @@ public class MongoDb4Resolver extends
TypeBasedParameterResolver<MongoClient> im
@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
@@ -131,25 +48,13 @@ public class MongoDb4Resolver extends
TypeBasedParameterResolver<MongoClient> im
.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<MongoClient> {
- private final ReachedState<RunningMongodProcess> state;
private final MongoClient mongoClient;
- public MongoClientHolder(final Mongod mongod, final TestProperties
props) {
- state = mongod.start(Version.Main.V7_0);
- final RunningMongodProcess mongodProcess = state.current();
- final ServerAddress addr = mongodProcess.getServerAddress();
- mongoClient = MongoClients.create(String.format("mongodb://%s:%d",
addr.getHost(), addr.getPort()));
- props.setProperty(MongoDb4TestConstants.PROP_NAME_PORT,
addr.getPort());
+ public MongoClientHolder() {
+ mongoClient = MongoClients.create(String.format(
+ "mongodb://localhost:%d",
+
PropertiesUtil.getProperties().getIntegerProperty(MongoDb4TestConstants.PROP_NAME_PORT,
27017)));
}
@Override
@@ -160,32 +65,6 @@ public class MongoDb4Resolver extends
TypeBasedParameterResolver<MongoClient> im
@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() {
- // noop
- }
-
- 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-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4ResolverTest.java
b/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4ResolverIT.java
similarity index 86%
rename from
log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4ResolverTest.java
rename to
log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4ResolverIT.java
index 9d0bebe5e0..d63b07072b 100644
---
a/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4ResolverTest.java
+++
b/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4ResolverIT.java
@@ -20,6 +20,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
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 @@ import org.junit.jupiter.api.Test;
* </p>
*/
@UsingMongoDb4
-public class MongoDb4ResolverTest {
+// Print debug status logger output upon failure
+@UsingStatusListener
+class MongoDb4ResolverIT {
@Test
- public void testAccess(final MongoClient mongoClient) {
+ void testAccess(final MongoClient mongoClient) {
final MongoIterable<String> databaseNames =
mongoClient.listDatabaseNames();
assertNotNull(databaseNames);
assertNotNull(databaseNames.first());
diff --git
a/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4TestConstants.java
b/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4TestConstants.java
index 6f43c72527..5245c68670 100644
---
a/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4TestConstants.java
+++
b/log4j-mongodb4/src/test/java/org/apache/logging/log4j/mongodb4/MongoDb4TestConstants.java
@@ -18,7 +18,6 @@ package org.apache.logging.log4j.mongodb4;
public class MongoDb4TestConstants {
- 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/log4j2-mongodb-additional-fields.xml
b/log4j-mongodb4/src/test/resources/MongoDb4AdditionalFields.xml
similarity index 60%
rename from
log4j-mongodb/src/test/resources/log4j2-mongodb-additional-fields.xml
rename to log4j-mongodb4/src/test/resources/MongoDb4AdditionalFields.xml
index d9d27461a0..6892bcac50 100644
--- a/log4j-mongodb/src/test/resources/log4j2-mongodb-additional-fields.xml
+++ b/log4j-mongodb4/src/test/resources/MongoDb4AdditionalFields.xml
@@ -15,19 +15,23 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<Configuration status="TRACE">
+<Configuration xmlns="https://logging.apache.org/xml/ns"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ https://logging.apache.org/xml/ns
+ https://logging.apache.org/xml/ns/log4j-config-2.xsd">
<Appenders>
- <NoSql name="MongoDbAppender">
- <MongoDb
connection="mongodb://localhost:${test:MongoDBTestPort:-27017}/testDb.testCollection"
/>
- <KeyValuePair key="A" value="1" />
- <KeyValuePair key="B" value="2" />
- <KeyValuePair key="env1" value="${env:PATH}" />
- <KeyValuePair key="env2" value="$${env:PATH}" />
+ <NoSql name="MONGO">
+ <MongoDb4
connection="mongodb://localhost:${sys:log4j.mongo.port:-27017}/testDb.MongoDb4AdditionalFieldsIT"/>
+ <KeyValuePair key="A" value="1"/>
+ <KeyValuePair key="B" value="2"/>
+ <KeyValuePair key="env1" value="${env:PATH}"/>
+ <KeyValuePair key="env2" value="$${env:PATH}"/>
</NoSql>
</Appenders>
<Loggers>
<Root level="ALL">
- <AppenderRef ref="MongoDbAppender" />
+ <AppenderRef ref="MONGO"/>
</Root>
</Loggers>
</Configuration>
diff --git a/log4j-mongodb4/src/test/resources/log4j2-mongodb-auth-failure.xml
b/log4j-mongodb4/src/test/resources/MongoDb4AuthFailureIT.xml
similarity index 67%
rename from log4j-mongodb4/src/test/resources/log4j2-mongodb-auth-failure.xml
rename to log4j-mongodb4/src/test/resources/MongoDb4AuthFailureIT.xml
index 0674de4fa0..fa8a46bbeb 100644
--- a/log4j-mongodb4/src/test/resources/log4j2-mongodb-auth-failure.xml
+++ b/log4j-mongodb4/src/test/resources/MongoDb4AuthFailureIT.xml
@@ -15,16 +15,20 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<Configuration status="WARN">
+<Configuration xmlns="https://logging.apache.org/xml/ns"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ https://logging.apache.org/xml/ns
+ https://logging.apache.org/xml/ns/log4j-config-2.xsd">
<Appenders>
- <NoSql name="MongoDbAppender">
+ <NoSql name="MONGO">
<MongoDb4
-
connection="mongodb://log4jUser:12345678@localhost:${test:MongoDBTestPort:-27017}/testDb.testCollection"
/>
+
connection="mongodb://log4jUser:12345678@localhost:${sys:log4j.mongo.port:-27017}/testDb.MongoDb4AuthFailureIT"
/>
</NoSql>
</Appenders>
<Loggers>
<Root level="ALL">
- <AppenderRef ref="MongoDbAppender" />
+ <AppenderRef ref="MONGO" />
</Root>
</Loggers>
</Configuration>
diff --git a/log4j-mongodb4/src/test/resources/log4j2-mongodb-capped-int.xml
b/log4j-mongodb4/src/test/resources/MongoDb4CappedIntIT.xml
similarity index 70%
rename from log4j-mongodb4/src/test/resources/log4j2-mongodb-capped-int.xml
rename to log4j-mongodb4/src/test/resources/MongoDb4CappedIntIT.xml
index 03aca2ebbe..2e9a11cb68 100644
--- a/log4j-mongodb4/src/test/resources/log4j2-mongodb-capped-int.xml
+++ b/log4j-mongodb4/src/test/resources/MongoDb4CappedIntIT.xml
@@ -15,18 +15,22 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<Configuration status="WARN">
+<Configuration xmlns="https://logging.apache.org/xml/ns"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ https://logging.apache.org/xml/ns
+ https://logging.apache.org/xml/ns/log4j-config-2.xsd">
<Appenders>
- <NoSql name="MongoDbAppender">
+ <NoSql name="MONGO">
<MongoDb4
-
connection="mongodb://localhost:${test:MongoDBTestPort:-27017}/testDb.testCollection"
+
connection="mongodb://localhost:${sys:log4j.mongo.port:-27017}/testDb.MongoDb4CappedIntIT"
capped="true"
collectionSize="1073741824"/>
</NoSql>
</Appenders>
<Loggers>
<Root level="ALL">
- <AppenderRef ref="MongoDbAppender" />
+ <AppenderRef ref="MONGO" />
</Root>
</Loggers>
</Configuration>
diff --git a/log4j-mongodb4/src/test/resources/log4j2-mongodb-capped-long.xml
b/log4j-mongodb4/src/test/resources/MongoDb4CappedLongIT.xml
similarity index 71%
rename from log4j-mongodb4/src/test/resources/log4j2-mongodb-capped-long.xml
rename to log4j-mongodb4/src/test/resources/MongoDb4CappedLongIT.xml
index ddde9bcb05..b79a4dc59e 100644
--- a/log4j-mongodb4/src/test/resources/log4j2-mongodb-capped-long.xml
+++ b/log4j-mongodb4/src/test/resources/MongoDb4CappedLongIT.xml
@@ -15,19 +15,23 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<Configuration status="WARN">
+<Configuration xmlns="https://logging.apache.org/xml/ns"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ https://logging.apache.org/xml/ns
+ https://logging.apache.org/xml/ns/log4j-config-2.xsd">
<Appenders>
- <NoSql name="MongoDbAppender">
+ <NoSql name="MONGO">
<!-- collectionSize="2147483657" is max int + 10 -->
<MongoDb4
-
connection="mongodb://localhost:${test:MongoDBTestPort:-27017}/testDb.testCollection"
+
connection="mongodb://localhost:${sys:log4j.mongo.port:-27017}/testDb.MongoDb4CappedLongIT"
capped="true"
collectionSize="2147483657"/>
</NoSql>
</Appenders>
<Loggers>
<Root level="ALL">
- <AppenderRef ref="MongoDbAppender" />
+ <AppenderRef ref="MONGO" />
</Root>
</Loggers>
</Configuration>
diff --git a/log4j-mongodb/src/test/resources/log4j2-mongodb-auth-failure.xml
b/log4j-mongodb4/src/test/resources/MongoDb4IT.xml
similarity index 68%
rename from log4j-mongodb/src/test/resources/log4j2-mongodb-auth-failure.xml
rename to log4j-mongodb4/src/test/resources/MongoDb4IT.xml
index e84603a0a5..6ab35f8765 100644
--- a/log4j-mongodb/src/test/resources/log4j2-mongodb-auth-failure.xml
+++ b/log4j-mongodb4/src/test/resources/MongoDb4IT.xml
@@ -15,16 +15,19 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<Configuration status="WARN">
+<Configuration xmlns="https://logging.apache.org/xml/ns"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ https://logging.apache.org/xml/ns
+ https://logging.apache.org/xml/ns/log4j-config-2.xsd">
<Appenders>
- <NoSql name="MongoDbAppender">
- <MongoDb
-
connection="mongodb://log4jUser:12345678@localhost:${test:MongoDBTestPort:-27017}/testDb.testCollection"
/>
+ <NoSql name="MONGO">
+ <MongoDb4
connection="mongodb://localhost:${sys:log4j.mongo.port:-27017}/testDb.MongoDb4IT"
/>
</NoSql>
</Appenders>
<Loggers>
<Root level="ALL">
- <AppenderRef ref="MongoDbAppender" />
+ <AppenderRef ref="MONGO" />
</Root>
</Loggers>
</Configuration>
diff --git a/log4j-mongodb4/src/test/resources/log4j2-mongodb-map-message.xml
b/log4j-mongodb4/src/test/resources/MongoDb4MapMessageIT.xml
similarity index 68%
rename from log4j-mongodb4/src/test/resources/log4j2-mongodb-map-message.xml
rename to log4j-mongodb4/src/test/resources/MongoDb4MapMessageIT.xml
index a84154e78d..8990a64afc 100644
--- a/log4j-mongodb4/src/test/resources/log4j2-mongodb-map-message.xml
+++ b/log4j-mongodb4/src/test/resources/MongoDb4MapMessageIT.xml
@@ -15,16 +15,20 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<Configuration status="WARN">
+<Configuration xmlns="https://logging.apache.org/xml/ns"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ https://logging.apache.org/xml/ns
+ https://logging.apache.org/xml/ns/log4j-config-2.xsd">
<Appenders>
- <NoSql name="MongoDbAppender">
- <MongoDb4
connection="mongodb://localhost:${test:MongoDBTestPort:-27017}/testDb.testCollection"
/>
+ <NoSql name="MONGO">
<MessageLayout />
+ <MongoDb4
connection="mongodb://localhost:${sys:log4j.mongo.port:-27017}/testDb.MongoDb4MapMessageIT"
/>
</NoSql>
</Appenders>
<Loggers>
<Root level="ALL">
- <AppenderRef ref="MongoDbAppender" />
+ <AppenderRef ref="MONGO" />
</Root>
</Loggers>
</Configuration>
diff --git
a/log4j-mongodb4/src/test/resources/log4j2-mongodb-additional-fields.xml
b/log4j-mongodb4/src/test/resources/log4j2-mongodb-additional-fields.xml
deleted file mode 100644
index eec98585cd..0000000000
--- a/log4j-mongodb4/src/test/resources/log4j2-mongodb-additional-fields.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ~ Licensed to the Apache Software Foundation (ASF) under one or more
- ~ contributor license agreements. See the NOTICE file distributed with
- ~ this work for additional information regarding copyright ownership.
- ~ The ASF licenses this file to you under the Apache License, Version 2.0
- ~ (the "License"); you may not use this file except in compliance with
- ~ the License. You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License.
- -->
-<Configuration status="WARN">
- <Appenders>
- <NoSql name="MongoDbAppender">
- <MongoDb4
connection="mongodb://localhost:${test:MongoDBTestPort:-27017}/testDb.testCollection"
/>
- <KeyValuePair key="A" value="1" />
- <KeyValuePair key="B" value="2" />
- <KeyValuePair key="env1" value="${env:PATH}" />
- <KeyValuePair key="env2" value="$${env:PATH}" />
- </NoSql>
- </Appenders>
- <Loggers>
- <Root level="ALL">
- <AppenderRef ref="MongoDbAppender" />
- </Root>
- </Loggers>
-</Configuration>
diff --git a/log4j-mongodb4/src/test/resources/log4j2-mongodb.xml
b/log4j-mongodb4/src/test/resources/log4j2-mongodb.xml
deleted file mode 100644
index b36a58affc..0000000000
--- a/log4j-mongodb4/src/test/resources/log4j2-mongodb.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ~ Licensed to the Apache Software Foundation (ASF) under one or more
- ~ contributor license agreements. See the NOTICE file distributed with
- ~ this work for additional information regarding copyright ownership.
- ~ The ASF licenses this file to you under the Apache License, Version 2.0
- ~ (the "License"); you may not use this file except in compliance with
- ~ the License. You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License.
- -->
-<Configuration status="WARN">
- <Appenders>
- <NoSql name="MongoDbAppender">
- <MongoDb4
connection="mongodb://localhost:${test:MongoDBTestPort:-27017}/testDb.testCollection"
/>
- </NoSql>
- </Appenders>
- <Loggers>
- <Root level="ALL">
- <AppenderRef ref="MongoDbAppender" />
- </Root>
- </Loggers>
-</Configuration>
diff --git a/log4j-parent/pom.xml b/log4j-parent/pom.xml
index 9753e45d30..969c18523c 100644
--- a/log4j-parent/pom.xml
+++ b/log4j-parent/pom.xml
@@ -82,8 +82,6 @@
<elasticsearch-java.version>8.15.1</elasticsearch-java.version>
<embedded-ldap.version>0.9.0</embedded-ldap.version>
<felix.version>7.0.5</felix.version>
- <flapdoodle-embed.version>4.13.1</flapdoodle-embed.version>
- <flapdoodle-reverse.version>1.8.0</flapdoodle-reverse.version>
<groovy.version>3.0.22</groovy.version>
<guava.version>33.3.0-jre</guava.version>
<h2.version>2.2.224</h2.version>
@@ -372,24 +370,6 @@
<version>${commons-pool2.version}</version>
</dependency>
- <dependency>
- <groupId>de.flapdoodle.embed</groupId>
- <artifactId>de.flapdoodle.embed.mongo</artifactId>
- <version>${flapdoodle-embed.version}</version>
- </dependency>
-
- <dependency>
- <groupId>de.flapdoodle.embed</groupId>
- <artifactId>de.flapdoodle.embed.process</artifactId>
- <version>${flapdoodle-embed.version}</version>
- </dependency>
-
- <dependency>
- <groupId>de.flapdoodle.reverse</groupId>
- <artifactId>de.flapdoodle.reverse</artifactId>
- <version>${flapdoodle-reverse.version}</version>
- </dependency>
-
<dependency>
<groupId>com.conversantmedia</groupId>
<artifactId>disruptor</artifactId>
@@ -900,7 +880,7 @@
<pluginManagement>
<plugins>
- <!-- used by `docker` profile in `log4j-layout-template-json-test`: -->
+ <!-- used by `docker` profile -->
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
diff --git a/src/changelog/.2.x.x/2229_mongodb_docker.xml
b/src/changelog/.2.x.x/2229_mongodb_docker.xml
new file mode 100644
index 0000000000..1d5b36ed1c
--- /dev/null
+++ b/src/changelog/.2.x.x/2229_mongodb_docker.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entry xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="https://logging.apache.org/xml/ns"
+ xsi:schemaLocation="https://logging.apache.org/xml/ns
https://logging.apache.org/xml/ns/log4j-changelog-0.xsd"
+ type="fixed">
+ <issue id="2229"
link="https://github.com/apache/logging-log4j2/issues/2229"/>
+ <description format="asciidoc">Switch MongoDB tests to use
Docker.</description>
+</entry>