[ 
https://issues.apache.org/activemq/browse/CAMEL-1799?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=58529#action_58529
 ] 

Claus Ibsen commented on CAMEL-1799:
------------------------------------

Willem this is great. Its much better now.

I wonder if it would be _too_ much and have it being able understand than if 
you have set either a
- deadLetterUri
- transactionTemplateRef

And *not* change the type accordingly it should either
a) fail and say its a miss match. eg default type != deadLetterUri
b) or just change the type to the most appropiate type (deadLetterUri => 
deadLetterChannel) etc.

Maybe option b is _too_ magic. At least we should check for option a and throw 
an exception with the problem.

I do like option a the most as its the concept of least surprise. That you have 
to set a correct _type_ and matching options.


The other road to go, would be creating specialized XML for each different 
error handler, eg:
{code:xml}
  <deadLetterChannel .../>
  <defaultErrorHandler ../>
  <noErrorHandler ../>
  <loggingErrorHandler .../>
   <transactionalErrorHandler ../>
{code}

That is of course a bigger problem with 5 different XML types for the *same* as 
its an error handler.

So for now I think we should go for option a and add validation check for how 
the XML error handler was configured.

> Spring DSL - Add error handler DSL support so we avoid having to use spring 
> bean style
> --------------------------------------------------------------------------------------
>
>                 Key: CAMEL-1799
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1799
>             Project: Apache Camel
>          Issue Type: New Feature
>          Components: camel-spring
>    Affects Versions: 2.0-M2
>            Reporter: Claus Ibsen
>            Assignee: Willem Jiang
>             Fix For: Future
>
>
> We could use an DSL for error handling in Spring DSL
> Then we can use the <redeliveryPolicy/> tag as well. And have an enum to 
> specify the type in case we want a dead letter channel instead or 
> transactional instead
> {code:xml}
> <errorHandler id="myErrorHandler" type="DeadLetterChannel">
>     <deadLetter uri="log:dead"/>
>     <redeliveryPolicy maximumRedeliveries="5" logStackTrace="true" 
> backOffMultiplier="2"/>
> </errorHandler>
> {code}
>                    

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to