Apache Mina a network application framework has a sub project name “Apache FtpServer” it is a normal ftp server like any other FTP Server but with some really great features that a Java Developer would love to have. Apache Ftp Server is 100% pure Java code and is thus Open Source. It is also resumable, hence if a transfer breaks or stops in between a transfer process it can be resumed. It can transfer ASCII and binary data as any other FTP Server. It is easily configurable through a XML configuration file. Apache FtpSever also has a SSL/TSL support. One can explicitly ban any suspicious IP adresses. And finally the most powerful feature that i like the most as a Java Developer is that all the FTP events can be caught and processed like onUploadStart(), onUploadEnd(), onDownloadStart(), onDownloadEnd(), it can be done using something called as Ftplet. It is also very easy to embed Apache FtpSever in any Java application. Apache FtpSever can also be run as a standalone Ftp Server. And to add up it just take 5 minutes to get the Ftp Server UP and RUNNING. Check out the documentation for more information. It is so damn easy to get started. Here is the project page http://mina.apache.org/ftpserver/.
Example for Ftplet: http://apilevel.com/2011/05/12/ftplet-servlet-for-apache-ftpserver/