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/03/23 07:59:34 UTC
svn commit: r757330 - in /camel/trunk:
camel-core/src/main/java/org/apache/camel/
camel-core/src/main/java/org/apache/camel/model/
camel-core/src/main/java/org/apache/camel/processor/
camel-core/src/test/java/org/apache/camel/processor/ components/came...
Author: davsclaus
Date: Mon Mar 23 06:59:33 2009
New Revision: 757330
URL: http://svn.apache.org/viewvc?rev=757330&view=rev
Log:
CAMEL-1478: Added optional message attribute to rollback DSL.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/RollbackExchangeException.java
camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
camel/trunk/camel-core/src/main/java/org/apache/camel/model/RollbackDefinition.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RollbackProcessor.java
camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RollbackTest.java
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/rollback.xml
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/RollbackExchangeException.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/RollbackExchangeException.java?rev=757330&r1=757329&r2=757330&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/RollbackExchangeException.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/RollbackExchangeException.java Mon Mar 23 06:59:33 2009
@@ -24,11 +24,19 @@
public class RollbackExchangeException extends Exception {
public RollbackExchangeException(Exchange exchange) {
- super("Intended rollback on exchange: " + exchange);
+ this("Intended rollback on exchange", exchange);
}
public RollbackExchangeException(Exchange exchange, Throwable cause) {
- super("Intended rollback on exchange: " + exchange, cause);
+ this("Intended rollback on exchange", exchange, cause);
+ }
+
+ public RollbackExchangeException(String message, Exchange exchange) {
+ super(message + ": " + exchange);
+ }
+
+ public RollbackExchangeException(String message, Exchange exchange, Throwable cause) {
+ super(message + ": " + exchange, cause);
}
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java?rev=757330&r1=757329&r2=757330&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java Mon Mar 23 06:59:33 2009
@@ -1079,7 +1079,21 @@
*/
@SuppressWarnings("unchecked")
public Type rollback() {
- RollbackDefinition answer = new RollbackDefinition();
+ return rollback(null);
+ }
+
+ /**
+ * Marks the exchange for rollback only.
+ * <p/>
+ * This is done by setting a {@link org.apache.camel.RollbackExchangeException} on the Exchange
+ * and mark it for rollback.
+ *
+ * @param message an optional message used for logging purpose why the rollback was triggered
+ * @return the builder
+ */
+ @SuppressWarnings("unchecked")
+ public Type rollback(String message) {
+ RollbackDefinition answer = new RollbackDefinition(message);
addOutput(answer);
return (Type) this;
}
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/RollbackDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/RollbackDefinition.java?rev=757330&r1=757329&r2=757330&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/RollbackDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/RollbackDefinition.java Mon Mar 23 06:59:33 2009
@@ -38,9 +38,16 @@
@XmlAccessorType(XmlAccessType.FIELD)
public class RollbackDefinition extends ProcessorDefinition<RollbackDefinition> {
+ @XmlAttribute(required = false)
+ private String message;
+
public RollbackDefinition() {
}
+ public RollbackDefinition(String message) {
+ this.message = message;
+ }
+
@Override
public String getShortName() {
return "rollback";
@@ -48,12 +55,16 @@
@Override
public String toString() {
- return "Rollback";
+ if (message != null) {
+ return "Rollback[" + message + "]";
+ } else {
+ return "Rollback";
+ }
}
@Override
public Processor createProcessor(RouteContext routeContext) {
- return new RollbackProcessor();
+ return new RollbackProcessor(message);
}
@Override
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=757330&r1=757329&r2=757330&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 Mon Mar 23 06:59:33 2009
@@ -441,7 +441,11 @@
}
if (exchange.isRollbackOnly()) {
// log intented rollback on WARN level
- logger.log("Intended rollback on exchange: " + exchange, LoggingLevel.WARN);
+ String msg = "Rollback exchange";
+ if (exchange.getException() != null) {
+ msg = msg + " due: " + exchange.getException().getMessage();
+ }
+ logger.log(msg, LoggingLevel.WARN);
} else if (data.currentRedeliveryPolicy.isLogStackTrace() && e != null) {
logger.log(message, e, newLogLevel);
} else {
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RollbackProcessor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RollbackProcessor.java?rev=757330&r1=757329&r2=757330&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RollbackProcessor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/RollbackProcessor.java Mon Mar 23 06:59:33 2009
@@ -27,10 +27,19 @@
*/
public class RollbackProcessor implements Processor {
+ private String message;
+
+ public RollbackProcessor() {
+ }
+
+ public RollbackProcessor(String message) {
+ this.message = message;
+ }
+
public void process(Exchange exchange) throws Exception {
// mark the exchange for rollback
exchange.setProperty(Exchange.ROLLBACK_ONLY, Boolean.TRUE);
- exchange.setException(new RollbackExchangeException(exchange));
+ exchange.setException(new RollbackExchangeException(message, exchange));
}
}
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RollbackTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RollbackTest.java?rev=757330&r1=757329&r2=757330&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RollbackTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/RollbackTest.java Mon Mar 23 06:59:33 2009
@@ -88,7 +88,7 @@
}
})
.to("mock:rollback")
- .rollback()
+ .rollback("That do not work")
.otherwise()
.to("mock:result")
.end();
Modified: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/rollback.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/rollback.xml?rev=757330&r1=757329&r2=757330&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/rollback.xml (original)
+++ camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/rollback.xml Mon Mar 23 06:59:33 2009
@@ -33,14 +33,14 @@
</bean>
<!-- START SNIPPET: e1 -->
- <camelContext trace="true" id="camel" xmlns="http://camel.apache.org/schema/spring">
+ <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<route errorHandlerRef="errorHandler">
<from uri="direct:start"/>
<choice>
<when>
<simple>${body} != 'ok'</simple>
<to uri="mock:rollback"/>
- <rollback/>
+ <rollback message="This is an optional message"/>
</when>
<otherwise>
<to uri="mock:result"/>