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");