camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andreas Jacobsen <andr...@andreasjacobsen.com>
Subject Re: Global exception policy across Route builder configure methods
Date Thu, 13 Sep 2012 09:34:38 GMT
That doesn't match my experiences. I've stepped through the
DefaultExceptionPolicyStrategy and global scope is definitely global
in Java DSL routebuilders too. I wish the documentation were more
clear on what the expected behavior should be.

I've created CAMEL-5456[0] because I thought it was meant to be
routebuilder-scoped, but if it's actually global to the camelcontext,
I'm very unhappy with the implementation.

Perhaps a dev could chime in and clarify the intent and suggested use?
The pattern Claus suggested works fine until you start using more
complex setups…

[0]: https://issues.apache.org/jira/browse/CAMEL-5456

On 11 September 2012 22:17, Mitko Kolev <me2stk@gmail.com> wrote:
> Hi,
>
> the "global" scope mentioned here
> http://camel.apache.org/exception-clause.html in this case actually means
> "route builder" scope.
> For example the rule for ValidationException will trigger for both routes
> in the same route builder (at least with the Camel version 2.6.x with which
> I did the test to find this out some months ago)
>
> configure(){
> ...
> onException(ValidationException.class).
>   to("activemq:validationFailed");
>
> from("seda:inputA").
>   to("validation:foo/bar.xsd", "activemq:someQueue");
>
> from("seda:inputB").to("direct:foo").
>   to("rnc:mySchema.rnc", "activemq:anotherQueue");
> }
>
> However, if you split this in 2 route builders like this
>
> configure(){
> ...
> onException(ValidationException.class).
>   to("activemq:validationFailed");
>
> from("seda:inputB").to("direct:foo").
>   to("rnc:mySchema.rnc", "activemq:anotherQueue");
> }
>
> &
>
> configure(){
> ...
> from("seda:inputB").to("direct:foo").
>   to("rnc:mySchema.rnc", "activemq:anotherQueue");
> }
>
> the onException will not process ValidationExceptions from the second route
> ("seda:inputB"). In this sense the onException clause is not context
> scoped, but rather route builder scoped.
>
> I guess the confusion comes from the Sping DSL format, as the onException
> clause is within the camelContext tag, so you might think the onException
> definition is "camel context" scoped (configuration of the camel context).
>
>
> Regards,
> Mitko
>
> On Tue, Sep 11, 2012 at 6:14 PM, Andreas Jacobsen <
> andreas@andreasjacobsen.com> wrote:
>
>> My understanding is that exception policies defined in global scope
>> are actually global. You could set up a seperate routebuilder
>> specifically for the global exception policies.
>>
>> Claus's suggestion works too, since the same exception policies will
>> be created several times.
>>
>> On 11 September 2012 16:26, vishal1981 <vishal.changrani@ericsson.com>
>> wrote:
>> > Alright thanks.
>> > But then global scope doesn't really means global to the camelcontext.
>> Its
>> > global to the routes currently being defined.
>> > Thanks for your help
>> >
>> >
>> >
>> > --
>> > View this message in context:
>> http://camel.465427.n5.nabble.com/Global-exception-policy-across-Route-builder-configure-methods-tp5719075p5719131.html
>> > Sent from the Camel - Users mailing list archive at Nabble.com.
>>

Mime
View raw message