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());


Reply via email to