Sender 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 where it writes files
how the endpoint names temporary files
The default behavior of a sender endpoint is to automatically create the target directory for its files if
that directory does not already exist. To configure an endpoint to not create the target 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.
Example 3.2 shows the configuration for a sender endpoint that does not automatically create its target directory.
Example 3.2. Sender endpoint that creates its target directory
<beans xmlns:file="http://servicemix.apache.org/file/1.0"
xmlns:foo="http://servicemix.org/demo/">
<file:sender service="foo:fileSender"
endpoint="fileSender"
directory="outbox"
autoCreateDirectory="false" />
...
</beans>
By default, sender endpoints overwrite existing files. If a message wants to reuse the name of an
existing file, the file on the file system is overwritten. You can configure a sender endpoint to append
the message to the existing file by setting the endpoint's append
attribute
to true.
Example 3.3 shows the configuration for an endpoint that appends messages to a file if it already exists.
Example 3.3. Sender endpoint that appends existing files
<beans xmlns:file="http://servicemix.apache.org/file/1.0"
xmlns:foo="http://servicemix.org/demo/">
<file:sender service="foo:fileSender"
endpoint="fileSender"
directory="outbox"
append="true" />
...
</beans>
By default, sender endpoints check the message exchange, or the message itself, for the name to use for the file being written. If the endpoint cannot determine a name for the target file, it will use a temporary file name. Table 3.2 describes the attributes used to generate the temporary file name.
![]() | Note |
---|---|
Checking for the name of the file to write is handled by the marshaler. For more information on marshalers see File Marshalers. |
The generated file names will have the form
.
The five Xs in the middle of the filename will be filled with randomly generated characters. So given the configuration shown in
Example 3.4, a possible temporary filename would be tempFilePrefixXXXXXtempFileSuffix
widgets-xy60s.xml
.
Example 3.4. Configuring a sender endpoint's temporary file prefix
<beans xmlns:file="http://servicemix.apache.org/file/1.0"
xmlns:foo="http://servicemix.org/demo/">
<file:sender service="foo:fileSender"
endpoint="fileSender"
directory="outbox"
tempFilePrefix="widgets-" />
...
</beans>