Repository: camel
Updated Branches:
  refs/heads/master 6651c1b0b -> 7574e946a


CAMEL-11359: Deprecate TracedRouteNodes in favour of message history


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/7574e946
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/7574e946
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/7574e946

Branch: refs/heads/master
Commit: 7574e946a4d6f950a48607b605d836ef18b193c2
Parents: 6651c1b
Author: Claus Ibsen <davscl...@apache.org>
Authored: Mon May 29 15:43:22 2017 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Mon May 29 15:43:22 2017 +0200

----------------------------------------------------------------------
 .../java/org/apache/camel/impl/DefaultDebugger.java    | 13 +++++++++----
 .../org/apache/camel/impl/DefaultTracedRouteNodes.java |  4 +++-
 .../camel/management/InstrumentationProcessor.java     |  2 ++
 .../java/org/apache/camel/spi/TracedRouteNodes.java    |  4 +++-
 4 files changed, 17 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/7574e946/camel-core/src/main/java/org/apache/camel/impl/DefaultDebugger.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/impl/DefaultDebugger.java 
b/camel-core/src/main/java/org/apache/camel/impl/DefaultDebugger.java
index 94f1ffc..cceb35f 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultDebugger.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultDebugger.java
@@ -21,6 +21,7 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.EventObject;
 import java.util.HashMap;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.CopyOnWriteArrayList;
@@ -29,6 +30,8 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
 import org.apache.camel.Exchange;
 import org.apache.camel.LoggingLevel;
+import org.apache.camel.MessageHistory;
+import org.apache.camel.NamedNode;
 import org.apache.camel.Processor;
 import org.apache.camel.RouteNode;
 import org.apache.camel.management.event.AbstractExchangeEvent;
@@ -310,14 +313,16 @@ public class DefaultDebugger implements Debugger, 
CamelContextAware {
         }
     }
 
+    @SuppressWarnings("unchecked")
     protected void onEvent(Exchange exchange, EventObject event, Breakpoint 
breakpoint) {
         ProcessorDefinition<?> definition = null;
 
         // try to get the last known definition
-        if (exchange.getUnitOfWork() != null && 
exchange.getUnitOfWork().getTracedRouteNodes() != null) {
-            RouteNode node = 
exchange.getUnitOfWork().getTracedRouteNodes().getLastNode();
-            if (node != null) {
-                definition = node.getProcessorDefinition();
+        LinkedList<MessageHistory> list = 
exchange.getProperty(Exchange.MESSAGE_HISTORY, LinkedList.class);
+        if (list != null && !list.isEmpty())  {
+            NamedNode node = list.getLast().getNode();
+            if (node instanceof ProcessorDefinition) {
+                definition = (ProcessorDefinition<?>) node;
             }
         }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/7574e946/camel-core/src/main/java/org/apache/camel/impl/DefaultTracedRouteNodes.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/impl/DefaultTracedRouteNodes.java 
b/camel-core/src/main/java/org/apache/camel/impl/DefaultTracedRouteNodes.java
index 5312b01..05e15d2 100644
--- 
a/camel-core/src/main/java/org/apache/camel/impl/DefaultTracedRouteNodes.java
+++ 
b/camel-core/src/main/java/org/apache/camel/impl/DefaultTracedRouteNodes.java
@@ -24,6 +24,7 @@ import java.util.Map;
 import java.util.Stack;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import org.apache.camel.Exchange;
 import org.apache.camel.RouteNode;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.spi.TracedRouteNodes;
@@ -31,8 +32,9 @@ import org.apache.camel.spi.TracedRouteNodes;
 /**
  * Default {@link org.apache.camel.spi.TracedRouteNodes}
  *
- * @version 
+ * @deprecated use {@link Exchange#MESSAGE_HISTORY} instead.
  */
+@Deprecated
 public class DefaultTracedRouteNodes implements TracedRouteNodes {
     private final Stack<List<RouteNode>> routeNodes = new 
Stack<List<RouteNode>>();
     private final Map<ProcessorDefinition<?>, AtomicInteger> nodeCounter = new 
HashMap<ProcessorDefinition<?>, AtomicInteger>();

http://git-wip-us.apache.org/repos/asf/camel/blob/7574e946/camel-core/src/main/java/org/apache/camel/management/InstrumentationProcessor.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/management/InstrumentationProcessor.java
 
b/camel-core/src/main/java/org/apache/camel/management/InstrumentationProcessor.java
index a7ff87a..5fc9bb5 100644
--- 
a/camel-core/src/main/java/org/apache/camel/management/InstrumentationProcessor.java
+++ 
b/camel-core/src/main/java/org/apache/camel/management/InstrumentationProcessor.java
@@ -33,6 +33,8 @@ import org.slf4j.LoggerFactory;
  */
 public class InstrumentationProcessor extends DelegateAsyncProcessor {
 
+    // TODO: Would be good to get this as an advice instead
+
     private static final Logger LOG = 
LoggerFactory.getLogger(InstrumentationProcessor.class);
     private PerformanceCounter counter;
     private String type;

http://git-wip-us.apache.org/repos/asf/camel/blob/7574e946/camel-core/src/main/java/org/apache/camel/spi/TracedRouteNodes.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/spi/TracedRouteNodes.java 
b/camel-core/src/main/java/org/apache/camel/spi/TracedRouteNodes.java
index b5af3f7..40254a2 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/TracedRouteNodes.java
+++ b/camel-core/src/main/java/org/apache/camel/spi/TracedRouteNodes.java
@@ -18,6 +18,7 @@ package org.apache.camel.spi;
 
 import java.util.List;
 
+import org.apache.camel.Exchange;
 import org.apache.camel.RouteNode;
 import org.apache.camel.model.ProcessorDefinition;
 
@@ -25,8 +26,9 @@ import org.apache.camel.model.ProcessorDefinition;
  * Tracing information used by {@link 
org.apache.camel.processor.interceptor.TraceInterceptor}
  * so we can trace the exact route path a given {@link 
org.apache.camel.Exchange} has been processed.
  *
- * @version 
+ * @deprecated use {@link Exchange#MESSAGE_HISTORY} instead.
  */
+@Deprecated
 public interface TracedRouteNodes {
 
     /**

Reply via email to