Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
Currently the pipeline function takes an array of uri strings or Endpoints. It should also take 0 parameters to create a PipelineDefinition object that requires an end() to finish, similar to multicast(). To see why this is necessary, consider the multicast example from the wiki:
<route>
<from uri="activemq:SomeQueue"/>
<multicast>
<pipeline>
<bean ref="something"/>
<to uri="log:Something"/>
</pipeline>
<pipeline>
<bean ref="foo"/>
<bean ref="bar"/>
<to uri="activemq:OutputQueue"/>
</pipeline>
</multicast>
</route>
Since the contents of the two pipelines are not just uri's there is no easy way to create this route in Java. If we had a pipeline() function, we could do it as follows:
from("activemq:SomeQueue")
.multicast()
pipeline()
.beanRef("something")
.to("log:Something")
.end() //pipeline
.pipeline()
.beanRef("foo")
.beanRef="bar"/>
.to("activemq:OutputQueue)
.end() //pipeline
.end() ;//multicast