Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
h2. ControlBus Component
*Available as of Camel 2.11*

The *controlbus:* component provides direct, synchronous invocation of any consumers when a producer sends a message exchange.
This endpoint can be used to connect existing routes in the *same* camel context.

{code}
controlbus:command[?options]
{code}

Where *command* can be any string to identify which type of command to use.

h3. Commands 
{div:class=confluenceTableSmall}
|| Command || Description ||
| {{language}} | Allows to specify a [Language] to use for evaluating the message body. If there is any result from the evaluation, then the result is put on the message body. |
{div}

h3. Options
{div:class=confluenceTableSmall}
|| Name || Default Value || Description ||
{div}

You can append query options to the URI in the following format, {{?option=value&option=value&...}}

h3. Samples

TODO:

h4. Using [Simple] language

You can use [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:
{code}
template.sendBody("controlbus:language:simple", "${camelContext.stopRoute('myRoute')}");
{code}

As this operation is a void operation, then no result is returned. However if you want the route status you can do:
{code}
String status = template.requestBody("controlbus:language:simple", "${camelContext.getRouteStatus('myRoute')}", String.class);
{code}


{include:Endpoint See Also}
- [ControlBus]
- [Camel JMX]