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

Reply via email to