              Apache Apache Commons Net
                  Version 3.5
                 RELEASE NOTES

The Apache Commons Net team is pleased to announce the release of Apache Apache Commons Net 3.5

Apache Commons Net library contains a collection of network utilities and protocol implementations.
Supported protocols include: Echo, Finger, FTP, NNTP, NTP, POP3(S), SMTP(S), Telnet, Whois

This is mainly a bug-fix release. See further details below.

This release is binary compatible with previous releases.
 However it is not source compatible with releases before 3.4, as some methods were added to the interface NtpV3Packet in 3.4


The code now requires a minimum of Java 1.6.

Notable additions:
 The IMAP examples can now get password from console, stdin or an environment variable.

Changes in this version include:

New features:
o           Alternative password input methods for IMAP examples
o           More tests for Feb 29 handling.

Fixed Bugs:
o NET-583:  FTPClient.getReplyString() returns wrong value after connect() Thanks to Holger Rehn.
o NET-586:  Don't use Feb 29 for short future date tests
o           Documentation tweaks



For complete information on Apache Commons Net, including instructions on how to submit bug reports,
patches, or suggestions for improvement, see the Apache Apache Commons Net website:

http://commons.apache.org/proper/commons-net/