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 2011/01/14 08:47:00 UTC
svn commit: r1058879 - in /camel/trunk:
camel-core/src/main/java/org/apache/camel/model/
components/camel-spring/src/test/java/org/apache/camel/spring/config/
components/camel-spring/src/test/resources/org/apache/camel/spring/config/
Author: davsclaus
Date: Fri Jan 14 07:46:59 2011
New Revision: 1058879
URL: http://svn.apache.org/viewvc?rev=1058879&view=rev
Log:
CAMEL-3541: OnException should require at least one exception class has been set.
Added:
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/OnExceptionNoExceptionConfiguredTest.java
- copied, changed from r1058855, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/ErrorHandlerCamelContextRefNotFoundTest.java
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/config/OnExceptionNoExceptionConfiguredTest.xml
- copied, changed from r1058855, camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/config/ErrorHandlerCamelContextRefNotFoundTest.xml
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/ErrorHandlerCamelContextRefNotFoundTest.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java?rev=1058879&r1=1058878&r2=1058879&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java Fri Jan 14 07:46:59 2011
@@ -54,21 +54,21 @@ import static org.apache.camel.builder.P
@XmlAccessorType(XmlAccessType.FIELD)
public class OnExceptionDefinition extends ProcessorDefinition<OnExceptionDefinition> {
- @XmlElement(name = "exception")
+ @XmlElement(name = "exception", required = true)
private List<String> exceptions = new ArrayList<String>();
- @XmlElement(name = "onWhen", required = false)
+ @XmlElement(name = "onWhen")
private WhenDefinition onWhen;
- @XmlElement(name = "retryWhile", required = false)
+ @XmlElement(name = "retryWhile")
private ExpressionSubElementDefinition retryWhile;
- @XmlElement(name = "redeliveryPolicy", required = false)
+ @XmlElement(name = "redeliveryPolicy")
private RedeliveryPolicyDefinition redeliveryPolicy;
- @XmlElement(name = "handled", required = false)
+ @XmlElement(name = "handled")
private ExpressionSubElementDefinition handled;
- @XmlElement(name = "continued", required = false)
+ @XmlElement(name = "continued")
private ExpressionSubElementDefinition continued;
- @XmlAttribute(name = "onRedeliveryRef", required = false)
+ @XmlAttribute(name = "onRedeliveryRef")
private String onRedeliveryRef;
- @XmlAttribute(name = "useOriginalMessage", required = false)
+ @XmlAttribute(name = "useOriginalMessage")
private Boolean useOriginalMessagePolicy;
@XmlElementRef
private List<ProcessorDefinition> outputs = new ArrayList<ProcessorDefinition>();
@@ -169,7 +169,12 @@ public class OnExceptionDefinition exten
handle = handled.createPredicate(routeContext);
}
- return new CatchProcessor(getExceptionClasses(), childProcessor, when, handle);
+ List<Class> exceptions = getExceptionClasses();
+ if (exceptions.isEmpty()) {
+ throw new IllegalArgumentException("At least one exception must be configured on " + this);
+ }
+
+ return new CatchProcessor(exceptions, childProcessor, when, handle);
}
// Fluent API
Modified: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/ErrorHandlerCamelContextRefNotFoundTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/ErrorHandlerCamelContextRefNotFoundTest.java?rev=1058879&r1=1058878&r2=1058879&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/ErrorHandlerCamelContextRefNotFoundTest.java (original)
+++ camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/ErrorHandlerCamelContextRefNotFoundTest.java Fri Jan 14 07:46:59 2011
@@ -31,6 +31,7 @@ public class ErrorHandlerCamelContextRef
protected void setUp() throws Exception {
try {
super.setUp();
+ fail("Should have thrown an exception");
} catch (RuntimeCamelException e) {
FailedToCreateRouteException cause = assertIsInstanceOf(FailedToCreateRouteException.class, e.getCause());
IllegalArgumentException iae = assertIsInstanceOf(IllegalArgumentException.class, cause.getCause());
Copied: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/OnExceptionNoExceptionConfiguredTest.java (from r1058855, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/ErrorHandlerCamelContextRefNotFoundTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/OnExceptionNoExceptionConfiguredTest.java?p2=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/OnExceptionNoExceptionConfiguredTest.java&p1=camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/ErrorHandlerCamelContextRefNotFoundTest.java&r1=1058855&r2=1058879&rev=1058879&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/ErrorHandlerCamelContextRefNotFoundTest.java (original)
+++ camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/OnExceptionNoExceptionConfiguredTest.java Fri Jan 14 07:46:59 2011
@@ -16,8 +16,6 @@
*/
package org.apache.camel.spring.config;
-import org.apache.camel.FailedToCreateRouteException;
-import org.apache.camel.RuntimeCamelException;
import org.apache.camel.spring.SpringTestSupport;
import org.springframework.context.support.AbstractXmlApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
@@ -25,22 +23,21 @@ import org.springframework.context.suppo
/**
* @version $Revision$
*/
-public class ErrorHandlerCamelContextRefNotFoundTest extends SpringTestSupport {
+public class OnExceptionNoExceptionConfiguredTest extends SpringTestSupport {
@Override
protected void setUp() throws Exception {
try {
super.setUp();
- } catch (RuntimeCamelException e) {
- FailedToCreateRouteException cause = assertIsInstanceOf(FailedToCreateRouteException.class, e.getCause());
- IllegalArgumentException iae = assertIsInstanceOf(IllegalArgumentException.class, cause.getCause());
- assertEquals("ErrorHandlerBuilder with id foo not found in registry.", iae.getMessage());
+ fail("Should have thrown an exception");
+ } catch (Exception e) {
+ // expected
}
}
@Override
protected AbstractXmlApplicationContext createApplicationContext() {
- return new ClassPathXmlApplicationContext("org/apache/camel/spring/config/ErrorHandlerCamelContextRefNotFoundTest.xml");
+ return new ClassPathXmlApplicationContext("org/apache/camel/spring/config/OnExceptionNoExceptionConfiguredTest.xml");
}
public void testDummy() {
Copied: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/config/OnExceptionNoExceptionConfiguredTest.xml (from r1058855, camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/config/ErrorHandlerCamelContextRefNotFoundTest.xml)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/config/OnExceptionNoExceptionConfiguredTest.xml?p2=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/config/OnExceptionNoExceptionConfiguredTest.xml&p1=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/config/ErrorHandlerCamelContextRefNotFoundTest.xml&r1=1058855&r2=1058879&rev=1058879&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/config/ErrorHandlerCamelContextRefNotFoundTest.xml (original)
+++ camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/config/OnExceptionNoExceptionConfiguredTest.xml Fri Jan 14 07:46:59 2011
@@ -22,15 +22,20 @@
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
">
- <camelContext errorHandlerRef="foo" xmlns="http://camel.apache.org/schema/spring">
+ <camelContext xmlns="http://camel.apache.org/schema/spring">
+
+ <onException>
+ <handled>
+ <constant>true</constant>
+ </handled>
+ <to uri="mock:error"/>
+ </onException>
+
<route>
<from uri="seda:a"/>
<to uri="seda:b"/>
</route>
- <route>
- <from uri="direct:c"/>
- <to uri="direct:d"/>
- </route>
+
</camelContext>
</beans>