Direct Component
The direct: 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.
Tip | ||
---|---|---|
| ||
The SEDA component provides asynchronous invocation of any consumers when a producer sends a message exchange. |
Tip | ||
---|---|---|
| ||
The VM component provides connections between Camel contexts as long they run in the same JVM. |
URI format
Code Block | ||
---|---|---|
| ||
direct:someName[?options] |
Where someName can be any string to uniquely identify the endpoint
Options
Name | Default Value | Description | |
---|---|---|---|
|
| @deprecated If set to | |
|
| Camel 2.11.1: If sending a message to a direct endpoint which has no active consumer, then we can tell the producer to block and wait for the consumer to become active. | |
|
| Camel 2.11.1: The timeout value to use if block is enabled. | |
| true | Camel 2.16.0: Indicates whether the producer should fail by throwing an exception when sending to a DIRECT endpoint with no active consumers. |
|
You can append query options to the URI in the following format, ?option=value&option=value&...
Samples
In the route below we use the direct component to link the two routes together:
Code Block | ||
---|---|---|
| ||
from("activemq:queue:order.in") .to("bean:orderServer?method=validate") .to("direct:processOrder"); from("direct:processOrder") .to("bean:orderService?method=process") .to("activemq:queue:order.out"); |
And the sample using spring DSL:
Code Block | ||
---|---|---|
| ||
<route> <from uri="activemq:queue:order.in"/> <to uri="bean:orderService?method=validate"/> <to uri="direct:processOrder"/> </route> <route> <from uri="direct:processOrder"/> <to uri="bean:orderService?method=process"/> <to uri="activemq:queue:order.out"/> </route> |
See also samples from the SEDA component, how they can be used together.
Include Page | ||||
---|---|---|---|---|
|