arinte
arinte

Reputation: 3728

Representing a route list from xml in camel DSL

How can I represent this route in Camel's DSL:

   <camel:camelContext id="camel-context">
      <camel:route id="conductor-event" trace="true">
         <camel:from uri="direct:conductor/event"/>
         <camel:log message="handling conductor-event: id=${exchangeId}"/>
         <!-- execute each filter in sorted order -->
         <camel:bean ref="beaner.BProcessors"/>
         <camel:log message="after: [bprocessors]: id=${exchangeId}"/>
         <!-- map the event to a route -->
         <camel:recipientList parallelProcessing="false">
            <camel:method ref="beaner.Mappings" />
         </camel:recipientList>
         <camel:log message="after event mapping: id=${exchangeId}"/>
      </camel:route>
   </camel:camelContext>

I have this so far, but I get a "Caused by: java.net.URISyntaxException: Illegal character in scheme name at index 0: %7BCamelToEndpoint=...":

    RouteDefinition routeDef = from("direct:conductor/event")
    .log( "handling conductor-event: id=${exchangeId}" )
    .beanRef( "beaner.BProcessors" )
    .log( "after: [bprocessors]: id=${exchangeId}" );
    ExpressionClause<RecipientListDefinition<RouteDefinition>> recipientList = routeDef.recipientList();
    recipientList.properties().setParallelProcessing( false );
    recipientList.method( "beaner.EventMappings" );
    routeDef.log( "after event mapping: id=${exchangeId}" );

Upvotes: 1

Views: 1401

Answers (2)

Claus Ibsen
Claus Ibsen

Reputation: 55555

You should use a RouteBuilder class in Java DSL to access the DSL. Then inside the configure method you can build the routes almost identical as in XML DSL.

See the getting started guide here: http://camel.apache.org/walk-through-an-example.html

Upvotes: -1

Ben ODay
Ben ODay

Reputation: 21015

here is the route in JavaDSL...note that the recipientList parallelProcessing is false by default...

from("direct:conductor/event")
    .log("handling conductor-event: id=${exchangeId}")
    .beanRef("beaner.BProcessors")
    .log("after: [bprocessors]: id=${exchangeId}")
    .recipientList(bean("beaner.Mappings"))
    .log("after event mapping: id=${exchangeId}");

Upvotes: 2

Related Questions