Hi There is a ticket scheduled for Camel 3.0 to allow enrich and pollEnrich to support "dynamic uris" like the recipient list can do.
Though implementing this requires an API change and thus scheduled for 3.0. You can always use a java bean to consume from an dynamic computed endpoint. For example using consumer template etc. For ftp endpoints you may want to set disconnect=true, to avoid having the connection running for a longer period. On Sun, Mar 31, 2013 at 10:08 PM, Chris Wolf <cwolf.a...@gmail.com> wrote: > Claus, > > You addressed the issue of "dynamic URIs for Consumers" back in July-2009: > > http://camel.465427.n5.nabble.com/Dynamic-consumers-with-Camel-td476433.html > > However, all those use-cases, except for maybe #4, web console, which > I can't run all are about > calculating the URI *before* the context is started. What I'm looking > for is a way to create and insert > or update a polling consumer's URI - at runtime - *after* the context > is started. > > For example: > > from("direct:start") > .beanRef("config") > .convertBodyTo(Document.class) > .setHeader("Ftp_URI").xquery( > "concat('ftp://'" +...some more xpaths into the > inbound config doc...), String.class) > .pollEnrich(/* whoops! this is referenced at route > setup time, not route runtime... - it won't work */) > .to("log:..."); > > So the question, more generally, is is it possible to alter the route > definition - at runtime? i.e. after the route/context are started? > > You sorted of hinted at this in that July-2009 posting when you said: > > "2) You can always stop, modify and start a route in Camel at runtime." > > I don't see how that would work since I would likely be attempting to > modify the route at runtime > from a bean method in the route - or are you suggesting one route > stops/modifies another route? > > So the way I see it is - I would create the ftp route with a bogus URI > and option "&startScheduler=false", > on the ftp endpoint, or autoStart=false on the route. Then in > *another* route - the "configurer" route, > I guess, access the ftp route and reconfigure the endpoint with the > real settings, then start it's poll scheduler (or start it's route). > > Something like that? Any easier, more direct way? > > Thanks, > > > Chris -- Claus Ibsen ----------------- Red Hat, Inc. FuseSource is now part of Red Hat Email: cib...@redhat.com Web: http://fusesource.com Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen