diff --git a/src/reference/docbook/ftp.xml b/src/reference/docbook/ftp.xml
index 3cc4343d30..ba40414b5e 100644
--- a/src/reference/docbook/ftp.xml
+++ b/src/reference/docbook/ftp.xml
@@ -99,6 +99,40 @@ xsi:schemaLocation="http://www.springframework.org/schema/integration/ftp
placeholder support (See: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-factory-placeholderconfigurer).
+
+
+ Advanced Configuration
+
+
+
+ DefaultFtpSessionFactory provides an abstraction over the underlying client API which, in the current release of
+ Spring Integration, is Apache Commons Net. This spares you from the low level configuration details
+ of the org.apache.commons.net.ftp.FTPClient. However there are times when access to lower level FTPClient details is
+ necessary to achieve more advanced configuration (e.g., setting data timeout, default timeout etc.). For that purpose, AbstractFtpSessionFactory
+ (the base class for all FTP Session Factories) exposes hooks, in the form of the two post-processing methods below.
+
+ As you can see, there is no default implementation for these two methods. However, by extending DefaultFtpSessionFactory you can override these methods
+ to provide more advanced configuration of the FTPClient. For example:
+
+
@@ -229,12 +263,20 @@ xsi:schemaLocation="http://www.springframework.org/schema/integration/ftp
session-factory="ftpSessionFactory"
charset="UTF-8"
remote-file-separator="/"
+ auto-create-directory="true"
+ remote-directory-expression="headers.['remote_dir']"
+ temporary-remote-directory-expression="headers.['temp_remote_dir']"
filename-generator="fileNameGenerator"/>]]>
As you can see from the configuration above you can configure an FTP Outbound Channel Adapter via the
outbound-channel-adapter element while also providing values for various attributes such as filename-generator
(an implementation of the org.springframework.integration.file.FileNameGenerator strategy interface),
- a reference to a client-factory, as well as other attributes. Please refer to the schema for more details on
+ a reference to a session-factory, as well as other attributes. You can also see
+ some examples of *expression attributes which allow you to use SpEL
+ to configure things like remote-directory-expression, temporary-remote-directory-expression and remote-filename-generator-expression
+ (a SpEL alternative to filename-generator shown above). As with any component that allows the usage of SpEL, access to Payload and Message Headers is available via
+ 'payload' and 'headers' variables.
+ Please refer to the schema for more details on
the available attributes.
By default Spring Integration will use org.springframework.integration.file.DefaultFileNameGenerator if none is specified.