You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cs...@apache.org on 2011/10/05 18:12:55 UTC
svn commit: r1179291 - in /camel/trunk/camel-core/src:
main/java/org/apache/camel/processor/interceptor/
test/java/org/apache/camel/processor/interceptor/
Author: cschneider
Date: Wed Oct 5 16:12:55 2011
New Revision: 1179291
URL: http://svn.apache.org/viewvc?rev=1179291&view=rev
Log:
CAMEL-4500 Bugfix for handling more than one handler and for changing the handler of an interceptor
Modified:
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/interceptor/Tracer.java
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/TraceInterceptorFactoryCreatesHandlerTest.java
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=1179291&r1=1179290&r2=1179291&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 Wed Oct 5 16:12:55 2011
@@ -16,6 +16,9 @@
*/
package org.apache.camel.processor.interceptor;
+import java.util.ArrayList;
+import java.util.List;
+
import org.apache.camel.AsyncCallback;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
@@ -58,6 +61,7 @@ public class TraceInterceptor extends De
private TraceFormatter formatter;
private RouteContext routeContext;
+ private List<TraceEventHandler> traceHandlers;
public TraceInterceptor(ProcessorDefinition<?> node, Processor target, TraceFormatter formatter, Tracer tracer) {
super(target);
@@ -68,6 +72,8 @@ public class TraceInterceptor extends De
if (tracer.getFormatter() != null) {
this.formatter = tracer.getFormatter();
}
+ this.traceHandlers = new ArrayList<TraceEventHandler>();
+ this.traceHandlers.addAll(tracer.getTraceHandlers());
}
@Override
@@ -281,14 +287,14 @@ public class TraceInterceptor extends De
}
protected void traceExchange(Exchange exchange) throws Exception {
- for (TraceEventHandler traceHandler : tracer.getTraceHandlers()) {
+ for (TraceEventHandler traceHandler : traceHandlers) {
traceHandler.traceExchange(node, processor, this, exchange);
}
}
protected Object traceExchangeIn(Exchange exchange) throws Exception {
Object result = null;
- for (TraceEventHandler traceHandler : tracer.getTraceHandlers()) {
+ for (TraceEventHandler traceHandler : traceHandlers) {
Object result1 = traceHandler.traceExchangeIn(node, processor, this, exchange);
if (result1 != null) {
result = result1;
@@ -298,7 +304,7 @@ public class TraceInterceptor extends De
}
protected void traceExchangeOut(Exchange exchange, Object traceState) throws Exception {
- for (TraceEventHandler traceHandler : tracer.getTraceHandlers()) {
+ for (TraceEventHandler traceHandler : traceHandlers) {
traceHandler.traceExchangeOut(node, processor, this, exchange, traceState);
}
}
@@ -350,12 +356,18 @@ public class TraceInterceptor extends De
@Override
protected void doStart() throws Exception {
super.doStart();
- ServiceHelper.startService(tracer.getTraceHandlers());
+ ServiceHelper.startService(traceHandlers);
}
@Override
protected void doStop() throws Exception {
super.doStop();
- ServiceHelper.stopService(tracer.getTraceHandlers());
+ ServiceHelper.stopService(traceHandlers);
+ }
+
+ @Deprecated
+ public void setTraceHandler(TraceEventHandler traceHandler) {
+ traceHandlers.clear();
+ traceHandlers.add(traceHandler);
}
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java?rev=1179291&r1=1179290&r2=1179291&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java Wed Oct 5 16:12:55 2011
@@ -308,7 +308,8 @@ public class Tracer implements Intercept
*/
@Deprecated
public void setTraceHandler(TraceEventHandler traceHandler) {
- this.traceHandlers.add(0, traceHandler);
+ this.traceHandlers.clear();
+ this.traceHandlers.add(traceHandler);
}
/**
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/TraceInterceptorFactoryCreatesHandlerTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/TraceInterceptorFactoryCreatesHandlerTest.java?rev=1179291&r1=1179290&r2=1179291&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/TraceInterceptorFactoryCreatesHandlerTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/TraceInterceptorFactoryCreatesHandlerTest.java Wed Oct 5 16:12:55 2011
@@ -44,7 +44,7 @@ public class TraceInterceptorFactoryCrea
if (traceAllNodes || !target.getClass().equals(TraceTestProcessor.class)) {
TraceHandlerTestHandler traceHandler = new TraceHandlerTestHandler(eventMessages);
traceHandler.setTraceAllNodes(true);
- tracer.addTraceHandler(traceHandler);
+ interceptor.setTraceHandler(traceHandler);
}
return interceptor;