On Sat, Jun 27, 2009 at 11:09 AM, alloyer<allo...@gmail.com> wrote: > > When I remove a route through "camelContext.removeRouteDefinition(id)" > method, the route still do the message delivery sometimes. Is it caused by > the second route you mentioned as EventDrivenConsumerRoute? I think you need to use stopRoute instead. It will remove and stop at the same time.
> > > Claus Ibsen-2 wrote: >> >> On Fri, Jun 26, 2009 at 10:57 AM, alloyer<allo...@gmail.com> wrote: >>> >>> I see RouteDefinition uses List<FromDefinition> and >>> List<ProcessorDefinition> >>> as inputs and outputs to maintain the message endpoints. It seems a route >>> can handle several message flows, like: >>> from("direct:a").to("mock:results") >>> from("direct:b").to("mock:results") >>> But in my test case, when I set a route configuration which contains the >>> above two line of routes, the route builder will separate this >>> configuration >>> into two RouteDefinition instance. >>> >>> Route configuration form: >>> http://www.nabble.com/file/p24217052/routeDefinitionForm.jpg >>> routeDefinitionForm.jpg >>> Routes generated: >>> http://www.nabble.com/file/p24217052/routes.jpg routes.jpg >>> >>> Does the RouteDefinition always maintain only one sentence like >>> "from().to()" ? If not, how does it distinguish the <from,to> pairs? >> It uses a magic wand :) >> >> No kidding. >> >> You have defined in your route builder that you have 2 routes. As >> there a 2 from() in the DSL. >> >> If you want multiple inputs to the same route you can do that as well >> and have 1 route >> from("direct:a", "direct:b").to("mock:results"); >> >> Then there is only 1 from in the DSL and thus only 1 route, but it has >> multiple inputs. >> That is not so common as most users either dont know this or usually >> use 1 input. >> >> This applies for the model, eg the RoutesDefinition. >> >> But at runtime Camel will generate a new route per. input, regardless >> if there is only 1 route model. So in this case no matter how we >> define the route model >> Camel will at runtime generate 2 x runtime rutes. It does this as it >> wraps a route in the EventDrivenConsumerRoute as the starting point, >> eg the from("direct:a"). >> >> What might be better or something we can work on in the future is to >> allow Camel to detect this better and reuse the same runtime route >> for multiple EventDrivenConsumerRoute that was defined to use the same >> route model. >> >> >> >> >> >>> >>> Thanks >>> -- >>> View this message in context: >>> http://www.nabble.com/Does-the-RouteDefinition-instance-contain-only-one-route--tp24217052p24217052.html >>> Sent from the Camel Development 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 >> >> > > -- > View this message in context: > http://www.nabble.com/Does-the-RouteDefinition-instance-contain-only-one-route--tp24217052p24231568.html > Sent from the Camel Development 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