Is it possible to change from endpoint in dynamic way ?
for example I want change
for(endpointFirst).routeId(ROUTEID).to(finishEndpoint);
to
for(endpointSecond).routeId(ROUTEID).to(finishEndpoint);
I try use
camelContext.stopRoute(TestRoute.ROUTEID);
change old endpoint to new endpoint
camelContext.startRoute(TestRoute.ROUTEID);
but my efforts not work properly.
thanks for any help
You would need to
- stop the route
- remove the route
- change the endpoint
- add the route
- start the route
This allows you to change the from endpoint to whatever you want (for example something else)
Some components / endpoint do allow to change options an have those being updated at runtime. For example the JMS endpoint allows this, so you can
- stop the route
- change an option on the jms endpoint
- start the route
But there may be some components which cannot do that.
to change the from
endpoint, you can just dynamically add/remove routes via the context APIs or alter the route as Claus suggested
to change destination endpoints, use the recipient list EIP and an Expression to dynamically determine the endpoint based on message headers, variables, methods, etc...
from("direct:a")
.recipientList(header("foo"));