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/05/13 07:17:14 UTC
svn commit: r774207 - in /camel/trunk/camel-core/src:
main/java/org/apache/camel/builder/ main/java/org/apache/camel/impl/
main/java/org/apache/camel/processor/ main/java/org/apache/camel/spi/
test/java/org/apache/camel/processor/
Author: davsclaus
Date: Wed May 13 05:17:14 2009
New Revision: 774207
URL: http://svn.apache.org/viewvc?rev=774207&view=rev
Log:
CAMEL-1600: only the original IN body is copied to avoid problem with camel-jms and the fact that its only the IN body we really need to copy
Added:
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalInBodyTest.java (contents, props changed)
- copied, changed from r774185, camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalExchangeTest.java
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalInBodyWithFileTest.java (contents, props changed)
- copied, changed from r774185, camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalExchangeWithFileTest.java
Removed:
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalExchangeTest.java
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalExchangeWithFileTest.java
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java
camel/trunk/camel-core/src/main/java/org/apache/camel/spi/UnitOfWork.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java?rev=774207&r1=774206&r2=774207&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java Wed May 13 05:17:14 2009
@@ -50,7 +50,7 @@
private Endpoint deadLetter;
private String deadLetterUri;
private Predicate handledPolicy;
- private boolean useOriginalExchange;
+ private boolean useOriginalInBody;
/**
* Creates a default DeadLetterChannel with a default endpoint
@@ -79,7 +79,7 @@
public Processor createErrorHandler(RouteContext routeContext, Processor processor) throws Exception {
DeadLetterChannel answer = new DeadLetterChannel(processor, getFailureProcessor(), deadLetterUri, onRedelivery,
- getRedeliveryPolicy(), getLogger(), getExceptionPolicyStrategy(), getHandledPolicy(), isUseOriginalExchange());
+ getRedeliveryPolicy(), getLogger(), getExceptionPolicyStrategy(), getHandledPolicy(), isUseOriginalInBody());
// must enable stream cache as DeadLetterChannel can do redeliveries and
// thus it needs to be able to read the stream again
configure(answer);
@@ -261,7 +261,7 @@
}
/**
- * Will use the original input {@link Exchange} when an {@link Exchange} is moved to the dead letter queue.
+ * Will use the original input body when an {@link Exchange} is moved to the dead letter queue.
* <p/>
* <b>Notice:</b> this only applies when all redeliveries attempt have failed and the {@link Exchange} is doomed for failure.
* <br/>
@@ -275,8 +275,8 @@
*
* @return the builder
*/
- public DeadLetterChannelBuilder useOriginalExchange() {
- setUseOriginalExchange(true);
+ public DeadLetterChannelBuilder useOriginalInBody() {
+ setUseOriginalInBody(true);
return this;
}
@@ -379,12 +379,12 @@
handled(handled);
}
- public boolean isUseOriginalExchange() {
- return useOriginalExchange;
+ public boolean isUseOriginalInBody() {
+ return useOriginalInBody;
}
- public void setUseOriginalExchange(boolean useOriginalExchange) {
- this.useOriginalExchange = useOriginalExchange;
+ public void setUseOriginalInBody(boolean useOriginalInBody) {
+ this.useOriginalInBody = useOriginalInBody;
}
@Override
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=774207&r1=774206&r2=774207&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 Wed May 13 05:17:14 2009
@@ -38,10 +38,10 @@
private String id;
private List<Synchronization> synchronizations;
private List<ProcessorDefinition> routeList;
- private Exchange originalExchange;
+ private Object originalInBody;
public DefaultUnitOfWork(Exchange exchange) {
- this.originalExchange = exchange.copy();
+ this.originalInBody = exchange.getIn().getBody();
}
public void start() throws Exception {
@@ -57,7 +57,7 @@
routeList.clear();
}
- originalExchange = null;
+ originalInBody = null;
}
public synchronized void addSynchronization(Synchronization synchronization) {
@@ -111,7 +111,7 @@
return Collections.unmodifiableList(routeList);
}
- public Exchange getOriginalExchange() {
- return originalExchange;
+ public Object getOriginalInBody() {
+ return originalInBody;
}
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java?rev=774207&r1=774206&r2=774207&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java Wed May 13 05:17:14 2009
@@ -55,7 +55,7 @@
private final RedeliveryPolicy redeliveryPolicy;
private final Predicate handledPolicy;
private final Logger logger;
- private final boolean useOriginalExchangePolicy;
+ private final boolean useOriginalInBodyPolicy;
private class RedeliveryData {
int redeliveryCounter;
@@ -67,7 +67,7 @@
Processor deadLetterQueue = deadLetter;
Processor onRedeliveryProcessor = redeliveryProcessor;
Predicate handledPredicate = handledPolicy;
- boolean useOriginalExchange = useOriginalExchangePolicy;
+ boolean useOriginalInBody = useOriginalInBodyPolicy;
}
/**
@@ -81,11 +81,11 @@
* @param logger logger to use for logging failures and redelivery attempts
* @param exceptionPolicyStrategy strategy for onException handling
* @param handledPolicy policy for handling failed exception that are moved to the dead letter queue
- * @param useOriginalExchangePolicy should the original exchange be moved to the dead letter queue or the most recent exchange?
+ * @param useOriginalInBodyPolicy should the original IN body be moved to the dead letter queue or the current exchange IN body?
*/
public DeadLetterChannel(Processor output, Processor deadLetter, String deadLetterUri, Processor redeliveryProcessor,
RedeliveryPolicy redeliveryPolicy, Logger logger, ExceptionPolicyStrategy exceptionPolicyStrategy,
- Predicate handledPolicy, boolean useOriginalExchangePolicy) {
+ Predicate handledPolicy, boolean useOriginalInBodyPolicy) {
this.output = output;
this.deadLetter = deadLetter;
this.deadLetterUri = deadLetterUri;
@@ -93,7 +93,7 @@
this.redeliveryPolicy = redeliveryPolicy;
this.logger = logger;
this.handledPolicy = handledPolicy;
- this.useOriginalExchangePolicy = useOriginalExchangePolicy;
+ this.useOriginalInBodyPolicy = useOriginalInBodyPolicy;
setExceptionPolicy(exceptionPolicyStrategy);
}
@@ -239,7 +239,7 @@
data.currentRedeliveryPolicy = exceptionPolicy.createRedeliveryPolicy(exchange.getContext(), data.currentRedeliveryPolicy);
data.handledPredicate = exceptionPolicy.getHandledPolicy();
data.retryUntilPredicate = exceptionPolicy.getRetryUntilPolicy();
- data.useOriginalExchange = exceptionPolicy.getUseOriginalExchangePolicy();
+ data.useOriginalInBody = exceptionPolicy.getUseOriginalExchangePolicy();
// route specific failure handler?
Processor processor = exceptionPolicy.getErrorHandler();
@@ -297,20 +297,14 @@
// reset cached streams so they can be read again
MessageHelper.resetStreamCache(exchange.getIn());
- // prepare original exchange if it should be moved instead of most recent
- if (data.useOriginalExchange) {
+ // prepare original IN body if it should be moved instead of current body
+ if (data.useOriginalInBody) {
if (log.isTraceEnabled()) {
- log.trace("Using the original exchange bodies in the DedLetterQueue instead of the current exchange bodies");
+ log.trace("Using the original IN body in the DedLetterQueue instead of the current IN body");
}
- Exchange original = exchange.getUnitOfWork().getOriginalExchange();
- // replace exchange IN/OUT with from original
- exchange.setIn(original.getIn());
- if (original.hasOut()) {
- exchange.setOut(original.getOut());
- } else {
- exchange.setOut(null);
- }
+ Object original = exchange.getUnitOfWork().getOriginalInBody();
+ exchange.getIn().setBody(original);
}
if (log.isTraceEnabled()) {
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/spi/UnitOfWork.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/spi/UnitOfWork.java?rev=774207&r1=774206&r2=774207&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/spi/UnitOfWork.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/spi/UnitOfWork.java Wed May 13 05:17:14 2009
@@ -56,9 +56,9 @@
String getId();
/**
- * Gets the original {@link org.apache.camel.Exchange} this Unit of Work was started with.
+ * Gets the original IN body this Unit of Work was started with.
*
- * @return the original exchange
+ * @return the original IN body
*/
- Exchange getOriginalExchange();
+ Object getOriginalInBody();
}
Copied: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalInBodyTest.java (from r774185, camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalExchangeTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalInBodyTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalInBodyTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalExchangeTest.java&r1=774185&r2=774207&rev=774207&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalExchangeTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalInBodyTest.java Wed May 13 05:17:14 2009
@@ -24,13 +24,13 @@
import org.apache.camel.component.mock.MockEndpoint;
/**
- * Unit test for useOriginalExchange option on DeadLetterChannel
+ * Unit test for useOriginalnBody option on DeadLetterChannel
*
* @version $Revision$
*/
-public class DeadLetterChannelUseOriginalExchangeTest extends ContextTestSupport {
+public class DeadLetterChannelUseOriginalInBodyTest extends ContextTestSupport {
- public void testUseOriginalExchange() throws Exception {
+ public void testUseOriginalnBody() throws Exception {
MockEndpoint dead = getMockEndpoint("mock:a");
dead.expectedBodiesReceived("Hello");
@@ -39,7 +39,7 @@
assertMockEndpointsSatisfied();
}
- public void testDoNotUseOriginalExchange() throws Exception {
+ public void testDoNotUseOriginalInBody() throws Exception {
MockEndpoint dead = getMockEndpoint("mock:b");
dead.expectedBodiesReceived("Hello World");
@@ -55,7 +55,7 @@
public void configure() throws Exception {
// will use original
DeadLetterChannelBuilder a = deadLetterChannel("mock:a")
- .maximumRedeliveries(2).delay(0).logStackTrace(false).useOriginalExchange().handled(true);
+ .maximumRedeliveries(2).delay(0).logStackTrace(false).useOriginalInBody().handled(true);
// will NOT use original
DeadLetterChannelBuilder b = deadLetterChannel("mock:b")
Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalInBodyTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalInBodyTest.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Copied: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalInBodyWithFileTest.java (from r774185, camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalExchangeWithFileTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalInBodyWithFileTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalInBodyWithFileTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalExchangeWithFileTest.java&r1=774185&r2=774207&rev=774207&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalExchangeWithFileTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalInBodyWithFileTest.java Wed May 13 05:17:14 2009
@@ -26,9 +26,9 @@
/**
* @version $Revision$
*/
-public class DeadLetterChannelUseOriginalExchangeWithFileTest extends ContextTestSupport {
+public class DeadLetterChannelUseOriginalInBodyWithFileTest extends ContextTestSupport {
- public void testOriginalExchangeIsFile() throws Exception {
+ public void testOriginalInBodyIsFile() throws Exception {
MockEndpoint dead = getMockEndpoint("mock:dead");
dead.expectedMessageCount(1);
dead.message(0).body().isInstanceOf(GenericFile.class);
@@ -50,7 +50,7 @@
return new RouteBuilder() {
@Override
public void configure() throws Exception {
- errorHandler(deadLetterChannel("mock:dead").disableRedelivery().logStackTrace(false).useOriginalExchange().handled(true));
+ errorHandler(deadLetterChannel("mock:dead").disableRedelivery().logStackTrace(false).useOriginalInBody().handled(true));
from("file://target/originalexchange?noop=true")
.transform(body().append(" World"))
Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalInBodyWithFileTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelUseOriginalInBodyWithFileTest.java
------------------------------------------------------------------------------
svn:keywords = Rev Date