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

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


The following commit(s) were added to refs/heads/main by this push:
     new 6dc8ec31ee14 CAMEL-23416: camel-jbang - Add route diagram web console 
to show route diagram when using --console
6dc8ec31ee14 is described below

commit 6dc8ec31ee14c7b3bb9b9a458f14c993f9637d67
Author: Claus Ibsen <[email protected]>
AuthorDate: Wed May 6 10:37:40 2026 +0200

    CAMEL-23416: camel-jbang - Add route diagram web console to show route 
diagram when using --console
---
 .../org/apache/camel/impl/console/ConsoleHelper.java     |  9 +++++++++
 .../camel/impl/console/RouteStructureDevConsole.java     |  9 +++++++--
 .../org/apache/camel/impl/console/ConsoleHelperTest.java | 16 ++++++++++++++--
 3 files changed, 30 insertions(+), 4 deletions(-)

diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/ConsoleHelper.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/ConsoleHelper.java
index b795932bb0ef..bb7f1beaad10 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/ConsoleHelper.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/ConsoleHelper.java
@@ -138,4 +138,13 @@ public final class ConsoleHelper {
         return null;
     }
 
+    public static String extractSourceLocationNoLineNumber(String location) {
+        Integer line = extractSourceLocationLineNumber(location);
+        if (line != null) {
+            int pos = location.lastIndexOf(':');
+            return location.substring(0, pos);
+        }
+        return location;
+    }
+
 }
diff --git 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteStructureDevConsole.java
 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteStructureDevConsole.java
index 2748addccefa..afeaac03d63e 100644
--- 
a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteStructureDevConsole.java
+++ 
b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteStructureDevConsole.java
@@ -38,6 +38,7 @@ import org.apache.camel.util.json.JsonObject;
 import org.apache.camel.util.json.Jsoner;
 
 import static 
org.apache.camel.impl.console.ConsoleHelper.extractSourceLocationLineNumber;
+import static 
org.apache.camel.impl.console.ConsoleHelper.extractSourceLocationNoLineNumber;
 
 @DevConsole(name = "route-structure", description = "Dump route structure")
 public class RouteStructureDevConsole extends AbstractDevConsole {
@@ -74,7 +75,7 @@ public class RouteStructureDevConsole extends 
AbstractDevConsole {
 
                 sb.append(String.format("    Id: %s", mrb.getRouteId()));
                 if (mrb.getSourceLocation() != null) {
-                    sb.append(String.format("%n    Source: %s", 
mrb.getSourceLocation()));
+                    sb.append(String.format("%n    Source: %s", 
extractSourceLocationNoLineNumber(mrb.getSourceLocation())));
                 }
                 sb.append("\n\n");
                 for (ModelDumpLine line : lines) {
@@ -112,7 +113,11 @@ public class RouteStructureDevConsole extends 
AbstractDevConsole {
             jo.put("routeId", mrb.getRouteId());
             jo.put("from", mrb.getEndpointUri());
             if (mrb.getSourceLocation() != null) {
-                jo.put("source", mrb.getSourceLocation());
+                jo.put("source", 
extractSourceLocationNoLineNumber(mrb.getSourceLocation()));
+                Integer line = 
extractSourceLocationLineNumber(mrb.getSourceLocation());
+                if (line != null) {
+                    jo.put("line", line);
+                }
             }
             if (mrb.getDescription() != null) {
                 jo.put("description", mrb.getDescription());
diff --git 
a/core/camel-console/src/test/java/org/apache/camel/impl/console/ConsoleHelperTest.java
 
b/core/camel-console/src/test/java/org/apache/camel/impl/console/ConsoleHelperTest.java
index e504356ecfa2..84893bdad92d 100644
--- 
a/core/camel-console/src/test/java/org/apache/camel/impl/console/ConsoleHelperTest.java
+++ 
b/core/camel-console/src/test/java/org/apache/camel/impl/console/ConsoleHelperTest.java
@@ -28,16 +28,28 @@ public class ConsoleHelperTest {
 
     @Test
     public void testExtractSourceLocationLineNumber() {
-        Integer lineNumber = 
ConsoleHelper.extractSourceLocationLineNumber("file.java:42");
+        Integer lineNumber = 
ConsoleHelper.extractSourceLocationLineNumber("cheese.java:42");
+        Assertions.assertEquals(42, lineNumber);
+
+        lineNumber = 
ConsoleHelper.extractSourceLocationLineNumber("file:cheese.java:42");
         Assertions.assertEquals(42, lineNumber);
     }
 
     @Test
     public void testExtractSourceLocationLineNumberNoNumber() {
-        Integer lineNumber = 
ConsoleHelper.extractSourceLocationLineNumber("file.java");
+        Integer lineNumber = 
ConsoleHelper.extractSourceLocationLineNumber("cheese.java");
         Assertions.assertNull(lineNumber);
     }
 
+    @Test
+    public void testExtractSourceLocationNoLineNumber() {
+        String source = 
ConsoleHelper.extractSourceLocationNoLineNumber("cheese.java:42");
+        Assertions.assertEquals("cheese.java", source);
+
+        source = 
ConsoleHelper.extractSourceLocationNoLineNumber("file:cheese.java:42");
+        Assertions.assertEquals("file:cheese.java", source);
+    }
+
     @Test
     public void testExtractSourceLocationLineNumberMultipleColons() {
         Integer lineNumber = 
ConsoleHelper.extractSourceLocationLineNumber("classpath:com/example/file.java:100");

Reply via email to