I'm using 2.5.0. Ok I will try with your solution and let you know. :) P.S. Just for knowledge... Is my code right?
2010/11/29 Claus Ibsen <[email protected]> > 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 <[email protected]> > 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: [email protected] > Web: http://fusesource.com > Twitter: davsclaus > Blog: http://davsclaus.blogspot.com/ > Author of Camel in Action: http://www.manning.com/ibsen/ >
