camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: stopping a route in spring dsl
Date Sat, 02 May 2009 07:25:32 GMT
Hi

You might want to double check your predicate works as expected
  <simple>${in.body} != null</simple>

The simple language might not work with null as such. I guess I need
to double check myself.
And it reminds me we might want to add a better syntax error detection
as well. I will go create a ticket about this.


On Fri, May 1, 2009 at 8:54 PM, jburkhardt <jasonburkhardt@yahoo.com> wrote:
>
> Ahhh alright after some more time reading I've come up with a solution thanks
> to you guys..  Here is what I've got now (publish route omitted):
> <camel:route>
>  <camel:from uri="direct:processors"/>
>  <camel:process ref="validationProcessor"/>
>  <camel:filter>
>    <simple>${in.body} != null</simple>
>    <camel:process ref="securityProcessor"/>
>  </camel:filter>
> </camel:route>
>
> <camel:route>
>  <camel:from
> uri="jmsBean:queue:IncomingQueue?exchangePattern=InOut?disableReplyTo=true"/>
>  <camel:split strategyRef="myAggregationStrategy">
>    <xpath>//myxpath</xpath>
>    <camel:to uri="direct:processors"/>
>  </camel:split>
>  <camel:filter>
>    <simple>${in.body} != null</simple>
>    <camel:to uri="direct:publish"/>
>  </camel:filter>
> </camel:route>
>
> This seems to work well..  Any critiques or suggestions for how I could
> improve things further are very welcome.
> Thanks,
> Jason
>
>
>
> Claus Ibsen-2 wrote:
>>
>> On Thu, Apr 30, 2009 at 10:13 PM, jburkhardt <jasonburkhardt@yahoo.com>
>> wrote:
>>>
>>> I've looked around JIRA and it seems using stop in spring dsl used to be
>>> an
>>> issue but has been resolved since Feb 09.  Perhaps I am attempting to use
>>> it
>>> incorrectly.
>>> I am using Camel 2.0 M1
>>>
>>> Here's what I'm trying to do:
>>> I have a route that receives messages from a JMS queue.
>>> After receiving the message it is run through a splitter, each
>>> "sub-message"
>>> for lack of a better term, gets run through a validation process and a
>>> security process.  The results are then aggregated back together and
>>> continue on the route.
>>>
>>> Here is what I'm doing now in my spring dsl:
>>> <camel:route>
>>>  <camel:from
>>> uri="jmsBean:queue:IncomingQueue?exchangePattern=InOut?disableReplyTo=true"/>
>>>  <camel:split strategyRef="myAggregationStrategyBean">
>>>    <xpath>//myxpath</xpath>
>>>    <camel:process ref="validationProcessor"/>
>>>    <camel:process ref="securityProcessor"/>
>>>  </camel:split>
>>> .
>>> .
>>> .
>>> </camel:route>
>>>
>>> Right now this works okay - I set an exception on the exchange in the
>>> validation or security process if it fails, and it does not get past the
>>> split.
>>> My issue is if it fails the validation process, I don't want it to even
>>> bother going to the security process, let alone to the aggregator after
>>> that.  Likewise if it fails security I don't want the aggregator to be
>>> called.
>>> Is this something that is possible?  Or is there some better way to
>>> accomplish what I am trying to do?
>>
>> Take a look at the filter EIP. It can drop unwanted messages.
>> http://camel.apache.org/message-filter.html
>>
>> And should be what your are looking for.
>>
>>
>>>
>>> I have tried defining an interceptor like this:
>>> <camel:intercept>
>>>  <camel:when>
>>>    <simple>${exception.message} != null</simple>
>>>  </camel:when>
>>>  <camel:stop/>
>>> </camel:intercept>
>>>
>>> Hoping that the interceptor would pick when I had set an exception on the
>>> exchange and stop the route.  This doesn't seem to have any effect.  The
>>> aggregator is still called every time.
>>
>> Yeah the intercept is really for incoming messages, should have had a
>> better name IMHO.
>> I recently blogged about it and updated the wiki about interceptors in
>> Camel:
>> http://camel.apache.org/intercept.html
>>
>>
>>
>>>
>>> Any help, especially if I am trying to do something completely the wrong
>>> way, would be much appreciated.
>>> Thanks,
>>> Jason
>>> --
>>> View this message in context:
>>> http://www.nabble.com/stopping-a-route-in-spring-dsl-tp23322604p23322604.html
>>> Sent from the Camel - Users (activemq) mailing list archive at
>>> Nabble.com.
>>>
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>> Apache Camel Reference Card:
>> http://refcardz.dzone.com/refcardz/enterprise-integration
>>
>>
>
> --
> View this message in context: http://www.nabble.com/stopping-a-route-in-spring-dsl-tp23322604p23338072.html
> Sent from the Camel - Users (activemq) mailing list archive at Nabble.com.
>
>



-- 
Claus Ibsen
Apache Camel Committer

Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus
Apache Camel Reference Card:
http://refcardz.dzone.com/refcardz/enterprise-integration

Mime
View raw message