You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2024/12/31 12:50:27 UTC

(camel) 05/09: CAMEL-21274: camel-test - Add option to dump routes

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch td
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 8c5ec176b5570a0b4a3150a6aa54ecb1992921b5
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Dec 31 12:08:19 2024 +0100

    CAMEL-21274: camel-test - Add option to dump routes
---
 .../test/junit5/util/CamelContextTestHelper.java   | 17 ++++++--
 .../spring/junit5/CamelAnnotationsHandler.java     | 48 +++++++++-------------
 .../test/spring/junit5/CamelSpringBootTest.java    |  8 ++--
 3 files changed, 37 insertions(+), 36 deletions(-)

diff --git a/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/util/CamelContextTestHelper.java b/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/util/CamelContextTestHelper.java
index ee26f8d69c8..09f18e77a18 100644
--- a/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/util/CamelContextTestHelper.java
+++ b/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/util/CamelContextTestHelper.java
@@ -251,20 +251,29 @@ public final class CamelContextTestHelper {
     }
 
     public static boolean isRouteCoverageEnabled(boolean legacyDumpCoverage) {
+        // JVM system property take precedence
         String p = System.getProperty(ROUTE_COVERAGE_ENABLED);
         if (p != null) {
-            // JVM system property take precedence
+            p = p.trim().toLowerCase();
             return Boolean.parseBoolean(p);
         }
         return legacyDumpCoverage;
     }
 
     public static String getRouteDump(String legacyDumpRoute) {
+        // JVM system property take precedence
         String p = System.getProperty(ROUTE_DUMP_ENABLED);
+        if (p == null || p.isBlank()) {
+            p = legacyDumpRoute;
+        }
         if (p != null) {
-            // JVM system property take precedence
-            return p;
+            p = p.trim().toLowerCase();
+            if ("false".equals(p)) {
+                p = null;
+            } else if ("true".equals(p)) {
+                p = "xml"; // xml is default
+            }
         }
-        return legacyDumpRoute;
+        return p;
     }
 }
diff --git a/components/camel-test/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelAnnotationsHandler.java b/components/camel-test/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelAnnotationsHandler.java
index 2877fad54a1..4a1c450d7df 100644
--- a/components/camel-test/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelAnnotationsHandler.java
+++ b/components/camel-test/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelAnnotationsHandler.java
@@ -37,7 +37,6 @@ import org.apache.camel.spi.DumpRoutesStrategy;
 import org.apache.camel.spi.EventNotifier;
 import org.apache.camel.spi.PropertiesComponent;
 import org.apache.camel.spring.SpringCamelContext;
-import org.apache.camel.test.junit5.util.CamelContextTestHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.config.BeanPostProcessor;
@@ -45,6 +44,7 @@ import org.springframework.context.ConfigurableApplicationContext;
 import org.springframework.core.annotation.AnnotationUtils;
 
 import static org.apache.camel.test.junit5.TestSupport.isCamelDebugPresent;
+import static org.apache.camel.test.junit5.util.CamelContextTestHelper.getRouteDump;
 import static org.apache.camel.test.junit5.util.CamelContextTestHelper.isRouteCoverageEnabled;
 
 public final class CamelAnnotationsHandler {
@@ -56,7 +56,6 @@ public final class CamelAnnotationsHandler {
 
     /**
      * Cleanup/restore global state to defaults / pre-test values after the test setup is complete.
-     *
      */
     public static void cleanup() {
         DefaultCamelContext.clearOptions();
@@ -130,7 +129,7 @@ public final class CamelAnnotationsHandler {
             CamelSpringTestHelper.doToSpringCamelContexts(context, new CamelSpringTestHelper.DoToSpringCamelContextsStrategy() {
                 @Override
                 public void execute(String contextName, SpringCamelContext camelContext) throws Exception {
-                    LOGGER.info("Enabling RouteCoverage");
+                    LOGGER.info("Enabling @RouteCoverage");
                     EventNotifier notifier = new RouteCoverageEventNotifier(testClass.getName(), testMethod);
                     camelContext.addService(notifier, true);
                     camelContext.getManagementStrategy().addEventNotifier(notifier);
@@ -147,26 +146,23 @@ public final class CamelAnnotationsHandler {
      */
     public static void handleRouteDumpEnable(ConfigurableApplicationContext context, Class<?> testClass, Function testMethod)
             throws Exception {
+        String format = null;
         if (testClass.isAnnotationPresent(EnableRouteDump.class)) {
-            String format = testClass.getAnnotation(EnableRouteDump.class).format();
-            if ("false".equals(format)) {
-                format = null;
-            }
-            if (format != null) {
-                final String dump = format.toLowerCase();
-                CamelSpringTestHelper.doToSpringCamelContexts(context,
-                        new CamelSpringTestHelper.DoToSpringCamelContextsStrategy() {
-
-                            @Override
-                            public void execute(String contextName, SpringCamelContext camelContext) throws Exception {
-                                LOGGER.info("Enabling EnableRouteDump");
-                                RouteDumpEventNotifier notifier
-                                        = new RouteDumpEventNotifier(testClass.getName(), testMethod, dump);
-                                camelContext.addService(notifier, true);
-                                camelContext.getManagementStrategy().addEventNotifier(notifier);
-                            }
-                        });
-            }
+            format = testClass.getAnnotation(EnableRouteDump.class).format();
+        }
+        format = getRouteDump(format);
+        if (format != null && !"false".equals(format) && !format.isBlank()) {
+            final String dump = format.toLowerCase();
+            CamelSpringTestHelper.doToSpringCamelContexts(context, new CamelSpringTestHelper.DoToSpringCamelContextsStrategy() {
+                @Override
+                public void execute(String contextName, SpringCamelContext camelContext) throws Exception {
+                    LOGGER.info("Enabling @EnableRouteDump");
+                    RouteDumpEventNotifier notifier
+                            = new RouteDumpEventNotifier(testClass.getName(), testMethod, dump);
+                    camelContext.addService(notifier, true);
+                    camelContext.getManagementStrategy().addEventNotifier(notifier);
+                }
+            });
         }
     }
 
@@ -220,13 +216,10 @@ public final class CamelAnnotationsHandler {
         if (testClass.isAnnotationPresent(EnableRouteDump.class)) {
             format = testClass.getAnnotation(EnableRouteDump.class).format();
         }
-        if ("false".equals(format)) {
-            format = null;
-        }
-        if (format != null) {
+        format = getRouteDump(format);
+        if (format != null && !"false".equals(format) && !format.isBlank()) {
             final String dump = format.toLowerCase();
             CamelSpringTestHelper.doToSpringCamelContexts(context, new CamelSpringTestHelper.DoToSpringCamelContextsStrategy() {
-
                 @Override
                 public void execute(String contextName, SpringCamelContext camelContext) throws Exception {
                     LOGGER.debug("Dumping Route");
@@ -251,7 +244,6 @@ public final class CamelAnnotationsHandler {
                         camelContext.getManagementStrategy().removeEventNotifier(eventNotifier);
                         camelContext.removeService(eventNotifier);
                     }
-
                 }
             });
         }
diff --git a/components/camel-test/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelSpringBootTest.java b/components/camel-test/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelSpringBootTest.java
index 81ddec6e677..0fdcbb816ee 100644
--- a/components/camel-test/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelSpringBootTest.java
+++ b/components/camel-test/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelSpringBootTest.java
@@ -34,10 +34,10 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
 @Target({ ElementType.TYPE })
 @ExtendWith(SpringExtension.class)
 @TestExecutionListeners(value = {
-                                CamelSpringTestContextLoaderTestExecutionListener.class,
-                                CamelSpringBootExecutionListener.class,
-                                StopWatchTestExecutionListener.class
-                        },
+        CamelSpringTestContextLoaderTestExecutionListener.class,
+        CamelSpringBootExecutionListener.class,
+        StopWatchTestExecutionListener.class
+},
                         mergeMode = TestExecutionListeners.MergeMode.MERGE_WITH_DEFAULTS)
 public @interface CamelSpringBootTest {