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.