This is an automated email from the ASF dual-hosted git repository. pkarwasz pushed a commit to branch fix/rebase-on-log4j-api-2.x in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit b867e1321d8c598d111fc2a41340f41e8692c4ec Author: Piotr P. Karwasz <[email protected]> AuthorDate: Mon Mar 25 21:10:08 2024 +0100 Adapt `log4j-async-logger` to Log4j API 2.x --- .../QueueFullAsyncLoggerConfigLoggingFromToStringTest.java | 2 +- .../logging/log4j/async/logger/RingBufferLogEventTest.java | 11 +++++++---- .../org/apache/logging/log4j/core/test/TestConstants.java | 6 +++--- .../logging/log4j/core/util/ShutdownCallbackRegistryTest.java | 3 +++ .../java/org/apache/logging/log4j/core/impl/CoreKeys.java | 2 +- .../apache/logging/log4j/core/impl/Log4jContextFactory.java | 8 ++++---- 6 files changed, 19 insertions(+), 13 deletions(-) diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerConfigLoggingFromToStringTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerConfigLoggingFromToStringTest.java index c373fd5279..147d7f1646 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerConfigLoggingFromToStringTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/QueueFullAsyncLoggerConfigLoggingFromToStringTest.java @@ -46,6 +46,6 @@ public class QueueFullAsyncLoggerConfigLoggingFromToStringTest extends QueueFull @Override protected void checkConfig(final LoggerContext ctx) throws ReflectiveOperationException { assertAsyncLoggerConfig(ctx, 128); - assertThat(Constants.isWebApp()).isFalse(); + assertThat(Constants.IS_WEB_APP).isFalse(); } } diff --git a/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/RingBufferLogEventTest.java b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/RingBufferLogEventTest.java index edefd4975c..2a0eb4329b 100644 --- a/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/RingBufferLogEventTest.java +++ b/log4j-async-logger/src/test/java/org/apache/logging/log4j/async/logger/RingBufferLogEventTest.java @@ -30,12 +30,13 @@ import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.MarkerManager; import org.apache.logging.log4j.ThreadContext.ContextStack; import org.apache.logging.log4j.core.LogEvent; +import org.apache.logging.log4j.core.impl.internal.ReusableMessageFactory; import org.apache.logging.log4j.core.time.Clock; import org.apache.logging.log4j.core.time.NanoClock; import org.apache.logging.log4j.core.time.internal.DummyNanoClock; import org.apache.logging.log4j.core.time.internal.FixedPreciseClock; +import org.apache.logging.log4j.kit.recycler.internal.DummyRecyclerFactoryProvider; import org.apache.logging.log4j.message.Message; -import org.apache.logging.log4j.message.ReusableMessageFactory; import org.apache.logging.log4j.message.SimpleMessage; import org.apache.logging.log4j.spi.MutableThreadContextStack; import org.apache.logging.log4j.util.StringMap; @@ -246,7 +247,8 @@ class RingBufferLogEventTest { final Marker marker = MarkerManager.getMarker("marked man"); final String fqcn = "f.q.c.n"; final Level level = Level.TRACE; - final ReusableMessageFactory factory = new ReusableMessageFactory(); + final ReusableMessageFactory factory = + new ReusableMessageFactory(DummyRecyclerFactoryProvider.INSTANCE.createForEnvironment(null)); final Message message = factory.newMessage("Hello {}!", "World"); try { final Throwable t = new InternalError("not a real error"); @@ -276,7 +278,7 @@ class RingBufferLogEventTest { assertThat(actual.getParameters()).isEqualTo(new String[] {"World"}); assertThat(actual.getFormattedMessage()).isEqualTo("Hello World!"); } finally { - ReusableMessageFactory.release(message); + factory.recycle(message); } } @@ -289,7 +291,8 @@ class RingBufferLogEventTest { final Marker marker = MarkerManager.getMarker("marked man"); final String fqcn = "f.q.c.n"; final Level level = Level.TRACE; - final ReusableMessageFactory factory = new ReusableMessageFactory(); + final ReusableMessageFactory factory = + new ReusableMessageFactory(DummyRecyclerFactoryProvider.INSTANCE.createForEnvironment(null)); final Message message = factory.newMessage("Hello {}!", "World"); try { final Throwable t = new InternalError("not a real error"); diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/TestConstants.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/TestConstants.java index 8ca8c4421f..32d7f7842c 100644 --- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/TestConstants.java +++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/TestConstants.java @@ -91,6 +91,8 @@ public final class TestConstants { public static final String LOGGER_CONTEXT_SELECTOR = LOGGER_CONTEXT + "selector"; + public static final String LOGGER_CONTEXT_SHUTDOWN_HOOK_ENABLED = LOGGER_CONTEXT + "shutdownHookEnabled"; + private static final String MESSAGE = "log4j.Message."; public static final String MESSAGE_FACTORY = MESSAGE + "factory"; @@ -111,9 +113,7 @@ public final class TestConstants { public static final String THREAD_CONTEXT_MAP_CLASS = THREAD_CONTEXT + "mapClass"; - private static final String WEB = "log4j.WEB."; - - public static final String WEB_IS_WEB_APP = WEB + "isWebApp"; + public static final String WEB_IS_WEB_APP = "log4j2.isWebApp"; public static @Nullable String setSystemProperty(final String key, final @Nullable String value) { final String oldValue = System.getProperty(key); diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/util/ShutdownCallbackRegistryTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/util/ShutdownCallbackRegistryTest.java index 1939984dff..8dba435f0a 100644 --- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/util/ShutdownCallbackRegistryTest.java +++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/util/ShutdownCallbackRegistryTest.java @@ -29,12 +29,15 @@ import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.impl.Log4jContextFactory; import org.apache.logging.log4j.core.selector.ContextSelector; +import org.apache.logging.log4j.core.test.TestConstants; import org.apache.logging.log4j.core.test.junit.LoggerContextSource; import org.apache.logging.log4j.core.test.junit.TestBinding; import org.apache.logging.log4j.plugins.Singleton; import org.apache.logging.log4j.status.StatusLogger; +import org.apache.logging.log4j.test.junit.SetTestProperty; import org.junit.jupiter.api.Test; +@SetTestProperty(key = TestConstants.LOGGER_CONTEXT_SHUTDOWN_HOOK_ENABLED, value = "true") @TestBinding(api = ShutdownCallbackRegistry.class, implementation = ShutdownCallbackRegistryTest.Registry.class) @LoggerContextSource public class ShutdownCallbackRegistryTest { diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/CoreKeys.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/CoreKeys.java index 2246c19bef..1083f596e2 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/CoreKeys.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/CoreKeys.java @@ -156,7 +156,7 @@ public final class CoreKeys { @Nullable Class<? extends LoggerContextFactory> factory, @Nullable Class<? extends ContextSelector> selector, @Nullable Class<? extends ShutdownCallbackRegistry> shutdownCallbackRegistry, - @Log4jProperty(defaultValue = "true") boolean shutdownHookEnabled, + @Nullable Boolean shutdownHookEnabled, boolean stacktraceOnStart) {} @Log4jProperty diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jContextFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jContextFactory.java index 2361b6c294..5db124e5bd 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jContextFactory.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jContextFactory.java @@ -430,9 +430,9 @@ public class Log4jContextFactory implements LoggerContextFactory, ShutdownCallba } public boolean isShutdownHookEnabled() { - return !Constants.IS_WEB_APP - && PropertyEnvironment.getGlobal() - .getProperty(CoreKeys.LoggerContext.class) - .shutdownHookEnabled(); + final Boolean shutdownHookEnabled = PropertyEnvironment.getGlobal() + .getProperty(CoreKeys.LoggerContext.class) + .shutdownHookEnabled(); + return shutdownHookEnabled != null ? shutdownHookEnabled : !Constants.IS_WEB_APP; } }
