camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From davscl...@apache.org
Subject svn commit: r749973 - in /camel/trunk/camel-core/src: main/java/org/apache/camel/component/mock/ main/java/org/apache/camel/processor/interceptor/ test/java/org/apache/camel/component/mock/ test/java/org/apache/camel/processor/
Date Wed, 04 Mar 2009 12:06:12 GMT
Author: davsclaus
Date: Wed Mar  4 12:06:11 2009
New Revision: 749973

URL: http://svn.apache.org/viewvc?rev=749973&view=rev
Log:
CAMEL-1417: Fixed failing unit test as we can not use the lookup in type converter registry.
Improved expectedHeader to allow all types instead of only string values. So now you can compare
real numbers and whatelse.

Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCachingInterceptor.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/component/mock/MockEndpointTest.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RoutePerformanceTest.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java?rev=749973&r1=749972&r2=749973&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
(original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
Wed Mar  4 12:06:11 2009
@@ -74,7 +74,7 @@
     private List actualBodyValues;
     private PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this);
     private String headerName;
-    private String headerValue;
+    private Object headerValue;
     private Object actualHeader;
     private Processor reporter;
 
@@ -308,7 +308,7 @@
      * Adds an expectation that the given header name & value are received by this
      * endpoint
      */
-    public void expectedHeaderReceived(String name, String value) {
+    public void expectedHeaderReceived(final String name, final Object value) {
         this.headerName = name;
         this.headerValue = value;
 
@@ -316,7 +316,8 @@
             public void run() {
                 assertTrue("No header with name " + headerName + " found.", actualHeader
!= null);
 
-                assertEquals("Header of message", headerValue, actualHeader.toString());
+                Object actualValue = getCamelContext().getTypeConverter().convertTo(actualHeader.getClass(),
headerValue);
+                assertEquals("Header of message", actualValue, actualHeader);
             }
         });
     }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCachingInterceptor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCachingInterceptor.java?rev=749973&r1=749972&r2=749973&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCachingInterceptor.java
(original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCachingInterceptor.java
Wed Mar  4 12:06:11 2009
@@ -24,7 +24,6 @@
 import org.apache.camel.NoTypeConversionAvailableException;
 import org.apache.camel.Processor;
 import org.apache.camel.StreamCache;
-import org.apache.camel.TypeConverter;
 import org.apache.camel.model.InterceptorRef;
 import org.apache.camel.model.InterceptorType;
 import org.apache.camel.processor.DelegateProcessor;
@@ -64,39 +63,28 @@
             }
         }
     }
-    
+
     @Override
     public void process(Exchange exchange) throws Exception {
         AsyncProcessorHelper.process(this, exchange);
     }
 
     public boolean process(Exchange exchange, AsyncCallback callback) {
-        // Change the body to StreamCache if possible
-        // important to lookup for the type converter to avoid excessive overhead of trying
to covnert if not possible
-        // as Camel will throw NoTypeConversionAvailableException that we just ignores. So
we want to avoid this
-        // exception handling as it hurts performance dramatically for high throughput
-        // See also MessageSupport#getBody and CAMEL-1417
-        Object body = exchange.getIn().getBody();
-        if (body != null) {
-            TypeConverter tc = exchange.getContext().getTypeConverterRegistry().lookup(StreamCache.class,
body.getClass());
-            if (tc != null) {
-                try {
-                    StreamCache newBody = tc.convertTo(StreamCache.class, exchange, body);
-                    if (newBody != null) {
-                        exchange.getIn().setBody(newBody);
-                    }
-                    MessageHelper.resetStreamCache(exchange.getIn());
-                } catch (NoTypeConversionAvailableException ex) {
-                    // ignore if in is not of StreamCache type
-                }
+        try {
+            StreamCache newBody = exchange.getIn().getBody(StreamCache.class);
+            if (newBody != null) {
+                exchange.getIn().setBody(newBody);
             }
+            MessageHelper.resetStreamCache(exchange.getIn());
+        } catch (NoTypeConversionAvailableException ex) {
+            // ignore if in is not of StreamCache type
         }
 
         return proceed(exchange, callback);
     }
 
-    public boolean proceed(Exchange exchange, AsyncCallback callback) {        
-        if (getProcessor() instanceof AsyncProcessor) {            
+    public boolean proceed(Exchange exchange, AsyncCallback callback) {
+        if (getProcessor() instanceof AsyncProcessor) {
             return ((AsyncProcessor) getProcessor()).process(exchange, callback);
         } else {
             try {

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/component/mock/MockEndpointTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/mock/MockEndpointTest.java?rev=749973&r1=749972&r2=749973&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/component/mock/MockEndpointTest.java
(original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/component/mock/MockEndpointTest.java
Wed Mar  4 12:06:11 2009
@@ -112,6 +112,8 @@
 
         MockEndpoint resultEndpoint = getMockEndpoint("mock:result");
         resultEndpoint.expectedMessageCount(6);
+        // wait at most 2 sec to speedup unit testing 
+        resultEndpoint.setResultWaitTime(2000);
         resultEndpoint.assertIsNotSatisfied();
     }
 
@@ -141,7 +143,6 @@
         resultEndpoint.assertIsSatisfied();
         
         resultEndpoint.reset();
-        
         // assert failure when value is different
         resultEndpoint.expectedHeaderReceived("header", "value1");
         sendHeader("header", "value");
@@ -162,10 +163,21 @@
         resultEndpoint.assertIsNotSatisfied();                       
     }
     
+    public void testExpectationOfHeaderWithNumber() throws InterruptedException {
+        MockEndpoint resultEndpoint = getMockEndpoint("mock:result");
+        resultEndpoint.reset();
+
+        // assert we can assert using other than string, eg numbers
+        resultEndpoint.expectedHeaderReceived("number", 123);
+        sendHeader("number", 123);
+        resultEndpoint.assertIsSatisfied();
+
+        resultEndpoint.assertIsNotSatisfied();
+    }
+
     protected void sendMessages(int... counters) {
         for (int counter : counters) {
-            template.sendBodyAndHeader("direct:a", createTestMessage(counter),
-                    "counter", counter);
+            template.sendBodyAndHeader("direct:a", createTestMessage(counter), "counter",
counter);
         }
     }
 
@@ -181,7 +193,7 @@
         return list;
     }   
     
-    protected void sendHeader(String name, String value) {
+    protected void sendHeader(String name, Object value) {
         template.sendBodyAndHeader("direct:a", "body", name, value);
     }
 

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RoutePerformanceTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RoutePerformanceTest.java?rev=749973&r1=749972&r2=749973&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RoutePerformanceTest.java
(original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RoutePerformanceTest.java
Wed Mar  4 12:06:11 2009
@@ -38,6 +38,7 @@
 
         MockEndpoint endpoint = getMockEndpoint("mock:results");
         endpoint.expectedMessageCount((int) dataSet.getSize());
+        endpoint.expectedHeaderReceived("foo", 123);
 
         assertMockEndpointsSatisfied();
 



Mime
View raw message