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 2013/01/25 08:20:49 UTC
svn commit: r1438363 - in /camel/trunk/camel-core/src:
main/java/org/apache/camel/impl/DefaultRouteNode.java
test/java/org/apache/camel/processor/SimpleProcessorTraceableTest.java
Author: davsclaus
Date: Fri Jan 25 07:20:49 2013
New Revision: 1438363
URL: http://svn.apache.org/viewvc?rev=1438363&view=rev
Log:
CAMEL-5995: Improved trace logic to look for traceable in wrapped/delegate processors.
Added:
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SimpleProcessorTraceableTest.java
- copied, changed from r1438156, camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SimpleProcessorTest.java
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteNode.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteNode.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteNode.java?rev=1438363&r1=1438362&r2=1438363&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteNode.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteNode.java Fri Jan 25 07:20:49 2013
@@ -16,6 +16,7 @@
*/
package org.apache.camel.impl;
+import org.apache.camel.DelegateProcessor;
import org.apache.camel.Exchange;
import org.apache.camel.Expression;
import org.apache.camel.Processor;
@@ -52,26 +53,40 @@ public class DefaultRouteNode implements
return processorDefinition;
}
- @SuppressWarnings("deprecation")
public String getLabel(Exchange exchange) {
if (expression != null) {
return expression.evaluate(exchange, String.class);
}
- Processor target = processor;
- if (target != null && target instanceof Traceable) {
+ String label = getTraceLabel(processor);
+ if (label == null) {
+ // no label then default to use the definition label
+ label = processorDefinition.getLabel();
+ }
+ return label;
+ }
+
+ @SuppressWarnings("deprecation")
+ private String getTraceLabel(Processor target) {
+ if (target == null) {
+ return null;
+ }
+
+ if (target instanceof Traceable) {
Traceable trace = (Traceable) target;
return trace.getTraceLabel();
- }
-
- // Compatiblity for old Traceable interface
- if (target != null && target instanceof org.apache.camel.processor.Traceable) {
+ } else if (target instanceof org.apache.camel.processor.Traceable) {
+ // to be backwards compatible
org.apache.camel.processor.Traceable trace = (org.apache.camel.processor.Traceable) target;
return trace.getTraceLabel();
}
- // default then to definition
- return processorDefinition.getLabel();
+ // if we are a delegate then drill down
+ if (target instanceof DelegateProcessor) {
+ return getTraceLabel(((DelegateProcessor) target).getProcessor());
+ }
+
+ return null;
}
public boolean isAbstract() {
Copied: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SimpleProcessorTraceableTest.java (from r1438156, camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SimpleProcessorTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SimpleProcessorTraceableTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SimpleProcessorTraceableTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SimpleProcessorTest.java&r1=1438156&r2=1438363&rev=1438363&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SimpleProcessorTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SimpleProcessorTraceableTest.java Fri Jan 25 07:20:49 2013
@@ -24,7 +24,7 @@ import org.apache.camel.builder.RouteBui
/**
* @version
*/
-public class SimpleProcessorTest extends ContextTestSupport {
+public class SimpleProcessorTraceableTest extends ContextTestSupport {
public void testProcess() throws Exception {
String out = template.requestBody("direct:start", "Hello World", String.class);
@@ -36,13 +36,24 @@ public class SimpleProcessorTest extends
return new RouteBuilder() {
@Override
public void configure() throws Exception {
- from("direct:start").process(new Processor() {
- public void process(Exchange exchange) throws Exception {
- exchange.getOut().setBody("Bye World");
- }
- });
+ context.setTracing(true);
+
+ from("direct:start").process(new MyProcessor());
}
};
}
+ private class MyProcessor implements Processor, org.apache.camel.Traceable {
+
+ @Override
+ public void process(Exchange exchange) throws Exception {
+ exchange.getOut().setBody("Bye World");
+ }
+
+ @Override
+ public String getTraceLabel() {
+ return "Yeah this is my processor";
+ }
+ }
+
}