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
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 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>
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 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 Fuse ESB 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. |
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 Fuse ESB container was started. |
Example 2.4 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>