Thanks Marco ! It is an idea ! Claused to the Composed Message Processor ( http://camel.apache.org/composed-message-processor.html paragraph Example using only Splitter).
I am really suprised to have to make a such tips, it looks very complicated for a simple use case no ? 2013/3/8 Marco Westermann <marwesterm...@gmx.de> > Hi, > > maybe you can process this by using a bean. Then you can open the stream > at the beginning and close it at the end. I try to show you what I mean: > > FileWriterBean fwBean = new FileWriterBean(); > > public void configure() { > from("file://") > .bean(fwBean, "openFileForProcessing") > .split().tokenize("\n") > // do your enrichment > .bean(fwBean, "writeLine") > .end() > .bean(fwBean, "closeFile"); > } > > regards, Marco > > > Am 08.03.2013 12:23, schrieb Jean Francois LE BESCONT: > > Thanks Willem for help. >> >> My explaination are sometime to complicate, I will present it differently. >> >> I have a "big" file to process efficiently, for that if I have tried : >> >> Method 1 : >> from("file://C:/Temp/camel/**input_test/?noop=true") >> .split() >> .tokenize("\n") >> // Business logic with possible reject and enrich >> .recipientList( >> simple("stream:file?fileName=**C:/Temp/camel/output_test/out.**csv")) >> .end() >> .end() >> .end(); >> >> With this method, my process take 11 seconds but my file is not released >> (windows file is locked in windows). >> >> So I try with append : >> >> Method 2 : >> >> from("file://C:/Temp/camel/**input_test/?noop=true") >> .split() >> .tokenize("\n") >> // Business logic with possible reject and enrich >> >> .to("file://?fileName=C:/Temp/**camel/output_test/out.csv&** >> fileExist=Append") >> .end() >> >> .end(); >> >> File is not locked after but it take 1,40 minutes ... >> >> I finally try with the aggregate : >> >> Method 3 : >> >> from("file://C:/Temp/camel/**input_test/?noop=true") >> .split() >> .tokenize("\n") >> // Business logic with possible reject and enrich >> .aggregate(header(Exchange.**FILE_NAME_ONLY), new >> BodyInAggregatingStrategy()) >> .completionTimeout(3000) >> .to("file://C:/Temp/camel/**output_test/") >> .end() >> .end() >> .end(); >> >> As the example, but the process never finish, so I try to specify >> completionSize(7500) and completionTimeout(15000) but my output file >> doesn't contains all my row ( only 1 %). I have not find an example of how >> to use these parameters ... >> >> Please, what should I do to have a process efficient and with no lock ? >> >> Thanks >> >> JF >> >> >