Author: davsclaus
Date: Sat Jun 27 09:33:23 2009
New Revision: 788943
URL: http://svn.apache.org/viewvc?rev=788943&view=rev
Log:
CAMEL-1759: Added unit test and fixed a NPE in DefaultTraceEventMessage.
Added:
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DefaultErrorHandlerOnExceptionTraceTest.java
- copied, changed from r788930,
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DefaultErrorHandlerOnExceptionTest.java
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultTraceEventMessage.java
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DefaultErrorHandlerOnExceptionTest.java
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=788943&r1=788942&r2=788943&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
Sat Jun 27 09:33:23 2009
@@ -21,10 +21,8 @@
import org.apache.camel.Exchange;
import org.apache.camel.Message;
-import org.apache.camel.Processor;
import org.apache.camel.model.ProcessorDefinition;
import org.apache.camel.RouteNode;
-import org.apache.camel.processor.Traceable;
import org.apache.camel.spi.TraceableUnitOfWork;
import org.apache.camel.util.MessageHelper;
@@ -82,33 +80,25 @@
// Implementation
//---------------------------------------------------------------
- private String extractTraceLabel(RouteNode entry) {
- Processor processor = entry.getProcessor();
- if (processor instanceof Traceable) {
- Traceable trace = (Traceable) processor;
- return trace.getTraceLabel();
- }
- return processor.toString();
- }
- private String extractShortExchangeId(Exchange exchange) {
+ private static String extractShortExchangeId(Exchange exchange) {
return
exchange.getExchangeId().substring(exchange.getExchangeId().indexOf("/") + 1);
}
- private String extractFromNode(Exchange exchange) {
+ private static String extractFromNode(Exchange exchange) {
if (exchange.getUnitOfWork() instanceof TraceableUnitOfWork) {
TraceableUnitOfWork tuow = (TraceableUnitOfWork)
exchange.getUnitOfWork();
RouteNode last = tuow.getSecondLastNode();
- return last != null ? extractTraceLabel(last) : null;
+ return last != null ? last.getLabel(exchange) : null;
}
return null;
}
- private String extractToNode(Exchange exchange) {
+ private static String extractToNode(Exchange exchange) {
if (exchange.getUnitOfWork() instanceof TraceableUnitOfWork) {
TraceableUnitOfWork tuow = (TraceableUnitOfWork)
exchange.getUnitOfWork();
RouteNode last = tuow.getLastNode();
- return last != null ? extractTraceLabel(last) : null;
+ return last != null ? last.getLabel(exchange) : null;
}
return null;
}
Modified:
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DefaultErrorHandlerOnExceptionTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DefaultErrorHandlerOnExceptionTest.java?rev=788943&r1=788942&r2=788943&view=diff
==============================================================================
---
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DefaultErrorHandlerOnExceptionTest.java
(original)
+++
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DefaultErrorHandlerOnExceptionTest.java
Sat Jun 27 09:33:23 2009
@@ -52,8 +52,6 @@
return new RouteBuilder() {
@Override
public void configure() throws Exception {
- context.setTracing(true);
-
onException(IllegalArgumentException.class).handled(true).to("log:boom").to("mock:boom");
from("direct:start").process(new Processor() {
Copied:
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DefaultErrorHandlerOnExceptionTraceTest.java
(from r788930,
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DefaultErrorHandlerOnExceptionTest.java)
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DefaultErrorHandlerOnExceptionTraceTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DefaultErrorHandlerOnExceptionTraceTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DefaultErrorHandlerOnExceptionTest.java&r1=788930&r2=788943&rev=788943&view=diff
==============================================================================
---
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DefaultErrorHandlerOnExceptionTest.java
(original)
+++
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DefaultErrorHandlerOnExceptionTraceTest.java
Sat Jun 27 09:33:23 2009
@@ -21,30 +21,60 @@
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.processor.interceptor.TraceEventMessage;
+import org.apache.camel.processor.interceptor.Tracer;
/**
- * Default error handler test
+ * Default error handler test with trace
*
* @version $Revision$
*/
-public class DefaultErrorHandlerOnExceptionTest extends ContextTestSupport {
+public class DefaultErrorHandlerOnExceptionTraceTest extends
ContextTestSupport {
public void testOk() throws Exception {
MockEndpoint mock = getMockEndpoint("mock:result");
mock.expectedBodiesReceived("Bye World");
+ getMockEndpoint("mock:trace").expectedMessageCount(2);
template.sendBody("direct:start", "Hello World");
assertMockEndpointsSatisfied();
+
+ TraceEventMessage msg1 =
getMockEndpoint("mock:trace").getReceivedExchanges().get(0).getIn().getBody(TraceEventMessage.class);
+ TraceEventMessage msg2 =
getMockEndpoint("mock:trace").getReceivedExchanges().get(1).getIn().getBody(TraceEventMessage.class);
+
+ assertEquals("direct:start", msg1.getFromEndpointUri());
+
assertTrue(msg1.getToNode().startsWith("org.apache.camel.processor.DefaultErrorHandlerOnExceptionTraceTest"));
+
+
assertTrue(msg2.getPreviousNode().startsWith("org.apache.camel.processor.DefaultErrorHandlerOnExceptionTraceTest"));
+ assertEquals("mock:result", msg2.getToNode());
}
public void testWithError() throws Exception {
MockEndpoint mock = getMockEndpoint("mock:boom");
mock.expectedMessageCount(1);
+ getMockEndpoint("mock:trace").expectedMessageCount(4);
template.sendBody("direct:start", "Kabom");
assertMockEndpointsSatisfied();
+
+ TraceEventMessage msg1 =
getMockEndpoint("mock:trace").getReceivedExchanges().get(0).getIn().getBody(TraceEventMessage.class);
+ TraceEventMessage msg2 =
getMockEndpoint("mock:trace").getReceivedExchanges().get(1).getIn().getBody(TraceEventMessage.class);
+ TraceEventMessage msg3 =
getMockEndpoint("mock:trace").getReceivedExchanges().get(2).getIn().getBody(TraceEventMessage.class);
+ TraceEventMessage msg4 =
getMockEndpoint("mock:trace").getReceivedExchanges().get(3).getIn().getBody(TraceEventMessage.class);
+
+ assertEquals("direct:start", msg1.getFromEndpointUri());
+
assertTrue(msg1.getToNode().startsWith("org.apache.camel.processor.DefaultErrorHandlerOnExceptionTraceTest"));
+
+
assertTrue(msg2.getPreviousNode().startsWith("org.apache.camel.processor.DefaultErrorHandlerOnExceptionTraceTest"));
+ assertEquals("OnException[IllegalArgumentException]",
msg2.getToNode());
+
+ assertEquals("OnException[IllegalArgumentException]",
msg3.getPreviousNode());
+ assertEquals("log:boom", msg3.getToNode());
+
+ assertEquals("log:boom", msg4.getPreviousNode());
+ assertEquals("mock:boom", msg4.getToNode());
}
@Override
@@ -52,7 +82,9 @@
return new RouteBuilder() {
@Override
public void configure() throws Exception {
- context.setTracing(true);
+ Tracer tracer = new Tracer();
+ tracer.setDestinationUri("mock:trace");
+ context.addInterceptStrategy(tracer);
onException(IllegalArgumentException.class).handled(true).to("log:boom").to("mock:boom");