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";