You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2009/08/05 19:11:46 UTC

svn commit: r801311 - in /camel/sandbox/tuning-experiment/camel-core/src: main/java/org/apache/camel/processor/Pipeline.java main/java/org/apache/camel/util/ExchangeHelper.java test/java/org/apache/camel/processor/RoutePerformanceTest.java

Author: davsclaus
Date: Wed Aug  5 17:11:46 2009
New Revision: 801311

URL: http://svn.apache.org/viewvc?rev=801311&view=rev
Log:
experiment for james to look at.

Modified:
    camel/sandbox/tuning-experiment/camel-core/src/main/java/org/apache/camel/processor/Pipeline.java
    camel/sandbox/tuning-experiment/camel-core/src/main/java/org/apache/camel/util/ExchangeHelper.java
    camel/sandbox/tuning-experiment/camel-core/src/test/java/org/apache/camel/processor/RoutePerformanceTest.java

Modified: camel/sandbox/tuning-experiment/camel-core/src/main/java/org/apache/camel/processor/Pipeline.java
URL: http://svn.apache.org/viewvc/camel/sandbox/tuning-experiment/camel-core/src/main/java/org/apache/camel/processor/Pipeline.java?rev=801311&r1=801310&r2=801311&view=diff
==============================================================================
--- camel/sandbox/tuning-experiment/camel-core/src/main/java/org/apache/camel/processor/Pipeline.java (original)
+++ camel/sandbox/tuning-experiment/camel-core/src/main/java/org/apache/camel/processor/Pipeline.java Wed Aug  5 17:11:46 2009
@@ -21,7 +21,9 @@
 import java.util.List;
 
 import org.apache.camel.Exchange;
+import org.apache.camel.Message;
 import org.apache.camel.Processor;
+import org.apache.camel.impl.CopyOnWriteMessageFacade;
 import org.apache.camel.impl.DefaultExchange;
 import org.apache.camel.util.ExchangeHelper;
 import org.apache.commons.logging.Log;
@@ -78,7 +80,7 @@
 
             // check for error if so we should break out
             boolean exceptionHandled = hasExceptionBeenHandledByErrorHandler(nextExchange);
-            if (nextExchange.isFailed() || nextExchange.isRollbackOnly() ||  exceptionHandled) {
+            if (nextExchange.isFailed() || nextExchange.isRollbackOnly() || exceptionHandled) {
                 // The Exchange.ERRORHANDLED_HANDLED property is only set if satisfactory handling was done
                 // by the error handler. It's still an exception, the exchange still failed.
                 if (LOG.isDebugEnabled()) {
@@ -134,12 +136,27 @@
         // exchange being routed.
         answer.setExchangeId(previousExchange.getExchangeId());
 
-        answer.getProperties().putAll(previousExchange.getProperties());
+        if (previousExchange.hasProperties()) {
+            answer.getProperties().putAll(previousExchange.getProperties());
+        }
+
+        // now lets set the input of the next exchange to the output of the
+        // previous message if it is not null
+        CopyOnWriteMessageFacade facade;
+        Message target = previousExchange.hasOut() ? previousExchange.getOut() : previousExchange.getIn();
+        if (target instanceof CopyOnWriteMessageFacade) {
+            // already a facade so just use it
+            facade = (CopyOnWriteMessageFacade) target;
+        } else {
+            // wrap message using a facade
+            facade = new CopyOnWriteMessageFacade(target);
+        }
+        answer.setIn(facade);
 
         // now lets set the input of the next exchange to the output of the
         // previous message if it is not null
-        answer.setIn(previousExchange.hasOut() 
-            ? previousExchange.getOut().copy() : previousExchange.getIn().copy());
+//        answer.setIn(previousExchange.hasOut()
+//                ? previousExchange.getOut().copy() : previousExchange.getIn().copy());
         return answer;
     }
 

Modified: camel/sandbox/tuning-experiment/camel-core/src/main/java/org/apache/camel/util/ExchangeHelper.java
URL: http://svn.apache.org/viewvc/camel/sandbox/tuning-experiment/camel-core/src/main/java/org/apache/camel/util/ExchangeHelper.java?rev=801311&r1=801310&r2=801311&view=diff
==============================================================================
--- camel/sandbox/tuning-experiment/camel-core/src/main/java/org/apache/camel/util/ExchangeHelper.java (original)
+++ camel/sandbox/tuning-experiment/camel-core/src/main/java/org/apache/camel/util/ExchangeHelper.java Wed Aug  5 17:11:46 2009
@@ -212,7 +212,7 @@
         // --------------------------------------------------------------------
         //  TODO: merge logic with that of copyResultsPreservePattern()
         // --------------------------------------------------------------------
-        
+
         if (result != source) {
             result.setException(source.getException());
             if (source.hasOut()) {
@@ -226,13 +226,15 @@
                 // as the final processor on a pipeline might not
                 // have created any OUT; such as a mock:endpoint
                 // so lets assume the last IN is the OUT
-                if (result.getPattern().isOutCapable()) {
+                result.getOut().copyFrom(source.getIn());
+
+/*                if (result.getPattern().isOutCapable()) {
                     // only set OUT if its OUT capable
                     result.getOut().copyFrom(source.getIn());
                 } else {
                     // if not replace IN instead to keep the MEP
                     result.getIn().copyFrom(source.getIn());
-                }
+                }*/
             }
 
             if (source.hasProperties()) {

Modified: camel/sandbox/tuning-experiment/camel-core/src/test/java/org/apache/camel/processor/RoutePerformanceTest.java
URL: http://svn.apache.org/viewvc/camel/sandbox/tuning-experiment/camel-core/src/test/java/org/apache/camel/processor/RoutePerformanceTest.java?rev=801311&r1=801310&r2=801311&view=diff
==============================================================================
--- camel/sandbox/tuning-experiment/camel-core/src/test/java/org/apache/camel/processor/RoutePerformanceTest.java (original)
+++ camel/sandbox/tuning-experiment/camel-core/src/test/java/org/apache/camel/processor/RoutePerformanceTest.java Wed Aug  5 17:11:46 2009
@@ -31,7 +31,7 @@
  */
 public class RoutePerformanceTest extends ContextTestSupport {
 
-    private int size = 10000;
+    private int size = 20000;
     private SimpleDataSet dataSet = new SimpleDataSet(size);
     private String uri = "mock:results";