This example demonstrates the following aspects of the FTP support available with Spring Integration: 1. FTP Inbound Channel Adapter (transfers files from remote to local directory) 2. FTP Outbound Channel Adapter (transfers files from local to the remote directory) #### INBOUND CHANNEL ADAPTER #### To run INBOUND CHANNEL ADAPTER sample execute FtpInboundChannelAdapterSample test. You will see that based on configuration it will access sample remote directory which contains 3 files and will attempt to transfer them to a local directory which will be generated. Once copied the files will be sent as a payload of the message to a channel. The output should look like this: ===== Received first file message: [Payload=local-dir/a.txt][Headers={timestamp=1290066001349, id=9dca686a-cfd4-4d96-a1a7-761feb005e43}] Received second file message: [Payload=local-dir/b.txt][Headers={timestamp=1290066001650, id=d33a475d-fa71-4c5b-b73e-3147969f1c6f}] Received nothing else ===== As you can see, although the remote directory had 3 files we only received 2 since we were filtering only the files that end with 'txt'. #### OUTBOUND CHANNEL ADAPTER #### To run OUTBOUND CHANNEL ADAPTER sample execute FtpOutboundChannelAdapterSample test. You will see that based on configuration it will attempt to transfer this 'readme.txt' file to a remote directory 'remote-target-dir' The output should look like this: ===== Successfully transfered 'readme.txt' file to a remote location under the name 'readme.txt' ===== #### OUTBOUND GATEWAY #### Run the FtpOutoundGateway sample as a JUnit test; it creates 2 files, retrieves and removes them over ftp. It cleans up by removing the retrieved files. Test assumes full access to the filesystem via /tmp where the test files are created. Requires an ftp server running on localhost. Requires setting of user and password properties in user.properties.