Hi What version of Camel are you using?
And you can also do your filter logic in the aggregator. Just return oldExchange if the newExchange should be skipped. On Sun, Nov 28, 2010 at 9:39 PM, Marco Bettiol <jamiro...@gmail.com> wrote: > Hi guys, > > I'm new to apache Camel. It sound really great. > > I was trying to build my first application. I got a file with entries of > different type and I want to generate a new file with only a subset of the > lines (in the final version I will have to build up a POJO and send it using > web-service). > > > The problem is that when I try to aggregate the lines the output file > contains only the last not filtered row > > > Thank you for your support :) > > Marco > > > > Here is the code > > ------------------------------- > > public class Test { > > private DefaultCamelContext camel; > > public static void main(String[] args) throws Exception{ > > new Test(); > > } > > public Test() throws Exception{ > > camel = new DefaultCamelContext(); > > camel.addRoutes(new RouteBuilder() { > > public void configure() { from( > "file:/Users/marcobettiol/IES/data?noop=true") > > .split(body().tokenize("\n"), new > TVCEOrderAggregateStrategy()).filter(newPredicate() { > > �...@override > > public boolean matches(Exchange exchange) { > > String content =exchange.getIn().getBody(String.class); > > if(content.startsWith("vnboltes") || content.startsWith("vnbolcas")) > > return true; > > return true; > > //keep everything for test > > } > > }) > > .to("file:/Users/marcobettiol/IES/copy?autoCreate=true"); > > } > > }); > > camel.start(); > > Thread.sleep(5000); > > camel.stop(); > > } > > > } > > -------------------------- > > public class TVCEOrderAggregateStrategy implements AggregationStrategy{ > > public Exchange aggregate(Exchange oldExchange, Exchange newExchange) { > > if (oldExchange == null) { > > return newExchange; > > } > > String oldBody = oldExchange.getIn().getBody(String.class); > > String newBody = newExchange.getIn().getBody(String.class); > > String concatBody = oldBody.concat(newBody); > > oldExchange.getIn().setBody(concatBody); > > return oldExchange; > > > } > > > } > -- 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/