From 31535befe681b9b1db643947329c4c444e0fa8a9 Mon Sep 17 00:00:00 2001 From: "Piotr P. Karwasz" Date: Thu, 25 Jan 2024 10:43:00 +0100 Subject: [PATCH 1/5] Last tweaks to tests before moving async support A couple more tests require changes to be independent from async loggers and logger configurations. The `CoreContextSelectors` class is not used, so we remove it. --- .../log4j/core/async/AsyncLateConfigTest.java | 52 ++++++ .../async/QueueFullAsyncAbstractTest.java | 167 ++++++++++++++++++ .../core/async/QueueFullAsyncLogger2Test.java | 3 +- .../core/async/QueueFullAsyncLogger3Test.java | 2 +- ...ncLoggerConfigLoggingFromToStringTest.java | 2 +- .../async/QueueFullAsyncLoggerConfigTest.java | 2 +- ...ullAsyncLoggerLoggingFromToStringTest.java | 2 +- .../core/async/QueueFullAsyncLoggerTest.java | 2 +- .../core/async/QueueFullAbstractTest.java | 158 +---------------- .../core/test/LateConfigAbstractTest.java | 56 ++++++ .../core/test/LateConfigAbstractTest.xml | 57 ++++++ .../logging/log4j/core/LateConfigTest.java | 41 +---- .../test/resources/perf/SimplePerfTest.bat | 47 ----- .../src/test/resources/perf/SimplePerfTest.sh | 56 ------ .../src/test/resources/perf/runResponseTm.sh | 61 ------- .../core/selector/CoreContextSelectors.java | 30 ---- log4j-csv/pom.xml | 5 + log4j-gc-test/pom.xml | 5 + log4j-jul/pom.xml | 7 +- log4j-perf-test/pom.xml | 4 + 20 files changed, 371 insertions(+), 388 deletions(-) create mode 100644 log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLateConfigTest.java create mode 100644 log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncAbstractTest.java create mode 100644 log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/LateConfigAbstractTest.java create mode 100644 log4j-core-test/src/main/resources/org/apache/logging/log4j/core/test/LateConfigAbstractTest.xml delete mode 100644 log4j-core-test/src/test/resources/perf/SimplePerfTest.bat delete mode 100644 log4j-core-test/src/test/resources/perf/SimplePerfTest.sh delete mode 100644 log4j-core-test/src/test/resources/perf/runResponseTm.sh delete mode 100644 log4j-core/src/main/java/org/apache/logging/log4j/core/selector/CoreContextSelectors.java diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLateConfigTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLateConfigTest.java new file mode 100644 index 00000000000..3c4b73fff75 --- /dev/null +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLateConfigTest.java @@ -0,0 +1,52 @@ +/* + * 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. + */ +package org.apache.logging.log4j.core.async; + +import java.nio.file.Path; +import java.util.stream.Stream; +import org.apache.logging.log4j.core.impl.Log4jContextFactory; +import org.apache.logging.log4j.core.selector.ContextSelector; +import org.apache.logging.log4j.core.test.LateConfigAbstractTest; +import org.apache.logging.log4j.plugins.di.ConfigurableInstanceFactory; +import org.apache.logging.log4j.plugins.di.DI; +import org.apache.logging.log4j.test.junit.TempLoggingDir; +import org.apache.logging.log4j.test.junit.UsingStatusListener; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; + +@Tag("functional") +@UsingStatusListener +public class AsyncLateConfigTest extends LateConfigAbstractTest { + + @TempLoggingDir + private static Path loggingPath; + + static Stream selectors() { + final ConfigurableInstanceFactory instanceFactory = DI.createInitializedFactory(); + return Stream.of( + new AsyncLoggerContextSelector(instanceFactory.newChildInstanceFactory()), + new BasicAsyncLoggerContextSelector(instanceFactory.newChildInstanceFactory())) + .map(Log4jContextFactory::new); + } + + @ParameterizedTest(name = "reconfigure {0}") + @MethodSource("selectors") + void reconfiguration(final Log4jContextFactory factory) throws Exception { + testReconfiguration(factory, loggingPath); + } +} diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncAbstractTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncAbstractTest.java new file mode 100644 index 00000000000..03ea0a04c79 --- /dev/null +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncAbstractTest.java @@ -0,0 +1,167 @@ +/* + * 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. + */ +package org.apache.logging.log4j.core.async; + +import static org.assertj.core.api.Assertions.assertThat; + +import com.lmax.disruptor.RingBuffer; +import java.util.List; +import java.util.Optional; +import java.util.concurrent.CountDownLatch; +import java.util.stream.Collectors; +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.core.LoggerContext; +import org.apache.logging.log4j.core.config.Configuration; +import org.apache.logging.log4j.core.config.LoggerConfig; +import org.apache.logging.log4j.core.test.async.BlockingAppender; +import org.apache.logging.log4j.status.StatusData; +import org.apache.logging.log4j.test.ListStatusListener; + +public abstract class QueueFullAsyncAbstractTest extends QueueFullAbstractTest { + + private ListStatusListener statusListener; + + protected static void assertAsyncLogger(final LoggerContext ctx, final int expectedBufferSize) { + assertThat(ctx).isInstanceOf(AsyncLoggerContext.class); + assertThat(((AsyncLoggerContext) ctx) + .getAsyncLoggerDisruptor() + .getRingBuffer() + .getBufferSize()) + .isEqualTo(expectedBufferSize); + + final Configuration config = ctx.getConfiguration(); + assertThat(config).isNotNull(); + assertThat(config.getRootLogger()).isNotInstanceOf(AsyncLoggerConfig.class); + } + + protected static void assertAsyncLoggerConfig(final LoggerContext ctx, final int expectedBufferSize) { + assertThat(ctx).isNotInstanceOf(AsyncLoggerContext.class); + + final Configuration config = ctx.getConfiguration(); + assertThat(config).isNotNull(); + assertThat(config.getRootLogger()).isInstanceOf(AsyncLoggerConfig.class); + final DisruptorConfiguration disruptorConfig = config.getExtension(DisruptorConfiguration.class); + final AsyncLoggerConfigDisruptor disruptor = + (AsyncLoggerConfigDisruptor) disruptorConfig.getAsyncLoggerConfigDelegate(); + assertThat(disruptor.getRingBuffer().getBufferSize()).isEqualTo(expectedBufferSize); + } + + @Override + protected long asyncRemainingCapacity(final Logger logger) { + if (logger instanceof final AsyncLogger asyncLogger) { + return Optional.ofNullable(asyncLogger.getAsyncLoggerDisruptor()) + .map(AsyncLoggerDisruptor::getRingBuffer) + .map(RingBuffer::remainingCapacity) + .orElse(0L); + } else { + final LoggerConfig loggerConfig = ((org.apache.logging.log4j.core.Logger) logger).get(); + if (loggerConfig instanceof final AsyncLoggerConfig asyncLoggerConfig) { + return Optional.ofNullable( + (AsyncLoggerConfigDisruptor) asyncLoggerConfig.getAsyncLoggerConfigDelegate()) + .map(AsyncLoggerConfigDisruptor::getRingBuffer) + .map(RingBuffer::remainingCapacity) + .orElse(0L); + } + } + return super.asyncRemainingCapacity(logger); + } + + public void testLoggingFromToStringCausesOutOfOrderMessages( + final LoggerContext ctx, final BlockingAppender blockingAppender) throws Exception { + checkConfig(ctx); + // Non-reusable messages will call `toString()` on the main thread and block it. + final Logger logger = ctx.getLogger(this.getClass()); + + blockingAppender.countDownLatch = new CountDownLatch(1); + final Unlocker unlocker = new Unlocker(new CountDownLatch(MESSAGE_COUNT - 1), blockingAppender); + unlocker.start(); + asyncRecursiveTest(logger, unlocker, blockingAppender); + unlocker.join(); + } + + void asyncRecursiveTest(final Logger logger, final Unlocker unlocker, final BlockingAppender blockingAppender) { + for (int i = 0; i < 1; i++) { + LOGGER.info( + "Test logging message {}. Ring buffer capacity was {}, countdown latch was {}.", + i, + asyncRemainingCapacity(logger), + unlocker.countDownLatch.getCount()); + unlocker.countDownLatch.countDown(); + final DomainObject obj = new DomainObject(logger, unlocker, MESSAGE_COUNT - 1); + logger.info("Logging naughty object #{}: {}", i, obj); + } + + LOGGER.info( + "Waiting for message delivery: blockingAppender.logEvents.count={}.", + blockingAppender.logEvents.size()); + while (blockingAppender.logEvents.size() < MESSAGE_COUNT) { + Thread.yield(); + } + LOGGER.info( + "All {} messages have been delivered: blockingAppender.logEvents.count={}.", + MESSAGE_COUNT, + blockingAppender.logEvents.size()); + + final StatusData mostRecentStatusData = statusListener + .findStatusData(Level.WARN) + .reduce((ignored, data) -> data) + .orElse(null); + assertThat(mostRecentStatusData).isNotNull(); + assertThat(mostRecentStatusData.getLevel()).isEqualTo(Level.WARN); + assertThat(mostRecentStatusData.getFormattedStatus()) + .contains("Log4j2 logged an event out of order to prevent deadlock caused by domain " + + "objects logging from their toString method when the async queue is full"); + + final List actual = blockingAppender.logEvents.stream() + .map(e -> e.getMessage().getFormattedMessage()) + .collect(Collectors.toList()); + final String[] expected = new String[MESSAGE_COUNT]; + for (int i = 0; i < MESSAGE_COUNT - 1; i++) { + expected[i] = "Logging in toString() #" + i; + } + expected[MESSAGE_COUNT - 1] = "Logging naughty object #0: Who's bad?!"; + assertThat(actual).hasSize(MESSAGE_COUNT).contains(expected); + } + + protected class DomainObject { + + private final Logger innerLogger; + private final Unlocker unlocker; + private final int count; + + public DomainObject(final Logger innerLogger, final Unlocker unlocker, final int loggingCount) { + this.innerLogger = innerLogger; + this.unlocker = unlocker; + this.count = loggingCount; + } + + @Override + public String toString() { + for (int i = 0; i < count; i++) { + LOGGER.info( + "DomainObject logging message {}. Ring buffer capacity was {}, countdown latch was {}.", + i, + asyncRemainingCapacity(innerLogger), + unlocker.countDownLatch.getCount()); + unlocker.countDownLatch.countDown(); + innerLogger.info("Logging in toString() #{}", i); + } + return "Who's bad?!"; + } + } +} diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLogger2Test.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLogger2Test.java index beda3aa982c..962ac5fb74d 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLogger2Test.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLogger2Test.java @@ -24,11 +24,10 @@ * is immutable. */ @SetTestProperty(key = "AsyncLogger.formatMsg", value = "true") -public class QueueFullAsyncLogger2Test extends QueueFullAsyncLoggerTest { +public class QueueFullAsyncLogger2Test extends QueueFullAsyncAbstractTest { @Override protected void checkConfig(final LoggerContext ctx) { - super.checkConfig(ctx); assertFormatMessagesInBackground(); } } diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLogger3Test.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLogger3Test.java index 1df420b8d78..8debb4b4356 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLogger3Test.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLogger3Test.java @@ -41,7 +41,7 @@ @SetTestProperty(key = "AsyncLogger.ringBufferSize", value = "128") @SetTestProperty(key = "AsyncLogger.formatMsg", value = "true") @SetTestProperty(key = "AsyncLogger.queueFullPolicy", value = "Discard") -public class QueueFullAsyncLogger3Test extends QueueFullAbstractTest { +public class QueueFullAsyncLogger3Test extends QueueFullAsyncAbstractTest { @Override protected void checkConfig(final LoggerContext ctx) { diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigLoggingFromToStringTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigLoggingFromToStringTest.java index cdeec6a0f52..e9d78fa6386 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigLoggingFromToStringTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigLoggingFromToStringTest.java @@ -31,7 +31,7 @@ */ @SetTestProperty(key = "Web.isWebApp", value = "false") @SetTestProperty(key = "AsyncLoggerConfig.ringBufferSize", value = "128") -public class QueueFullAsyncLoggerConfigLoggingFromToStringTest extends QueueFullAbstractTest { +public class QueueFullAsyncLoggerConfigLoggingFromToStringTest extends QueueFullAsyncAbstractTest { @Override @Test diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigTest.java index 76eaa471dd1..feb04be22e1 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigTest.java @@ -27,7 +27,7 @@ * Tests queue full scenarios with AsyncLoggers in configuration. */ @SetTestProperty(key = "AsyncLoggerConfig.ringBufferSize", value = "128") -public class QueueFullAsyncLoggerConfigTest extends QueueFullAbstractTest { +public class QueueFullAsyncLoggerConfigTest extends QueueFullAsyncAbstractTest { @Override @Test diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerLoggingFromToStringTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerLoggingFromToStringTest.java index 49e3e125b84..e58bd1a7ab1 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerLoggingFromToStringTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerLoggingFromToStringTest.java @@ -30,7 +30,7 @@ key = "LoggerContext.selector", value = "org.apache.logging.log4j.core.async.AsyncLoggerContextSelector") @SetTestProperty(key = "AsyncLogger.ringBufferSize", value = "128") -public class QueueFullAsyncLoggerLoggingFromToStringTest extends QueueFullAbstractTest { +public class QueueFullAsyncLoggerLoggingFromToStringTest extends QueueFullAsyncAbstractTest { @Override @Test diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerTest.java index 064517ae63a..0c2e41a3160 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerTest.java @@ -30,7 +30,7 @@ key = "LoggerContext.selector", value = "org.apache.logging.log4j.core.async.AsyncLoggerContextSelector") @SetTestProperty(key = "AsyncLogger.ringBufferSize", value = "128") -public class QueueFullAsyncLoggerTest extends QueueFullAbstractTest { +public class QueueFullAsyncLoggerTest extends QueueFullAsyncAbstractTest { @Override @Test diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/async/QueueFullAbstractTest.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/async/QueueFullAbstractTest.java index 5085f7ec4fd..f6ea81eb132 100644 --- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/async/QueueFullAbstractTest.java +++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/async/QueueFullAbstractTest.java @@ -19,17 +19,12 @@ import static java.util.concurrent.TimeUnit.SECONDS; import static org.assertj.core.api.Assertions.assertThat; -import com.lmax.disruptor.RingBuffer; -import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; -import java.util.Optional; import java.util.Stack; import java.util.concurrent.CountDownLatch; -import java.util.stream.Collectors; -import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.core.Appender; import org.apache.logging.log4j.core.LogEvent; @@ -39,11 +34,8 @@ import org.apache.logging.log4j.core.config.LoggerConfig; import org.apache.logging.log4j.core.test.async.BlockingAppender; import org.apache.logging.log4j.core.util.Constants; -import org.apache.logging.log4j.status.StatusData; import org.apache.logging.log4j.status.StatusLogger; -import org.apache.logging.log4j.test.ListStatusListener; import org.apache.logging.log4j.test.junit.UsingStatusListener; -import org.apache.logging.log4j.util.ReflectionUtil; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Timeout; import org.junit.jupiter.api.Timeout.ThreadMode; @@ -88,35 +80,6 @@ public void run() { } } - protected static class DomainObject { - - private final Logger innerLogger; - private final Unlocker unlocker; - private final int count; - - public DomainObject(final Logger innerLogger, final Unlocker unlocker, final int loggingCount) { - this.innerLogger = innerLogger; - this.unlocker = unlocker; - this.count = loggingCount; - } - - @Override - public String toString() { - for (int i = 0; i < count; i++) { - LOGGER.info( - "DomainObject logging message {}. Ring buffer capacity was {}, countdown latch was {}.", - i, - asyncRemainingCapacity(innerLogger), - unlocker.countDownLatch.getCount()); - unlocker.countDownLatch.countDown(); - innerLogger.info("Logging in toString() #{}", i); - } - return "Who's bad?!"; - } - } - - private ListStatusListener statusListener; - protected void testNormalQueueFullKeepsMessagesInOrder( final LoggerContext ctx, final BlockingAppender blockingAppender) throws Exception { checkConfig(ctx); @@ -129,10 +92,9 @@ protected void testNormalQueueFullKeepsMessagesInOrder( unlocker.join(); } - protected void checkConfig(final LoggerContext ctx) throws Exception {} + protected abstract void checkConfig(final LoggerContext ctx) throws Exception; - protected static void asyncTest( - final Logger logger, final Unlocker unlocker, final BlockingAppender blockingAppender) { + protected void asyncTest(final Logger logger, final Unlocker unlocker, final BlockingAppender blockingAppender) { for (int i = 0; i < MESSAGE_COUNT; i++) { LOGGER.info( "Test logging message {}. Ring buffer capacity was {}, countdown latch was {}.", @@ -161,63 +123,6 @@ protected static void asyncTest( assertThat(actual).isEmpty(); } - public void testLoggingFromToStringCausesOutOfOrderMessages( - final LoggerContext ctx, final BlockingAppender blockingAppender) throws Exception { - checkConfig(ctx); - // Non-reusable messages will call `toString()` on the main thread and block it. - final Logger logger = ctx.getLogger(this.getClass()); - - blockingAppender.countDownLatch = new CountDownLatch(1); - final Unlocker unlocker = new Unlocker(new CountDownLatch(MESSAGE_COUNT - 1), blockingAppender); - unlocker.start(); - asyncRecursiveTest(logger, unlocker, blockingAppender); - unlocker.join(); - } - - void asyncRecursiveTest(final Logger logger, final Unlocker unlocker, final BlockingAppender blockingAppender) { - for (int i = 0; i < 1; i++) { - LOGGER.info( - "Test logging message {}. Ring buffer capacity was {}, countdown latch was {}.", - i, - asyncRemainingCapacity(logger), - unlocker.countDownLatch.getCount()); - unlocker.countDownLatch.countDown(); - final DomainObject obj = new DomainObject(logger, unlocker, MESSAGE_COUNT - 1); - logger.info("Logging naughty object #{}: {}", i, obj); - } - - LOGGER.info( - "Waiting for message delivery: blockingAppender.logEvents.count={}.", - blockingAppender.logEvents.size()); - while (blockingAppender.logEvents.size() < MESSAGE_COUNT) { - Thread.yield(); - } - LOGGER.info( - "All {} messages have been delivered: blockingAppender.logEvents.count={}.", - MESSAGE_COUNT, - blockingAppender.logEvents.size()); - - final StatusData mostRecentStatusData = statusListener - .findStatusData(Level.WARN) - .reduce((ignored, data) -> data) - .orElse(null); - assertThat(mostRecentStatusData).isNotNull(); - assertThat(mostRecentStatusData.getLevel()).isEqualTo(Level.WARN); - assertThat(mostRecentStatusData.getFormattedStatus()) - .contains("Log4j2 logged an event out of order to prevent deadlock caused by domain " - + "objects logging from their toString method when the async queue is full"); - - final List actual = blockingAppender.logEvents.stream() - .map(e -> e.getMessage().getFormattedMessage()) - .collect(Collectors.toList()); - final String[] expected = new String[MESSAGE_COUNT]; - for (int i = 0; i < MESSAGE_COUNT - 1; i++) { - expected[i] = "Logging in toString() #" + i; - } - expected[MESSAGE_COUNT - 1] = "Logging naughty object #0: Who's bad?!"; - assertThat(actual).hasSize(MESSAGE_COUNT).contains(expected); - } - static Stack transform(final List logEvents) { final List filtered = getMessages(logEvents); Collections.reverse(filtered); @@ -234,73 +139,24 @@ static List getMessages(final List logEvents) { return filtered; } - static long asyncRemainingCapacity(final Logger logger) { - if (logger instanceof AsyncLogger asyncLogger) { - return Optional.ofNullable(asyncLogger.getAsyncLoggerDisruptor()) - .map(AsyncLoggerDisruptor::getRingBuffer) - .map(RingBuffer::remainingCapacity) - .orElse(0L); - } else { - final LoggerConfig loggerConfig = ((org.apache.logging.log4j.core.Logger) logger).get(); - if (loggerConfig instanceof AsyncLoggerConfig asyncLoggerConfig) { - return Optional.ofNullable( - (AsyncLoggerConfigDisruptor) asyncLoggerConfig.getAsyncLoggerConfigDelegate()) - .map(AsyncLoggerConfigDisruptor::getRingBuffer) - .map(RingBuffer::remainingCapacity) - .orElse(0L); - } else { - final Appender async = loggerConfig.getAppenders().get("async"); - if (async instanceof AsyncAppender) { - return ((AsyncAppender) async).getQueueCapacity(); - } - } + protected long asyncRemainingCapacity(final Logger logger) { + final LoggerConfig loggerConfig = ((org.apache.logging.log4j.core.Logger) logger).get(); + final Appender async = loggerConfig.getAppenders().get("async"); + if (async instanceof AsyncAppender) { + return ((AsyncAppender) async).getQueueCapacity(); } throw new IllegalStateException("Neither Async Loggers nor AsyncAppender are configured"); } - protected static Field field(final Class c, final String name) throws NoSuchFieldException { - final Field f = c.getDeclaredField(name); - ReflectionUtil.makeAccessible(f); - return f; - } - protected static void assertAsyncAppender(final LoggerContext ctx) { - assertThat(ctx).isNotInstanceOf(AsyncLoggerContext.class); - final Configuration config = ctx.getConfiguration(); assertThat(config).isNotNull(); - assertThat(config.getRootLogger()).isNotInstanceOf(AsyncLoggerConfig.class); final Collection appenders = config.getRootLogger().getAppenders().values(); assertThat(appenders).hasSize(1).allMatch(AsyncAppender.class::isInstance); } - protected static void assertAsyncLogger(final LoggerContext ctx, final int expectedBufferSize) { - assertThat(ctx).isInstanceOf(AsyncLoggerContext.class); - assertThat(((AsyncLoggerContext) ctx) - .getAsyncLoggerDisruptor() - .getRingBuffer() - .getBufferSize()) - .isEqualTo(expectedBufferSize); - - final Configuration config = ctx.getConfiguration(); - assertThat(config).isNotNull(); - assertThat(config.getRootLogger()).isNotInstanceOf(AsyncLoggerConfig.class); - } - - protected static void assertAsyncLoggerConfig(final LoggerContext ctx, final int expectedBufferSize) { - assertThat(ctx).isNotInstanceOf(AsyncLoggerContext.class); - - final Configuration config = ctx.getConfiguration(); - assertThat(config).isNotNull(); - assertThat(config.getRootLogger()).isInstanceOf(AsyncLoggerConfig.class); - final DisruptorConfiguration disruptorConfig = config.getExtension(DisruptorConfiguration.class); - final AsyncLoggerConfigDisruptor disruptor = - (AsyncLoggerConfigDisruptor) disruptorConfig.getAsyncLoggerConfigDelegate(); - assertThat(disruptor.getRingBuffer().getBufferSize()).isEqualTo(expectedBufferSize); - } - protected static void assertFormatMessagesInBackground() { assertThat(Constants.FORMAT_MESSAGES_IN_BACKGROUND).isTrue(); } diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/LateConfigAbstractTest.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/LateConfigAbstractTest.java new file mode 100644 index 00000000000..f87bce912ea --- /dev/null +++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/LateConfigAbstractTest.java @@ -0,0 +1,56 @@ +/* + * 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. + */ +package org.apache.logging.log4j.core.test; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertSame; + +import java.net.URI; +import java.nio.file.Path; +import org.apache.logging.log4j.core.LoggerContext; +import org.apache.logging.log4j.core.config.Configuration; +import org.apache.logging.log4j.core.config.DefaultConfiguration; +import org.apache.logging.log4j.core.config.xml.XmlConfiguration; +import org.apache.logging.log4j.core.impl.Log4jContextFactory; + +public class LateConfigAbstractTest { + + private static final String CONFIG = "LateConfigAbstractTest.xml"; + // This class will be the caller of `Log4jContextFactory` + private static final String FQCN = Log4jContextFactory.class.getName(); + + protected static void testReconfiguration(final Log4jContextFactory factory, final Path loggingPath) + throws Exception { + try (final LoggerContext context = factory.getContext(FQCN, null, null, false)) { + final Configuration defaultConfig = context.getConfiguration(); + assertThat(defaultConfig).isInstanceOf(DefaultConfiguration.class); + + final URI configLocation = + LateConfigAbstractTest.class.getResource(CONFIG).toURI(); + final LoggerContext context1 = factory.getContext(FQCN, null, null, false, configLocation, null); + assertThat(context1).isSameAs(context); + assertThat(loggingPath.resolve("test-xml.log")).exists(); + final Configuration newConfig = context.getConfiguration(); + assertThat(newConfig).isInstanceOf(XmlConfiguration.class); + + final LoggerContext context2 = factory.getContext(FQCN, null, null, false); + assertThat(context2).isSameAs(context); + final Configuration sameConfig = context.getConfiguration(); + assertSame(newConfig, sameConfig, "Configuration should not have been reset"); + } + } +} diff --git a/log4j-core-test/src/main/resources/org/apache/logging/log4j/core/test/LateConfigAbstractTest.xml b/log4j-core-test/src/main/resources/org/apache/logging/log4j/core/test/LateConfigAbstractTest.xml new file mode 100644 index 00000000000..8233fbf38bb --- /dev/null +++ b/log4j-core-test/src/main/resources/org/apache/logging/log4j/core/test/LateConfigAbstractTest.xml @@ -0,0 +1,57 @@ + + + + + ${test:logging.path}/test-xml.log + + + + + + + + + + %d %p %C{1.} [%t] %m%n + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/LateConfigTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/LateConfigTest.java index 3263ed6f254..ab3a8f8fa66 100644 --- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/LateConfigTest.java +++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/LateConfigTest.java @@ -16,34 +16,24 @@ */ package org.apache.logging.log4j.core; -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.jupiter.api.Assertions.assertSame; - -import java.net.URI; import java.nio.file.Path; import java.util.stream.Stream; -import org.apache.logging.log4j.core.async.AsyncLoggerContextSelector; -import org.apache.logging.log4j.core.async.BasicAsyncLoggerContextSelector; -import org.apache.logging.log4j.core.config.Configuration; -import org.apache.logging.log4j.core.config.DefaultConfiguration; -import org.apache.logging.log4j.core.config.xml.XmlConfiguration; import org.apache.logging.log4j.core.impl.Log4jContextFactory; import org.apache.logging.log4j.core.selector.BasicContextSelector; import org.apache.logging.log4j.core.selector.ClassLoaderContextSelector; import org.apache.logging.log4j.core.selector.ContextSelector; +import org.apache.logging.log4j.core.test.LateConfigAbstractTest; import org.apache.logging.log4j.plugins.di.ConfigurableInstanceFactory; import org.apache.logging.log4j.plugins.di.DI; import org.apache.logging.log4j.test.junit.TempLoggingDir; +import org.apache.logging.log4j.test.junit.UsingStatusListener; import org.junit.jupiter.api.Tag; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @Tag("functional") -public class LateConfigTest { - - private static final String CONFIG = "/log4j-test1.xml"; - // This class will be the caller of `Log4jContextFactory` - private static final String FQCN = Log4jContextFactory.class.getName(); +@UsingStatusListener +public class LateConfigTest extends LateConfigAbstractTest { @TempLoggingDir private static Path loggingPath; @@ -52,30 +42,13 @@ static Stream selectors() { final ConfigurableInstanceFactory instanceFactory = DI.createInitializedFactory(); return Stream.of( new ClassLoaderContextSelector(instanceFactory.newChildInstanceFactory()), - new BasicContextSelector(instanceFactory.newChildInstanceFactory()), - new AsyncLoggerContextSelector(instanceFactory.newChildInstanceFactory()), - new BasicAsyncLoggerContextSelector(instanceFactory.newChildInstanceFactory())) + new BasicContextSelector(instanceFactory.newChildInstanceFactory())) .map(Log4jContextFactory::new); } @ParameterizedTest(name = "reconfigure {0}") @MethodSource("selectors") - public void testReconfiguration(final Log4jContextFactory factory) throws Exception { - try (final LoggerContext context = factory.getContext(FQCN, null, null, false)) { - final Configuration defaultConfig = context.getConfiguration(); - assertThat(defaultConfig).isInstanceOf(DefaultConfiguration.class); - - final URI configLocation = LateConfigTest.class.getResource(CONFIG).toURI(); - final LoggerContext context1 = factory.getContext(FQCN, null, null, false, configLocation, null); - assertThat(context1).isSameAs(context); - assertThat(loggingPath.resolve("test-xml.log")).exists(); - final Configuration newConfig = context.getConfiguration(); - assertThat(newConfig).isInstanceOf(XmlConfiguration.class); - - final LoggerContext context2 = factory.getContext(FQCN, null, null, false); - assertThat(context2).isSameAs(context); - final Configuration sameConfig = context.getConfiguration(); - assertSame(newConfig, sameConfig, "Configuration should not have been reset"); - } + void reconfiguration(final Log4jContextFactory factory) throws Exception { + testReconfiguration(factory, loggingPath); } } diff --git a/log4j-core-test/src/test/resources/perf/SimplePerfTest.bat b/log4j-core-test/src/test/resources/perf/SimplePerfTest.bat deleted file mode 100644 index d6ca9ec1ba9..00000000000 --- a/log4j-core-test/src/test/resources/perf/SimplePerfTest.bat +++ /dev/null @@ -1,47 +0,0 @@ -@echo off -rem Licensed to the Apache Software Foundation (ASF) under one or more -rem contributor license agreements. See the NOTICE file distributed with -rem this work for additional information regarding copyright ownership. -rem The ASF licenses this file to You under the Apache License, Version 2.0 -rem (the "License"); you may not use this file except in compliance with -rem the License. You may obtain a copy of the License at -rem -rem http://www.apache.org/licenses/LICENSE-2.0 -rem -rem Unless required by applicable law or agreed to in writing, software -rem distributed under the License is distributed on an "AS IS" BASIS, -rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -rem See the License for the specific language governing permissions and -rem limitations under the License. - -REM reject if no arg supplied -IF %1.==. echo Usage: %0 version [core-version] & exit /b -IF %2.==. set %2=%1 - -set GC_OPTIONS= -:set GC_OPTIONS=-XX:+UnlockDiagnosticVMOptions -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime -:set GC_OPTIONS=-XX:+PrintCompilation - -set LOG4J_OPTIONS= -set LOG4J_OPTIONS=-Dlog4j.configurationFile=perf-CountingNoOpAppender.xml -:set LOG4J_OPTIONS=-Dlog4j.configurationFile=perf3PlainNoLoc.xml -set LOG4J_OPTIONS=%LOG4J_OPTIONS% -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector -:set LOG4J_OPTIONS=%LOG4J_OPTIONS% -Dlog4j2.enable.threadlocals=true -:set LOG4J_OPTIONS=%LOG4J_OPTIONS% -DAsyncLogger.WaitStrategy=Yield -:set LOG4J_OPTIONS=%LOG4J_OPTIONS% -DAsyncLogger.RingBufferSize=262144 - -REM Java Flight Recorder settings: %JAVA_HOME%jre\lib\jfr\default.jfc -REM Tip: set all 3 settings for "allocation-profiling-enabled" to true -set JFR_OPTIONS= -set JFR_OPTIONS=-XX:+UnlockCommercialFeatures -XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints -XX:+FlightRecorder -set JFR_OPTIONS=%JFR_OPTIONS% -XX:StartFlightRecording=duration=60s,filename=log4j-%1.jfr - -set CP= -set CP=log4j-api-%1.jar;log4j-core-%1.jar;disruptor-3.3.4.jar;log4j-1.2.17.jar;slf4j-api-1.7.13.jar;logback-classic-1.1.3.jar;logback-core-1.1.3.jar -set CP=%CP%;C:\Users\remko\IdeaProjects\logging-log4j2\log4j-core\target\test-classes -:set CP=%CP%;log4j-core-2.6-SNAPSHOT-tests.jar - -set MAIN=org.apache.logging.log4j.core.async.perftest.SimplePerfTest - -@echo on -java -Xms256M -Xmx256M %JFR_OPTIONS% %GC_OPTIONS% %LOG4J_OPTIONS% -cp %CP% %MAIN% diff --git a/log4j-core-test/src/test/resources/perf/SimplePerfTest.sh b/log4j-core-test/src/test/resources/perf/SimplePerfTest.sh deleted file mode 100644 index ec877a08295..00000000000 --- a/log4j-core-test/src/test/resources/perf/SimplePerfTest.sh +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/sh -# -# -# 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. -# -if [ $# -eq 0 ]; then - echo Usage: $0 api-version core-version - exit 1 -fi - -DIR=$HOME -NOW=$(date +%Y%m%d-%H%M%S) - -GC_OPTIONS="-XX:+UnlockDiagnosticVMOptions -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps" -GC_OPTIONS="${GC_OPTIONS} -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime" -GC_OPTIONS="${GC_OPTIONS} -XX:+PrintGCCause -Xloggc:$DIR/gc-$NOW.log" -#GC_OPTIONS="${GC_OPTIONS} -XX:+PrintSafepointStatistics -XX:+LogVMOutput -XX:LogFile=$DIR/safepoint$NOW.log" -GC_OPTIONS= - -# Needs -XX:+UnlockDiagnosticVMOptions (as first VM arg) -#VM_OPTIONS="-XX:+PrintCompilation -XX:+PrintInlining" - -LOG4J_OPTIONS="-Dlog4j.configurationFile=perf-CountingNoOpAppender.xml" -LOG4J_OPTIONS="${LOG4J_OPTIONS} -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector" -LOG4J_OPTIONS="${LOG4J_OPTIONS} -DAsyncLogger.WaitStrategy=Block" -LOG4J_OPTIONS="${LOG4J_OPTIONS} -Dlog4j.format.msg.async=true" -export LOG4J_OPTIONS - -CP="log4j-api-${1}.jar:log4j-core-${2}.jar:disruptor-3.3.4.jar" -CP="${CP}:log4j-core-2.6-SNAPSHOT-tests.jar" -#CP="${CP}:${HOME}/Documents/log4j/log4j-core/target/test-classes" -export CP - -export MEM_OPTIONS="-Xms128m -Xmx128m" -export MAIN="org.apache.logging.log4j.core.async.perftest.SimplePerfTest" - -#PERF_OPTIONS="-e cycles,instructions,cache-references,cache-misses,branches,branch-misses,L1-dcache-loads,L1-dcache-load-misses,dTLB-loads,dTLB-load-misses" -PERF_OPTIONS= -#perf stat ${PERF_OPTIONS} java ${MEM_OPTIONS} ${GC_OPTIONS} ${VM_OPTIONS} ${LOG4J_OPTIONS} -cp "${CP}" ${MAIN} - -java ${MEM_OPTIONS} ${GC_OPTIONS} ${VM_OPTIONS} ${LOG4J_OPTIONS} -cp "${CP}" ${MAIN} diff --git a/log4j-core-test/src/test/resources/perf/runResponseTm.sh b/log4j-core-test/src/test/resources/perf/runResponseTm.sh deleted file mode 100644 index 2860dcd9be8..00000000000 --- a/log4j-core-test/src/test/resources/perf/runResponseTm.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh -# -# -# 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. -# - -NOW=$(date +%Y%m%d-%H%M%S) - -GC_OPTIONS="-XX:+UnlockDiagnosticVMOptions -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCApplicationStoppedTime" -#GC_OPTIONS="${GC_OPTIONS} -XX:GuaranteedSafepointInterval=500000" -GC_OPTIONS="${GC_OPTIONS} -XX:+PrintGCCause -XX:+PrintSafepointStatistics -XX:+LogVMOutput -XX:LogFile=safepoint$NOW.log" -COMPILE_OPTIONS="-XX:CompileCommand=dontinline,org.apache.logging.log4j.core.async.perftest.NoOpIdleStrategy::idle" - -#VM_OPTIONS="-XX:+UnlockDiagnosticVMOptions -XX:+PrintCompilation -XX:+PrintInlining" - -LOG4J_OPTIONS= -#LOG4J_OPTIONS="-Dlog4j.configurationFile=perf-CountingNoOpAppender.xml" -#LOG4J_OPTIONS="-Dlog4j.configurationFile=perf3PlainNoLoc.xml" -#LOG4J_OPTIONS="-Dlog4j.configurationFile=perf7MixedNoLoc.xml" -LOG4J_OPTIONS="-Dlog4j.configurationFile=perf5AsyncApndNoLoc.xml" - -#LOG4J_OPTIONS="-Dlog4j.configuration=perf-log4j12.xml" -#LOG4J_OPTIONS="-Dlog4j.configuration=perf-log4j12-async.xml" -#LOG4J_OPTIONS="-Dlogback.configurationFile=perf-logback-async.xml" -#LOG4J_OPTIONS="-Dlogback.configurationFile=perf-logback.xml" - -#LOG4J_OPTIONS="${LOG4J_OPTIONS} -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector" -LOG4J_OPTIONS="${LOG4J_OPTIONS} -Dlog4j2.enable.direct.encoders=true" -LOG4J_OPTIONS="${LOG4J_OPTIONS} -DAsyncLogger.WaitStrategy=busySpin" -LOG4J_OPTIONS="${LOG4J_OPTIONS} -DAsyncLoggerConfig.WaitStrategy=busySpin" -#LOG4J_OPTIONS="${LOG4J_OPTIONS} -Dlog4j.format.msg.async=true" -export LOG4J_OPTIONS - -CP=".:HdrHistogram-2.1.8.jar:disruptor-3.3.4.jar:log4j-1.2.17.jar:slf4j-api-1.7.21.jar:slf4j-ext-1.7.21.jar:logback-core-1.1.7.jar:logback-classic-1.1.7.jar:log4j-api-2.6-SNAPSHOT.jar:log4j-core-2.6-SNAPSHOT.jar:log4j-core-2.6-SNAPSHOT-tests.jar" - -RUNNER=RunLog4j2 -RESULTDIR=ApndLog4j2 -java -Xms1G -Xmx1G $GC_OPTIONS $COMPILE_OPTIONS $VM_OPTIONS $JFR_OPTIONS $LOG4J_OPTIONS -cp $CP org.apache.logging.log4j.core.async.perftest.ResponseTimeTest 1 10000 $RUNNER -java -Xms1G -Xmx1G $GC_OPTIONS $COMPILE_OPTIONS $VM_OPTIONS $JFR_OPTIONS $LOG4J_OPTIONS -cp $CP org.apache.logging.log4j.core.async.perftest.ResponseTimeTest 2 5000 $RUNNER -java -Xms1G -Xmx1G $GC_OPTIONS $COMPILE_OPTIONS $VM_OPTIONS $JFR_OPTIONS $LOG4J_OPTIONS -cp $CP org.apache.logging.log4j.core.async.perftest.ResponseTimeTest 4 2500 $RUNNER -mkdir async$RESULTDIR-10k -mv *k? async$RESULTDIR-10k -mv nohup.out async$RESULTDIR-10k -mv safepoint$NOW.log async$RESULTDIR-10k - - diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/CoreContextSelectors.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/CoreContextSelectors.java deleted file mode 100644 index 51975ed947f..00000000000 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/selector/CoreContextSelectors.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * 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. - */ -package org.apache.logging.log4j.core.selector; - -import org.apache.logging.log4j.core.async.AsyncLoggerContextSelector; -import org.apache.logging.log4j.core.async.BasicAsyncLoggerContextSelector; - -public class CoreContextSelectors { - - public static final Class[] CLASSES = new Class[] { - ClassLoaderContextSelector.class, - BasicContextSelector.class, - AsyncLoggerContextSelector.class, - BasicAsyncLoggerContextSelector.class - }; -} diff --git a/log4j-csv/pom.xml b/log4j-csv/pom.xml index d9efac8623b..9556eb32a23 100644 --- a/log4j-csv/pom.xml +++ b/log4j-csv/pom.xml @@ -53,6 +53,11 @@ log4j-api-test test + + org.apache.logging.log4j + log4j-async-logger + test + org.apache.logging.log4j log4j-core-test diff --git a/log4j-gc-test/pom.xml b/log4j-gc-test/pom.xml index 66a32be6403..8d10ca0391c 100644 --- a/log4j-gc-test/pom.xml +++ b/log4j-gc-test/pom.xml @@ -32,6 +32,11 @@ true + + org.apache.logging.log4j + log4j-async-logger + test + org.apache.logging.log4j log4j-core diff --git a/log4j-jul/pom.xml b/log4j-jul/pom.xml index bf99f999161..5fb2704a4c5 100644 --- a/log4j-jul/pom.xml +++ b/log4j-jul/pom.xml @@ -71,6 +71,11 @@ junit test + + org.apache.logging.log4j + log4j-async-logger + test + org.apache.logging.log4j log4j-core-test @@ -122,8 +127,6 @@ test - ${log4j.skip.test1} - ${log4j.skip.test2} Log4jBridgeHandlerTest.java diff --git a/log4j-perf-test/pom.xml b/log4j-perf-test/pom.xml index 92e055ea94d..3892cddbe1e 100644 --- a/log4j-perf-test/pom.xml +++ b/log4j-perf-test/pom.xml @@ -49,6 +49,10 @@ org.apache.logging.log4j log4j-api + + org.apache.logging.log4j + log4j-async-logger + org.apache.logging.log4j log4j-core From 564bcdbcb7dd93b81f0467353f529c241b9bb614 Mon Sep 17 00:00:00 2001 From: "Piotr P. Karwasz" Date: Thu, 25 Jan 2024 11:50:18 +0100 Subject: [PATCH 2/5] Move async support to `log4j-async-logger` This moves the main code for `AsyncLogger` and `AsyncLoggerConfig` to `log4j-async-logger`. Further tasks such as proper encapsulation into internal packages and removal of the optional dependency guards, will be performed in a future task. --- .../async/logger}/AbstractAsyncExceptionHandler.java | 2 +- .../apache/logging/log4j/async/logger}/AsyncLogger.java | 4 +++- .../logging/log4j/async/logger}/AsyncLoggerConfig.java | 4 +++- .../logger}/AsyncLoggerConfigDefaultExceptionHandler.java | 2 +- .../log4j/async/logger}/AsyncLoggerConfigDelegate.java | 3 ++- .../log4j/async/logger}/AsyncLoggerConfigDisruptor.java | 7 ++++++- .../logging/log4j/async/logger}/AsyncLoggerContext.java | 2 +- .../log4j/async/logger}/AsyncLoggerContextSelector.java | 2 +- .../async/logger}/AsyncLoggerDefaultExceptionHandler.java | 2 +- .../logging/log4j/async/logger}/AsyncLoggerDisruptor.java | 6 +++++- .../log4j/async/logger}/AsyncWaitStrategyFactory.java | 2 +- .../async/logger}/BasicAsyncLoggerContextSelector.java | 2 +- .../async/logger}/DefaultAsyncWaitStrategyFactory.java | 2 +- .../log4j/async/logger}/DisruptorConfiguration.java | 2 +- .../apache/logging/log4j/async/logger}/DisruptorUtil.java | 2 +- .../logging/log4j/async/logger}/RingBufferLogEvent.java | 3 ++- .../log4j/async/logger}/RingBufferLogEventHandler.java | 2 +- .../log4j/async/logger}/RingBufferLogEventTranslator.java | 2 +- .../log4j/async/logger}/TimeoutBlockingWaitStrategy.java | 2 +- .../{core/async => async/logger}/AsyncLateConfigTest.java | 2 +- .../logger}/AsyncLoggerClassLoadDeadlockTest.java | 2 +- .../async => async/logger}/AsyncLoggerConfig2Test.java | 2 +- .../async => async/logger}/AsyncLoggerConfig3Test.java | 2 +- .../async => async/logger}/AsyncLoggerConfig4Test.java | 2 +- .../logger}/AsyncLoggerConfigAutoFlushTest.java | 2 +- .../logger}/AsyncLoggerConfigErrorOnFormat.java | 2 +- .../async => async/logger}/AsyncLoggerConfigTest.java | 4 ++-- .../logger}/AsyncLoggerConfigUseAfterShutdownTest.java | 2 +- .../logger}/AsyncLoggerConfigWithAsyncEnabledTest.java | 2 +- .../AsyncLoggerContextSelectorInitialStateTest.java | 2 +- .../logger}/AsyncLoggerContextSelectorTest.java | 2 +- .../async => async/logger}/AsyncLoggerContextTest.java | 2 +- .../logger}/AsyncLoggerCustomSelectorLocationTest.java | 2 +- .../logger}/AsyncLoggerDefaultLocationTest.java | 2 +- .../logger}/AsyncLoggerEventTranslationExceptionTest.java | 2 +- .../async => async/logger}/AsyncLoggerLocationTest.java | 2 +- .../async => async/logger}/AsyncLoggerNanoTimeTest.java | 2 +- .../{core/async => async/logger}/AsyncLoggerTest.java | 2 +- .../logger}/AsyncLoggerTestArgumentFreedOnErrorTest.java | 2 +- .../logger}/AsyncLoggerThreadContextTest.java | 2 +- .../logger}/AsyncLoggerTimestampMessageTest.java | 2 +- .../logger}/AsyncLoggerUseAfterShutdownTest.java | 2 +- .../logger}/AsyncLoggersWithAsyncAppenderTest.java | 2 +- .../logger}/AsyncLoggersWithAsyncLoggerConfigTest.java | 2 +- .../logger}/AsyncQueueFullPolicyFactoryTest.java | 7 ++++++- .../{core/async => async/logger}/AsyncRootReloadTest.java | 2 +- .../async => async/logger}/AsyncThreadContextTest.java | 2 +- .../logger}/BasicAsyncLoggerContextSelectorTest.java | 2 +- .../logger}/DisruptorConfigurationInvalidTest.java | 2 +- .../logger}/DisruptorConfigurationTest.java | 2 +- .../logger}/GarbageFreeAsyncThreadContextTest.java | 2 +- .../async => async/logger}/Log4j2Jira1688AsyncTest.java | 2 +- .../logger}/QueueFullAsyncAbstractTest.java | 3 ++- .../async => async/logger}/QueueFullAsyncLogger2Test.java | 2 +- .../async => async/logger}/QueueFullAsyncLogger3Test.java | 8 +++++--- .../logger}/QueueFullAsyncLoggerConfig2Test.java | 2 +- ...ueueFullAsyncLoggerConfigLoggingFromToString2Test.java | 2 +- ...QueueFullAsyncLoggerConfigLoggingFromToStringTest.java | 2 +- .../logger}/QueueFullAsyncLoggerConfigTest.java | 2 +- .../QueueFullAsyncLoggerLoggingFromToStringTest.java | 2 +- .../async => async/logger}/QueueFullAsyncLoggerTest.java | 2 +- .../async => async/logger}/RingBufferLogEventTest.java | 2 +- .../logger}/AsyncLoggerClassLoadDeadlockTest.xml | 0 .../async => async/logger}/AsyncLoggerConfig2Test.xml | 0 .../async => async/logger}/AsyncLoggerConfig3Test.xml | 0 .../async => async/logger}/AsyncLoggerConfig4Test.xml | 0 .../logger}/AsyncLoggerConfigAutoFlushTest.xml | 0 .../logger}/AsyncLoggerConfigErrorOnFormat.xml | 0 .../async => async/logger}/AsyncLoggerConfigTest.xml | 0 .../logger}/AsyncLoggerConfigUseAfterShutdownTest.xml | 0 .../logger}/AsyncLoggerConfigWithAsyncEnabledTest.xml | 0 .../logger}/AsyncLoggerCustomSelectorLocationTest.xml | 0 .../logger}/AsyncLoggerDefaultLocationTest.xml | 0 .../logger}/AsyncLoggerEventTranslationExceptionTest.xml | 0 .../async => async/logger}/AsyncLoggerLocationTest.xml | 0 .../async => async/logger}/AsyncLoggerNanoTimeTest.xml | 0 .../{core/async => async/logger}/AsyncLoggerTest.xml | 0 .../logger}/AsyncLoggerTestArgumentFreedOnErrorTest.xml | 0 .../logger}/AsyncLoggerThreadContextTest.xml | 0 .../logger}/AsyncLoggerTimestampMessageTest.xml | 0 .../logger}/AsyncLoggerUseAfterShutdownTest.xml | 0 .../logger}/AsyncLoggersWithAsyncAppenderTest.xml | 0 .../logger}/AsyncLoggersWithAsyncLoggerConfigTest.xml | 0 .../{core/async => async/logger}/AsyncRootReloadTest.xml | 0 .../logger}/AsyncThreadContextTest/ALL_ASYNC.xml | 0 .../AsyncThreadContextTest/BOTH_ALL_ASYNC_AND_MIXED.xml | 0 .../logger}/AsyncThreadContextTest/MIXED.xml | 0 .../logger}/DisruptorConfigurationInvalidTest.xml | 0 .../async => async/logger}/DisruptorConfigurationTest.xml | 2 +- .../async => async/logger}/Log4j2Jira1688AsyncTest.xml | 0 .../QueueFullAsyncLoggerConfigLoggingFromToStringTest.xml | 0 .../logger}/QueueFullAsyncLoggerConfigTest.xml | 0 log4j-core/pom.xml | 6 ------ .../log4j/csv/layout/CsvParameterLayoutAllAsyncTest.java | 2 +- .../logging/log4j/gctests/GcFreeAsyncLoggingTest.java | 2 +- .../logging/log4j/jul/test/AsyncLoggerThreadsTest.java | 2 +- .../log4j/perf/jmh/FileAppenderThrowableBenchmark.java | 4 ++-- 97 files changed, 94 insertions(+), 77 deletions(-) rename {log4j-core/src/main/java/org/apache/logging/log4j/core/async => log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger}/AbstractAsyncExceptionHandler.java (98%) rename {log4j-core/src/main/java/org/apache/logging/log4j/core/async => log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger}/AsyncLogger.java (98%) rename {log4j-core/src/main/java/org/apache/logging/log4j/core/async => log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger}/AsyncLoggerConfig.java (98%) rename {log4j-core/src/main/java/org/apache/logging/log4j/core/async => log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger}/AsyncLoggerConfigDefaultExceptionHandler.java (95%) rename {log4j-core/src/main/java/org/apache/logging/log4j/core/async => log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger}/AsyncLoggerConfigDelegate.java (95%) rename {log4j-core/src/main/java/org/apache/logging/log4j/core/async => log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger}/AsyncLoggerConfigDisruptor.java (98%) rename {log4j-core/src/main/java/org/apache/logging/log4j/core/async => log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger}/AsyncLoggerContext.java (99%) rename {log4j-core/src/main/java/org/apache/logging/log4j/core/async => log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger}/AsyncLoggerContextSelector.java (97%) rename {log4j-core/src/main/java/org/apache/logging/log4j/core/async => log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger}/AsyncLoggerDefaultExceptionHandler.java (95%) rename {log4j-core/src/main/java/org/apache/logging/log4j/core/async => log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger}/AsyncLoggerDisruptor.java (97%) rename {log4j-core/src/main/java/org/apache/logging/log4j/core/async => log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger}/AsyncWaitStrategyFactory.java (96%) rename {log4j-core/src/main/java/org/apache/logging/log4j/core/async => log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger}/BasicAsyncLoggerContextSelector.java (97%) rename {log4j-core/src/main/java/org/apache/logging/log4j/core/async => log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger}/DefaultAsyncWaitStrategyFactory.java (98%) rename {log4j-core/src/main/java/org/apache/logging/log4j/core/async => log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger}/DisruptorConfiguration.java (99%) rename {log4j-core/src/main/java/org/apache/logging/log4j/core/async => log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger}/DisruptorUtil.java (99%) rename {log4j-core/src/main/java/org/apache/logging/log4j/core/async => log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger}/RingBufferLogEvent.java (99%) rename {log4j-core/src/main/java/org/apache/logging/log4j/core/async => log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger}/RingBufferLogEventHandler.java (98%) rename {log4j-core/src/main/java/org/apache/logging/log4j/core/async => log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger}/RingBufferLogEventTranslator.java (99%) rename {log4j-core/src/main/java/org/apache/logging/log4j/core/async => log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger}/TimeoutBlockingWaitStrategy.java (98%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLateConfigTest.java (97%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerClassLoadDeadlockTest.java (98%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerConfig2Test.java (98%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerConfig3Test.java (98%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerConfig4Test.java (98%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerConfigAutoFlushTest.java (97%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerConfigErrorOnFormat.java (98%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerConfigTest.java (97%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerConfigUseAfterShutdownTest.java (97%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerConfigWithAsyncEnabledTest.java (98%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerContextSelectorInitialStateTest.java (96%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerContextSelectorTest.java (98%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerContextTest.java (96%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerCustomSelectorLocationTest.java (98%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerDefaultLocationTest.java (97%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerEventTranslationExceptionTest.java (99%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerLocationTest.java (98%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerNanoTimeTest.java (98%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerTest.java (98%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerTestArgumentFreedOnErrorTest.java (98%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerThreadContextTest.java (98%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerTimestampMessageTest.java (98%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerUseAfterShutdownTest.java (97%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggersWithAsyncAppenderTest.java (98%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggersWithAsyncLoggerConfigTest.java (98%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncQueueFullPolicyFactoryTest.java (93%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncRootReloadTest.java (97%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/AsyncThreadContextTest.java (99%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/BasicAsyncLoggerContextSelectorTest.java (98%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/DisruptorConfigurationInvalidTest.java (97%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/DisruptorConfigurationTest.java (98%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/GarbageFreeAsyncThreadContextTest.java (97%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/Log4j2Jira1688AsyncTest.java (98%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/QueueFullAsyncAbstractTest.java (98%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/QueueFullAsyncLogger2Test.java (96%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/QueueFullAsyncLogger3Test.java (91%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/QueueFullAsyncLoggerConfig2Test.java (96%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/QueueFullAsyncLoggerConfigLoggingFromToString2Test.java (96%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/QueueFullAsyncLoggerConfigLoggingFromToStringTest.java (97%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/QueueFullAsyncLoggerConfigTest.java (97%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/QueueFullAsyncLoggerLoggingFromToStringTest.java (97%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/QueueFullAsyncLoggerTest.java (97%) rename log4j-async-logger/src/test/java/org/apache/logging/log4j/{core/async => async/logger}/RingBufferLogEventTest.java (99%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerClassLoadDeadlockTest.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerConfig2Test.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerConfig3Test.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerConfig4Test.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerConfigAutoFlushTest.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerConfigErrorOnFormat.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerConfigTest.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerConfigUseAfterShutdownTest.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerConfigWithAsyncEnabledTest.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerCustomSelectorLocationTest.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerDefaultLocationTest.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerEventTranslationExceptionTest.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerLocationTest.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerNanoTimeTest.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerTest.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerTestArgumentFreedOnErrorTest.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerThreadContextTest.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerTimestampMessageTest.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggerUseAfterShutdownTest.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggersWithAsyncAppenderTest.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncLoggersWithAsyncLoggerConfigTest.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncRootReloadTest.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncThreadContextTest/ALL_ASYNC.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncThreadContextTest/BOTH_ALL_ASYNC_AND_MIXED.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/AsyncThreadContextTest/MIXED.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/DisruptorConfigurationInvalidTest.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/DisruptorConfigurationTest.xml (91%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/Log4j2Jira1688AsyncTest.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/QueueFullAsyncLoggerConfigLoggingFromToStringTest.xml (100%) rename log4j-async-logger/src/test/resources/org/apache/logging/log4j/{core/async => async/logger}/QueueFullAsyncLoggerConfigTest.xml (100%) diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AbstractAsyncExceptionHandler.java b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AbstractAsyncExceptionHandler.java similarity index 98% rename from log4j-core/src/main/java/org/apache/logging/log4j/core/async/AbstractAsyncExceptionHandler.java rename to log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AbstractAsyncExceptionHandler.java index dd84b23c528..51f1c7bc962 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AbstractAsyncExceptionHandler.java +++ b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AbstractAsyncExceptionHandler.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import com.lmax.disruptor.ExceptionHandler; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLogger.java b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLogger.java similarity index 98% rename from log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLogger.java rename to log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLogger.java index 5515fcbb348..ef58ea767ce 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLogger.java +++ b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLogger.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import java.util.List; import org.apache.logging.log4j.Level; @@ -24,6 +24,8 @@ import org.apache.logging.log4j.core.Logger; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.ReusableLogEvent; +import org.apache.logging.log4j.core.async.AsyncQueueFullMessageUtil; +import org.apache.logging.log4j.core.async.EventRoute; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.LoggerConfig; import org.apache.logging.log4j.core.config.Property; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig.java b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfig.java similarity index 98% rename from log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig.java rename to log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfig.java index f048b8506f5..da36cf561aa 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig.java +++ b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfig.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import java.util.List; import java.util.concurrent.TimeUnit; @@ -23,6 +23,8 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.core.Filter; import org.apache.logging.log4j.core.LogEvent; +import org.apache.logging.log4j.core.async.AsyncQueueFullMessageUtil; +import org.apache.logging.log4j.core.async.EventRoute; import org.apache.logging.log4j.core.config.AppenderRef; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.LoggerConfig; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigDefaultExceptionHandler.java b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigDefaultExceptionHandler.java similarity index 95% rename from log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigDefaultExceptionHandler.java rename to log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigDefaultExceptionHandler.java index 1bf13f7dd3d..3502bb38d0e 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigDefaultExceptionHandler.java +++ b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigDefaultExceptionHandler.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; /** * Default disruptor exception handler for errors that occur in the AsyncLogger background thread. diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigDelegate.java b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigDelegate.java similarity index 95% rename from log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigDelegate.java rename to log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigDelegate.java index e2145a93f49..e3997404c42 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigDelegate.java +++ b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigDelegate.java @@ -14,10 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.core.LogEvent; +import org.apache.logging.log4j.core.async.EventRoute; import org.apache.logging.log4j.core.impl.LogEventFactory; /** diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigDisruptor.java b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigDisruptor.java similarity index 98% rename from log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigDisruptor.java rename to log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigDisruptor.java index 3f27efc83fb..b132e6ae847 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigDisruptor.java +++ b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigDisruptor.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import com.lmax.disruptor.EventFactory; import com.lmax.disruptor.EventHandler; @@ -34,6 +34,11 @@ import org.apache.logging.log4j.core.AbstractLifeCycle; import org.apache.logging.log4j.core.LogEvent; import org.apache.logging.log4j.core.ReusableLogEvent; +import org.apache.logging.log4j.core.async.AsyncQueueFullPolicy; +import org.apache.logging.log4j.core.async.AsyncQueueFullPolicyFactory; +import org.apache.logging.log4j.core.async.DiscardingAsyncQueueFullPolicy; +import org.apache.logging.log4j.core.async.EventRoute; +import org.apache.logging.log4j.core.async.InternalAsyncUtil; import org.apache.logging.log4j.core.impl.Log4jLogEvent; import org.apache.logging.log4j.core.impl.Log4jPropertyKey; import org.apache.logging.log4j.core.impl.LogEventFactory; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerContext.java b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerContext.java similarity index 99% rename from log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerContext.java rename to log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerContext.java index 0484eb6e91f..8e1ce4290e4 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerContext.java +++ b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerContext.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import java.net.URI; import java.util.concurrent.TimeUnit; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelector.java b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerContextSelector.java similarity index 97% rename from log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelector.java rename to log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerContextSelector.java index fe43e06f9d0..31e5b9c4031 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelector.java +++ b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerContextSelector.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import java.net.URI; import org.apache.logging.log4j.core.LoggerContext; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerDefaultExceptionHandler.java b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerDefaultExceptionHandler.java similarity index 95% rename from log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerDefaultExceptionHandler.java rename to log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerDefaultExceptionHandler.java index 058d306c223..f8e866183fe 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerDefaultExceptionHandler.java +++ b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerDefaultExceptionHandler.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; /** * Default disruptor exception handler for errors that occur in the AsyncLogger background thread. diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerDisruptor.java b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerDisruptor.java similarity index 97% rename from log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerDisruptor.java rename to log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerDisruptor.java index b3281e42168..b2280e62b7e 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerDisruptor.java +++ b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncLoggerDisruptor.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import com.lmax.disruptor.ExceptionHandler; import com.lmax.disruptor.RingBuffer; @@ -30,6 +30,10 @@ import java.util.function.Supplier; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.core.AbstractLifeCycle; +import org.apache.logging.log4j.core.async.AsyncQueueFullPolicy; +import org.apache.logging.log4j.core.async.AsyncQueueFullPolicyFactory; +import org.apache.logging.log4j.core.async.DiscardingAsyncQueueFullPolicy; +import org.apache.logging.log4j.core.async.EventRoute; import org.apache.logging.log4j.core.impl.Log4jPropertyKey; import org.apache.logging.log4j.core.util.Log4jThread; import org.apache.logging.log4j.core.util.Log4jThreadFactory; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncWaitStrategyFactory.java b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncWaitStrategyFactory.java similarity index 96% rename from log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncWaitStrategyFactory.java rename to log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncWaitStrategyFactory.java index 7b5f1c0b1a6..491b37eebf7 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncWaitStrategyFactory.java +++ b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/AsyncWaitStrategyFactory.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import com.lmax.disruptor.WaitStrategy; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/BasicAsyncLoggerContextSelector.java b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/BasicAsyncLoggerContextSelector.java similarity index 97% rename from log4j-core/src/main/java/org/apache/logging/log4j/core/async/BasicAsyncLoggerContextSelector.java rename to log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/BasicAsyncLoggerContextSelector.java index 7292941cd54..e8d458f4662 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/BasicAsyncLoggerContextSelector.java +++ b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/BasicAsyncLoggerContextSelector.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import java.net.URI; import org.apache.logging.log4j.core.LoggerContext; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DefaultAsyncWaitStrategyFactory.java b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/DefaultAsyncWaitStrategyFactory.java similarity index 98% rename from log4j-core/src/main/java/org/apache/logging/log4j/core/async/DefaultAsyncWaitStrategyFactory.java rename to log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/DefaultAsyncWaitStrategyFactory.java index 1014846a660..d0084a17ee3 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DefaultAsyncWaitStrategyFactory.java +++ b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/DefaultAsyncWaitStrategyFactory.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import com.lmax.disruptor.BlockingWaitStrategy; import com.lmax.disruptor.BusySpinWaitStrategy; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorConfiguration.java b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/DisruptorConfiguration.java similarity index 99% rename from log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorConfiguration.java rename to log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/DisruptorConfiguration.java index 035aa4c445d..01eccd43e64 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorConfiguration.java +++ b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/DisruptorConfiguration.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import java.util.Objects; import java.util.concurrent.TimeUnit; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorUtil.java b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/DisruptorUtil.java similarity index 99% rename from log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorUtil.java rename to log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/DisruptorUtil.java index 7d9444e0ef1..9716276ed65 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorUtil.java +++ b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/DisruptorUtil.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.apache.logging.log4j.core.impl.Log4jPropertyKey.ASYNC_CONFIG_EXCEPTION_HANDLER_CLASS_NAME; import static org.apache.logging.log4j.core.impl.Log4jPropertyKey.ASYNC_LOGGER_EXCEPTION_HANDLER_CLASS_NAME; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/RingBufferLogEvent.java similarity index 99% rename from log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java rename to log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/RingBufferLogEvent.java index 5d97613bc2f..4c4b6da4c2d 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java +++ b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/RingBufferLogEvent.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import com.lmax.disruptor.EventFactory; import java.util.Arrays; @@ -23,6 +23,7 @@ import org.apache.logging.log4j.ThreadContext.ContextStack; import org.apache.logging.log4j.core.LogEvent; import org.apache.logging.log4j.core.ReusableLogEvent; +import org.apache.logging.log4j.core.async.InternalAsyncUtil; import org.apache.logging.log4j.core.impl.ContextDataFactory; import org.apache.logging.log4j.core.impl.Log4jLogEvent; import org.apache.logging.log4j.core.impl.MementoMessage; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEventHandler.java b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/RingBufferLogEventHandler.java similarity index 98% rename from log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEventHandler.java rename to log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/RingBufferLogEventHandler.java index f141846591f..f19be654937 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEventHandler.java +++ b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/RingBufferLogEventHandler.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import com.lmax.disruptor.EventHandler; import com.lmax.disruptor.Sequence; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEventTranslator.java b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/RingBufferLogEventTranslator.java similarity index 99% rename from log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEventTranslator.java rename to log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/RingBufferLogEventTranslator.java index 15b2b652bcb..96948902be0 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEventTranslator.java +++ b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/RingBufferLogEventTranslator.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import com.lmax.disruptor.EventTranslator; import org.apache.logging.log4j.Level; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/TimeoutBlockingWaitStrategy.java b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/TimeoutBlockingWaitStrategy.java similarity index 98% rename from log4j-core/src/main/java/org/apache/logging/log4j/core/async/TimeoutBlockingWaitStrategy.java rename to log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/TimeoutBlockingWaitStrategy.java index 77db1635c9e..657da6fec47 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/TimeoutBlockingWaitStrategy.java +++ b/log4j-async-logger/src/main/java/org/apache/logging/log4j/async/logger/TimeoutBlockingWaitStrategy.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import com.lmax.disruptor.AlertException; import com.lmax.disruptor.BatchEventProcessor; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLateConfigTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLateConfigTest.java similarity index 97% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLateConfigTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLateConfigTest.java index 3c4b73fff75..79cf78d7ecd 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLateConfigTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLateConfigTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import java.nio.file.Path; import java.util.stream.Stream; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerClassLoadDeadlockTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerClassLoadDeadlockTest.java similarity index 98% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerClassLoadDeadlockTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerClassLoadDeadlockTest.java index 4836bbbfbd5..b4ff970790c 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerClassLoadDeadlockTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerClassLoadDeadlockTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.junit.jupiter.api.Assertions.assertNotNull; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig2Test.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfig2Test.java similarity index 98% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig2Test.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfig2Test.java index a36c7569597..ff45f7b9045 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig2Test.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfig2Test.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig3Test.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfig3Test.java similarity index 98% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig3Test.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfig3Test.java index f46c75b61fa..8508971b990 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig3Test.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfig3Test.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import java.nio.file.Path; import java.util.HashMap; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig4Test.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfig4Test.java similarity index 98% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig4Test.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfig4Test.java index f95ddedbf05..5f203739be1 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig4Test.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfig4Test.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigAutoFlushTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigAutoFlushTest.java similarity index 97% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigAutoFlushTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigAutoFlushTest.java index 12b745207a8..d59738208a2 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigAutoFlushTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigAutoFlushTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigErrorOnFormat.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigErrorOnFormat.java similarity index 98% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigErrorOnFormat.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigErrorOnFormat.java index 1b144842a00..7ed1bfe672f 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigErrorOnFormat.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigErrorOnFormat.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsString; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigTest.java similarity index 97% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigTest.java index 3dba066194f..6a08fdaf867 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertFalse; @@ -30,10 +30,10 @@ import java.nio.file.Path; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.async.logger.AsyncLoggerConfig.RootLogger; import org.apache.logging.log4j.core.Appender; import org.apache.logging.log4j.core.Filter; import org.apache.logging.log4j.core.LoggerContext; -import org.apache.logging.log4j.core.async.AsyncLoggerConfig.RootLogger; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.LoggerConfig; import org.apache.logging.log4j.core.config.NullConfiguration; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigUseAfterShutdownTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigUseAfterShutdownTest.java similarity index 97% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigUseAfterShutdownTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigUseAfterShutdownTest.java index 29f20f63e52..79165e5c9bd 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigUseAfterShutdownTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigUseAfterShutdownTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import java.nio.file.Path; import org.apache.logging.log4j.Level; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigWithAsyncEnabledTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigWithAsyncEnabledTest.java similarity index 98% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigWithAsyncEnabledTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigWithAsyncEnabledTest.java index 3cbcdaf5f34..657cc65bee5 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerConfigWithAsyncEnabledTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerConfigWithAsyncEnabledTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelectorInitialStateTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerContextSelectorInitialStateTest.java similarity index 96% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelectorInitialStateTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerContextSelectorInitialStateTest.java index 8e3af122358..31997d697b4 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelectorInitialStateTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerContextSelectorInitialStateTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelectorTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerContextSelectorTest.java similarity index 98% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelectorTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerContextSelectorTest.java index 7c6081e7c0a..b3141cb42b8 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextSelectorTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerContextSelectorTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerContextTest.java similarity index 96% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerContextTest.java index 54403bbd9e2..a89108b3c0b 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerContextTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerContextTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.junit.Assert.assertTrue; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerCustomSelectorLocationTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerCustomSelectorLocationTest.java similarity index 98% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerCustomSelectorLocationTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerCustomSelectorLocationTest.java index f75fe359776..f84dd735abe 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerCustomSelectorLocationTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerCustomSelectorLocationTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.not; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerDefaultLocationTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerDefaultLocationTest.java similarity index 97% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerDefaultLocationTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerDefaultLocationTest.java index 3d5ecfd09eb..6c2e5b3bbb3 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerDefaultLocationTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerDefaultLocationTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerEventTranslationExceptionTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerEventTranslationExceptionTest.java similarity index 99% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerEventTranslationExceptionTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerEventTranslationExceptionTest.java index bc7e9ca5456..418b8bedf7f 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerEventTranslationExceptionTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerEventTranslationExceptionTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertThrows; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerLocationTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerLocationTest.java similarity index 98% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerLocationTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerLocationTest.java index fb81b286b0c..81899d4b0f7 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerLocationTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerLocationTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerNanoTimeTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerNanoTimeTest.java similarity index 98% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerNanoTimeTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerNanoTimeTest.java index 02137cd983a..2ab6d4e1c86 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerNanoTimeTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerNanoTimeTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerTest.java similarity index 98% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerTest.java index 319e9d0e87e..a5e48de0d9b 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTestArgumentFreedOnErrorTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerTestArgumentFreedOnErrorTest.java similarity index 98% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTestArgumentFreedOnErrorTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerTestArgumentFreedOnErrorTest.java index 17774c3765a..f66e1d76d76 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTestArgumentFreedOnErrorTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerTestArgumentFreedOnErrorTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerThreadContextTest.java similarity index 98% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerThreadContextTest.java index 2cd7adf0ce6..8741a347b1f 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerThreadContextTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTimestampMessageTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerTimestampMessageTest.java similarity index 98% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTimestampMessageTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerTimestampMessageTest.java index 256ee7130ed..89912ae0920 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTimestampMessageTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerTimestampMessageTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.assertj.core.api.Assertions.assertThat; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerUseAfterShutdownTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerUseAfterShutdownTest.java similarity index 97% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerUseAfterShutdownTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerUseAfterShutdownTest.java index 520300e05c2..912d2409c3d 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerUseAfterShutdownTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerUseAfterShutdownTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Logger; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggersWithAsyncAppenderTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggersWithAsyncAppenderTest.java similarity index 98% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggersWithAsyncAppenderTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggersWithAsyncAppenderTest.java index cb0c87d338c..04ca49d4db9 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggersWithAsyncAppenderTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggersWithAsyncAppenderTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.assertj.core.api.Assertions.assertThat; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggersWithAsyncLoggerConfigTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggersWithAsyncLoggerConfigTest.java similarity index 98% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggersWithAsyncLoggerConfigTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggersWithAsyncLoggerConfigTest.java index c7690d858a9..0564601b315 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggersWithAsyncLoggerConfigTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggersWithAsyncLoggerConfigTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactoryTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncQueueFullPolicyFactoryTest.java similarity index 93% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactoryTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncQueueFullPolicyFactoryTest.java index 532cb9fe6e3..7f9f9c1c30c 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactoryTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncQueueFullPolicyFactoryTest.java @@ -14,12 +14,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.apache.logging.log4j.util.Strings.toRootLowerCase; import static org.junit.jupiter.api.Assertions.assertEquals; import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.core.async.AsyncQueueFullPolicy; +import org.apache.logging.log4j.core.async.AsyncQueueFullPolicyFactory; +import org.apache.logging.log4j.core.async.DefaultAsyncQueueFullPolicy; +import org.apache.logging.log4j.core.async.DiscardingAsyncQueueFullPolicy; +import org.apache.logging.log4j.core.async.EventRoute; import org.apache.logging.log4j.core.impl.Log4jPropertyKey; import org.apache.logging.log4j.util.PropertiesUtil; import org.junit.jupiter.api.AfterEach; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncRootReloadTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncRootReloadTest.java similarity index 97% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncRootReloadTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncRootReloadTest.java index 45807b6072d..bb7e1cecf0b 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncRootReloadTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncRootReloadTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import java.io.File; import java.net.URISyntaxException; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncThreadContextTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncThreadContextTest.java similarity index 99% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncThreadContextTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncThreadContextTest.java index 819eaa0f90a..c8d57007bc1 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/AsyncThreadContextTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncThreadContextTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.waitAtMost; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/BasicAsyncLoggerContextSelectorTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/BasicAsyncLoggerContextSelectorTest.java similarity index 98% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/BasicAsyncLoggerContextSelectorTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/BasicAsyncLoggerContextSelectorTest.java index dc38a338644..a0256ee8ef4 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/BasicAsyncLoggerContextSelectorTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/BasicAsyncLoggerContextSelectorTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/DisruptorConfigurationInvalidTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/DisruptorConfigurationInvalidTest.java similarity index 97% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/DisruptorConfigurationInvalidTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/DisruptorConfigurationInvalidTest.java index aec3757813b..c7742987d5e 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/DisruptorConfigurationInvalidTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/DisruptorConfigurationInvalidTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/DisruptorConfigurationTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/DisruptorConfigurationTest.java similarity index 98% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/DisruptorConfigurationTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/DisruptorConfigurationTest.java index 16dedf40372..190dbee16bc 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/DisruptorConfigurationTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/DisruptorConfigurationTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.assertj.core.api.Assertions.assertThat; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/GarbageFreeAsyncThreadContextTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/GarbageFreeAsyncThreadContextTest.java similarity index 97% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/GarbageFreeAsyncThreadContextTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/GarbageFreeAsyncThreadContextTest.java index 8dab35c708c..5bb8bf789c6 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/GarbageFreeAsyncThreadContextTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/GarbageFreeAsyncThreadContextTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import java.nio.file.Path; import org.apache.logging.log4j.test.TestProperties; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/Log4j2Jira1688AsyncTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/Log4j2Jira1688AsyncTest.java similarity index 98% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/Log4j2Jira1688AsyncTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/Log4j2Jira1688AsyncTest.java index 5b5e1ef57b9..220cad08a77 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/Log4j2Jira1688AsyncTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/Log4j2Jira1688AsyncTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.junit.jupiter.api.Assertions.assertArrayEquals; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncAbstractTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncAbstractTest.java similarity index 98% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncAbstractTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncAbstractTest.java index 03ea0a04c79..93ef280d444 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncAbstractTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncAbstractTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.assertj.core.api.Assertions.assertThat; @@ -26,6 +26,7 @@ import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.core.LoggerContext; +import org.apache.logging.log4j.core.async.QueueFullAbstractTest; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.LoggerConfig; import org.apache.logging.log4j.core.test.async.BlockingAppender; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLogger2Test.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLogger2Test.java similarity index 96% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLogger2Test.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLogger2Test.java index 962ac5fb74d..55e0b74025d 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLogger2Test.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLogger2Test.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.test.junit.SetTestProperty; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLogger3Test.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLogger3Test.java similarity index 91% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLogger3Test.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLogger3Test.java index 8debb4b4356..575f15c422d 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLogger3Test.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLogger3Test.java @@ -14,21 +14,23 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static java.util.concurrent.TimeUnit.SECONDS; -import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertTrue; import java.util.concurrent.CountDownLatch; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.core.GarbageCollectionHelper; import org.apache.logging.log4j.core.LoggerContext; +import org.apache.logging.log4j.core.async.AsyncQueueFullPolicyFactory; +import org.apache.logging.log4j.core.async.DiscardingAsyncQueueFullPolicy; import org.apache.logging.log4j.core.test.async.BlockingAppender; import org.apache.logging.log4j.core.test.junit.LoggerContextSource; import org.apache.logging.log4j.core.test.junit.Named; import org.apache.logging.log4j.message.Message; import org.apache.logging.log4j.test.junit.SetTestProperty; +import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Timeout; @@ -47,7 +49,7 @@ public class QueueFullAsyncLogger3Test extends QueueFullAsyncAbstractTest { protected void checkConfig(final LoggerContext ctx) { assertAsyncLogger(ctx, 128); assertFormatMessagesInBackground(); - assertThat(AsyncQueueFullPolicyFactory.create()).isInstanceOf(DiscardingAsyncQueueFullPolicy.class); + Assertions.assertThat(AsyncQueueFullPolicyFactory.create()).isInstanceOf(DiscardingAsyncQueueFullPolicy.class); } @Test diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfig2Test.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerConfig2Test.java similarity index 96% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfig2Test.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerConfig2Test.java index ef5f5f0455e..48e34790368 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfig2Test.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerConfig2Test.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.test.junit.SetTestProperty; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigLoggingFromToString2Test.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerConfigLoggingFromToString2Test.java similarity index 96% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigLoggingFromToString2Test.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerConfigLoggingFromToString2Test.java index 7820f1c1e54..9d886ce5952 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigLoggingFromToString2Test.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerConfigLoggingFromToString2Test.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.test.junit.SetTestProperty; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigLoggingFromToStringTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerConfigLoggingFromToStringTest.java similarity index 97% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigLoggingFromToStringTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerConfigLoggingFromToStringTest.java index e9d78fa6386..900e1711e4f 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigLoggingFromToStringTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerConfigLoggingFromToStringTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.assertj.core.api.Assertions.assertThat; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerConfigTest.java similarity index 97% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerConfigTest.java index feb04be22e1..0eb7e853b5f 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerConfigTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.test.async.BlockingAppender; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerLoggingFromToStringTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerLoggingFromToStringTest.java similarity index 97% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerLoggingFromToStringTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerLoggingFromToStringTest.java index e58bd1a7ab1..5ac3c0aa21a 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerLoggingFromToStringTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerLoggingFromToStringTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.test.async.BlockingAppender; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerTest.java similarity index 97% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerTest.java index 0c2e41a3160..e6043dc880e 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.test.async.BlockingAppender; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/RingBufferLogEventTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/RingBufferLogEventTest.java similarity index 99% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/RingBufferLogEventTest.java rename to log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/RingBufferLogEventTest.java index f2995c2461f..edefd4975c3 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/core/async/RingBufferLogEventTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/RingBufferLogEventTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.async.logger; import static org.assertj.core.api.Assertions.as; import static org.assertj.core.api.Assertions.assertThat; diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerClassLoadDeadlockTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerClassLoadDeadlockTest.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerClassLoadDeadlockTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerClassLoadDeadlockTest.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerConfig2Test.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerConfig2Test.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerConfig2Test.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerConfig2Test.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerConfig3Test.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerConfig3Test.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerConfig3Test.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerConfig3Test.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerConfig4Test.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerConfig4Test.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerConfig4Test.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerConfig4Test.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerConfigAutoFlushTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerConfigAutoFlushTest.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerConfigAutoFlushTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerConfigAutoFlushTest.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerConfigErrorOnFormat.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerConfigErrorOnFormat.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerConfigErrorOnFormat.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerConfigErrorOnFormat.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerConfigTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerConfigTest.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerConfigTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerConfigTest.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerConfigUseAfterShutdownTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerConfigUseAfterShutdownTest.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerConfigUseAfterShutdownTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerConfigUseAfterShutdownTest.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerConfigWithAsyncEnabledTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerConfigWithAsyncEnabledTest.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerConfigWithAsyncEnabledTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerConfigWithAsyncEnabledTest.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerCustomSelectorLocationTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerCustomSelectorLocationTest.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerCustomSelectorLocationTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerCustomSelectorLocationTest.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerDefaultLocationTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerDefaultLocationTest.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerDefaultLocationTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerDefaultLocationTest.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerEventTranslationExceptionTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerEventTranslationExceptionTest.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerEventTranslationExceptionTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerEventTranslationExceptionTest.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerLocationTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerLocationTest.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerLocationTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerLocationTest.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerNanoTimeTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerNanoTimeTest.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerNanoTimeTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerNanoTimeTest.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerTest.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerTest.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerTestArgumentFreedOnErrorTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerTestArgumentFreedOnErrorTest.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerTestArgumentFreedOnErrorTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerTestArgumentFreedOnErrorTest.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerThreadContextTest.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerThreadContextTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerThreadContextTest.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerTimestampMessageTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerTimestampMessageTest.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerTimestampMessageTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerTimestampMessageTest.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerUseAfterShutdownTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerUseAfterShutdownTest.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggerUseAfterShutdownTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggerUseAfterShutdownTest.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggersWithAsyncAppenderTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggersWithAsyncAppenderTest.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggersWithAsyncAppenderTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggersWithAsyncAppenderTest.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggersWithAsyncLoggerConfigTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggersWithAsyncLoggerConfigTest.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncLoggersWithAsyncLoggerConfigTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncLoggersWithAsyncLoggerConfigTest.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncRootReloadTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncRootReloadTest.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncRootReloadTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncRootReloadTest.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncThreadContextTest/ALL_ASYNC.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncThreadContextTest/ALL_ASYNC.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncThreadContextTest/ALL_ASYNC.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncThreadContextTest/ALL_ASYNC.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncThreadContextTest/BOTH_ALL_ASYNC_AND_MIXED.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncThreadContextTest/BOTH_ALL_ASYNC_AND_MIXED.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncThreadContextTest/BOTH_ALL_ASYNC_AND_MIXED.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncThreadContextTest/BOTH_ALL_ASYNC_AND_MIXED.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncThreadContextTest/MIXED.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncThreadContextTest/MIXED.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/AsyncThreadContextTest/MIXED.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/AsyncThreadContextTest/MIXED.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/DisruptorConfigurationInvalidTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/DisruptorConfigurationInvalidTest.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/DisruptorConfigurationInvalidTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/DisruptorConfigurationInvalidTest.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/DisruptorConfigurationTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/DisruptorConfigurationTest.xml similarity index 91% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/DisruptorConfigurationTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/DisruptorConfigurationTest.xml index f52b0d58c3b..2265a4963ef 100644 --- a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/DisruptorConfigurationTest.xml +++ b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/DisruptorConfigurationTest.xml @@ -27,5 +27,5 @@ + class="org.apache.logging.log4j.async.logger.DisruptorConfigurationTest$YieldingWaitStrategyFactory" /> diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/Log4j2Jira1688AsyncTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/Log4j2Jira1688AsyncTest.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/Log4j2Jira1688AsyncTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/Log4j2Jira1688AsyncTest.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigLoggingFromToStringTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerConfigLoggingFromToStringTest.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigLoggingFromToStringTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerConfigLoggingFromToStringTest.xml diff --git a/log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigTest.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerConfigTest.xml similarity index 100% rename from log4j-async-logger/src/test/resources/org/apache/logging/log4j/core/async/QueueFullAsyncLoggerConfigTest.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerConfigTest.xml diff --git a/log4j-core/pom.xml b/log4j-core/pom.xml index cdbbeca83c3..e676d00b879 100644 --- a/log4j-core/pom.xml +++ b/log4j-core/pom.xml @@ -92,12 +92,6 @@ disruptor true - - - com.lmax - disruptor - true - org.fusesource.jansi diff --git a/log4j-csv/src/test/java/org/apache/logging/log4j/csv/layout/CsvParameterLayoutAllAsyncTest.java b/log4j-csv/src/test/java/org/apache/logging/log4j/csv/layout/CsvParameterLayoutAllAsyncTest.java index 64cff2cfe48..e57d2c99c87 100644 --- a/log4j-csv/src/test/java/org/apache/logging/log4j/csv/layout/CsvParameterLayoutAllAsyncTest.java +++ b/log4j-csv/src/test/java/org/apache/logging/log4j/csv/layout/CsvParameterLayoutAllAsyncTest.java @@ -18,8 +18,8 @@ import org.apache.commons.csv.CSVFormat; import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.async.logger.AsyncLoggerContextSelector; import org.apache.logging.log4j.core.Logger; -import org.apache.logging.log4j.core.async.AsyncLoggerContextSelector; import org.apache.logging.log4j.core.impl.Log4jPropertyKey; import org.apache.logging.log4j.core.test.categories.Layouts; import org.apache.logging.log4j.util.Strings; diff --git a/log4j-gc-test/src/test/java/org/apache/logging/log4j/gctests/GcFreeAsyncLoggingTest.java b/log4j-gc-test/src/test/java/org/apache/logging/log4j/gctests/GcFreeAsyncLoggingTest.java index 7b49932dcc0..ac19e9e3449 100644 --- a/log4j-gc-test/src/test/java/org/apache/logging/log4j/gctests/GcFreeAsyncLoggingTest.java +++ b/log4j-gc-test/src/test/java/org/apache/logging/log4j/gctests/GcFreeAsyncLoggingTest.java @@ -16,7 +16,7 @@ */ package org.apache.logging.log4j.gctests; -import org.apache.logging.log4j.core.async.AsyncLoggerContextSelector; +import org.apache.logging.log4j.async.logger.AsyncLoggerContextSelector; import org.apache.logging.log4j.core.impl.Log4jPropertyKey; import org.apache.logging.log4j.spi.LoggingSystemProperty; import org.junit.jupiter.api.Tag; diff --git a/log4j-jul/src/test/java/org/apache/logging/log4j/jul/test/AsyncLoggerThreadsTest.java b/log4j-jul/src/test/java/org/apache/logging/log4j/jul/test/AsyncLoggerThreadsTest.java index 3abe1f97432..aa36a07de4f 100644 --- a/log4j-jul/src/test/java/org/apache/logging/log4j/jul/test/AsyncLoggerThreadsTest.java +++ b/log4j-jul/src/test/java/org/apache/logging/log4j/jul/test/AsyncLoggerThreadsTest.java @@ -21,7 +21,7 @@ import java.util.List; import java.util.stream.Collectors; import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.core.async.AsyncLoggerContextSelector; +import org.apache.logging.log4j.async.logger.AsyncLoggerContextSelector; import org.apache.logging.log4j.core.impl.Log4jPropertyKey; import org.apache.logging.log4j.core.test.categories.AsyncLoggers; import org.junit.AfterClass; diff --git a/log4j-perf-test/src/main/java/org/apache/logging/log4j/perf/jmh/FileAppenderThrowableBenchmark.java b/log4j-perf-test/src/main/java/org/apache/logging/log4j/perf/jmh/FileAppenderThrowableBenchmark.java index 2dd0bcfa653..54f7c3d6dba 100644 --- a/log4j-perf-test/src/main/java/org/apache/logging/log4j/perf/jmh/FileAppenderThrowableBenchmark.java +++ b/log4j-perf-test/src/main/java/org/apache/logging/log4j/perf/jmh/FileAppenderThrowableBenchmark.java @@ -24,8 +24,8 @@ import java.util.logging.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.core.async.AsyncLoggerContext; -import org.apache.logging.log4j.core.async.AsyncLoggerContextSelector; +import org.apache.logging.log4j.async.logger.AsyncLoggerContext; +import org.apache.logging.log4j.async.logger.AsyncLoggerContextSelector; import org.apache.logging.log4j.core.impl.Log4jPropertyKey; import org.apache.logging.log4j.spi.LoggingSystemProperty; import org.openjdk.jmh.annotations.Benchmark; From f79c12076639c409a74b8d86122a8bf3fff0fd0f Mon Sep 17 00:00:00 2001 From: "Piotr P. Karwasz" Date: Thu, 25 Jan 2024 16:24:00 +0100 Subject: [PATCH 3/5] Fix failing tests --- log4j-async-logger/pom.xml | 20 +++- ...ncLoggerEventTranslationExceptionTest.java | 2 +- .../logger/DefaultIncludeLocationTest.java | 91 +++++++++++++++++++ .../logger/NestedAsyncLoggerConfigTest.java | 21 +++++ .../logger/QueueFullAsyncAbstractTest.java | 2 +- .../logger/QueueFullAsyncLogger3Test.java | 5 +- ...ullAsyncLoggerLoggingFromToStringTest.java | 5 +- .../logger/QueueFullAsyncLoggerTest.java | 5 +- .../default-level.xml | 0 .../inherit-level.xml | 0 .../JavaPropsConfigurationFactoryTest.java | 2 +- .../yaml/YamlConfigurationFactoryTest.java | 2 +- .../async/QueueFullAbstractTest.java | 7 +- .../AbstractConfigurationFactoryTest.java | 3 +- .../AbstractNestedLoggerConfigTest.java | 61 +++++++++++++ .../async/QueueFullAbstractTest.xml | 0 .../RandomAccessFileAppenderTest.java | 79 +++++----------- .../AsyncQueueFullPolicyFactoryTest.java | 7 +- .../async/QueueFullAsyncAppenderTest.java | 1 + .../core/config/ConfigurationFactoryTest.java | 1 + .../core/config/NestedLoggerConfigTest.java | 58 +----------- .../RandomAccessFileAppenderLocationTest.xml | 35 ------- .../RandomAccessFileAppenderTest.xml | 35 ------- .../RollingRandomAccessFileAppenderTest.xml | 37 -------- .../RandomAccessFileAppenderTest.xml} | 28 +++--- .../NestedLoggerConfigTest}/default-level.xml | 0 .../NestedLoggerConfigTest}/inherit-level.xml | 0 27 files changed, 249 insertions(+), 258 deletions(-) create mode 100644 log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/DefaultIncludeLocationTest.java create mode 100644 log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/NestedAsyncLoggerConfigTest.java rename {log4j-core-test/src/test/resources/logger-config/AsyncLoggerConfig => log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/NestedAsyncLoggerConfigTest}/default-level.xml (100%) rename {log4j-core-test/src/test/resources/logger-config/AsyncLoggerConfig => log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/NestedAsyncLoggerConfigTest}/inherit-level.xml (100%) rename log4j-core-test/src/main/java/org/apache/logging/log4j/core/{ => test}/async/QueueFullAbstractTest.java (96%) rename log4j-core-test/src/main/java/org/apache/logging/log4j/core/{ => test}/config/AbstractConfigurationFactoryTest.java (97%) create mode 100644 log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/config/AbstractNestedLoggerConfigTest.java rename log4j-core-test/src/main/resources/org/apache/logging/log4j/core/{ => test}/async/QueueFullAbstractTest.xml (100%) rename {log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger => log4j-core-test/src/test/java/org/apache/logging/log4j/core/async}/AsyncQueueFullPolicyFactoryTest.java (93%) delete mode 100644 log4j-core-test/src/test/resources/RandomAccessFileAppenderLocationTest.xml delete mode 100644 log4j-core-test/src/test/resources/RandomAccessFileAppenderTest.xml delete mode 100644 log4j-core-test/src/test/resources/RollingRandomAccessFileAppenderTest.xml rename log4j-core-test/src/test/resources/{RollingRandomAccessFileAppenderLocationTest.xml => org/apache/logging/log4j/core/appender/RandomAccessFileAppenderTest.xml} (58%) rename log4j-core-test/src/test/resources/{logger-config/LoggerConfig => org/apache/logging/log4j/core/config/NestedLoggerConfigTest}/default-level.xml (100%) rename log4j-core-test/src/test/resources/{logger-config/LoggerConfig => org/apache/logging/log4j/core/config/NestedLoggerConfigTest}/inherit-level.xml (100%) diff --git a/log4j-async-logger/pom.xml b/log4j-async-logger/pom.xml index 5d37d3d80f0..aba22bd83d9 100644 --- a/log4j-async-logger/pom.xml +++ b/log4j-async-logger/pom.xml @@ -25,7 +25,7 @@ log4j-async-logger - Log4j Async Logger + Apache Log4j Async Logger Alternative implementation of logger that uses LMAX Disruptor. @@ -65,4 +65,22 @@ + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + org.apache.logging.log4j + log4j-plugin-processor + ${project.version} + + + + + + diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerEventTranslationExceptionTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerEventTranslationExceptionTest.java index 418b8bedf7f..a5a32b29f1a 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerEventTranslationExceptionTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncLoggerEventTranslationExceptionTest.java @@ -46,7 +46,7 @@ @ContextSelectorType(AsyncLoggerContextSelector.class) @SetSystemProperty( key = Log4jPropertyKey.Constant.ASYNC_LOGGER_EXCEPTION_HANDLER_CLASS_NAME, - value = "org.apache.logging.log4j.core.async.AsyncLoggerEventTranslationExceptionTest$TestExceptionHandler") + value = "org.apache.logging.log4j.async.logger.AsyncLoggerEventTranslationExceptionTest$TestExceptionHandler") class AsyncLoggerEventTranslationExceptionTest { @Test diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/DefaultIncludeLocationTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/DefaultIncludeLocationTest.java new file mode 100644 index 00000000000..9f92ff02c6b --- /dev/null +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/DefaultIncludeLocationTest.java @@ -0,0 +1,91 @@ +/* + * 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. + */ +package org.apache.logging.log4j.async.logger; + +import java.util.stream.Stream; +import org.apache.logging.log4j.core.LoggerContext; +import org.apache.logging.log4j.core.config.Configuration; +import org.apache.logging.log4j.core.config.LoggerConfig; +import org.apache.logging.log4j.core.config.NullConfiguration; +import org.apache.logging.log4j.util.PropertiesUtil; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; + +class DefaultIncludeLocationTest { + + private static final String LOGGER_NAME = DefaultIncludeLocationTest.class.getName(); + + private static Stream loggerConfigs(final Configuration config) { + return Stream.of( + Arguments.of( + LoggerConfig.newBuilder() + .setConfig(config) + .setLoggerName(LOGGER_NAME) + .build(), + true), + Arguments.of( + LoggerConfig.RootLogger.newRootBuilder() + .setConfig(config) + .build(), + true), + Arguments.of( + AsyncLoggerConfig.newAsyncBuilder() + .setConfig(config) + .setLoggerName(LOGGER_NAME) + .build(), + false), + Arguments.of( + AsyncLoggerConfig.RootLogger.newAsyncRootBuilder() + .setConfig(config) + .build(), + false)); + } + + static Stream loggerContextDefaultLocation() { + final LoggerContext ctx = new LoggerContext("sync"); + ctx.setProperties(PropertiesUtil.getProperties()); + final NullConfiguration config = new NullConfiguration(ctx); + ctx.setConfiguration(config); + return loggerConfigs(config); + } + + @ParameterizedTest + @MethodSource + void loggerContextDefaultLocation(final LoggerConfig loggerConfig, final boolean expected) { + Assertions.assertThat(loggerConfig.isIncludeLocation()) + .as("Default `includeLocation` value") + .isEqualTo(expected); + } + + static Stream asyncLoggerContextDefaultLocation() { + final AsyncLoggerContext ctx = new AsyncLoggerContext("async"); + ctx.setProperties(PropertiesUtil.getProperties()); + final NullConfiguration config = new NullConfiguration(ctx); + ctx.setConfiguration(config); + return loggerConfigs(config).map(args -> (LoggerConfig) args.get()[0]); + } + + @ParameterizedTest + @MethodSource + void asyncLoggerContextDefaultLocation(final LoggerConfig loggerConfig) { + Assertions.assertThat(loggerConfig.isIncludeLocation()) + .as("Default `includeLocation` value") + .isFalse(); + } +} diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/NestedAsyncLoggerConfigTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/NestedAsyncLoggerConfigTest.java new file mode 100644 index 00000000000..8a2161c955e --- /dev/null +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/NestedAsyncLoggerConfigTest.java @@ -0,0 +1,21 @@ +/* + * 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. + */ +package org.apache.logging.log4j.async.logger; + +import org.apache.logging.log4j.core.test.config.AbstractNestedLoggerConfigTest; + +public class NestedAsyncLoggerConfigTest extends AbstractNestedLoggerConfigTest {} diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncAbstractTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncAbstractTest.java index 93ef280d444..1e5e4bf3bc0 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncAbstractTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncAbstractTest.java @@ -26,10 +26,10 @@ import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.core.LoggerContext; -import org.apache.logging.log4j.core.async.QueueFullAbstractTest; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.LoggerConfig; import org.apache.logging.log4j.core.test.async.BlockingAppender; +import org.apache.logging.log4j.core.test.async.QueueFullAbstractTest; import org.apache.logging.log4j.status.StatusData; import org.apache.logging.log4j.test.ListStatusListener; diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLogger3Test.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLogger3Test.java index 575f15c422d..d9416e79b8e 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLogger3Test.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLogger3Test.java @@ -26,6 +26,7 @@ import org.apache.logging.log4j.core.async.AsyncQueueFullPolicyFactory; import org.apache.logging.log4j.core.async.DiscardingAsyncQueueFullPolicy; import org.apache.logging.log4j.core.test.async.BlockingAppender; +import org.apache.logging.log4j.core.test.junit.ContextSelectorType; import org.apache.logging.log4j.core.test.junit.LoggerContextSource; import org.apache.logging.log4j.core.test.junit.Named; import org.apache.logging.log4j.message.Message; @@ -37,9 +38,7 @@ /** * Tests queue full scenarios with pure AsyncLoggers (all loggers async). */ -@SetTestProperty( - key = "LoggerContext.selector", - value = "org.apache.logging.log4j.core.async.AsyncLoggerContextSelector") +@ContextSelectorType(AsyncLoggerContextSelector.class) @SetTestProperty(key = "AsyncLogger.ringBufferSize", value = "128") @SetTestProperty(key = "AsyncLogger.formatMsg", value = "true") @SetTestProperty(key = "AsyncLogger.queueFullPolicy", value = "Discard") diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerLoggingFromToStringTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerLoggingFromToStringTest.java index 5ac3c0aa21a..d95ec2966a1 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerLoggingFromToStringTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerLoggingFromToStringTest.java @@ -18,6 +18,7 @@ import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.test.async.BlockingAppender; +import org.apache.logging.log4j.core.test.junit.ContextSelectorType; import org.apache.logging.log4j.core.test.junit.LoggerContextSource; import org.apache.logging.log4j.core.test.junit.Named; import org.apache.logging.log4j.test.junit.SetTestProperty; @@ -26,9 +27,7 @@ /** * Tests queue full scenarios with pure AsyncLoggers (all loggers async). */ -@SetTestProperty( - key = "LoggerContext.selector", - value = "org.apache.logging.log4j.core.async.AsyncLoggerContextSelector") +@ContextSelectorType(AsyncLoggerContextSelector.class) @SetTestProperty(key = "AsyncLogger.ringBufferSize", value = "128") public class QueueFullAsyncLoggerLoggingFromToStringTest extends QueueFullAsyncAbstractTest { diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerTest.java index e6043dc880e..f1e8e441073 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerTest.java @@ -18,6 +18,7 @@ import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.test.async.BlockingAppender; +import org.apache.logging.log4j.core.test.junit.ContextSelectorType; import org.apache.logging.log4j.core.test.junit.LoggerContextSource; import org.apache.logging.log4j.core.test.junit.Named; import org.apache.logging.log4j.test.junit.SetTestProperty; @@ -26,9 +27,7 @@ /** * Tests queue full scenarios with pure AsyncLoggers (all loggers async). */ -@SetTestProperty( - key = "LoggerContext.selector", - value = "org.apache.logging.log4j.core.async.AsyncLoggerContextSelector") +@ContextSelectorType(AsyncLoggerContextSelector.class) @SetTestProperty(key = "AsyncLogger.ringBufferSize", value = "128") public class QueueFullAsyncLoggerTest extends QueueFullAsyncAbstractTest { diff --git a/log4j-core-test/src/test/resources/logger-config/AsyncLoggerConfig/default-level.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/NestedAsyncLoggerConfigTest/default-level.xml similarity index 100% rename from log4j-core-test/src/test/resources/logger-config/AsyncLoggerConfig/default-level.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/NestedAsyncLoggerConfigTest/default-level.xml diff --git a/log4j-core-test/src/test/resources/logger-config/AsyncLoggerConfig/inherit-level.xml b/log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/NestedAsyncLoggerConfigTest/inherit-level.xml similarity index 100% rename from log4j-core-test/src/test/resources/logger-config/AsyncLoggerConfig/inherit-level.xml rename to log4j-async-logger/src/test/resources/org/apache/logging/log4j/async/logger/NestedAsyncLoggerConfigTest/inherit-level.xml diff --git a/log4j-config-properties/src/test/java/org/apache/logging/log4j/config/properties/JavaPropsConfigurationFactoryTest.java b/log4j-config-properties/src/test/java/org/apache/logging/log4j/config/properties/JavaPropsConfigurationFactoryTest.java index a02814efb6c..f1656be526f 100644 --- a/log4j-config-properties/src/test/java/org/apache/logging/log4j/config/properties/JavaPropsConfigurationFactoryTest.java +++ b/log4j-config-properties/src/test/java/org/apache/logging/log4j/config/properties/JavaPropsConfigurationFactoryTest.java @@ -23,9 +23,9 @@ import org.apache.logging.log4j.core.Appender; import org.apache.logging.log4j.core.Filter; import org.apache.logging.log4j.core.LoggerContext; -import org.apache.logging.log4j.core.config.AbstractConfigurationFactoryTest; import org.apache.logging.log4j.core.filter.ThresholdFilter; import org.apache.logging.log4j.core.test.appender.ListAppender; +import org.apache.logging.log4j.core.test.config.AbstractConfigurationFactoryTest; import org.apache.logging.log4j.core.test.junit.LoggerContextSource; import org.apache.logging.log4j.test.junit.TempLoggingDir; import org.junit.jupiter.api.Test; diff --git a/log4j-config-yaml/src/test/java/org/apache/logging/log4j/config/yaml/YamlConfigurationFactoryTest.java b/log4j-config-yaml/src/test/java/org/apache/logging/log4j/config/yaml/YamlConfigurationFactoryTest.java index 02d21323ab7..8e88f321e09 100644 --- a/log4j-config-yaml/src/test/java/org/apache/logging/log4j/config/yaml/YamlConfigurationFactoryTest.java +++ b/log4j-config-yaml/src/test/java/org/apache/logging/log4j/config/yaml/YamlConfigurationFactoryTest.java @@ -19,7 +19,7 @@ import java.io.IOException; import java.nio.file.Path; import org.apache.logging.log4j.core.LoggerContext; -import org.apache.logging.log4j.core.config.AbstractConfigurationFactoryTest; +import org.apache.logging.log4j.core.test.config.AbstractConfigurationFactoryTest; import org.apache.logging.log4j.core.test.junit.LoggerContextSource; import org.apache.logging.log4j.test.junit.TempLoggingDir; import org.junit.jupiter.api.Test; diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/async/QueueFullAbstractTest.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/async/QueueFullAbstractTest.java similarity index 96% rename from log4j-core-test/src/main/java/org/apache/logging/log4j/core/async/QueueFullAbstractTest.java rename to log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/async/QueueFullAbstractTest.java index f6ea81eb132..4943de6314c 100644 --- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/async/QueueFullAbstractTest.java +++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/async/QueueFullAbstractTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.async; +package org.apache.logging.log4j.core.test.async; import static java.util.concurrent.TimeUnit.SECONDS; import static org.assertj.core.api.Assertions.assertThat; @@ -32,7 +32,6 @@ import org.apache.logging.log4j.core.appender.AsyncAppender; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.LoggerConfig; -import org.apache.logging.log4j.core.test.async.BlockingAppender; import org.apache.logging.log4j.core.util.Constants; import org.apache.logging.log4j.status.StatusLogger; import org.apache.logging.log4j.test.junit.UsingStatusListener; @@ -58,10 +57,10 @@ public abstract class QueueFullAbstractTest { protected static class Unlocker extends Thread { - final CountDownLatch countDownLatch; + public final CountDownLatch countDownLatch; final BlockingAppender blockingAppender; - Unlocker(final CountDownLatch countDownLatch, final BlockingAppender blockingAppender) { + public Unlocker(final CountDownLatch countDownLatch, final BlockingAppender blockingAppender) { this.countDownLatch = countDownLatch; this.blockingAppender = blockingAppender; } diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/config/AbstractConfigurationFactoryTest.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/config/AbstractConfigurationFactoryTest.java similarity index 97% rename from log4j-core-test/src/main/java/org/apache/logging/log4j/core/config/AbstractConfigurationFactoryTest.java rename to log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/config/AbstractConfigurationFactoryTest.java index 52f8ff9ee3c..a0b3fc45ac8 100644 --- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/config/AbstractConfigurationFactoryTest.java +++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/config/AbstractConfigurationFactoryTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.core.config; +package org.apache.logging.log4j.core.test.config; import static org.apache.logging.log4j.util.Unbox.box; import static org.junit.jupiter.api.Assertions.assertAll; @@ -35,6 +35,7 @@ import org.apache.logging.log4j.core.Logger; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.appender.ConsoleAppender; +import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.filter.ThreadContextMapFilter; import org.apache.logging.log4j.util.Strings; diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/config/AbstractNestedLoggerConfigTest.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/config/AbstractNestedLoggerConfigTest.java new file mode 100644 index 00000000000..4c0a3cbb5f5 --- /dev/null +++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/config/AbstractNestedLoggerConfigTest.java @@ -0,0 +1,61 @@ +/* + * 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. + */ +package org.apache.logging.log4j.core.test.config; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.io.IOException; +import java.io.InputStream; +import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.core.LoggerContext; +import org.apache.logging.log4j.core.config.Configuration; +import org.apache.logging.log4j.core.config.ConfigurationSource; +import org.apache.logging.log4j.core.config.xml.XmlConfiguration; +import org.junit.jupiter.api.Test; + +public abstract class AbstractNestedLoggerConfigTest { + + @Test + public void testInheritParentDefaultLevel() throws IOException { + final Configuration configuration = loadConfiguration("/default-level.xml"); + try { + assertEquals(Level.ERROR, configuration.getLoggerConfig("com.foo").getLevel()); + } finally { + configuration.stop(); + } + } + + @Test + public void testInheritParentLevel() throws IOException { + final Configuration configuration = loadConfiguration("/inherit-level.xml"); + try { + assertEquals(Level.TRACE, configuration.getLoggerConfig("com.foo").getLevel()); + } finally { + configuration.stop(); + } + } + + private Configuration loadConfiguration(final String resourcePath) throws IOException { + try (final InputStream in = getClass().getResourceAsStream(getClass().getSimpleName() + resourcePath)) { + final Configuration configuration = + new XmlConfiguration(new LoggerContext("test"), new ConfigurationSource(in)); + configuration.initialize(); + configuration.start(); + return configuration; + } + } +} diff --git a/log4j-core-test/src/main/resources/org/apache/logging/log4j/core/async/QueueFullAbstractTest.xml b/log4j-core-test/src/main/resources/org/apache/logging/log4j/core/test/async/QueueFullAbstractTest.xml similarity index 100% rename from log4j-core-test/src/main/resources/org/apache/logging/log4j/core/async/QueueFullAbstractTest.xml rename to log4j-core-test/src/main/resources/org/apache/logging/log4j/core/test/async/QueueFullAbstractTest.xml diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppenderTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppenderTest.java index 1266ff78043..6b0292f74db 100644 --- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppenderTest.java +++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/RandomAccessFileAppenderTest.java @@ -16,75 +16,38 @@ */ package org.apache.logging.log4j.core.appender; -import static org.hamcrest.CoreMatchers.containsString; -import static org.hamcrest.CoreMatchers.not; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThat; +import static org.assertj.core.api.Assertions.assertThat; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.util.Arrays; -import java.util.Collection; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.core.test.junit.LoggerContextRule; -import org.apache.logging.log4j.test.junit.CleanFiles; -import org.hamcrest.Matcher; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.RuleChain; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.apache.logging.log4j.core.LoggerContext; +import org.apache.logging.log4j.core.test.junit.LoggerContextSource; +import org.apache.logging.log4j.test.junit.TempLoggingDir; +import org.junit.jupiter.api.Test; /** * Simple tests for both the RandomAccessFileAppender and RollingRandomAccessFileAppender. */ -@RunWith(Parameterized.class) public class RandomAccessFileAppenderTest { - @Parameterized.Parameters(name = "{0}, locationEnabled={1}, type={2}") - public static Collection data() { - return Arrays.asList(new Object[][] { - {"RandomAccessFileAppenderTest", false, ".xml"}, - {"RandomAccessFileAppenderLocationTest", true, ".xml"}, - {"RollingRandomAccessFileAppenderTest", false, ".xml"}, - {"RollingRandomAccessFileAppenderLocationTest", true, ".xml"} - }); - } - - private final LoggerContextRule init; - private final CleanFiles files; - - @Rule - public final RuleChain chain; + public static final String MESSAGE = "This is a test log message brought to you by Slurm."; - private final File logFile; - private final boolean locationEnabled; - - public RandomAccessFileAppenderTest(final String testName, final boolean locationEnabled, final String type) { - this.init = new LoggerContextRule(testName + type); - this.logFile = new File("target", testName + ".log"); - this.files = new CleanFiles(this.logFile); - this.locationEnabled = locationEnabled; - this.chain = RuleChain.outerRule(files).around(init); - } + @TempLoggingDir + private static Path loggingPath; @Test - public void testRandomAccessConfiguration() throws Exception { - final Logger logger = this.init.getLogger("com.foo.Bar"); - final String message = "This is a test log message brought to you by Slurm."; - logger.info(message); - this.init.getLoggerContext().stop(); // stop async thread - - String line; - try (final BufferedReader reader = new BufferedReader(new FileReader(this.logFile))) { - line = reader.readLine(); + @LoggerContextSource + public void testRandomAccessConfiguration(final LoggerContext ctx) throws Exception { + final Logger logger = ctx.getLogger(getClass()); + logger.info(MESSAGE); + ctx.stop(); + + for (final String fileName : List.of("RandomAccessFile.log", "RollingRandomAccessFile.log")) { + final Path file = loggingPath.resolve(fileName); + assertThat(file).isNotEmptyFile(); + assertThat(Files.readAllLines(file)).hasSize(1).containsExactly(MESSAGE); } - assertNotNull(line); - assertThat(line, containsString(message)); - final Matcher containsLocationInformation = containsString("testRandomAccessConfiguration"); - final Matcher containsLocationInformationIfEnabled = - this.locationEnabled ? containsLocationInformation : not(containsLocationInformation); - assertThat(line, containsLocationInformationIfEnabled); } } diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncQueueFullPolicyFactoryTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactoryTest.java similarity index 93% rename from log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncQueueFullPolicyFactoryTest.java rename to log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactoryTest.java index 7f9f9c1c30c..532cb9fe6e3 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/AsyncQueueFullPolicyFactoryTest.java +++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/AsyncQueueFullPolicyFactoryTest.java @@ -14,17 +14,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.logging.log4j.async.logger; +package org.apache.logging.log4j.core.async; import static org.apache.logging.log4j.util.Strings.toRootLowerCase; import static org.junit.jupiter.api.Assertions.assertEquals; import org.apache.logging.log4j.Level; -import org.apache.logging.log4j.core.async.AsyncQueueFullPolicy; -import org.apache.logging.log4j.core.async.AsyncQueueFullPolicyFactory; -import org.apache.logging.log4j.core.async.DefaultAsyncQueueFullPolicy; -import org.apache.logging.log4j.core.async.DiscardingAsyncQueueFullPolicy; -import org.apache.logging.log4j.core.async.EventRoute; import org.apache.logging.log4j.core.impl.Log4jPropertyKey; import org.apache.logging.log4j.util.PropertiesUtil; import org.junit.jupiter.api.AfterEach; diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncAppenderTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncAppenderTest.java index e2383a8691e..d4d15772acd 100644 --- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncAppenderTest.java +++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/async/QueueFullAsyncAppenderTest.java @@ -18,6 +18,7 @@ import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.test.async.BlockingAppender; +import org.apache.logging.log4j.core.test.async.QueueFullAbstractTest; import org.apache.logging.log4j.core.test.junit.LoggerContextSource; import org.apache.logging.log4j.core.test.junit.Named; import org.junit.jupiter.api.Test; diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/ConfigurationFactoryTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/ConfigurationFactoryTest.java index 623f841be89..b78741cd6c2 100644 --- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/ConfigurationFactoryTest.java +++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/ConfigurationFactoryTest.java @@ -19,6 +19,7 @@ import java.io.IOException; import java.nio.file.Path; import org.apache.logging.log4j.core.LoggerContext; +import org.apache.logging.log4j.core.test.config.AbstractConfigurationFactoryTest; import org.apache.logging.log4j.core.test.junit.LoggerContextSource; import org.apache.logging.log4j.test.junit.TempLoggingDir; import org.junit.jupiter.api.Tag; diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/NestedLoggerConfigTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/NestedLoggerConfigTest.java index abdcd11303f..72fc5726fd4 100644 --- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/NestedLoggerConfigTest.java +++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/NestedLoggerConfigTest.java @@ -16,63 +16,9 @@ */ package org.apache.logging.log4j.core.config; -import static org.junit.Assert.assertEquals; - -import com.google.common.collect.ImmutableList; -import java.io.IOException; -import java.io.InputStream; -import java.util.List; -import org.apache.logging.log4j.Level; -import org.apache.logging.log4j.core.LoggerContext; -import org.apache.logging.log4j.core.config.xml.XmlConfiguration; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.apache.logging.log4j.core.test.config.AbstractNestedLoggerConfigTest; /** * Tests for LoggerConfig hierarchies. */ -@RunWith(Parameterized.class) -public class NestedLoggerConfigTest { - - @Parameterized.Parameters(name = "{0}") - public static List data() throws IOException { - return ImmutableList.of("logger-config/LoggerConfig/", "logger-config/AsyncLoggerConfig/"); - } - - private final String prefix; - - public NestedLoggerConfigTest(final String prefix) { - this.prefix = prefix; - } - - @Test - public void testInheritParentDefaultLevel() throws IOException { - final Configuration configuration = loadConfiguration(prefix + "default-level.xml"); - try { - assertEquals(Level.ERROR, configuration.getLoggerConfig("com.foo").getLevel()); - } finally { - configuration.stop(); - } - } - - @Test - public void testInheritParentLevel() throws IOException { - final Configuration configuration = loadConfiguration(prefix + "inherit-level.xml"); - try { - assertEquals(Level.TRACE, configuration.getLoggerConfig("com.foo").getLevel()); - } finally { - configuration.stop(); - } - } - - private Configuration loadConfiguration(final String resourcePath) throws IOException { - try (final InputStream in = getClass().getClassLoader().getResourceAsStream(resourcePath)) { - final Configuration configuration = - new XmlConfiguration(new LoggerContext("test"), new ConfigurationSource(in)); - configuration.initialize(); - configuration.start(); - return configuration; - } - } -} +public class NestedLoggerConfigTest extends AbstractNestedLoggerConfigTest {} diff --git a/log4j-core-test/src/test/resources/RandomAccessFileAppenderLocationTest.xml b/log4j-core-test/src/test/resources/RandomAccessFileAppenderLocationTest.xml deleted file mode 100644 index 38a76f0a89a..00000000000 --- a/log4j-core-test/src/test/resources/RandomAccessFileAppenderLocationTest.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - %d %p %c{1.} [%t] %X{aKey} %m %location %ex%n - - - - - - - - - - - diff --git a/log4j-core-test/src/test/resources/RandomAccessFileAppenderTest.xml b/log4j-core-test/src/test/resources/RandomAccessFileAppenderTest.xml deleted file mode 100644 index 146dd390cbe..00000000000 --- a/log4j-core-test/src/test/resources/RandomAccessFileAppenderTest.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - %d %p %c{1.} [%t] %X{aKey} %m %location %ex%n - - - - - - - - - - - diff --git a/log4j-core-test/src/test/resources/RollingRandomAccessFileAppenderTest.xml b/log4j-core-test/src/test/resources/RollingRandomAccessFileAppenderTest.xml deleted file mode 100644 index fcea9c717c9..00000000000 --- a/log4j-core-test/src/test/resources/RollingRandomAccessFileAppenderTest.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - %d %p %c{1.} [%t] %X{aKey} %m %location %ex%n - - - - - - - - - - - - - diff --git a/log4j-core-test/src/test/resources/RollingRandomAccessFileAppenderLocationTest.xml b/log4j-core-test/src/test/resources/org/apache/logging/log4j/core/appender/RandomAccessFileAppenderTest.xml similarity index 58% rename from log4j-core-test/src/test/resources/RollingRandomAccessFileAppenderLocationTest.xml rename to log4j-core-test/src/test/resources/org/apache/logging/log4j/core/appender/RandomAccessFileAppenderTest.xml index 9e4f8445528..06b2dd8035d 100644 --- a/log4j-core-test/src/test/resources/RollingRandomAccessFileAppenderLocationTest.xml +++ b/log4j-core-test/src/test/resources/org/apache/logging/log4j/core/appender/RandomAccessFileAppenderTest.xml @@ -17,21 +17,25 @@ --> - - - %d %p %c{1.} [%t] %X{aKey} %m %location %ex%n - - - - + + + + + + - - + + - + diff --git a/log4j-core-test/src/test/resources/logger-config/LoggerConfig/default-level.xml b/log4j-core-test/src/test/resources/org/apache/logging/log4j/core/config/NestedLoggerConfigTest/default-level.xml similarity index 100% rename from log4j-core-test/src/test/resources/logger-config/LoggerConfig/default-level.xml rename to log4j-core-test/src/test/resources/org/apache/logging/log4j/core/config/NestedLoggerConfigTest/default-level.xml diff --git a/log4j-core-test/src/test/resources/logger-config/LoggerConfig/inherit-level.xml b/log4j-core-test/src/test/resources/org/apache/logging/log4j/core/config/NestedLoggerConfigTest/inherit-level.xml similarity index 100% rename from log4j-core-test/src/test/resources/logger-config/LoggerConfig/inherit-level.xml rename to log4j-core-test/src/test/resources/org/apache/logging/log4j/core/config/NestedLoggerConfigTest/inherit-level.xml From 09d00bdbc56857c80a24532eddc0d501b04b6885 Mon Sep 17 00:00:00 2001 From: "Piotr P. Karwasz" Date: Thu, 25 Jan 2024 18:41:08 +0100 Subject: [PATCH 4/5] Add changelog for splitting off `log4j-async-logger` --- src/changelog/.3.x.x/create_async_logger.xml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/changelog/.3.x.x/create_async_logger.xml diff --git a/src/changelog/.3.x.x/create_async_logger.xml b/src/changelog/.3.x.x/create_async_logger.xml new file mode 100644 index 00000000000..bb0f561a780 --- /dev/null +++ b/src/changelog/.3.x.x/create_async_logger.xml @@ -0,0 +1,9 @@ + + + + Split off async logger support into a new `log4j-async-logger` module. + + From d5293219f5a973c40eaacff4fdf8f67c1bcfa5b2 Mon Sep 17 00:00:00 2001 From: "Piotr P. Karwasz" Date: Thu, 25 Jan 2024 20:34:59 +0100 Subject: [PATCH 5/5] Remove references to async context selector in `log4j-script` --- .../builder/ConfigurationAssemblerTest.java | 22 +++++-------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/log4j-script/src/test/java/org/apache/logging/log4j/script/config/builder/ConfigurationAssemblerTest.java b/log4j-script/src/test/java/org/apache/logging/log4j/script/config/builder/ConfigurationAssemblerTest.java index b0f9dce0e76..5e2bc26ad66 100644 --- a/log4j-script/src/test/java/org/apache/logging/log4j/script/config/builder/ConfigurationAssemblerTest.java +++ b/log4j-script/src/test/java/org/apache/logging/log4j/script/config/builder/ConfigurationAssemblerTest.java @@ -47,19 +47,11 @@ public class ConfigurationAssemblerTest { @Test public void testBuildConfiguration() throws Exception { - try { - System.setProperty( - Log4jPropertyKey.CONTEXT_SELECTOR_CLASS_NAME.getSystemKey(), - "org.apache.logging.log4j.core.async.AsyncLoggerContextSelector"); - final ConfigurationBuilder builder = - ConfigurationBuilderFactory.newConfigurationBuilder(); - CustomConfigurationFactory.addTestFixtures("config name", builder); - final Configuration configuration = builder.build(); - try (final LoggerContext ctx = Configurator.initialize(configuration)) { - validate(configuration); - } - } finally { - System.getProperties().remove(Log4jPropertyKey.CONTEXT_SELECTOR_CLASS_NAME.getSystemKey()); + final ConfigurationBuilder builder = ConfigurationBuilderFactory.newConfigurationBuilder(); + CustomConfigurationFactory.addTestFixtures("config name", builder); + final Configuration configuration = builder.build(); + try (final LoggerContext ctx = Configurator.initialize(configuration)) { + validate(configuration); } } @@ -69,13 +61,9 @@ public void testCustomConfigurationFactory() throws Exception { System.setProperty( Log4jPropertyKey.CONFIG_CONFIGURATION_FACTORY_CLASS_NAME.getSystemKey(), "org.apache.logging.log4j.script.config.builder.CustomConfigurationFactory"); - System.setProperty( - Log4jPropertyKey.CONTEXT_SELECTOR_CLASS_NAME.getSystemKey(), - "org.apache.logging.log4j.core.async.AsyncLoggerContextSelector"); final Configuration config = ((LoggerContext) LogManager.getContext(false)).getConfiguration(); validate(config); } finally { - System.getProperties().remove(Log4jPropertyKey.CONTEXT_SELECTOR_CLASS_NAME.getSystemKey()); System.getProperties().remove(Log4jPropertyKey.CONFIG_CONFIGURATION_FACTORY_CLASS_NAME.getSystemKey()); } }