On Fri, Mar 8, 2013 at 2:39 PM, jeff <[email protected]> wrote:
> the more performante way looks to do :
>
> from("file://C:/Temp/camel/input_test/?noop=true")
> .split()
> .tokenize("\n")
> // Business lock with possible reject / enrich etc ...
> .streaming()
>
> .to("stream:file?fileName=C:/Temp/camel/output_test/out.csv")
> .end()
> .end();
>
> But the stream is not closed ... Please help, I have to finish my proof of
> concept ! :)
>
Just use a bean to write to the file, and keep the FileOutputStream
open until the last message is processed.
Something a long the lines of:
public class MyFileWriter {
private FileOutputStream fos;
public void writeMyStuff(String data, @Header("CamelSplitCompleted")
boolean done) {
if (fos == null) {
fos = new FileOutputStream(new File("xxxx"));
}
fos.write(data.getBytes());
if (done) {
fos.close();
fos = null;
}
}
}
And then use this bean in the splitter instead of the to:stream
.bean(MyFileWriter.class);
> Thanks
>
> JF
>
>
>
>
>
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/Write-enriched-data-after-a-split-in-a-file-tp5728761p5728829.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
--
Claus Ibsen
-----------------
Red Hat, Inc.
FuseSource is now part of Red Hat
Email: [email protected]
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen