-
Story
-
Resolution: Done
-
Critical
-
6.2.1
-
None
-
Sprint 2016-B, Sprint 2016-C, Sprint 2016-D
-
When an external program writes files that are then consumed by a Camel File2 endpoint, the recommended approach to coordinate writing and reading is to use the doneFileName option in the Camel File2 consumer endpoint. In a recent customer issue rkieley_jira commented:
- For your foreign application, have it write a 'done' file so that Camel 'knows' a given file or batch of files is completely written. On the Camel side then utilize the 'doneFileName' option with
?doneFileName=${file:name}.done -> for a done file per file
OR
?doneFileName=done -> for camel to look for a single file named 'done' that indicates when the full batch of files is ready to be consumed
There is also a good description of how the doneFileName option works in cibsen@redhat.com's blog:
http://www.davsclaus.com/2010/12/camel-26-using-done-files-with-fileftp.html
In particular, note that in this particular use case (foreign program writing), it is not recommended to use the readLock option. So, we need to add a note to the readLock description as well, warning users to use doneFileName instead, if they have a foreign program writing the files.
Location to fix in the docs: "Apache Camel Component Reference" in the "File2" component chapter, in the descriptions for doneFileName and readLock. And would be better to add a new short section about doneFileName.
Also, please fix Apache docs page for File2: https://cwiki.apache.org/confluence/display/CAMEL/File2