Camel Component: Direct - 6.3

Talend ESB Mediation Developer Guide

EnrichVersion
6.3
EnrichProdName
Talend Data Fabric
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for ESB
Talend Real-Time Big Data Platform
task
Design and Development
EnrichPlatform
Talend ESB

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.

Note

The Camel Component: SEDA component provides asynchronous invocation of any consumers when a producer sends a message exchange.

Note

The Camel Component: VM component provides connections between Camel contexts as long they run in the same JVM .

URI format

direct:someName[?options]

where someName can be any string to uniquely identify the endpoint.

Options

Name

Default Value

Description

allowMultipleConsumers

true

@deprecated If set to false, then when a second consumer is started on the endpoint, an IllegalStateException is thrown. Will be removed in Camel 2.1: Direct endpoint does not support multiple consumers.

block

false

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.

timeout

30000

Camel 2.11.1: The timeout value to use if block is enabled.

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:

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:

<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 Camel Component: SEDA component, how they can be used together.