You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2009/06/26 10:03:26 UTC
svn commit: r788621 - in /camel/trunk/camel-core/src:
main/java/org/apache/camel/impl/ main/java/org/apache/camel/processor/
main/java/org/apache/camel/processor/interceptor/
main/java/org/apache/camel/processor/loadbalancer/
main/java/org/apache/camel...
Author: davsclaus
Date: Fri Jun 26 08:03:25 2009
New Revision: 788621
URL: http://svn.apache.org/viewvc?rev=788621&view=rev
Log:
CAMEL-1759: Improved tracer to be more fine grained using Processor instead of model objects to reflect the route path.
Added:
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Traceable.java (with props)
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Aggregator.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/CatchProcessor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ChoiceProcessor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Delayer.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Enricher.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ExchangePatternProcessor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/FilterProcessor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LoopProcessor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/MarshalProcessor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/MulticastProcessor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Pipeline.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Resequencer.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RollbackProcessor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RoutingSlip.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SendProcessor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SortProcessor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Splitter.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/StopProcessor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/StreamResequencer.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThreadsProcessor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Throttler.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TransformProcessor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TryProcessor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/UnmarshalProcessor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/WireTapProcessor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultTraceEventMessage.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultTraceFormatter.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/FailOverLoadBalancer.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/RandomLoadBalancer.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/RoundRobinLoadBalancer.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/StickyLoadBalancer.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/TopicLoadBalancer.java
camel/trunk/camel-core/src/main/java/org/apache/camel/spi/TraceableUnitOfWork.java
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/JoinRoutesTest.java
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/TraceableUnitOfWorkTest.java
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/intercept/InterceptFromWhenTest.java
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/intercept/InterceptSendToEndpointTest.java
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionFromChoiceTest.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java Fri Jun 26 08:03:25 2009
@@ -21,8 +21,8 @@
import java.util.List;
import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
import org.apache.camel.Service;
-import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.spi.Synchronization;
import org.apache.camel.spi.TraceableUnitOfWork;
import org.apache.camel.util.UuidGenerator;
@@ -40,7 +40,7 @@
private String id;
private List<Synchronization> synchronizations;
- private List<ProcessorDefinition> routeList;
+ private List<Processor> processorList;
private Object originalInBody;
public DefaultUnitOfWork(Exchange exchange) {
@@ -57,11 +57,10 @@
synchronizations.clear();
synchronizations = null;
}
- if (routeList != null) {
- routeList.clear();
- routeList = null;
+ if (processorList != null) {
+ processorList.clear();
+ processorList = null;
}
-
originalInBody = null;
}
@@ -116,22 +115,29 @@
return id;
}
- public synchronized void addInterceptedNode(ProcessorDefinition node) {
- if (routeList == null) {
- routeList = new ArrayList<ProcessorDefinition>();
+ public void addInterceptedProcessor(Processor processor) {
+ if (processorList == null) {
+ processorList = new ArrayList<Processor>();
+ }
+ processorList.add(processor);
+ }
+
+ public Processor getLastInterceptedProcessor() {
+ if (processorList == null || processorList.isEmpty()) {
+ return null;
}
- routeList.add(node);
+ return processorList.get(processorList.size() - 1);
}
- public synchronized ProcessorDefinition getLastInterceptedNode() {
- if (routeList == null || routeList.isEmpty()) {
+ public Processor getSecondLastInterceptedProcessor() {
+ if (processorList == null || processorList.isEmpty() || processorList.size() == 1) {
return null;
}
- return routeList.get(routeList.size() - 1);
+ return processorList.get(processorList.size() - 2);
}
- public List<ProcessorDefinition> getInterceptedNodes() {
- return Collections.unmodifiableList(routeList);
+ public List<Processor> getInterceptedProcessors() {
+ return Collections.unmodifiableList(processorList);
}
public Object getOriginalInBody() {
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Aggregator.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Aggregator.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Aggregator.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Aggregator.java Fri Jun 26 08:03:25 2009
@@ -41,15 +41,19 @@
*
* @version $Revision$
*/
-public class Aggregator extends BatchProcessor {
+public class Aggregator extends BatchProcessor implements Traceable {
+
+ private Expression correlationExpression;
public Aggregator(Processor processor, Expression correlationExpression, AggregationStrategy aggregationStrategy) {
this(processor, new DefaultAggregationCollection(correlationExpression, aggregationStrategy));
+ this.correlationExpression = correlationExpression;
}
public Aggregator(Processor processor, Expression correlationExpression, AggregationStrategy aggregationStrategy,
Predicate aggregationCompletedPredicate) {
this(processor, new PredicateAggregationCollection(correlationExpression, aggregationStrategy, aggregationCompletedPredicate));
+ this.correlationExpression = correlationExpression;
}
public Aggregator(Processor processor, AggregationCollection collection) {
@@ -61,4 +65,7 @@
return "Aggregator[to: " + getProcessor() + "]";
}
+ public String getTraceLabel() {
+ return "Aggregate[" + correlationExpression + "]";
+ }
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/CatchProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/CatchProcessor.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/CatchProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/CatchProcessor.java Fri Jun 26 08:03:25 2009
@@ -29,7 +29,7 @@
*
* @version $Revision$
*/
-public class CatchProcessor extends DelegateProcessor {
+public class CatchProcessor extends DelegateProcessor implements Traceable {
private final List<Class> exceptions;
private final Predicate onWhen;
private final Predicate handled;
@@ -46,6 +46,10 @@
return "Catch[" + exceptions + " -> " + getProcessor() + "]";
}
+ public String getTraceLabel() {
+ return "Catch";
+ }
+
/**
* Whether this catch processor catch the given thrown exception
*
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ChoiceProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ChoiceProcessor.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ChoiceProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ChoiceProcessor.java Fri Jun 26 08:03:25 2009
@@ -33,7 +33,7 @@
*
* @version $Revision$
*/
-public class ChoiceProcessor extends ServiceSupport implements Processor, Navigate<Processor> {
+public class ChoiceProcessor extends ServiceSupport implements Processor, Navigate<Processor>, Traceable {
private final List<FilterProcessor> filters;
private final Processor otherwise;
@@ -80,6 +80,10 @@
return builder.toString();
}
+ public String getTraceLabel() {
+ return "Choice";
+ }
+
public List<FilterProcessor> getFilters() {
return filters;
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Delayer.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Delayer.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Delayer.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Delayer.java Fri Jun 26 08:03:25 2009
@@ -27,7 +27,7 @@
*
* @version $Revision$
*/
-public class Delayer extends DelayProcessorSupport {
+public class Delayer extends DelayProcessorSupport implements Traceable {
private final Expression delay;
public Delayer(Processor processor, Expression delay) {
@@ -40,6 +40,10 @@
return "Delayer[" + delay + " to: " + getProcessor() + "]";
}
+ public String getTraceLabel() {
+ return "Delayer[" + delay + "]";
+ }
+
// Implementation methods
// -------------------------------------------------------------------------
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Enricher.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Enricher.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Enricher.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Enricher.java Fri Jun 26 08:03:25 2009
@@ -146,6 +146,11 @@
return new CopyAggregationStrategy();
}
+ @Override
+ public String toString() {
+ return "Enrich[" + producer.getEndpoint().getEndpointUri() + "]";
+ }
+
protected void doStart() throws Exception {
producer.start();
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ExchangePatternProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ExchangePatternProcessor.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ExchangePatternProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ExchangePatternProcessor.java Fri Jun 26 08:03:25 2009
@@ -38,4 +38,8 @@
exchange.setPattern(exchangePattern);
}
+ @Override
+ public String toString() {
+ return "SetExchangePattern[" + exchangePattern + "]";
+ }
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/FilterProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/FilterProcessor.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/FilterProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/FilterProcessor.java Fri Jun 26 08:03:25 2009
@@ -28,7 +28,7 @@
*
* @version $Revision$
*/
-public class FilterProcessor extends DelegateProcessor {
+public class FilterProcessor extends DelegateProcessor implements Traceable {
private static final Log LOG = LogFactory.getLog(FilterProcessor.class);
private final Predicate predicate;
@@ -54,6 +54,10 @@
return "Filter[if: " + predicate + " do: " + getProcessor() + "]";
}
+ public String getTraceLabel() {
+ return "Filter[if: " + predicate + "]";
+ }
+
public Predicate getPredicate() {
return predicate;
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LoopProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LoopProcessor.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LoopProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/LoopProcessor.java Fri Jun 26 08:03:25 2009
@@ -28,7 +28,7 @@
*
* @version $Revision$
*/
-public class LoopProcessor extends DelegateProcessor {
+public class LoopProcessor extends DelegateProcessor implements Traceable {
private static final Log LOG = LogFactory.getLog(LoopProcessor.class);
private final Expression expression;
@@ -60,6 +60,10 @@
return "Loop[for: " + expression + " times do: " + getProcessor() + "]";
}
+ public String getTraceLabel() {
+ return "Loop[" + expression + "]";
+ }
+
public Expression getExpression() {
return expression;
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/MarshalProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/MarshalProcessor.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/MarshalProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/MarshalProcessor.java Fri Jun 26 08:03:25 2009
@@ -53,4 +53,9 @@
byte[] data = buffer.toByteArray();
out.setBody(data);
}
+
+ @Override
+ public String toString() {
+ return "Marshal[" + dataFormat + "]";
+ }
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/MulticastProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/MulticastProcessor.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/MulticastProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/MulticastProcessor.java Fri Jun 26 08:03:25 2009
@@ -49,7 +49,7 @@
* @see Pipeline
* @version $Revision$
*/
-public class MulticastProcessor extends ServiceSupport implements Processor, Navigate {
+public class MulticastProcessor extends ServiceSupport implements Processor, Navigate, Traceable {
private static final transient Log LOG = LogFactory.getLog(MulticastProcessor.class);
@@ -112,6 +112,10 @@
return "Multicast[" + getProcessors() + "]";
}
+ public String getTraceLabel() {
+ return "Multicast";
+ }
+
public void process(Exchange exchange) throws Exception {
final AtomicExchange result = new AtomicExchange();
final Iterable<ProcessorExchangePair> pairs = createProcessorExchangePairs(exchange);
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Pipeline.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Pipeline.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Pipeline.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Pipeline.java Fri Jun 26 08:03:25 2009
@@ -32,7 +32,7 @@
*
* @version $Revision$
*/
-public class Pipeline extends MulticastProcessor implements Processor {
+public class Pipeline extends MulticastProcessor implements Processor, Traceable {
private static final transient Log LOG = LogFactory.getLog(Pipeline.class);
public Pipeline(Collection<Processor> processors) {
@@ -160,4 +160,8 @@
return "Pipeline" + getProcessors();
}
+ @Override
+ public String getTraceLabel() {
+ return "Pipeline";
+ }
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Resequencer.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Resequencer.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Resequencer.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Resequencer.java Fri Jun 26 08:03:25 2009
@@ -33,7 +33,7 @@
*
* @version $Revision$
*/
-public class Resequencer extends BatchProcessor {
+public class Resequencer extends BatchProcessor implements Traceable {
public Resequencer(Processor processor, Expression expression) {
this(processor, createSet(expression));
@@ -52,6 +52,10 @@
return "Resequencer[to: " + getProcessor() + "]";
}
+ public String getTraceLabel() {
+ return "Resequence";
+ }
+
// Implementation methods
//-------------------------------------------------------------------------
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RollbackProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RollbackProcessor.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RollbackProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RollbackProcessor.java Fri Jun 26 08:03:25 2009
@@ -25,7 +25,7 @@
*
* @version $Revision$
*/
-public class RollbackProcessor implements Processor {
+public class RollbackProcessor implements Processor, Traceable {
private String message;
@@ -50,4 +50,8 @@
return "Rollback";
}
}
+
+ public String getTraceLabel() {
+ return "Rollback";
+ }
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RoutingSlip.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RoutingSlip.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RoutingSlip.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RoutingSlip.java Fri Jun 26 08:03:25 2009
@@ -27,8 +27,7 @@
import org.apache.camel.impl.ServiceSupport;
import org.apache.camel.model.RoutingSlipDefinition;
import org.apache.camel.util.ExchangeHelper;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+
import static org.apache.camel.util.ObjectHelper.notNull;
/**
@@ -36,8 +35,7 @@
* pattern where the list of actual endpoints to send a message exchange to are
* dependent on the value of a message header.
*/
-public class RoutingSlip extends ServiceSupport implements Processor {
- private static final transient Log LOG = LogFactory.getLog(RoutingSlip.class);
+public class RoutingSlip extends ServiceSupport implements Processor, Traceable {
private ProducerCache producerCache;
private final String header;
private final String uriDelimiter;
@@ -59,6 +57,10 @@
return "RoutingSlip[header=" + header + " uriDelimiter=" + uriDelimiter + "]";
}
+ public String getTraceLabel() {
+ return "RoutingSlip[" + header + "]";
+ }
+
public void process(Exchange exchange) throws Exception {
Message message = exchange.getIn();
String[] recipients = recipients(message);
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SendProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SendProcessor.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SendProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SendProcessor.java Fri Jun 26 08:03:25 2009
@@ -33,7 +33,7 @@
*
* @version $Revision$
*/
-public class SendProcessor extends ServiceSupport implements Processor {
+public class SendProcessor extends ServiceSupport implements Processor, Traceable {
protected static final transient Log LOG = LogFactory.getLog(SendProcessor.class);
protected ProducerCache producerCache;
protected Endpoint destination;
@@ -54,6 +54,10 @@
return "sendTo(" + destination + (pattern != null ? " " + pattern : "") + ")";
}
+ public String getTraceLabel() {
+ return destination.getEndpointUri();
+ }
+
public void process(final Exchange exchange) throws Exception {
getProducerCache(exchange).doInProducer(destination, exchange, pattern, new ProducerCallback<Exchange>() {
public Exchange doInProducer(Producer producer, Exchange exchange, ExchangePattern pattern) throws Exception {
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SortProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SortProcessor.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SortProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/SortProcessor.java Fri Jun 26 08:03:25 2009
@@ -54,6 +54,10 @@
}
}
+ public String toString() {
+ return "Sort[" + expression + "]";
+ }
+
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Splitter.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Splitter.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Splitter.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Splitter.java Fri Jun 26 08:03:25 2009
@@ -16,7 +16,6 @@
*/
package org.apache.camel.processor;
-
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -42,7 +41,7 @@
*
* @version $Revision$
*/
-public class Splitter extends MulticastProcessor implements Processor {
+public class Splitter extends MulticastProcessor implements Processor, Traceable {
private final Expression expression;
public Splitter(Expression expression, Processor destination, AggregationStrategy aggregationStrategy) {
@@ -64,6 +63,11 @@
}
@Override
+ public String getTraceLabel() {
+ return "Split[" + expression + "]";
+ }
+
+ @Override
protected Iterable<ProcessorExchangePair> createProcessorExchangePairs(Exchange exchange) {
Object value = expression.evaluate(exchange, Object.class);
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/StopProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/StopProcessor.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/StopProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/StopProcessor.java Fri Jun 26 08:03:25 2009
@@ -33,6 +33,6 @@
@Override
public String toString() {
- return "StopProcessor";
+ return "Stop";
}
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/StreamResequencer.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/StreamResequencer.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/StreamResequencer.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/StreamResequencer.java Fri Jun 26 08:03:25 2009
@@ -58,7 +58,7 @@
*
* @see ResequencerEngine
*/
-public class StreamResequencer extends ServiceSupport implements SequenceSender<Exchange>, Processor, Navigate<Processor> {
+public class StreamResequencer extends ServiceSupport implements SequenceSender<Exchange>, Processor, Navigate<Processor>, Traceable {
private static final long DELIVERY_ATTEMPT_INTERVAL = 1000L;
@@ -133,6 +133,10 @@
return "StreamResequencer[to: " + processor + "]";
}
+ public String getTraceLabel() {
+ return "StreamResequence";
+ }
+
@Override
protected void doStart() throws Exception {
ServiceHelper.startServices(processor);
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThreadsProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThreadsProcessor.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThreadsProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThreadsProcessor.java Fri Jun 26 08:03:25 2009
@@ -115,4 +115,8 @@
}
}
+ public String toString() {
+ return "Threads";
+ }
+
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Throttler.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Throttler.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Throttler.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Throttler.java Fri Jun 26 08:03:25 2009
@@ -30,7 +30,7 @@
*
* @version $Revision$
*/
-public class Throttler extends DelayProcessorSupport {
+public class Throttler extends DelayProcessorSupport implements Traceable {
private long maximumRequestsPerPeriod;
private long timePeriodMillis;
private TimeSlot slot;
@@ -51,6 +51,10 @@
+ getProcessor() + "]";
}
+ public String getTraceLabel() {
+ return "Throttle[" + maximumRequestsPerPeriod + " per: " + timePeriodMillis + "]";
+ }
+
// Properties
// -----------------------------------------------------------------------
public long getMaximumRequestsPerPeriod() {
@@ -97,10 +101,10 @@
slot.assign();
return slot;
}
-
+
/*
- * A time slot is capable of handling a number of exchanges within a certain period of time.
- */
+ * A time slot is capable of handling a number of exchanges within a certain period of time.
+ */
protected class TimeSlot {
private long capacity = Throttler.this.maximumRequestsPerPeriod;
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/ThrowExceptionProcessor.java Fri Jun 26 08:03:25 2009
@@ -36,4 +36,8 @@
exchange.setException(exception);
}
+ public String toString() {
+ return "ThrowException";
+ }
+
}
\ No newline at end of file
Added: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Traceable.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Traceable.java?rev=788621&view=auto
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Traceable.java (added)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Traceable.java Fri Jun 26 08:03:25 2009
@@ -0,0 +1,36 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.processor;
+
+/**
+ * Traceable processors allowing easeir tracing using constructed labels to help identify the processor
+ * and where its defined in the route model.
+ *
+ * @version $Revision$
+ */
+public interface Traceable {
+
+ /**
+ * Gets the trace label used for logging when tracing is enabled.
+ * <p/>
+ * The lable should be short and precise.
+ *
+ * @return the label
+ */
+ public String getTraceLabel();
+
+}
Propchange: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Traceable.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Traceable.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TransformProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TransformProcessor.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TransformProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TransformProcessor.java Fri Jun 26 08:03:25 2009
@@ -23,7 +23,7 @@
/**
* A processor which sets the body on the OUT message with an expression
*/
-public class TransformProcessor extends DelegateProcessor {
+public class TransformProcessor extends DelegateProcessor implements Traceable {
private final Expression expression;
public TransformProcessor(Expression expression) {
@@ -50,4 +50,8 @@
public String toString() {
return "Transform(" + expression + (processor != null ? "," + processor : "") + ")";
}
+
+ public String getTraceLabel() {
+ return "Transform[" + expression + "]";
+ }
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TryProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TryProcessor.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TryProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TryProcessor.java Fri Jun 26 08:03:25 2009
@@ -33,7 +33,7 @@
*
* @version $Revision$
*/
-public class TryProcessor extends ServiceSupport implements Processor, Navigate<Processor> {
+public class TryProcessor extends ServiceSupport implements Processor, Navigate<Processor>, Traceable {
private static final transient Log LOG = LogFactory.getLog(TryProcessor.class);
private final Processor tryProcessor;
@@ -51,6 +51,10 @@
return "Try {" + tryProcessor + "} " + catchClauses + finallyText;
}
+ public String getTraceLabel() {
+ return "Try";
+ }
+
public void process(Exchange exchange) throws Exception {
Exception e;
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/UnmarshalProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/UnmarshalProcessor.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/UnmarshalProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/UnmarshalProcessor.java Fri Jun 26 08:03:25 2009
@@ -56,4 +56,9 @@
}
}
}
+
+ public String toString() {
+ return "Unmarshal[" + dataFormat + "]";
+ }
+
}
\ No newline at end of file
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/WireTapProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/WireTapProcessor.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/WireTapProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/WireTapProcessor.java Fri Jun 26 08:03:25 2009
@@ -67,7 +67,7 @@
@Override
public String toString() {
- return "wireTap(" + destination.getEndpointUri() + ")";
+ return "WireTap[" + destination.getEndpointUri() + "]";
}
public void process(Exchange exchange) throws Exception {
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultTraceEventMessage.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultTraceEventMessage.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultTraceEventMessage.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultTraceEventMessage.java Fri Jun 26 08:03:25 2009
@@ -21,6 +21,8 @@
import org.apache.camel.Exchange;
import org.apache.camel.Message;
+import org.apache.camel.Processor;
+import org.apache.camel.processor.Traceable;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.spi.TraceableUnitOfWork;
import org.apache.camel.util.MessageHelper;
@@ -59,8 +61,8 @@
// need to use defensive copies to avoid Exchange altering after the point of interception
this.timestamp = timestamp;
this.fromEndpointUri = exchange.getFromEndpoint() != null ? exchange.getFromEndpoint().getEndpointUri() : null;
- this.previousNode = extractPreviousNode(exchange);
- this.toNode = extractNode(toNode);
+ this.previousNode = extractFromNode(exchange);
+ this.toNode = extractToNode(exchange);
this.exchangeId = exchange.getExchangeId();
this.shortExchangeId = extractShortExchangeId(exchange);
this.exchangePattern = exchange.getPattern().toString();
@@ -79,19 +81,32 @@
// Implementation
//---------------------------------------------------------------
- private String extractNode(ProcessorDefinition node) {
- return node.getShortName() + "(" + node.getLabel() + ")";
+ private String extractTraceLabel(Processor processor) {
+ if (processor instanceof Traceable) {
+ Traceable trace = (Traceable) processor;
+ return trace.getTraceLabel();
+ }
+ return processor.toString();
}
private String extractShortExchangeId(Exchange exchange) {
return exchange.getExchangeId().substring(exchange.getExchangeId().indexOf("/") + 1);
}
- private String extractPreviousNode(Exchange exchange) {
+ private String extractFromNode(Exchange exchange) {
+ if (exchange.getUnitOfWork() instanceof TraceableUnitOfWork) {
+ TraceableUnitOfWork tuow = (TraceableUnitOfWork) exchange.getUnitOfWork();
+ Processor last = tuow.getSecondLastInterceptedProcessor();
+ return last != null ? extractTraceLabel(last) : null;
+ }
+ return null;
+ }
+
+ private String extractToNode(Exchange exchange) {
if (exchange.getUnitOfWork() instanceof TraceableUnitOfWork) {
TraceableUnitOfWork tuow = (TraceableUnitOfWork) exchange.getUnitOfWork();
- ProcessorDefinition last = tuow.getLastInterceptedNode();
- return last != null ? extractNode(last) : null;
+ Processor last = tuow.getLastInterceptedProcessor();
+ return last != null ? extractTraceLabel(last) : null;
}
return null;
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultTraceFormatter.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultTraceFormatter.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultTraceFormatter.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultTraceFormatter.java Fri Jun 26 08:03:25 2009
@@ -18,6 +18,8 @@
import org.apache.camel.Exchange;
import org.apache.camel.Message;
+import org.apache.camel.Processor;
+import org.apache.camel.processor.Traceable;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.spi.TraceableUnitOfWork;
import org.apache.camel.spi.UnitOfWork;
@@ -34,7 +36,7 @@
private boolean showExchangeId;
private boolean showShortExchangeId;
private boolean showExchangePattern = true;
- private boolean showProperties = true;
+ private boolean showProperties;
private boolean showHeaders = true;
private boolean showBody = true;
private boolean showBodyType = true;
@@ -234,8 +236,15 @@
}
}
- protected String getNodeMessage(ProcessorDefinition node) {
- String message = node.getShortName() + "(" + node.getLabel() + ")";
+ protected String getNodeMessage(Processor processor) {
+ String message;
+ if (processor instanceof Traceable) {
+ Traceable trace = (Traceable) processor;
+ message = trace.getTraceLabel();
+ } else {
+ message = processor.toString();
+ }
+
if (nodeLength > 0) {
return String.format("%1$-" + nodeLength + "." + nodeLength + "s", message);
} else {
@@ -271,18 +280,21 @@
// compute from and to
String from = "";
+ String to = "";
if (showNode && exchange.getUnitOfWork() instanceof TraceableUnitOfWork) {
TraceableUnitOfWork tuow = (TraceableUnitOfWork) exchange.getUnitOfWork();
- ProcessorDefinition prev = tuow.getLastInterceptedNode();
- if (prev != null) {
- from = getNodeMessage(prev);
+
+ Processor fromProcessor = tuow.getSecondLastInterceptedProcessor();
+ if (fromProcessor != null) {
+ from = getNodeMessage(fromProcessor);
} else if (exchange.getFromEndpoint() != null) {
- from = exchange.getFromEndpoint().getEndpointUri();
+ from = "from(" + exchange.getFromEndpoint().getEndpointUri() + ")";
+ }
+
+ Processor toProcessor = tuow.getLastInterceptedProcessor();
+ if (toProcessor != null) {
+ to = getNodeMessage(toProcessor);
}
- }
- String to = "";
- if (showNode) {
- to = getNodeMessage(currentNode);
}
// assemble result with and without the to/from
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java Fri Jun 26 08:03:25 2009
@@ -27,6 +27,8 @@
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.processor.DelegateProcessor;
import org.apache.camel.processor.Logger;
+import org.apache.camel.processor.Pipeline;
+import org.apache.camel.processor.MulticastProcessor;
import org.apache.camel.spi.ExchangeFormatter;
import org.apache.camel.spi.InterceptStrategy;
import org.apache.camel.spi.TraceableUnitOfWork;
@@ -100,14 +102,15 @@
try {
// before
if (shouldLog) {
- logExchange(exchange);
- traceExchange(exchange);
// if traceable then register this as the previous node, now it has been logged
if (exchange.getUnitOfWork() instanceof TraceableUnitOfWork) {
TraceableUnitOfWork tuow = (TraceableUnitOfWork) exchange.getUnitOfWork();
- tuow.addInterceptedNode(node);
+ tuow.addInterceptedProcessor(super.getProcessor());
}
+
+ logExchange(exchange);
+ traceExchange(exchange);
}
// process the exchange
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/FailOverLoadBalancer.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/FailOverLoadBalancer.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/FailOverLoadBalancer.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/FailOverLoadBalancer.java Fri Jun 26 08:03:25 2009
@@ -120,4 +120,8 @@
}
}
+ public String toString() {
+ return "FailoverLoadBalancer";
+ }
+
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/RandomLoadBalancer.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/RandomLoadBalancer.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/RandomLoadBalancer.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/RandomLoadBalancer.java Fri Jun 26 08:03:25 2009
@@ -37,4 +37,8 @@
}
}
}
+
+ public String toString() {
+ return "RandomLoadBalancer";
+ }
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/RoundRobinLoadBalancer.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/RoundRobinLoadBalancer.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/RoundRobinLoadBalancer.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/RoundRobinLoadBalancer.java Fri Jun 26 08:03:25 2009
@@ -36,4 +36,9 @@
}
return processors.get(counter);
}
+
+ public String toString() {
+ return "RoundRobinLoadBalancer";
+ }
+
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/StickyLoadBalancer.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/StickyLoadBalancer.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/StickyLoadBalancer.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/StickyLoadBalancer.java Fri Jun 26 08:03:25 2009
@@ -120,4 +120,9 @@
}
return hashCode;
}
+
+ public String toString() {
+ return "StickyLoadBalancer";
+ }
+
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/TopicLoadBalancer.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/TopicLoadBalancer.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/TopicLoadBalancer.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/TopicLoadBalancer.java Fri Jun 26 08:03:25 2009
@@ -51,4 +51,8 @@
return exchange.copy();
}
+ public String toString() {
+ return "TopicLoadBalancer";
+ }
+
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/spi/TraceableUnitOfWork.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/spi/TraceableUnitOfWork.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/spi/TraceableUnitOfWork.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/spi/TraceableUnitOfWork.java Fri Jun 26 08:03:25 2009
@@ -18,7 +18,7 @@
import java.util.List;
-import org.apache.camel.model.ProcessorDefinition;
+import org.apache.camel.Processor;
/**
* A Unit of work that is also traceable with the
@@ -30,21 +30,26 @@
public interface TraceableUnitOfWork extends UnitOfWork {
/**
- * Adds the given node that was intercepted
+ * Adds the given processor that was intercepted
*
- * @param node the node
+ * @param processor the processor
*/
- void addInterceptedNode(ProcessorDefinition node);
+ void addInterceptedProcessor(Processor processor);
/**
- * Gets the last intercepted node, is <tt>null</tt> if no last exists.
+ * Gets the last intercepted processor, is <tt>null</tt> if no last exists.
*/
- ProcessorDefinition getLastInterceptedNode();
+ Processor getLastInterceptedProcessor();
/**
- * Gets the current list of intercepted nodes, representing the route path the
+ * Gets the 2nd last intercepted processor, is <tt>null</tt> if no last exists.
+ */
+ Processor getSecondLastInterceptedProcessor();
+
+ /**
+ * Gets the current list of intercepted processors, representing the route path the
* current {@link org.apache.camel.Exchange} has taken.
*/
- List<ProcessorDefinition> getInterceptedNodes();
+ List<Processor> getInterceptedProcessors();
}
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/JoinRoutesTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/JoinRoutesTest.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/JoinRoutesTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/JoinRoutesTest.java Fri Jun 26 08:03:25 2009
@@ -63,6 +63,8 @@
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
public void configure() {
+ context.setTracing(true);
+
from("direct:a").choice()
.when(header("foo").isEqualTo("bar")).to("direct:b")
.when(header("foo").isEqualTo("cheese")).to("direct:c")
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/TraceableUnitOfWorkTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/TraceableUnitOfWorkTest.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/TraceableUnitOfWorkTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/TraceableUnitOfWorkTest.java Fri Jun 26 08:03:25 2009
@@ -33,7 +33,7 @@
public void testSendingSomeMessages() throws Exception {
Object out = template.requestBody("direct:start", "Hello London");
- assertEquals("Failed at: bean:bar", out);
+ assertEquals("Failed at: sendTo(Endpoint[bean:bar])", out);
}
@Override
@@ -72,12 +72,16 @@
TraceableUnitOfWork tuow = (TraceableUnitOfWork) exchange.getUnitOfWork();
// get the list of intercepted nodes
- List<ProcessorDefinition> list = tuow.getInterceptedNodes();
+ List<Processor> list = tuow.getInterceptedProcessors();
// get the 2nd last as the last is me (MyErrorProcessor)
- ProcessorDefinition last = list.get(list.size() - 2);
+ Processor last = list.get(list.size() - 2);
// set error message
- exchange.getFault().setBody("Failed at: " + last.getLabel());
+ exchange.getFault().setBody("Failed at: " + last.toString());
+ }
+
+ public String toString() {
+ return "MyErrorProcessor";
}
}
// END SNIPPET: e2
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/intercept/InterceptFromWhenTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/intercept/InterceptFromWhenTest.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/intercept/InterceptFromWhenTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/intercept/InterceptFromWhenTest.java Fri Jun 26 08:03:25 2009
@@ -49,6 +49,8 @@
return new RouteBuilder() {
@Override
public void configure() throws Exception {
+ context.setTracing(true);
+
interceptFrom().when(toPredicate(simple("${body} contains 'Goofy'"))).to("mock:goofy").stop();
from("direct:start").to("mock:end");
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/intercept/InterceptSendToEndpointTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/intercept/InterceptSendToEndpointTest.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/intercept/InterceptSendToEndpointTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/intercept/InterceptSendToEndpointTest.java Fri Jun 26 08:03:25 2009
@@ -35,6 +35,8 @@
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
+ context.setTracing(true);
+
// START SNIPPET: e1
// we intercept by endpoint, that means that whenever an exchange is about to be sent to
// this endpoint, its intercepted and routed with this detour route beforehand
@@ -99,6 +101,8 @@
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
+ context.setTracing(true);
+
// START SNIPPET: e3
// since we use the skipSendToOriginalEndpoint() we instruct Camel to skip
// sending the exchange to the original intended destination after the intercept
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionFromChoiceTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionFromChoiceTest.java?rev=788621&r1=788620&r2=788621&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionFromChoiceTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/onexception/OnExceptionFromChoiceTest.java Fri Jun 26 08:03:25 2009
@@ -88,6 +88,8 @@
return new RouteBuilder() {
@Override
public void configure() throws Exception {
+ context.setTracing(true);
+
errorHandler(deadLetterChannel("mock:error"));
onException(MyTechnicalException.class).maximumRedeliveries(0).handled(true).to("mock:tech");