ControlBus ComponentAvailable as of Camel 2.11 The controlbus: component provides easy management of Camel applications based on the Control Bus EIP pattern. controlbus:command[?options] Where command can be any string to identify which type of command to use. Commands
Options
You can append query options to the URI in the following format, ?option=value&option=value&... SamplesUsing route commandThe route command allows you to do common tasks on a given route very easily, for example to start a route, you can send an empty message to this endpoint: template.sendBody("controlbus:route?routeId=foo&action=start", null); To get the status of the route, you can do: String status = template.requestBody("controlbus:route?routeId=foo&action=status", null, String.class); Using Simple languageYou can use the Simple language with the control bus, for example to stop a specific route, you can send a message to the "controlbus:language:simple" endpoint containing the following message: template.sendBody("controlbus:language:simple", "${camelContext.stopRoute('myRoute')}"); As this is a void operation, no result is returned. However, if you want the route status you can do: String status = template.requestBody("controlbus:language:simple", "${camelContext.getRouteStatus('myRoute')}", String.class); Notice: its easier to use the route command to control lifecycle of routes. The language command allows you to execute a language script that has stronger powers such as Groovy or to some extend the Simple language. For example to shutdown Camel itself you can do: template.sendBody("controlbus:language:simple?async=true", "${camelContext.stop()}"); Notice we use async=true to stop Camel asynchronously as otherwise we would be trying to stop Camel while it was in-flight processing the message we sent to the control bus component.
See Also
|