2.3. Configuring poller endpoints interactions with the file system
Overview
Poller endpoints interact with the file system in basic ways. You can configure a number of the aspects of this behavior including:
- if the endpoint creates the directory it is configured to poll
- if the endpoint polls the subdirectories of the configured directory
- if the endpoint deletes the files it consumes
- where the endpoint archives copies of the consumed files
Directory handling
The default behavior of a poller endpoint that is configured to poll a directory on the file system is to create the directory if it does not exist and to poll all of that directory's subdirectories. You can configure an endpoint to do only one, both, or none of these behaviors.
To configure an endpoint to not create the configured directory, you set its
autoCreateDirectory
attribute to false
. If the directory does not exist, the endpoint will do nothing. You will then have to create the directory manually.
To configure the endpoint to only poll the configured directory and ignore its subdirectories, you set the endpoint's
recursive
attribute to false
.
Example 2.2, “Poller endpoint that does not check subdirectories” shows the configuration for a poller endpoint that does not recurse into the subdirectories of the directory it polls.
Example 2.2. Poller endpoint that does not check subdirectories
<beans xmlns:file="http://servicemix.apache.org/file/1.0"
xmlns:foo="http://servicemix.org/demo/">
<file:poller service="foo:filePoller"
endpoint="filePoller"
targetService="foo:fileSender"
file="inbox"
recursive="false" />
...
</beans>
File retention
By default, poller endpoints delete a file once it is consumed. To configure the endpoint to leave the file in place after is consumed, set its
deleteFile
attribute to false
.
Example 2.3, “Poller endpoint that leaves files behind” shows the configuration for a poller endpoint that does not delete files.
Example 2.3. Poller endpoint that leaves files behind
<beans xmlns:file="http://servicemix.apache.org/file/1.0"
xmlns:foo="http://servicemix.org/demo/">
<file:poller service="foo:filePoller"
endpoint="filePoller"
targetService="foo:fileSender"
file="inbox"
deleteFile="false" />
...
</beans>
Important
When the poller endpoint does not automatically delete consumed files, the list of consumed files is stored in memory. If the Red Hat JBoss Fuse container is stopped and restarted, files that have been consumed, but not removed from the polling folder, will be reprocessed. One possible solution is to use a custom lock manager that stores a list of the consumed files to an external data store.
Archiving files
By default, poller endpoints do not archive files after they are consumed. If you want the files consumed by a poller endpoint to be archived you set the endpoint's
archive
attribute. The value of the archive
attribute is a URI pointing to the directory into which the consumed files will archived.
Important
Relative URIs are resolved from the directory in which the Red Hat JBoss Fuse container was started.
Example 2.4, “Poller endpoint that archives files” shows the configuration for a poller endpoint that files into a directory called
archives
.
Example 2.4. Poller endpoint that archives files
<beans xmlns:file="http://servicemix.apache.org/file/1.0"
xmlns:foo="http://servicemix.org/demo/">
<file:poller service="foo:filePoller"
endpoint="filePoller"
targetService="foo:fileSender"
file="inbox"
archive="archives" />
...
</beans>