This is an automated email from the ASF dual-hosted git repository.
jbonofre pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/karaf-decanter.git
The following commit(s) were added to refs/heads/master by this push:
new 8e32ca9 [KARAF-5777] Use Camel MessageHistory instead of
TracedRouteNodes
new 8c4d3b9 Merge pull request #151 from jbonofre/KARAF-5777
8e32ca9 is described below
commit 8e32ca94819e4a2275aca5fc1599877fc300d49f
Author: jbonofre <[email protected]>
AuthorDate: Tue Mar 31 18:39:14 2020 +0200
[KARAF-5777] Use Camel MessageHistory instead of TracedRouteNodes
---
.../collector/camel/DefaultExchangeExtender.java | 32 ++++++++++------------
.../collector/camel/DecanterEventNotifierTest.java | 6 ++--
.../camel/DecanterTraceEventHandlerTest.java | 2 +-
3 files changed, 18 insertions(+), 22 deletions(-)
diff --git
a/collector/camel/src/main/java/org/apache/karaf/decanter/collector/camel/DefaultExchangeExtender.java
b/collector/camel/src/main/java/org/apache/karaf/decanter/collector/camel/DefaultExchangeExtender.java
index fea3095..026e695 100644
---
a/collector/camel/src/main/java/org/apache/karaf/decanter/collector/camel/DefaultExchangeExtender.java
+++
b/collector/camel/src/main/java/org/apache/karaf/decanter/collector/camel/DefaultExchangeExtender.java
@@ -16,11 +16,12 @@
*/
package org.apache.karaf.decanter.collector.camel;
+import java.util.List;
import java.util.Map;
import org.apache.camel.Exchange;
+import org.apache.camel.MessageHistory;
import org.apache.camel.RouteNode;
-import org.apache.camel.spi.TracedRouteNodes;
import org.apache.camel.util.MessageHelper;
/**
@@ -34,8 +35,7 @@ public class DefaultExchangeExtender implements
DecanterCamelEventExtender {
@Override
public void extend(Map<String, Object> data, Exchange exchange) {
data.put("fromEndpointUri", exchange.getFromEndpoint() != null ?
exchange.getFromEndpoint().getEndpointUri() : null);
- data.put("previousNode", extractFromNode(exchange));
- data.put("toNode", extractToNode(exchange));
+ setHistory(data, exchange);
data.put("exchangeId", exchange.getExchangeId());
data.put("routeId", exchange.getFromRouteId());
data.put("camelContextName", exchange.getContext().getName());
@@ -67,22 +67,18 @@ public class DefaultExchangeExtender implements
DecanterCamelEventExtender {
return
exchange.getExchangeId().substring(exchange.getExchangeId().indexOf("/") + 1);
}
- private static String extractFromNode(Exchange exchange) {
- if (exchange.getUnitOfWork() == null) {
- return null;
- }
- TracedRouteNodes traced =
exchange.getUnitOfWork().getTracedRouteNodes();
- RouteNode last = traced.getSecondLastNode();
- return last != null ? last.getLabel(exchange) : null;
- }
-
- private static String extractToNode(Exchange exchange) {
- if (exchange.getUnitOfWork() == null) {
- return null;
+ private static void setHistory(Map<String, Object> data, Exchange
exchange) {
+ List<MessageHistory> messageHistory =
exchange.getProperty(Exchange.MESSAGE_HISTORY, List.class);
+ if (messageHistory != null) {
+ for (MessageHistory history : messageHistory) {
+ String nodeId = history.getNode().getId();
+ data.put(nodeId + ".route", history.getRouteId());
+ data.put(nodeId + ".time", history.getTime());
+ data.put(nodeId + ".elapsed", history.getElapsed());
+ data.put(nodeId + ".label", history.getNode().getLabel());
+ data.put(nodeId + ".shortName",
history.getNode().getShortName());
+ }
}
- TracedRouteNodes traced =
exchange.getUnitOfWork().getTracedRouteNodes();
- RouteNode last = traced.getLastNode();
- return last != null ? last.getLabel(exchange) : null;
}
private static String extractCausedByException(Exchange exchange) {
diff --git
a/collector/camel/src/test/java/org/apache/karaf/decanter/collector/camel/DecanterEventNotifierTest.java
b/collector/camel/src/test/java/org/apache/karaf/decanter/collector/camel/DecanterEventNotifierTest.java
index 5313a80..6916bc1 100644
---
a/collector/camel/src/test/java/org/apache/karaf/decanter/collector/camel/DecanterEventNotifierTest.java
+++
b/collector/camel/src/test/java/org/apache/karaf/decanter/collector/camel/DecanterEventNotifierTest.java
@@ -40,7 +40,7 @@ public class DecanterEventNotifierTest {
ProducerTemplate producerTemplate =
camelContext.createProducerTemplate();
producerTemplate.sendBodyAndHeader("direct:start", "TEST", "foo",
"bar");
- Assert.assertEquals(7, eventAdmin.getPostEvents().size());
+ Assert.assertEquals(10, eventAdmin.getPostEvents().size());
Event camelContextStartingEvent = eventAdmin.getPostEvents().get(0);
Assert.assertEquals("test-context",
camelContextStartingEvent.getProperty("camelContextName"));
@@ -123,7 +123,7 @@ public class DecanterEventNotifierTest {
ProducerTemplate producerTemplate =
camelContext.createProducerTemplate();
producerTemplate.sendBodyAndHeader("direct:start", "TEST", "foo",
"bar");
- Assert.assertEquals(5, eventAdmin.getPostEvents().size());
+ Assert.assertEquals(8, eventAdmin.getPostEvents().size());
}
@Test
@@ -140,7 +140,7 @@ public class DecanterEventNotifierTest {
ProducerTemplate producerTemplate =
camelContext.createProducerTemplate();
producerTemplate.sendBodyAndHeader("direct:start", "TEST", "foo",
"bar");
- Assert.assertEquals(3, eventAdmin.getPostEvents().size());
+ Assert.assertEquals(6, eventAdmin.getPostEvents().size());
Assert.assertEquals("test",
eventAdmin.getPostEvents().get(0).getProperty("extender-test"));
}
diff --git
a/collector/camel/src/test/java/org/apache/karaf/decanter/collector/camel/DecanterTraceEventHandlerTest.java
b/collector/camel/src/test/java/org/apache/karaf/decanter/collector/camel/DecanterTraceEventHandlerTest.java
index 38321c2..4c0f685 100644
---
a/collector/camel/src/test/java/org/apache/karaf/decanter/collector/camel/DecanterTraceEventHandlerTest.java
+++
b/collector/camel/src/test/java/org/apache/karaf/decanter/collector/camel/DecanterTraceEventHandlerTest.java
@@ -54,8 +54,8 @@ public class DecanterTraceEventHandlerTest {
JsonObject rootObject = jsonReader.readObject();
Assert.assertEquals("InOnly",
rootObject.getString("exchangePattern"));
Assert.assertEquals("camelTracer", rootObject.getString("type"));
- Assert.assertEquals("log://foo", rootObject.getString("toNode"));
Assert.assertEquals("test-route", rootObject.getString("routeId"));
+ Assert.assertEquals("log:foo", rootObject.getString("to2_label"));
Assert.assertEquals("test-context",
rootObject.getString("camelContextName"));
JsonObject headersObject = rootObject.getJsonObject("inHeaders");
Assert.assertEquals("test", headersObject.getString("header"));