That would be cool, indeed ;-) I did not find any JIRA issue about that parser improvement. Should I open a new one for this subject ?
Regards, /Xavier On Thu, Feb 3, 2011 at 2:16 PM, Claus Ibsen <claus.ib...@gmail.com> wrote: > On Thu, Feb 3, 2011 at 1:58 PM, Xavier Coulon <xcou...@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.ib...@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 <xcou...@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: cib...@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: cib...@fusesource.com > Web: http://fusesource.com > Twitter: davsclaus > Blog: http://davsclaus.blogspot.com/ > Author of Camel in Action: http://www.manning.com/ibsen/ > -- Xavier