Author: davsclaus Date: Sat Nov 27 15:12:25 2010 New Revision: 1039695 URL: http://svn.apache.org/viewvc?rev=1039695&view=rev Log: CAMEL-3202: Exchange now contains creation timestamp in property.
Added: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ExchangeCreatedTimestampTest.java - copied, changed from r1039391, camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SimpleMockTest.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/DefaultTraceEventMessageTest.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java?rev=1039695&r1=1039694&r2=1039695&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java Sat Nov 27 15:12:25 2010 @@ -86,17 +86,18 @@ public interface Exchange { String BEAN_MULTI_PARAMETER_ARRAY = "CamelBeanMultiParameterArray"; String BINDING = "CamelBinding"; - String CHARSET_NAME = "CamelCharsetName"; - String CONTENT_ENCODING = "Content-Encoding"; - String CONTENT_TYPE = "Content-Type"; - String CORRELATION_ID = "CamelCorrelationId"; + String CHARSET_NAME = "CamelCharsetName"; + String CREATED_TIMESTAMP = "CamelCreatedTimestamp"; + String CONTENT_ENCODING = "Content-Encoding"; + String CONTENT_TYPE = "Content-Type"; + String CORRELATION_ID = "CamelCorrelationId"; String DATASET_INDEX = "CamelDataSetIndex"; String DEFAULT_CHARSET_PROPERTY = "org.apache.camel.default.charset"; String DISABLE_HTTP_STREAM_CACHE = "CamelDisableHttpStreamCache"; - String EXCEPTION_CAUGHT = "CamelExceptionCaught"; String ERRORHANDLER_HANDLED = "CamelErrorHandlerHandled"; + String EXCEPTION_CAUGHT = "CamelExceptionCaught"; String FAILURE_HANDLED = "CamelFailureHandled"; String FAILURE_ENDPOINT = "CamelFailureEndpoint"; 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=1039695&r1=1039694&r2=1039695&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 Sat Nov 27 15:12:25 2010 @@ -17,6 +17,7 @@ package org.apache.camel.impl; import java.util.ArrayList; +import java.util.Date; import java.util.Iterator; import java.util.LinkedHashSet; import java.util.List; @@ -72,6 +73,11 @@ public class DefaultUnitOfWork implement this.originalInMessage = exchange.getIn().copy(); } + // mark the creation time when this Exchange was created + if (exchange.getProperty(Exchange.CREATED_TIMESTAMP) == null) { + exchange.setProperty(Exchange.CREATED_TIMESTAMP, new Date()); + } + // fire event EventHelper.notifyExchangeCreated(exchange.getContext(), exchange); Copied: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ExchangeCreatedTimestampTest.java (from r1039391, camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SimpleMockTest.java) URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ExchangeCreatedTimestampTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ExchangeCreatedTimestampTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SimpleMockTest.java&r1=1039391&r2=1039695&rev=1039695&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/SimpleMockTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ExchangeCreatedTimestampTest.java Sat Nov 27 15:12:25 2010 @@ -16,32 +16,28 @@ */ package org.apache.camel.processor; +import java.util.Date; + import org.apache.camel.ContextTestSupport; +import org.apache.camel.Exchange; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; /** * @version $Revision$ */ -public class SimpleMockTest extends ContextTestSupport { +public class ExchangeCreatedTimestampTest extends ContextTestSupport { - public void testSimple() throws Exception { + public void testCreatedTimestamp() throws Exception { MockEndpoint mock = getMockEndpoint("mock:result"); mock.expectedBodiesReceived("Hello World"); - template.sendBody("direct:start", "Hello World"); + template.sendBody("seda:start", "Hello World"); assertMockEndpointsSatisfied(); - } - - public void testSimpleTwoMessages() throws Exception { - MockEndpoint mock = getMockEndpoint("mock:result"); - mock.expectedBodiesReceived("Hello World", "Bye World"); - template.sendBody("direct:start", "Hello World"); - template.sendBody("direct:start", "Bye World"); - - assertMockEndpointsSatisfied(); + Date created = mock.getReceivedExchanges().get(0).getProperty(Exchange.CREATED_TIMESTAMP, Date.class); + assertNotNull(created); } @Override @@ -49,7 +45,9 @@ public class SimpleMockTest extends Cont return new RouteBuilder() { @Override public void configure() throws Exception { - from("direct:start").to("log:foo").to("log:bar").to("mock:result"); + from("seda:start").delay(500).to("direct:foo"); + + from("direct:foo").to("log:foo").to("mock:result"); } }; } Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/DefaultTraceEventMessageTest.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/DefaultTraceEventMessageTest.java?rev=1039695&r1=1039694&r2=1039695&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/DefaultTraceEventMessageTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/interceptor/DefaultTraceEventMessageTest.java Sat Nov 27 15:12:25 2010 @@ -58,8 +58,9 @@ public class DefaultTraceEventMessageTes assertNotNull(em.getExchangeId()); assertNotNull(em.getShortExchangeId()); assertEquals("InOut", em.getExchangePattern()); - assertTrue("{foo=123, CamelToEndpoint=direct://start}".equals(em.getProperties()) - || "{CamelToEndpoint=direct://start, foo=123}".equals(em.getProperties())); + assertTrue(em.getProperties().contains("foo=123")); + assertTrue(em.getProperties().contains("CamelToEndpoint=direct://start")); + assertTrue(em.getProperties().contains("CamelCreatedTimestamp")); assertEquals("{bar=456}", em.getHeaders()); assertEquals("Hello World", em.getBody()); assertEquals("String", em.getBodyType());