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

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

commit 7f552a5db1afd6ec30f0d39b4b4e9d619828b6ae
Author: Claus Ibsen <[email protected]>
AuthorDate: Mon Jun 10 15:56:37 2024 +0200

    CAMEL-20842: Add endpoint service location to backlog tracing
---
 .../camel/dsl/jbang/core/commands/Debug.java       |  7 ++++-
 .../core/commands/action/CamelSendAction.java      |  2 +-
 .../core/commands/action/CamelStubAction.java      |  2 +-
 .../core/commands/action/CamelTraceAction.java     |  7 ++++-
 .../core/commands/action/MessageTableHelper.java   | 30 +++++++++++++++++++++-
 .../commands/action/TransformMessageAction.java    |  2 +-
 6 files changed, 44 insertions(+), 6 deletions(-)

diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Debug.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Debug.java
index 49367ed2fd2..11e3e1cfc62 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Debug.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Debug.java
@@ -369,6 +369,10 @@ public class Debug extends Run {
                             }
                             row.endpoint.put("endpoint", uri);
                         }
+                        JsonObject es = jo.getMap("endpointService");
+                        if (es != null) {
+                            row.endpointService = es;
+                        }
                         Long ts = jo.getLong("timestamp");
                         if (ts != null) {
                             row.timestamp = ts;
@@ -740,7 +744,7 @@ public class Debug extends Run {
     }
 
     private String getDataAsTable(SuspendedRow r) {
-        return tableHelper.getDataAsTable(r.exchangeId, r.exchangePattern, 
r.endpoint, r.message, r.exception);
+        return tableHelper.getDataAsTable(r.exchangeId, r.exchangePattern, 
r.endpoint, r.endpointService, r.message, r.exception);
     }
 
     private String getStatus(SuspendedRow r) {
@@ -815,6 +819,7 @@ public class Debug extends Run {
         boolean done;
         boolean failed;
         JsonObject endpoint;
+        JsonObject endpointService;
         JsonObject message;
         JsonObject exception;
         List<Code> code = new ArrayList<>();
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelSendAction.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelSendAction.java
index c5f786e4d52..266b576a11c 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelSendAction.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelSendAction.java
@@ -173,7 +173,7 @@ public class CamelSendAction extends ActionBaseCommand {
                     tableHelper.setPretty(pretty);
                     tableHelper.setLoggingColor(loggingColor);
                     
tableHelper.setShowExchangeProperties(showExchangeProperties);
-                    String table = tableHelper.getDataAsTable(exchangeId, mep, 
jo, message, cause);
+                    String table = tableHelper.getDataAsTable(exchangeId, mep, 
jo, null, message, cause);
                     printer().println(table);
                 }
             }
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelStubAction.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelStubAction.java
index 1375fb53343..32880c2d5d3 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelStubAction.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelStubAction.java
@@ -294,7 +294,7 @@ public class CamelStubAction extends ActionWatchCommand {
                         }
                         String data
                                 = 
tableHelper.getDataAsTable(root.getString("exchangeId"), 
root.getString("exchangePattern"),
-                                        row.endpoint, root, null);
+                                        row.endpoint, null, root, null);
                         if (data != null) {
                             String[] lines = 
data.split(System.lineSeparator());
                             if (lines.length > 0) {
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelTraceAction.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelTraceAction.java
index 36d32527b4a..49a26e6f9eb 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelTraceAction.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelTraceAction.java
@@ -440,6 +440,10 @@ public class CamelTraceAction extends ActionBaseCommand {
                         }
                         row.endpoint.put("endpoint", uri);
                     }
+                    JsonObject es = jo.getMap("endpointService");
+                    if (es != null) {
+                        row.endpointService = es;
+                    }
                     Long ts = jo.getLong("timestamp");
                     if (ts != null) {
                         row.timestamp = ts;
@@ -720,7 +724,7 @@ public class CamelTraceAction extends ActionBaseCommand {
     }
 
     private String getDataAsTable(Row r) {
-        return tableHelper.getDataAsTable(r.exchangeId, r.exchangePattern, 
r.endpoint, r.message, r.exception);
+        return tableHelper.getDataAsTable(r.exchangeId, r.exchangePattern, 
r.endpoint, r.endpointService, r.message, r.exception);
     }
 
     private String getElapsed(Row r) {
@@ -805,6 +809,7 @@ public class CamelTraceAction extends ActionBaseCommand {
         boolean done;
         boolean failed;
         JsonObject endpoint;
+        JsonObject endpointService;
         JsonObject message;
         JsonObject exception;
 
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/MessageTableHelper.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/MessageTableHelper.java
index 96731766e93..070e771e857 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/MessageTableHelper.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/MessageTableHelper.java
@@ -19,6 +19,8 @@ package org.apache.camel.dsl.jbang.core.commands.action;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
+import java.util.StringJoiner;
 
 import com.github.freva.asciitable.AsciiTable;
 import com.github.freva.asciitable.Column;
@@ -88,11 +90,13 @@ public class MessageTableHelper {
 
     public String getDataAsTable(
             String exchangeId, String exchangePattern,
-            JsonObject endpoint, JsonObject root, JsonObject cause) {
+            JsonObject endpoint, JsonObject endpointService,
+            JsonObject root, JsonObject cause) {
 
         List<TableRow> rows = new ArrayList<>();
         TableRow eRow;
         String tab0 = null;
+        String tab0b = null;
         String tab1 = null;
         String tab1b = null;
         String tab2 = null;
@@ -108,6 +112,27 @@ public class MessageTableHelper {
                             .minWidth(showExchangeProperties || 
showExchangeVariables ? 12 : 10).with(TableRow::kindAsString),
                     new 
Column().dataAlign(HorizontalAlign.LEFT).with(TableRow::valueAsString)));
         }
+        if (endpointService != null) {
+            eRow = new TableRow("Service", null, null, 
endpointService.getString("serviceUrl"));
+            TableRow eRow2 = null;
+            StringJoiner sj = new StringJoiner(", ");
+            String protocol = endpointService.getString("serviceProtocol");
+            if (protocol != null) {
+                sj.add("protocol=" + protocol);
+            }
+            Map arr = endpointService.getMap("serviceMetadata");
+            if (arr != null) {
+                arr.forEach((k, v) -> sj.add(k + "=" + v));
+            }
+            if (sj.length() > 0) {
+                String data = "(" + sj + ")";
+                eRow2 = new TableRow(null, null, null, data);
+            }
+            tab0b = AsciiTable.getTable(AsciiTable.NO_BORDERS, eRow2 != null ? 
List.of(eRow, eRow2) : List.of(eRow), Arrays.asList(
+                    new Column().dataAlign(HorizontalAlign.LEFT)
+                            .minWidth(showExchangeProperties || 
showExchangeVariables ? 12 : 10).with(TableRow::kindAsString),
+                    new 
Column().dataAlign(HorizontalAlign.LEFT).with(TableRow::valueAsString)));
+        }
 
         if (root != null) {
             eRow = new TableRow("Exchange", root.getString("exchangeType"), 
exchangePattern, exchangeId);
@@ -224,6 +249,9 @@ public class MessageTableHelper {
         if (tab0 != null && !tab0.isEmpty()) {
             answer = answer + tab0 + System.lineSeparator();
         }
+        if (tab0b != null && !tab0b.isEmpty()) {
+            answer = answer + tab0b + System.lineSeparator();
+        }
         if (tab1 != null && tab1b != null && !tab1.isEmpty()) {
             answer = answer + tab1 + tab1b + System.lineSeparator();
         }
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/TransformMessageAction.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/TransformMessageAction.java
index a4c0b4d0784..a0c74bb1d33 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/TransformMessageAction.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/TransformMessageAction.java
@@ -280,7 +280,7 @@ public class TransformMessageAction extends 
ActionWatchCommand {
                     tableHelper.setPretty(pretty);
                     tableHelper.setLoggingColor(loggingColor);
                     
tableHelper.setShowExchangeProperties(showExchangeProperties);
-                    String table = tableHelper.getDataAsTable(exchangeId, 
"InOut", null, message, cause);
+                    String table = tableHelper.getDataAsTable(exchangeId, 
"InOut", null, null, message, cause);
                     printer().println(table);
                 }
             }

Reply via email to