Author: ningjiang
Date: Sat Mar 27 05:06:19 2010
New Revision: 928146
URL: http://svn.apache.org/viewvc?rev=928146&view=rev
Log:
CAMEL-1799 Now errorHandle can be placed inside the camelContext
Modified:
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/ErrorHandlerDefintion.java
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/handler/ErrorHandlerDefintionParserTest.java
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/handler/ErrorHandlerDefinitionParser.xml
Modified:
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java?rev=928146&r1=928145&r2=928146&view=diff
==============================================================================
---
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
(original)
+++
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java
Sat Mar 27 05:06:19 2010
@@ -138,7 +138,8 @@ public class CamelContextFactoryBean ext
@XmlElement(name = "template", type =
CamelProducerTemplateFactoryBean.class, required = false),
@XmlElement(name = "consumerTemplate", type =
CamelConsumerTemplateFactoryBean.class, required = false),
@XmlElement(name = "proxy", type = CamelProxyFactoryDefinition.class,
required = false),
- @XmlElement(name = "export", type =
CamelServiceExporterDefinition.class, required = false)})
+ @XmlElement(name = "export", type =
CamelServiceExporterDefinition.class, required = false),
+ @XmlElement(name = "errorHandler", type = ErrorHandlerDefintion.class,
required = false)})
private List beans;
@XmlElement(name = "routeBuilder", required = false)
private List<RouteBuilderDefinition> builderRefs = new
ArrayList<RouteBuilderDefinition>();
Modified:
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/ErrorHandlerDefintion.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/ErrorHandlerDefintion.java?rev=928146&r1=928145&r2=928146&view=diff
==============================================================================
---
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/ErrorHandlerDefintion.java
(original)
+++
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/ErrorHandlerDefintion.java
Sat Mar 27 05:06:19 2010
@@ -44,7 +44,7 @@ public class ErrorHandlerDefintion exten
@XmlAttribute(required = false)
private LoggingLevel level;
@XmlAttribute(required = false)
- private Boolean handled = true;
+ private Boolean handled;
@XmlAttribute(required = false)
private Boolean useOriginalMessage;
@XmlElement(name = "redeliveryPolicy", required = false)
Modified:
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java?rev=928146&r1=928145&r2=928146&view=diff
==============================================================================
---
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
(original)
+++
camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java
Sat Mar 27 05:06:19 2010
@@ -100,8 +100,10 @@ public class CamelNamespaceHandler exten
// jmx agent and property placeholder cannot be used outside of the
camel context
addBeanDefinitionParser("jmxAgent", CamelJMXAgentDefinition.class,
false);
addBeanDefinitionParser("propertyPlaceholder",
CamelPropertyPlaceholderDefinition.class, false);
- // errorhandler should not be the sub element of camelContext
- registerParser("errorHandler", new ErrorHandlerDefinitionParser());
+ // errorhandler could be the sub element of camelContext
+ BeanDefinitionParser parser = new ErrorHandlerDefinitionParser();
+ registerParser("errorHandler", parser);
+ parserMap.put("errorHandler", parser);
// camel context
boolean osgi = false;
@@ -262,7 +264,10 @@ public class CamelNamespaceHandler exten
|| localName.equals("proxy") ||
localName.equals("export")) {
// set the camel context
definition.getPropertyValues().addPropertyValue("camelContext", new
RuntimeBeanReference(contextId));
- }
+ }
+ if (localName.equals("errorHandler")) {
+
builder.addPropertyValue("errorHandlerRef", id);
+ }
}
}
}
Modified:
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/handler/ErrorHandlerDefintionParserTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/handler/ErrorHandlerDefintionParserTest.java?rev=928146&r1=928145&r2=928146&view=diff
==============================================================================
---
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/handler/ErrorHandlerDefintionParserTest.java
(original)
+++
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/handler/ErrorHandlerDefintionParserTest.java
Sat Mar 27 05:06:19 2010
@@ -27,6 +27,7 @@ import org.apache.camel.processor.Defaul
import org.apache.camel.processor.RedeliveryPolicy;
import
org.apache.camel.processor.exceptionpolicy.DefaultExceptionPolicyStrategy;
import org.apache.camel.processor.exceptionpolicy.ExceptionPolicyStrategy;
+import org.apache.camel.spring.CamelContextFactoryBean;
import org.apache.camel.spring.spi.TransactionErrorHandlerBuilder;
import org.springframework.context.support.ClassPathXmlApplicationContext;
@@ -83,6 +84,12 @@ public class ErrorHandlerDefintionParser
assertEquals("Wrong redeliveryDelay", 1000,
policy.getRedeliveryDelay());
assertEquals("Wrong logStackTrace", true, policy.isLogHandled());
}
+
+ public void testErrorHandlerInsideCamelContext() {
+ CamelContextFactoryBean factoryBean =
(CamelContextFactoryBean)ctx.getBean("&camel");
+ assertNotNull(factoryBean);
+ assertEquals("Wrong ErrorHandlerRef", "noErrorHandler",
factoryBean.getErrorHandlerRef());
+ }
}
Modified:
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/handler/ErrorHandlerDefinitionParser.xml
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/handler/ErrorHandlerDefinitionParser.xml?rev=928146&r1=928145&r2=928146&view=diff
==============================================================================
---
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/handler/ErrorHandlerDefinitionParser.xml
(original)
+++
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/handler/ErrorHandlerDefinitionParser.xml
Sat Mar 27 05:06:19 2010
@@ -71,9 +71,14 @@
<bean id="PROPAGATION_REQUIRED"
class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager" ref="txManager"/>
</bean>
+
+
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
+ <camel:errorHandler id="noErrorHandler" type="NoErrorHandler"/>
</camelContext>
+
+
<!-- END SNIPPET: example -->