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

Reply via email to