On Sat, May 2, 2009 at 9:25 AM, Claus Ibsen <claus.ib...@gmail.com> wrote: > 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. Well in fact it does. The != null and == null is build in already. Well thats just the goodie about Camel that its clever itself.
public void testIsNull() throws Exception { assertExpression("${in.header.foo} == null", false); assertExpression("${in.header.none} == null", true); } public void testIsNotNull() throws Exception { assertExpression("${in.header.foo} != null", true); assertExpression("${in.header.none} != null", false); } > > > On Fri, May 1, 2009 at 8:54 PM, jburkhardt <jasonburkha...@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 <jasonburkha...@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 > -- 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