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 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. +