camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Xavier Coulon <xcou...@gmail.com>
Subject Re: Filtering messages with simple regex
Date Thu, 03 Feb 2011 12:58:28 GMT
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...

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

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message