Red Hat Training

A Red Hat training course is available for Red Hat Fuse

10.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 10.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 10.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 10.3, “Poller endpoint that leaves files behind” shows the configuration for a poller endpoint that does not delete files.

Example 10.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 10.4, “Poller endpoint that archives files” shows the configuration for a poller endpoint that files into a directory called archives.

Example 10.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>