This is an automated email from the ASF dual-hosted git repository. gnodet pushed a commit to branch CAMEL-22635 in repository https://gitbox.apache.org/repos/asf/camel.git
commit 90a4b8c388da6abd358fe3058acaf028b10a2e9a Author: Guillaume Nodet <[email protected]> AuthorDate: Wed Mar 18 15:43:08 2026 +0100 CAMEL-22635: Fix LogCaptureTest in camel-netty and camel-netty-http The LogCaptureAppender was disabled because the Log4j2 plugin discovery via configuration.packages no longer works reliably. Fix by programmatically attaching the appender to the logger in setUp/tearDown, removing the dependency on log4j2.properties plugin configuration. Also remove @Disabled annotation and add @Isolated to prevent interference with other tests. Co-Authored-By: Claude Opus 4.6 <[email protected]> --- .../camel/component/netty/http/LogCaptureTest.java | 30 +++++++++++++++++++--- .../src/test/resources/log4j2.properties | 6 ----- .../camel/component/netty/LogCaptureTest.java | 28 +++++++++++++++++--- .../src/test/resources/log4j2.properties | 8 ------ 4 files changed, 50 insertions(+), 22 deletions(-) diff --git a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/LogCaptureTest.java b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/LogCaptureTest.java index 787e93988d48..38c42dafb4df 100644 --- a/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/LogCaptureTest.java +++ b/components/camel-netty-http/src/test/java/org/apache/camel/component/netty/http/LogCaptureTest.java @@ -18,20 +18,42 @@ package org.apache.camel.component.netty.http; import io.netty.util.ResourceLeakDetector; import io.netty.util.internal.logging.InternalLoggerFactory; -import org.junit.jupiter.api.Disabled; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.core.Logger; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.parallel.Isolated; import static org.junit.jupiter.api.Assertions.assertFalse; /** - * This test ensures LogCaptureAppender is configured properly + * This test ensures LogCaptureAppender can capture log events programmatically. */ -@Disabled +@Isolated public class LogCaptureTest { + + private LogCaptureAppender appender; + + @BeforeEach + void setUp() { + appender = new LogCaptureAppender("capture", null, null); + appender.start(); + Logger logger = (Logger) LogManager.getLogger(ResourceLeakDetector.class); + logger.addAppender(appender); + } + + @AfterEach + void tearDown() { + Logger logger = (Logger) LogManager.getLogger(ResourceLeakDetector.class); + logger.removeAppender(appender); + appender.stop(); + LogCaptureAppender.reset(); + } + @Test public void testCapture() { InternalLoggerFactory.getInstance(ResourceLeakDetector.class).error("testError"); assertFalse(LogCaptureAppender.getEvents().isEmpty()); - LogCaptureAppender.reset(); } } diff --git a/components/camel-netty-http/src/test/resources/log4j2.properties b/components/camel-netty-http/src/test/resources/log4j2.properties index e66e1d1f4fdd..3691d10fdb3b 100644 --- a/components/camel-netty-http/src/test/resources/log4j2.properties +++ b/components/camel-netty-http/src/test/resources/log4j2.properties @@ -15,7 +15,6 @@ ## limitations under the License. ## --------------------------------------------------------------------------- -#configuration.packages=org.apache.camel.component.netty.http appender.file.type = File appender.file.name = file appender.file.fileName = target/camel-netty-http-test.log @@ -25,11 +24,6 @@ appender.out.type = Console appender.out.name = out appender.out.layout.type = PatternLayout appender.out.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n -#appender.capture.type=LogCaptureAppender -#appender.capture.name=capture - -#logger.leak.name = io.netty.util.ResourceLeakDetector -#logger.leak.appenderRef.capture.ref = capture rootLogger.level = INFO rootLogger.appenderRef.file.ref = file diff --git a/components/camel-netty/src/test/java/org/apache/camel/component/netty/LogCaptureTest.java b/components/camel-netty/src/test/java/org/apache/camel/component/netty/LogCaptureTest.java index fb2172021451..9f004f96b396 100644 --- a/components/camel-netty/src/test/java/org/apache/camel/component/netty/LogCaptureTest.java +++ b/components/camel-netty/src/test/java/org/apache/camel/component/netty/LogCaptureTest.java @@ -19,7 +19,10 @@ package org.apache.camel.component.netty; import io.netty.util.ResourceLeakDetector; import io.netty.util.internal.logging.InternalLoggerFactory; import org.apache.camel.processor.errorhandler.DefaultErrorHandler; -import org.junit.jupiter.api.Disabled; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.core.Logger; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.parallel.Isolated; @@ -27,17 +30,34 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; /** - * This test ensures LogCaptureAppender is configured properly + * This test ensures LogCaptureAppender can capture log events programmatically. */ @Isolated -@Disabled public class LogCaptureTest { + + private LogCaptureAppender appender; + + @BeforeEach + void setUp() { + appender = new LogCaptureAppender("capture", null, null); + appender.start(); + Logger logger = (Logger) LogManager.getLogger(ResourceLeakDetector.class); + logger.addAppender(appender); + } + + @AfterEach + void tearDown() { + Logger logger = (Logger) LogManager.getLogger(ResourceLeakDetector.class); + logger.removeAppender(appender); + appender.stop(); + LogCaptureAppender.reset(); + } + @Test public void testCapture() { InternalLoggerFactory.getInstance(ResourceLeakDetector.class).error("testError"); assertFalse(LogCaptureAppender.getEvents(ResourceLeakDetector.class).isEmpty()); assertTrue(LogCaptureAppender.hasEventsFor(ResourceLeakDetector.class)); assertTrue(LogCaptureAppender.getEvents(DefaultErrorHandler.class).isEmpty()); - LogCaptureAppender.reset(); } } diff --git a/components/camel-netty/src/test/resources/log4j2.properties b/components/camel-netty/src/test/resources/log4j2.properties index 75a246aa852f..f818c5df9abc 100644 --- a/components/camel-netty/src/test/resources/log4j2.properties +++ b/components/camel-netty/src/test/resources/log4j2.properties @@ -15,7 +15,6 @@ ## limitations under the License. ## --------------------------------------------------------------------------- -#configuration.packages=org.apache.camel.component.netty appender.file.type = File appender.file.name = file appender.file.fileName = target/camel-netty-test.log @@ -25,12 +24,5 @@ appender.out.type = Console appender.out.name = out appender.out.layout.type = PatternLayout appender.out.layout.pattern = %d [%-35.35t] %-5p %-30.30c{1} - %m%n -#appender.capture.type=LogCaptureAppender -#appender.capture.name=capture - -logger.leak.name = io.netty.util.ResourceLeakDetector -logger.leak.appenderRef.capture.ref = capture -#logger.errorHandler.name = org.apache.camel.processor.errorhandler.DefaultErrorHandler -#logger.errorHandler.appenderRef.capture.ref = capture rootLogger.level = INFO rootLogger.appenderRef.file.ref = file
