In that case you can also try the interceptor. Something like this, note the stop() at the end.
intercept().when(header("ROUTE_STOP").isNotNull()).stop(); Cheers, Taariq On Sun, Apr 3, 2016 at 5:01 AM, bocamel <johnz...@gmail.com> wrote: > Quinn, > > > > Thanks for the response. I think filter would be the closest solution to > what I was looking for – better than what I contemplated to do with setting > some headers and using <choice> in the route. But they all have a problem > with a long route having multiple steps: > > > > <route id="child_route"> > <from uri="direct:foo"/> > <process ref="proc1"/> > <process ref="proc2"/> > <process ref="proc3"/> > <process ref="proc4"/> > </route> > > > > If we want to be able to return from any point in proc1, proc2, proc3 or > proc4, it would be rather tedious to set up filters (or <choice>) at the > beginning of each step. > > > > Thanks again! > > > > From: Quinn Stevenson [via Camel] [mailto: > ml-node+s465427n5780329...@n5.nabble.com] > Sent: Saturday, April 2, 2016 10:43 PM > To: bocamel <johnz...@gmail.com> > Subject: Re: How to return early from a direct: subroute? > > > > What about using a filter? I think that can do what you’re after. > > > > On Apr 2, 2016, at 8:40 PM, bocamel <[hidden email]> wrote: > > > > Taariq, > > > > > > > > Thank you very much for your response. I think your suggestion is very > > interesting, though it was not exactly what I was looking for. > > > > > > > > Conceptually, to me, a direct: route is just a method call. But I cannot > > find an easy way to exit/return from such a method before it reaches its > > end. While one might be able to use a dynamic router with slip > returning a > > null value to fake this, it is not very straightforward. I wish there > is an > > exchange property ROUTE_RETURN that simply causes the exchange to exit > the > > current route and returns to the parent route if it has a parent route. > > > > > > > > Thanks again! > > > > > > > > From: taariq [via Camel] [mailto:[hidden email] <mailto:[hidden email]>] > > Sent: Friday, April 1, 2016 3:36 PM > > To: bocamel <[hidden email] <mailto:[hidden email]>> > > Subject: Re: How to return early from a direct: subroute? > > > > > > > > Did you already look at the dynamic router and routing slip patterns? > > > > > >> On 01 Apr 2016, at 17:12, bocamel <[hidden email]> wrote: > >> > >> I have two routes: > >> > >> <route id="route1"> > >> <from .../> > >> <to uri="direct:foo"/> > >> <to uri=.../> > >> </route> > >> > >> <route id="route2"> > >> <from uri="direct:foo"/> > >> <process ref="proc1"/> > >> <process ref="proc2"/> > >> </route> > >> > >> What should I do if, in proc1, I want to - for certain exchanges - > return > >> back to route1 without completing the entire route2? I know the > > ROUTE_STOP > >> property, but that would stop the exchange completely (without going > back > > to > >> route1). I can also set some header(s) and then use <choice> in the > > route2 > >> to achieve it. But I wonder if there is something analogous to > ROUTE_STOP > > > >> but more functions like ROUTE_RETURN. > >> > >> Any help would be greatly appreciated. > >> > >> > >> > >> > >> -- > >> View this message in context: > > > http://camel.465427.n5.nabble.com/How-to-return-early-from-a-direct-subroute > > -tp5780262.html > >> Sent from the Camel - Users mailing list archive at Nabble.com. > > > > > > > > _____ > > > > If you reply to this email, your message will be added to the discussion > > below: > > > > > http://camel.465427.n5.nabble.com/How-to-return-early-from-a-direct-subroute > < > http://camel.465427.n5.nabble.com/How-to-return-early-from-a-direct-subroute > > > > -tp5780262p5780271.html > > > > To unsubscribe from How to return early from a direct: subroute?, click > here > > < > http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscrib > < > http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscrib > > > > > e_by_code&node=5780262&code=am9obnp5aW5AZ21haWwuY29tfDU3ODAyNjJ8Mjk3Mjc3MTQ4 > >> . > > > > < > http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=macro_view > < > http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=macro_view > > > > > er&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNa > > > mespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.No > > > deNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_ema > > ils%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> NAML > > > > > > > > > > > > -- > > View this message in context: > http://camel.465427.n5.nabble.com/How-to-return-early-from-a-direct-subroute-tp5780262p5780328.html > < > http://camel.465427.n5.nabble.com/How-to-return-early-from-a-direct-subroute-tp5780262p5780328.html > > > > Sent from the Camel - Users mailing list archive at Nabble.com < > http://nabble.com/>. > > > > > > _____ > > If you reply to this email, your message will be added to the discussion > below: > > > http://camel.465427.n5.nabble.com/How-to-return-early-from-a-direct-subroute-tp5780262p5780329.html > > To unsubscribe from How to return early from a direct: subroute?, click > here < > http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=5780262&code=am9obnp5aW5AZ21haWwuY29tfDU3ODAyNjJ8Mjk3Mjc3MTQ4> > . > < > http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > NAML > > > > > > -- > View this message in context: > http://camel.465427.n5.nabble.com/How-to-return-early-from-a-direct-subroute-tp5780262p5780330.html > Sent from the Camel - Users mailing list archive at Nabble.com. >