Documentation Migration How-to Download Release Notes Development Coding Specifications Original Proposal Project Documentation Front Page Project Info Project Reports Development Process | ### Tasks Add programmer and acceptance tests. Convert code to specified coding standards. Checkstyle report provided. Clean out any classes that don't belong in this project. Probably classes from org.apache.commons.net.util and org.apache.commons.net.io could be moved to their corresponding commons projects. DefaultFTPFileLister doesn't work with every FTP server. Some Microsoft and VMS FTP servers foil it. It is also wasteful of memory in that it parses the listing into a complete set of FTPFile instances when it could store the listing and just parse the listing on demand through an iterator. An FTPFileListParser implementation should be created that is backed by the original listing and iterates through it using a regular expression. Regular expressions could be installed based on FTP server system id's, so when a user runs across an unsupported server, he can register a regular expression rather than create a completely new hand-parsed FTPFileLister implementation. ( Partially implemented by Steve Cohen ) This partial implementation has some problems since it assumes that the ftp server is returning one line for each entry. Some ftp servers return two lines for each entry which makes the current implementation unusable with those ftp servers. One possible solution is to use the regular expression to parse the entries instead of assuming each line is one entry. Make buffer size settable for FTP data transfers using retrieveFile(). retrieveFile() uses Util.copyStream and a 1024 byte buffer which is too small for some applications (Solaris SMP). Divorce FTPClient from TelnetClient, getting rid of the TelnetClient threads which cause problems on some platforms (e.g., MacOS). Parse the client/server interactions without creating so many strings. Many operations are slow because of this. Add ESMTP and extended NNTP commands (e.g., NNTP authentication). Make NNTPClient.listNewsgropus() and NNTPClient.listNewNews() more efficient. Don't preparse into lots of little objects. TLS for FTP