camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: Filtering messages with simple regex
Date Thu, 03 Feb 2011 13:16:52 GMT
On Thu, Feb 3, 2011 at 1:58 PM, Xavier Coulon <xcoulon@gmail.com> wrote:
> Hello Claus,
>
> Thanks a lot for your quick answer !
> My mistake, indeed. I did not may enough attention to the syntax, I was
> focusing on the regex itself...
>

Yeah the parser is a bit "simple". One day we will have a better
indexer and AST so we can generate better error messages for invalid
syntax.


> Best regards,
> /Xavier
>
> On Thu, Feb 3, 2011 at 1:44 PM, Claus Ibsen <claus.ibsen@gmail.com> wrote:
>
>> Hi
>>
>> Pay attention to how to use operators as documented
>> http://camel.apache.org/simple
>>
>> You need to have a single space before and after the operator. Do not use a
>> dot.
>>
>> <simple>${in.body}.regex '^D1.*$'</simple>
>>
>> Should be
>>
>> <simple>${in.body} regex '^D1.*$'</simple>
>>
>>
>> On Thu, Feb 3, 2011 at 1:30 PM, Xavier Coulon <xcoulon@gmail.com> wrote:
>> > 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
>> >
>>
>>
>>
>> --
>> Claus Ibsen
>> -----------------
>> FuseSource
>> Email: cibsen@fusesource.com
>> Web: http://fusesource.com
>> Twitter: davsclaus
>> Blog: http://davsclaus.blogspot.com/
>> Author of Camel in Action: http://www.manning.com/ibsen/
>>
>
>
>
> --
> Xavier
>



-- 
Claus Ibsen
-----------------
FuseSource
Email: cibsen@fusesource.com
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/

Mime
View raw message