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 8fd9267e359 camel trace to show type of exchange and message class so
users better understand the structure of envelope in Camel.
8fd9267e359 is described below
commit 8fd9267e3599a4ec8b4512c2b5b24ae420816403
Author: Claus Ibsen <[email protected]>
AuthorDate: Sat Feb 18 22:38:33 2023 +0100
camel trace to show type of exchange and message class so users better
understand the structure of envelope in Camel.
---
.../org/apache/camel/util/MessageHelperTest.java | 4 +-
.../camel/management/BacklogTracerFilterTest.java | 6 +-
.../management/BacklogTracerIdOnAllNodesTest.java | 4 +-
.../camel/management/BacklogTracerPatternTest.java | 4 +-
.../management/BacklogTracerStreamCachingTest.java | 2 +-
.../apache/camel/management/BacklogTracerTest.java | 16 ++---
.../ManagedBrowsableEndpointAsXmlTest.java | 34 ++++-----
.../org/apache/camel/support/MessageHelper.java | 15 ++--
.../core/commands/action/CamelTraceAction.java | 84 +++++++++++++++-------
9 files changed, 104 insertions(+), 65 deletions(-)
diff --git
a/core/camel-core/src/test/java/org/apache/camel/util/MessageHelperTest.java
b/core/camel-core/src/test/java/org/apache/camel/util/MessageHelperTest.java
index d78db90ec35..ab9947c9220 100644
--- a/core/camel-core/src/test/java/org/apache/camel/util/MessageHelperTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/util/MessageHelperTest.java
@@ -202,7 +202,7 @@ public class MessageHelperTest {
String out = MessageHelper.dumpAsXml(message, false);
assertEquals("<message exchangeId=\"" +
message.getExchange().getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\">"
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\">"
+ "\n <headers>\n <header key=\"foo\"
type=\"java.lang.Integer\">123</header>\n </headers>\n</message>",
out);
@@ -223,7 +223,7 @@ public class MessageHelperTest {
String out = MessageHelper.dumpAsXml(message, false, 2);
assertEquals(" <message exchangeId=\"" +
message.getExchange().getExchangeId()
- + "\" exchangePattern=\"InOut\"
type=\"org.apache.camel.support.DefaultMessage\">"
+ + "\" exchangePattern=\"InOut\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\">"
+ "\n <headers>\n <header key=\"foo\"
type=\"java.lang.Integer\">123</header>\n </headers>\n </message>",
out);
diff --git
a/core/camel-management/src/test/java/org/apache/camel/management/BacklogTracerFilterTest.java
b/core/camel-management/src/test/java/org/apache/camel/management/BacklogTracerFilterTest.java
index 6a26f4bdd6f..120ccf41829 100644
---
a/core/camel-management/src/test/java/org/apache/camel/management/BacklogTracerFilterTest.java
+++
b/core/camel-management/src/test/java/org/apache/camel/management/BacklogTracerFilterTest.java
@@ -75,7 +75,7 @@ public class BacklogTracerFilterTest extends
ManagementTestSupport {
BacklogTracerEventMessage event = events.get(0);
assertEquals(null, event.getToNode());
assertEquals(" <message exchangeId=\"" +
exchanges.get(1).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\">\n"
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\">\n"
+ " <headers>\n"
+ " <header key=\"foo\"
type=\"java.lang.Integer\">123</header>\n"
+ " </headers>\n"
@@ -86,7 +86,7 @@ public class BacklogTracerFilterTest extends
ManagementTestSupport {
BacklogTracerEventMessage event1 = events.get(1);
assertEquals("foo", event1.getToNode());
assertEquals(" <message exchangeId=\"" +
exchanges.get(1).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\">\n"
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\">\n"
+ " <headers>\n"
+ " <header key=\"foo\"
type=\"java.lang.Integer\">123</header>\n"
+ " </headers>\n"
@@ -97,7 +97,7 @@ public class BacklogTracerFilterTest extends
ManagementTestSupport {
BacklogTracerEventMessage event2 = events.get(2);
assertEquals("bar", event2.getToNode());
assertEquals(" <message exchangeId=\"" +
exchanges.get(1).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\">\n"
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\">\n"
+ " <headers>\n"
+ " <header key=\"foo\"
type=\"java.lang.Integer\">123</header>\n"
+ " </headers>\n"
diff --git
a/core/camel-management/src/test/java/org/apache/camel/management/BacklogTracerIdOnAllNodesTest.java
b/core/camel-management/src/test/java/org/apache/camel/management/BacklogTracerIdOnAllNodesTest.java
index c3915532c94..45886323e3f 100644
---
a/core/camel-management/src/test/java/org/apache/camel/management/BacklogTracerIdOnAllNodesTest.java
+++
b/core/camel-management/src/test/java/org/apache/camel/management/BacklogTracerIdOnAllNodesTest.java
@@ -113,7 +113,7 @@ public class BacklogTracerIdOnAllNodesTest extends
ManagementTestSupport {
BacklogTracerEventMessage event1 = events.get(0);
assertEquals(to2.getId(), event1.getToNode());
assertEquals(" <message exchangeId=\"" +
fooExchanges.get(0).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\">\n"
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\">\n"
+ " <body type=\"java.lang.String\">Hello
World</body>\n"
+ " </message>",
event1.getMessageAsXml());
@@ -127,7 +127,7 @@ public class BacklogTracerIdOnAllNodesTest extends
ManagementTestSupport {
event1 = events.get(0);
assertEquals("camel", event1.getToNode());
assertEquals(" <message exchangeId=\"" +
camelExchanges.get(0).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\">\n"
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\">\n"
+ " <body type=\"java.lang.String\">Hello
Camel</body>\n"
+ " </message>",
event1.getMessageAsXml());
diff --git
a/core/camel-management/src/test/java/org/apache/camel/management/BacklogTracerPatternTest.java
b/core/camel-management/src/test/java/org/apache/camel/management/BacklogTracerPatternTest.java
index 2317cd8bfd5..988bb4f6425 100644
---
a/core/camel-management/src/test/java/org/apache/camel/management/BacklogTracerPatternTest.java
+++
b/core/camel-management/src/test/java/org/apache/camel/management/BacklogTracerPatternTest.java
@@ -75,7 +75,7 @@ public class BacklogTracerPatternTest extends
ManagementTestSupport {
BacklogTracerEventMessage event1 = events.get(0);
assertEquals("foo", event1.getToNode());
assertEquals(" <message exchangeId=\"" +
exchanges.get(0).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\">\n"
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\">\n"
+ " <body type=\"java.lang.String\">Hello
World</body>\n"
+ " </message>",
event1.getMessageAsXml());
@@ -83,7 +83,7 @@ public class BacklogTracerPatternTest extends
ManagementTestSupport {
BacklogTracerEventMessage event2 = events.get(1);
assertEquals("foo", event2.getToNode());
assertEquals(" <message exchangeId=\"" +
exchanges.get(1).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\">\n"
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\">\n"
+ " <body type=\"java.lang.String\">Bye
World</body>\n"
+ " </message>",
event2.getMessageAsXml());
diff --git
a/core/camel-management/src/test/java/org/apache/camel/management/BacklogTracerStreamCachingTest.java
b/core/camel-management/src/test/java/org/apache/camel/management/BacklogTracerStreamCachingTest.java
index 054d9fd25ad..6363a186eca 100644
---
a/core/camel-management/src/test/java/org/apache/camel/management/BacklogTracerStreamCachingTest.java
+++
b/core/camel-management/src/test/java/org/apache/camel/management/BacklogTracerStreamCachingTest.java
@@ -78,7 +78,7 @@ public class BacklogTracerStreamCachingTest extends
ManagementTestSupport {
BacklogTracerEventMessage event1 = events.get(0);
assertEquals("bar", event1.getToNode());
assertEquals(" <message exchangeId=\"" +
exchanges.get(0).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\">\n"
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\">\n"
+ " <body
type=\"org.apache.camel.converter.stream.ByteArrayInputStreamCache\">Bye
World</body>\n"
+ " </message>",
event1.getMessageAsXml());
diff --git
a/core/camel-management/src/test/java/org/apache/camel/management/BacklogTracerTest.java
b/core/camel-management/src/test/java/org/apache/camel/management/BacklogTracerTest.java
index e66d3be2d59..130aa997704 100644
---
a/core/camel-management/src/test/java/org/apache/camel/management/BacklogTracerTest.java
+++
b/core/camel-management/src/test/java/org/apache/camel/management/BacklogTracerTest.java
@@ -76,7 +76,7 @@ public class BacklogTracerTest extends ManagementTestSupport {
BacklogTracerEventMessage event1 = events.get(0);
assertEquals("foo", event1.getToNode());
assertEquals(" <message exchangeId=\"" +
exchanges.get(0).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\">\n"
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\">\n"
+ " <body type=\"java.lang.String\">Hello
World</body>\n"
+ " </message>",
event1.getMessageAsXml());
@@ -84,7 +84,7 @@ public class BacklogTracerTest extends ManagementTestSupport {
BacklogTracerEventMessage event2 = events.get(1);
assertEquals("foo", event2.getToNode());
assertEquals(" <message exchangeId=\"" +
exchanges.get(1).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\">\n"
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\">\n"
+ " <body type=\"java.lang.String\">Bye
World</body>\n"
+ " </message>",
event2.getMessageAsXml());
@@ -163,7 +163,7 @@ public class BacklogTracerTest extends
ManagementTestSupport {
assertEquals("route1", event0.getRouteId());
assertEquals(null, event0.getToNode());
assertEquals(" <message exchangeId=\"" +
fooExchanges.get(0).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\">\n"
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\">\n"
+ " <body type=\"java.lang.String\">Hello
World</body>\n"
+ " </message>",
event0.getMessageAsXml());
@@ -172,7 +172,7 @@ public class BacklogTracerTest extends
ManagementTestSupport {
assertEquals("route1", event1.getRouteId());
assertEquals("foo", event1.getToNode());
assertEquals(" <message exchangeId=\"" +
fooExchanges.get(0).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\">\n"
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\">\n"
+ " <body type=\"java.lang.String\">Hello
World</body>\n"
+ " </message>",
event1.getMessageAsXml());
@@ -181,7 +181,7 @@ public class BacklogTracerTest extends
ManagementTestSupport {
assertEquals("route1", event2.getRouteId());
assertEquals("bar", event2.getToNode());
assertEquals(" <message exchangeId=\"" +
barExchanges.get(0).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\">\n"
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\">\n"
+ " <body type=\"java.lang.String\">Hello
World</body>\n"
+ " </message>",
event2.getMessageAsXml());
@@ -190,7 +190,7 @@ public class BacklogTracerTest extends
ManagementTestSupport {
assertEquals("route1", event3.getRouteId());
assertEquals(null, event3.getToNode());
assertEquals(" <message exchangeId=\"" +
fooExchanges.get(1).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\">\n"
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\">\n"
+ " <body type=\"java.lang.String\">Bye
World</body>\n"
+ " </message>",
event3.getMessageAsXml());
@@ -199,7 +199,7 @@ public class BacklogTracerTest extends
ManagementTestSupport {
assertEquals("route1", event4.getRouteId());
assertEquals("foo", event4.getToNode());
assertEquals(" <message exchangeId=\"" +
fooExchanges.get(1).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\">\n"
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\">\n"
+ " <body type=\"java.lang.String\">Bye
World</body>\n"
+ " </message>",
event3.getMessageAsXml());
@@ -208,7 +208,7 @@ public class BacklogTracerTest extends
ManagementTestSupport {
assertEquals("route1", event5.getRouteId());
assertEquals("bar", event5.getToNode());
assertEquals(" <message exchangeId=\"" +
barExchanges.get(1).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\">\n"
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\">\n"
+ " <body type=\"java.lang.String\">Bye
World</body>\n"
+ " </message>",
event4.getMessageAsXml());
diff --git
a/core/camel-management/src/test/java/org/apache/camel/management/ManagedBrowsableEndpointAsXmlTest.java
b/core/camel-management/src/test/java/org/apache/camel/management/ManagedBrowsableEndpointAsXmlTest.java
index 16cb16293b6..31965c44787 100644
---
a/core/camel-management/src/test/java/org/apache/camel/management/ManagedBrowsableEndpointAsXmlTest.java
+++
b/core/camel-management/src/test/java/org/apache/camel/management/ManagedBrowsableEndpointAsXmlTest.java
@@ -67,7 +67,7 @@ public class ManagedBrowsableEndpointAsXmlTest extends
ManagementTestSupport {
log.info(out);
assertEquals("<message exchangeId=\"" +
exchanges.get(0).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\""
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\""
+ ">\n <body type=\"java.lang.String\"><foo>Camel
&gt; Donkey</foo></body>\n</message>",
out);
@@ -76,7 +76,7 @@ public class ManagedBrowsableEndpointAsXmlTest extends
ManagementTestSupport {
assertNotNull(out);
log.info(out);
assertEquals("<message exchangeId=\"" +
exchanges.get(1).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\""
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\""
+ ">\n <body type=\"java.lang.String\">Camel >
Donkey</body>\n</message>",
out);
@@ -85,7 +85,7 @@ public class ManagedBrowsableEndpointAsXmlTest extends
ManagementTestSupport {
assertNotNull(out);
log.info(out);
assertEquals("<message exchangeId=\"" +
exchanges.get(2).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\""
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\""
+ ">\n <headers>\n <header key=\"name\"
type=\"java.lang.String\">Me & You</header>\n </headers>\n"
+ " <body type=\"java.lang.String\"><foo>Camel
&gt; Donkey</foo></body>\n</message>",
out);
@@ -96,7 +96,7 @@ public class ManagedBrowsableEndpointAsXmlTest extends
ManagementTestSupport {
log.info(out);
assertEquals(
"<message exchangeId=\"" + exchanges.get(3).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\">\n <headers>\n"
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\">\n <headers>\n"
+ " <header key=\"title\"
type=\"java.lang.String\"><title>Me &amp;
You</title></header>\n </headers>\n"
+ " <body type=\"java.lang.String\"><foo>Camel
&gt; Donkey</foo></body>\n</message>",
out);
@@ -106,7 +106,7 @@ public class ManagedBrowsableEndpointAsXmlTest extends
ManagementTestSupport {
assertNotNull(out);
log.info(out);
assertEquals("<message exchangeId=\"" +
exchanges.get(4).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\""
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\""
+ ">\n <headers>\n <header key=\"name\"
type=\"java.lang.String\">Me & You</header>\n </headers>\n"
+ " <body type=\"java.lang.String\">Camel >
Donkey</body>\n</message>",
out);
@@ -116,7 +116,7 @@ public class ManagedBrowsableEndpointAsXmlTest extends
ManagementTestSupport {
assertNotNull(out);
log.info(out);
assertEquals("<message exchangeId=\"" +
exchanges.get(5).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\""
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\""
+ ">\n <headers>\n <header key=\"user\"
type=\"java.lang.Boolean\">true</header>\n </headers>\n"
+ " <body
type=\"java.lang.Integer\">123</body>\n</message>",
out);
@@ -126,7 +126,7 @@ public class ManagedBrowsableEndpointAsXmlTest extends
ManagementTestSupport {
assertNotNull(out);
log.info(out);
assertEquals("<message exchangeId=\"" +
exchanges.get(6).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\""
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\""
+ ">\n <headers>\n <header key=\"title\"
type=\"java.lang.String\">Camel rocks</header>\n"
+ " <header key=\"uid\"
type=\"java.lang.Integer\">123</header>\n"
+ " <header key=\"user\"
type=\"java.lang.Boolean\">false</header>\n </headers>\n"
@@ -155,7 +155,7 @@ public class ManagedBrowsableEndpointAsXmlTest extends
ManagementTestSupport {
log.info(out);
assertEquals("<message exchangeId=\"" +
exchanges.get(0).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\""
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\""
+ ">\n <headers>\n <header key=\"foo\"
type=\"java.lang.Integer\">123</header>\n </headers>\n</message>",
out);
@@ -164,7 +164,7 @@ public class ManagedBrowsableEndpointAsXmlTest extends
ManagementTestSupport {
assertNotNull(out);
log.info(out);
assertEquals("<message exchangeId=\"" +
exchanges.get(1).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\""
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\""
+ ">\n <headers>\n <header key=\"foo\"
type=\"java.lang.Integer\">456</header>\n </headers>\n</message>",
out);
}
@@ -190,10 +190,10 @@ public class ManagedBrowsableEndpointAsXmlTest extends
ManagementTestSupport {
log.info(out);
assertEquals("<messages>\n<message exchangeId=\"" +
exchanges.get(0).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\""
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\""
+ ">\n <body type=\"java.lang.String\">Hello
World</body>\n</message>\n"
+ "<message exchangeId=\"" +
exchanges.get(1).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\""
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\""
+ ">\n <headers>\n <header key=\"foo\"
type=\"java.lang.Integer\">456</header>\n </headers>\n"
+ " <body type=\"java.lang.String\">Bye
World</body>\n</message>\n</messages>",
out);
@@ -220,10 +220,10 @@ public class ManagedBrowsableEndpointAsXmlTest extends
ManagementTestSupport {
log.info(out);
assertEquals("<messages>\n<message exchangeId=\"" +
exchanges.get(0).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\">\n <headers>\n"
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\">\n <headers>\n"
+ " <header key=\"foo\"
type=\"java.lang.Integer\">123</header>\n </headers>\n</message>\n"
+ "<message exchangeId=\"" +
exchanges.get(1).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\""
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\""
+ ">\n <headers>\n <header key=\"foo\"
type=\"java.lang.Integer\">456</header>\n </headers>\n"
+ "</message>\n</messages>",
out);
@@ -251,10 +251,10 @@ public class ManagedBrowsableEndpointAsXmlTest extends
ManagementTestSupport {
log.info(out);
assertEquals("<messages>\n<message exchangeId=\"" +
exchanges.get(0).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\""
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\""
+ ">\n <body type=\"java.lang.String\">Hello
World</body>\n</message>\n"
+ "<message exchangeId=\"" +
exchanges.get(1).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\""
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\""
+ ">\n <headers>\n <header key=\"foo\"
type=\"java.lang.Integer\">456</header>\n </headers>\n"
+ " <body type=\"java.lang.String\">Bye
World</body>\n</message>\n</messages>",
out);
@@ -282,10 +282,10 @@ public class ManagedBrowsableEndpointAsXmlTest extends
ManagementTestSupport {
log.info(out);
assertEquals("<messages>\n<message exchangeId=\"" +
exchanges.get(0).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\""
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\""
+ ">\n <headers>\n <header key=\"foo\"
type=\"java.lang.Integer\">123</header>\n </headers>\n</message>\n"
+ "<message exchangeId=\"" +
exchanges.get(1).getExchangeId()
- + "\" exchangePattern=\"InOnly\"
type=\"org.apache.camel.support.DefaultMessage\""
+ + "\" exchangePattern=\"InOnly\"
exchangeType=\"org.apache.camel.support.DefaultExchange\"
messageType=\"org.apache.camel.support.DefaultMessage\""
+ ">\n <headers>\n <header key=\"foo\"
type=\"java.lang.Integer\">456</header>\n </headers>\n"
+ "</message>\n</messages>",
out);
diff --git
a/core/camel-support/src/main/java/org/apache/camel/support/MessageHelper.java
b/core/camel-support/src/main/java/org/apache/camel/support/MessageHelper.java
index da71ef2e4c3..564105481bb 100644
---
a/core/camel-support/src/main/java/org/apache/camel/support/MessageHelper.java
+++
b/core/camel-support/src/main/java/org/apache/camel/support/MessageHelper.java
@@ -501,10 +501,12 @@ public final class MessageHelper {
// include exchangeId/exchangePattern/type as attribute on the
<message> tag
sb.append(prefix);
- String type = ObjectHelper.classCanonicalName(message);
+ String messageType = ObjectHelper.classCanonicalName(message);
+ String exchangeType =
ObjectHelper.classCanonicalName(message.getExchange());
sb.append("<message
exchangeId=\"").append(message.getExchange().getExchangeId())
.append("\"
exchangePattern=\"").append(message.getExchange().getPattern().name())
- .append("\" type=\"").append(type).append("\">\n");
+ .append("\" exchangeType=\"").append(exchangeType)
+ .append("\"
messageType=\"").append(messageType).append("\">\n");
// exchange properties
if (includeExchangeProperties &&
message.getExchange().hasProperties()) {
@@ -514,7 +516,7 @@ public final class MessageHelper {
Map<String, Object> properties = new
TreeMap<>(message.getExchange().getProperties());
for (Map.Entry<String, Object> entry : properties.entrySet()) {
Object value = entry.getValue();
- type = ObjectHelper.classCanonicalName(value);
+ String type = ObjectHelper.classCanonicalName(value);
sb.append(prefix);
sb.append(" <exchangeProperty
key=\"").append(entry.getKey()).append("\"");
if (type != null) {
@@ -550,7 +552,7 @@ public final class MessageHelper {
Map<String, Object> headers = new TreeMap<>(message.getHeaders());
for (Map.Entry<String, Object> entry : headers.entrySet()) {
Object value = entry.getValue();
- type = ObjectHelper.classCanonicalName(value);
+ String type = ObjectHelper.classCanonicalName(value);
sb.append(prefix);
sb.append(" <header
key=\"").append(entry.getKey()).append("\"");
if (type != null) {
@@ -581,7 +583,7 @@ public final class MessageHelper {
if (includeBody) {
sb.append(prefix);
sb.append(" <body");
- type = ObjectHelper.classCanonicalName(message.getBody());
+ String type = ObjectHelper.classCanonicalName(message.getBody());
if (type != null) {
sb.append(" type=\"").append(type).append("\"");
}
@@ -870,7 +872,8 @@ public final class MessageHelper {
root.put("message", jo);
jo.put("exchangeId", message.getExchange().getExchangeId());
jo.put("exchangePattern", message.getExchange().getPattern().name());
- jo.put("type", ObjectHelper.classCanonicalName(message));
+ jo.put("exchangeType",
ObjectHelper.classCanonicalName(message.getExchange()));
+ jo.put("messageType", ObjectHelper.classCanonicalName(message));
// exchange properties
if (includeExchangeProperties &&
message.getExchange().hasProperties()) {
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 b66bc478611..9d583d47798 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
@@ -688,6 +688,12 @@ public class CamelTraceAction extends ActionBaseCommand {
private String getDataAsTable(Row r) {
List<TableRow> rows = new ArrayList<>();
+ TableRow eRow = new TableRow("Exchange",
r.message.getString("exchangeType"), null, null);
+ String tab1 = AsciiTable.getTable(AsciiTable.NO_BORDERS,
List.of(eRow), Arrays.asList(
+ new Column().dataAlign(HorizontalAlign.LEFT)
+ .minWidth(showExchangeProperties ? 11 :
9).with(TableRow::kindAsString),
+ new
Column().dataAlign(HorizontalAlign.LEFT).with(TableRow::typeAndLengthAsString)));
+ // exchange properties
JsonArray arr = r.message.getCollection("exchangeProperties");
if (arr != null) {
for (Object o : arr) {
@@ -695,6 +701,23 @@ public class CamelTraceAction extends ActionBaseCommand {
rows.add(new TableRow("Property", jo.getString("type"),
jo.getString("key"), jo.get("value")));
}
}
+ String tab2 = AsciiTable.getTable(AsciiTable.NO_BORDERS, rows,
Arrays.asList(
+ new Column().dataAlign(HorizontalAlign.LEFT)
+ .minWidth(showExchangeProperties ? 12 :
10).with(TableRow::kindAsString),
+ new Column().dataAlign(HorizontalAlign.LEFT)
+ .maxWidth(40,
OverflowBehaviour.ELLIPSIS_LEFT).with(TableRow::typeAsString),
+ new Column().dataAlign(HorizontalAlign.RIGHT)
+ .maxWidth(40,
OverflowBehaviour.NEWLINE).with(TableRow::keyAsString),
+ new Column().dataAlign(HorizontalAlign.LEFT)
+ .maxWidth(80,
OverflowBehaviour.NEWLINE).with(TableRow::valueAsString)));
+ rows.clear();
+
+ // message type before headers
+ TableRow msgRow = new TableRow("Message",
r.message.getString("messageType"), null, null);
+ String tab3 = AsciiTable.getTable(AsciiTable.NO_BORDERS,
List.of(msgRow), Arrays.asList(
+ new Column().dataAlign(HorizontalAlign.LEFT)
+ .minWidth(showExchangeProperties ? 12 :
10).with(TableRow::kindAsString),
+ new
Column().dataAlign(HorizontalAlign.LEFT).with(TableRow::typeAndLengthAsString)));
arr = r.message.getCollection("headers");
if (arr != null) {
for (Object o : arr) {
@@ -702,10 +725,10 @@ public class CamelTraceAction extends ActionBaseCommand {
rows.add(new TableRow("Header", jo.getString("type"),
jo.getString("key"), jo.get("value")));
}
}
- // properties and headers
- String tab1 = AsciiTable.getTable(AsciiTable.NO_BORDERS, rows,
Arrays.asList(
+ // headers
+ String tab4 = AsciiTable.getTable(AsciiTable.NO_BORDERS, rows,
Arrays.asList(
new Column().dataAlign(HorizontalAlign.LEFT)
- .minWidth(showExchangeProperties ? 11 :
9).with(TableRow::kindAsString),
+ .minWidth(showExchangeProperties ? 12 :
10).with(TableRow::kindAsString),
new Column().dataAlign(HorizontalAlign.LEFT)
.maxWidth(40,
OverflowBehaviour.ELLIPSIS_LEFT).with(TableRow::typeAsString),
new Column().dataAlign(HorizontalAlign.RIGHT)
@@ -714,50 +737,63 @@ public class CamelTraceAction extends ActionBaseCommand {
.maxWidth(80,
OverflowBehaviour.NEWLINE).with(TableRow::valueAsString)));
// body and type
- JsonObject jo = r.message;
- TableRow msgRow = new TableRow("Message", jo.getString("type"), null,
null);
- jo = r.message.getMap("body");
+ JsonObject jo = r.message.getMap("body");
TableRow bodyRow = new TableRow("Body", jo.getString("type"), null,
jo.get("value"));
- String tab2 = AsciiTable.getTable(AsciiTable.NO_BORDERS,
List.of(msgRow, bodyRow), Arrays.asList(
+ String tab5 = AsciiTable.getTable(AsciiTable.NO_BORDERS,
List.of(bodyRow), Arrays.asList(
new Column().dataAlign(HorizontalAlign.LEFT)
- .minWidth(showExchangeProperties ? 11 :
9).with(TableRow::kindAsString),
+ .minWidth(showExchangeProperties ? 12 :
10).with(TableRow::kindAsString),
new
Column().dataAlign(HorizontalAlign.LEFT).with(TableRow::typeAndLengthAsString)));
// body value only (span)
- String tab3 = null;
+ String tab6 = null;
if (bodyRow.value != null) {
- tab3 = AsciiTable.getTable(AsciiTable.NO_BORDERS,
List.of(bodyRow), Arrays.asList(
+ tab6 = AsciiTable.getTable(AsciiTable.NO_BORDERS,
List.of(bodyRow), Arrays.asList(
new Column().dataAlign(HorizontalAlign.LEFT).maxWidth(160,
OverflowBehaviour.NEWLINE)
.with(TableRow::valueAsString)));
}
- String tab4 = null;
+ String tab7 = null;
jo = r.exception;
if (jo != null) {
- TableRow eRow = new TableRow("Exception", jo.getString("type"),
null, jo.get("message"));
- tab4 = AsciiTable.getTable(AsciiTable.NO_BORDERS, List.of(eRow),
Arrays.asList(
+ eRow = new TableRow("Exception", jo.getString("type"), null,
jo.get("message"));
+ tab7 = AsciiTable.getTable(AsciiTable.NO_BORDERS, List.of(eRow),
Arrays.asList(
new Column().dataAlign(HorizontalAlign.LEFT)
- .minWidth(showExchangeProperties ? 11 :
9).with(TableRow::kindAsStringRed),
+ .minWidth(showExchangeProperties ? 12 :
10).with(TableRow::kindAsStringRed),
new Column().dataAlign(HorizontalAlign.LEFT)
.maxWidth(40,
OverflowBehaviour.ELLIPSIS_LEFT).with(TableRow::typeAsString),
new Column().dataAlign(HorizontalAlign.LEFT)
.maxWidth(80,
OverflowBehaviour.NEWLINE).with(TableRow::valueAsStringRed)));
}
// stacktrace only (span)
- String tab5 = null;
+ String tab8 = null;
if (jo != null) {
- TableRow eRow = new TableRow("Stacktrace", null, null,
jo.get("stackTrace"));
- tab5 = AsciiTable.getTable(AsciiTable.NO_BORDERS, List.of(eRow),
Arrays.asList(
+ eRow = new TableRow("Stacktrace", null, null,
jo.get("stackTrace"));
+ tab8 = AsciiTable.getTable(AsciiTable.NO_BORDERS, List.of(eRow),
Arrays.asList(
new Column().dataAlign(HorizontalAlign.LEFT).maxWidth(160,
OverflowBehaviour.NEWLINE)
.with(TableRow::valueAsStringRed)));
}
- String answer = tab1 + System.lineSeparator() + tab2;
- if (tab3 != null) {
- answer = answer + System.lineSeparator() + tab3;
+ String answer = "";
+ if (tab1 != null && !tab1.isEmpty()) {
+ answer = answer + tab1 + System.lineSeparator();
+ }
+ if (tab2 != null && !tab2.isEmpty()) {
+ answer = answer + tab2 + System.lineSeparator();
+ }
+ if (tab3 != null && !tab3.isEmpty()) {
+ answer = answer + tab3 + System.lineSeparator();
+ }
+ if (tab4 != null && !tab4.isEmpty()) {
+ answer = answer + tab4 + System.lineSeparator();
+ }
+ if (tab5 != null && !tab5.isEmpty()) {
+ answer = answer + tab5 + System.lineSeparator();
+ }
+ if (tab6 != null && !tab6.isEmpty()) {
+ answer = answer + tab6 + System.lineSeparator();
}
- if (tab4 != null) {
- answer = answer + System.lineSeparator() + tab4;
+ if (tab7 != null && !tab7.isEmpty()) {
+ answer = answer + tab7 + System.lineSeparator();
}
- if (tab5 != null) {
- answer = answer + System.lineSeparator() + tab5;
+ if (tab8 != null && !tab8.isEmpty()) {
+ answer = answer + tab8 + System.lineSeparator();
}
return answer;
}