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 { /**