Hello,

I'm currently working with Camel (version 2.4.0-fuse-00-00, as provided in
Fuse ESB 4.3) to perform data integration from a file. The initial input is
a flat file which is splitted by line.
At one point, I have the following route :

<choice>
<when>
<simple>${in.body}.regex '^D1.*$'</simple>
<to uri="seda:dataintegration.filtered.elements" />
</when>
<otherwise>
<to uri="seda:dataintegration.ignored.elements" />
</otherwise>
</choice>

The goal of this route is to send line that begin with a "D1" to the uri
named "seda:dataintegration.filtered.elements", while the remaining elements
are not treated for now. They are sent to another uri, for logging purpose
in an output file.

Hélas, all the messages are sent to
the "seda:dataintegration.filtered.elements" URI, whatever the beginning of
the line is (D0, D1, D2, etc.)

In the output log of my test case, I have the following traces:

10:46:24.135 [Camel Thread 1 - seda://dataintegration.incoming.elements]
DEBUG o.a.camel.processor.SendProcessor - >>>>
Endpoint[seda://dataintegration.filtered.elements] Exchange[Message: D03xxx]
10:46:24.135 [Camel Thread 2 - seda://dataintegration.filtered.elements]
DEBUG o.a.camel.processor.SendProcessor - >>>>
Endpoint[mock://test:filtered] Exchange[Message: D03xxx]
10:46:24.135 [Camel Thread 2 - seda://dataintegration.filtered.elements]
DEBUG o.a.c.component.mock.MockEndpoint - mock://test:filtered >>>> 1 :
Exchange[Message: D03xxx] with body: D03xxx]

My testcase uses of mock endpoint to catch the messages. In the traces
above, the "mock:filtered" endpoint received a message whose body starts
with D03 (I removed the remaining of the body as it is not relevant here).

Any idea on what's wrong this my route definition ?

Thank you in advance.
Regards,

-- 
Xavier

Reply via email to