FuseESB 7.1 - ErrorHandler Properties Modified by Design Mode
mhuisking_michael.c.huisking Jan 3, 2013 8:12 PMHi,
I've been playing around with the new version of the IDE (nice) and am having a problem when I define a DeadLetterChannel error handler and attach it to the camel context and then switch to the graphical design view.
For an example, I used the default camel-context.xml file that is generated by the Spring archetype, along with a simple little error handler def:
<?xml version="1.0" encoding="UTF-8"?> <!-- Configures the Camel Context--> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel="http://camel.apache.org/schema/spring" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"> <camelContext errorHandlerRef="dlc" xmlns="http://camel.apache.org/schema/spring"> <errorHandler id="dlc" type="DeadLetterChannel" deadLetterUri="log://deadLetterQueue"> <redeliveryPolicy delayPattern="1:60000;2:300000;3:3600000;4:7200000;5:14400000;6:43200000" retryAttemptedLogLevel="ERROR" asyncDelayedRedelivery="true" maximumRedeliveries="6"></redeliveryPolicy> </errorHandler> <route> <description>here is a sample which processes the input files (leaving them in place - see the 'noop' flag) then performs content based routing on the message using XPath</description> <from uri="file:src/data?noop=true"></from> <choice> <when> <xpath>/person/city = 'London'</xpath> <log message="UK message"></log> <to uri="file:target/messages/uk"></to> </when> <otherwise> <log message="Other message"></log> <to uri="file:target/messages/others"></to> </otherwise> </choice> </route> </camelContext> </beans>
If I save it this way (without switching over to "Design" view) and run it everything works fine. However, if I switch to Design view, my error handler becomes:
<errorHandler rollbackLoggingLevel="WARN" level="ERROR" deadLetterUri="log://deadLetterQueue" type="DeadLetterChannel" id="dlc">
Those added attributes of rollbackLoggingLevel and level are not valid for a DeadLetterChannel error handler (Error = "IllegalArgumentException: Attribute rollbackLoggingLevel can only be used if type is TransactionErrorHandler")
Is there something about this particular route that's causing the designer to think this is a TransactionErrorHandler instead of a DeadLetterChannel type handler?
This is for FuseIDE 7.1.0.fuse-047 32 bit Windows7
Thanks in advance,
Mick
Edited by: mhuisking on Jan 4, 2013 1:10 AM
Added IDE and OS versions.