<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This file is also used by the maven-changes-plugin to generate the release notes.
Useful ways of finding items to add to this file are:

1.  Add items when you fix a bug or add a feature (this makes the 
release process easy :-).

2.  Do a JIRA search for tickets closed since the previous release.

3.  Use the report generated by the maven-changelog-plugin to see all
SVN commits. TBA how to use this with SVN.

To generate the release notes from this file:

mvn changes:announcement-generate
mv target/announcement/release-notes.vm RELEASE-NOTES.txt
then tweak the formatting if necessary 
and commit

The <action> type attribute can be add,update,fix,remove.
-->

<document>
    <properties>
        <title>Changes</title>
        <author email="rwinston@apache.org">Rory Winston</author>
    </properties>

    <!-- NOTE: 
    The description below is specially formatted so as to improve the layout of the generated release notes:
    The parsing process removes all line feeds, replacing them with a single space.
    The Velocity template in resources/templates has been enhanced to replace pairs of adjacent spaces
    with a new-line in the release notes. (These spaces are ignored when displaying HTML).
    If the output is not quite correct, check for invisible trailing spaces!
     -->

    <body>
        <release version="2.2" date="Nov 2010" description="
This is primarily a maintenance release, but it also includes new features and enhancements.

  Users of version 2.0 are encouraged to upgrade to 2.2, as this release includes some important bug fixes.

  See the detailed list of changes below for full description of all bug fixes and enhancements.

">
            <action issue="NET-334" dev="sebb" type="fix">
            FromNetASCIIInputStream can throw a NullPointerException
            </action>
            <action issue="NET-341" dev="sebb" type="fix">
            FTPClient.remoteAppend(String filename) uses STOR instead of APPE
            </action>
            <action issue="NET-339" dev="sebb" type="fix">
            Incorrect parsing of timestamp on Windows CE
            Fix parsing to allow for new-style DOS listing using 24hr clock rather than AM/PM
            </action>
            <action issue="NET-338" dev="sebb" type="add">
            ftp.FTPClient.initiateListParsing(String parserKey, String pathname) 
            can call createFileEntryParser with null systemName. 
            Fix this by adding getSystemType() which does not return null, and deprecating getSystemName().
            </action>
            <action issue="NET-244" dev="sebb" type="add">
            Add support for FTPFileFilter filters. New classes FTPFileFilter, FTPFileFilters, new methods:
            FTPListParseEngine#getFiles(FTPFileFilter filter)
            FTPClient.listFiles(String pathname, FTPFileFilter filter)
            </action>
            <action issue="NET-313" dev="sebb" type="fix">
            Optionally enable EPSV with IPv4; Only send EPRT with IPv6.
            Fix incorrect port used with EPRT. Allow activeMaxPort == activeMinPort in getActivePort() method.
            </action>
            <action issue="NET-328" dev="sebb" type="fix">
            FromNetASCIIInputStream.read(byte[], int, int) may change length passed to superclass if not doing conversion
            </action>
            <action issue="NET-74" dev="sebb" type="add">
            Testcase to show WindowSizeOptionHandler is working OK
            </action>
            <action issue="NET-330" dev="sebb" type="fix">
            The method VMSFTPEntryParser.parseFileList(InputStream listStream) should not be present.
            Partial fix - marked method as deprecated and to be removed
            </action>
            <action issue="NET-180" dev="sebb" type="fix">
            Telnet EOR is "consumed" by TelnetInputStream when in BINARY transmission.
            Send notification to TelnetNotificationHandler.
            </action>
            <action issue="NET-329" dev="sebb" type="fix">
                TelnetInoutStream#__read() bug in the __receiveState handling for the _STATE_IAC state.
            </action>
            <action issue="NET-283" dev="sebb" type="fix">
                SocketClient should ensure input and output streams are closed
            </action>
            <action issue="NET-302" dev="sebb" type="fix">
                FTP: initiateListParsing should not cache entryParser
            </action>
            <action issue="NET-282" dev="rwinston" type="fix">
                Improvement to isInRange method in SubnetUtil.SubnetInfo class
            </action>
            <action issue="NET-266" dev="rwinston" type="fix">
                FTPClient.listFiles() corrupts file name in certain circumstances
            </action>
            <action issue="NET-264" dev="sebb" type="fix">
                Telnet spyStream NullPointerException
            </action>
            <action dev="sebb" type="update">
                Deprecated the following unused fields from org.apache.commons.net.ftp.FTPSClient:
                KEYSTORE_ALGORITHM, PROVIDER, STORE_TYPE, TRUSTSTORE_ALGORITHM
            </action>
            <action dev="niallp" type="fix">
                Fix site reports
            </action>
            <action issue="NET-285" dev="rwinston" type="fix">
                Add support for setting external host ip/port range
            </action>
            <action issue="NET-290" dev="rwinston" type="fix">
                Add fix and testcase for DotTerminatedMessageReader
            </action>
            <action issue="NET-288" dev="rwinston" type="fix">
                Add support for IPv6 EPRT/EPSV
            </action>
            <action issue="NET-305" dev="rwinston" type="fix">
                Fix SubnetUtils for /32 subnets and add inclusive host count flag
            </action>
            <action issue="NET-300" dev="rwinston" type="fix">
                Fix NPE when listHiddenFiles was on
            </action>
            <action issue="NET-215" dev="rwinston" type="fix">
                UNIXFTPEntryParser didn't preserve trailing whitespace in files
            </action>
            <action issue="NET-236" dev="rwinston" type="fix">
                method SubnetUtils.SubnetInfo.isInRange(addr) returns incorrect result
            </action>
            <action issue="NET-242" dev="rwinston" type="fix">
                Method createServerSocket of FTPSSocketFactory never called and thus UseClientMode is incorrect in a secured ftp transfer using active mode.
            </action>
            <action issue="NET-248" dev="rwinston" type="fix">
                Fix inconsistent command list in FTPCommand
            </action>
            <action issue="NET-250" dev="rwinston" type="fix">
                DefaultFTPFileEntryParserFactory did not work with Netware FTP server returning "NETWARE TYPE: L8"
            </action>
            <action issue="NET-257" dev="rwinston" type="fix">
                FTP.getReplyStrings() returned array of null Strings
            </action>
            <action issue="NET-259" dev="rwinston" type="fix">
                UnixFTPEntryParser regex did not match some directory entries
            </action>
            <action issue="NET-260" dev="rwinston" type="fix">
                SubnetUtils.SubnetInfo.isInRange(...) returned incorrect values
            </action>
            <action issue="NET-261" dev="rwinston" type="update">
                SubnetUtils.SubnetInfo.isInRange(...) behaviour not documented
            </action>
            <action issue="NET-262"> dev="rwinston" type="fix"
                SubnetUtils did not handle /31 and /32 CIDRs well
            </action>
            <action issue="NET-265" dev="rwinston" type="fix">
                UnixFTPEntryParser failed to parse entry in certain conditions
            </action>
            <action issue="NET-266" dev="rwinston" type="fix">
                FTPClient.listFiles() corrupted file name in certain circumstances
            </action>
            <action issue="NET-251" dev="rwinston" type="update">
                Moved class "ThreadContainer" from Threader.java into its own source file
            </action>
            <action issue="NET-256" dev="rwinston" type="fix">
                FTPSClient should accept a pre-configured SSLContext
            </action>
            <action issue="NET-263" dev="rwinston" type="add">
                SubnetUtils / SubNetInfo toString() implementations
            </action>
            <action dev="rwinston" type="fix">
                Improve NNTPClient handling of invalid articles
            </action>
            <action dev="rwinston" type="update">
                Refactor examples package.
            </action>
            <action dev="sebb" type="add">
                Javadoc fixes, improvements, and refactoring.
            </action>
            <action issue="NET-245" dev="rwinston" type="fix">
                Apply MFMT patch 
            </action>
            <action issue="NET-279" dev="rwinston" type="fix">
                Fix copying of reply lines collection
            </action>
            <action issue="NET-277" dev="rwinston" type="fix">
                Fix incorrect NNTP constant
            </action>
            <action issue="NET-274" dev="rwinston" type="fix">
                Restore socket state after CCC command
            </action>
            <action issue="NET-275" dev="rwinston" type="fix">
                Example code in FTPClient doesn't compile
            </action>
            <action dev="rwinston" type="fix">
                Fix inconsistent handling of socket read/write buffer size
            </action>
            <action issue="NET-294" dev="sebb" type="fix">
                UnixFTPEntryParser fails to parse some entries
            </action>
        </release>

        <release version="2.0" date="October 20, 2008" description="Java 5.0 release">
            <action dev="rwinston" type="fix" issue="NET-307">
                One of the "connect" method in class org.apache.commons.net.SocketClient doesn't handle connection timeout properly
            </action>
            <action dev="rwinston" type="update">
                Add null check in TelnetClient::disconnect().
            </action>
            <action dev="rwinston" type="remove">
                Remove deprecated FTPFileIterator and FTPFileList classes.
            </action>
            <action dev="rwinston" type="add">
                Add connection timeout functionality to SocketClient.
            </action>
            <action dev="rwinston" type="update">
                Make the KeyManager and TrustManager settable (niklas@protocol7.com).
            </action>
            <action dev="rwinston" type="update">
                Patch FTPSClient to set default SSLServerSocketFactory. Thanks niklas@protocol7.com
            </action>
            <action dev="rwinston" type="fix" issue="NET-68">
                Patch to prevent TFTPClient dropping last packet. Thanks palm@poplarware.com
            </action>
            <action dev="rwinston" type="update">
                Change isConnected() method to delegate to underlying socket connection.
            </action>
            <action dev="rwinston" type="add">
                FTPS (TLS and SSL) is now supported. Thanks to Jose Juan Montiel, Paul Ferraro, and Satoshi Ishigami.
            </action>
            <action dev="rwinston" type="update">
                Commons::Net now uses Maven 2. The project.xml has been replaced with a pom.xml, and the source tree layout
                has been changed accordingly.
            </action>
            <action dev="rwinston" type="remove">
                Removed old ftp2 proposal directories.
            </action>
            <action dev="rwinston" type="update">
                Commons::Net now uses JDK regex functionality, saving on an extra [oro] dependency. There are now
                no external dependencies required.
            </action>
            <action dev="rwinston" type="fix">
                Various syntactic issues (FindBugs issues, JDK 5.0 generics support)
            </action>
            <action dev="dfs" type="fix">
                Applied Rob Hasselbaum's
                rhasselbaum -> alumni.ithaca.edu
                patch for PR 38688 fixing a
                TelnetInputStream hang.
            </action>
            <action dev="dfs" type="update">
                Exposed control connection of FTP
                class via _controlInput_ and _controlOutput_
                protected member variables in response
                to PR 38309 reported by
                josejuan.montiel@gmail.com.
            </action>
            <action dev="dfs" type="fix">
                Reverted PR 32859 patch to TFTPClient
                because it caused final packets to not
                be sent.
            </action>
            <action dev="rwinston" type="update" issue="NET-36">
                Make FTPClient extend SocketClient instead of TelnetClient. From jhindsley@providerlink.com
            </action>
            <action dev="rwinston" type="fix" issue="NET-39">
                Adds an "e" symbolic link flag to the Unix FTP parser. From denisgaebler@netscape.net
            </action>
            <action dev="rwinston" type="fix" issue="NET-119">
                Allow hidden files to be listed. Thanks to mario@ops.co.at
            </action>
            <action dev="rwinston" type="update">
                Remove reflective check for Socket::isConnected() (no longer needed)
            </action>
            <action dev="rwinston" type="add" issue="NET-136">
                Added WindowSizeOptionHandler for TelnetClient. Thanks to yuvalkashtan@gmail.com
            </action>
            <action dev="rwinston" type="update">
                Refactored *Client classes under net/ package into separate subpackages, and move PrintCommandListener 
                out of the examples/ package.
            </action>
            <action dev="rwinston" type="add">
                Added an ant target to the Maven build to generate an FTP-only jar file, for clients who 
                wish to use only FTP-based functionality.
            </action>
            <action dev="rwinston" type="update">
                Custom SocketFactory interface has been replaced with the JDK SocketFactory implementation. Added
                ServerSocketFactory instance to SocketClient.
            </action>
            <action dev="rwinston" type="update">
                Removed redundant FTP.IMAGE_FILE_TYPE flag.
            </action>
            <action dev="rwinston" type="update">
                Added heavily updated MVSFTPEntryParser from henrik.sorensen@balcab.ch
            </action>
            <action dev="rwinston" type="remove">
                Removed deprecated classes FTPFileListParser, FTPFileListParserImpl, and DefaultFTPFileListParser. Also
                removed associated deprecated methods from FTPClient.
            </action>
            <action dev="rwinston" type="fix" issue="NET-164">
                Added encoding to FingerClient. From Ulrich Mayring.
            </action>
            <action dev="rwinston" type="fix" issue="NET-24">
                Catch BindException in RCommandClient::connect().
            </action>
            <action dev="rwinston" type="fix" issue="NET-178">
                Add encoding specifier to SMTPClient.
            </action>
            <action dev="rwinston" type="add">
                Add setters for socket send/receive buffer size to SocketClient.
            </action>
            <action dev="rwinston" type="fix" issue="NET-177">
                Fix PASV specifiers that broke previously. From Chris Eagle.
            </action>
            <action dev="rwinston" type="fix" issue="NET-182">
                Catch NPE in FTP parser factory method.
            </action>
            <action dev="rwinston" type="fix" issue="NET-172">
                Don't bind a UDP socket to NTP protocol port.
            </action>
            <action dev="rwinston" type="fix">
                Better handling of user and group names with embedded spaces in FTP listings.
            </action>
            <action dev="rwinston" type="fix" issue="NET-173">
                Add configurable multiline parsing.
            </action>
            <action dev="rwinston" type="fix" issue="NET-188">
                Add fix for broken leap year date parsing.
            </action>
            <action dev="rwinston" type="add">
                Add SubnetUtils class (suggested by Kenny McLeod)
            </action>
            <action dev="rwinston" type="fix" issue="NET-169">
                Add Unix-type handling for UNKNOWN Type: L8 syst() message systems.
            </action>
            <action dev="rwinston" type="fix" issue="NET-198">
                Allow FTPTimestampParserImpl to take a predefined Calendar instance representing current time.
            </action>
            <action dev="sebb" type="fix" issue="NET-194">
                Replace Exception with IOException
            </action>
            <action dev="sebb" type="update" issue="NET-214">
                VMS file permission parsing
            </action>
            <action dev="sebb" type="fix" issue="NET-208">
                TelnetInputStream swallows interruptedexception as IOException
            </action>
            <action dev="sebb" type="fix" issue="NET-223">
                the data connection socket is not closed when an IOException occurred
            </action>
            <action dev="sebb" type="fix" issue="NET-230">
                ParserInitializationException when connecting to a Unix FTP server: comparison string must be upper case
            </action>
            <action dev="sebb" type="fix" issue="NET-225">
                FTPFileEntryParserImpl.preParse() doesn't remove unparsable entries at the end of the file list
            </action>
        </release>    


<!-- 1.5.0 has not yet been released, so comment out the section until it is ready for release -->
<!--
        <release version="1.5.0" date="" description="">
            <action dev="dfs" type="fix" issue="NET-3">
                TelnetInputStream.java: Applied Rob
                Hasselbaum's
                rhasselbaum@alumni.ithaca.edu
                patch for PR 38688 fixing a
                TelnetInputStream hang.
            </action>
            <action dev="rwinston" type="fix"
                issue="NET-73">
                TelnetInputStream.java: Fixing another
                potential deadlock for 
                telnet and FTP (patch courtesy Rob Hasselbaum).
            </action>
            <action dev="dfs" type="update" issue="NET-57">
                FTP.java: Exposed control connection of
                FTP
                class via _controlInput_ and
                _controlOutput_
                protected member variables in response
                to PR 38309 reported by
                josejuan.montiel@gmail.com.
            </action>
            <action dev="rwinston" type="fix"
                issue="NET-68">
                TFTPClient.java: Fix bug causing final
                packets
                to not be sent.
            </action>
            <action dev="rwinston" type="fix"
                issue="NET-161">
                TFTPClient.java: Fix sendFile() (related
                to NET-68).
            </action>
            <action dev="rwinston" type="fix"
                issue="NET-181">
                TFTPClient.java: block number
                wraparound.
            </action>
            <action dev="scohen" type="fix" issue="NET-16">
                UNIXFTPEntryParser.java: support for
                group names with
                spaces (patch courtesy D. Kilzer).
            </action>
            <action dev="scohen" type="fix" issue="NET-62">
                DefaultFTPFileEntryParserFactory.java:
                Wrap 
                NoClassDefFoundError in FTP parser exception
                when ORO is not available.
            </action>
            <action dev="rwinston" type="add"
                issue="NET-33">
                FTPClient.java: Fix closing FTP
                ServerSocket after timeout
            </action>
            <action dev="rwinston" type="add">
                FTPClientConfig.java: Added an FTP
                parser for Netware FTP servers.
                Tested on Novell Netware 6.5.
            </action>
            <action dev="rwinston" type="fix"
                issue="NET-188">
                FTPTimestampParserImpl.java: Fix leap
                year date parsing bug.
            </action>
            <action dev="rwinston" type="fix">
                Article.java: Fix minor issues with NNTP
                parsing.
            </action>
        </release> 
-->


        <release version="1.4.1" date="December 3, 2005" description="fix release to restore jdk 1.3 compatability">
            <action dev="scohen" type="fix">
                Applied patches for defect 37113. Code incompatible with jdk 1.3. Original patch submitted by Andrea Rombald
            </action>
            <action dev="scohen" type="fix">
                Applied patches for defect 37522. updated project.xml to correct compatibility level.
            </action>
        </release>

        <release version="1.4.0" date="May 7, 2005" description="Some additions and enhancements">
            <action dev="dfs" type="fix">
                Fixed typo in method name.
                FTP.removeCommandListener() was missing
                the L.  Problem reported by
                Per.Lindberger@linkon.se.
            </action>
            <action dev="rwinston" type="fix">
                Applied fix for PR 33942 and PR 31793. Original patch submitted by mario@ops.co.at
            </action>
            <action dev="rwinston" type="fix">
                TFTPClient was ignoring final ACK (PR 32859). Thanks to perttu.auramo@ekahau.com
            </action>
            <action dev="rwinston" type="fix">
                Applied fix for ACL parsing in the FTP client (PR 33972). Submitted by robertalasch@yahoo.com
            </action>
            <action dev="rwinston" type="fix">
                Added missing NTP/SNTP unit tests to the codebase.
            </action>
            <action dev="dfs" type="fix">
                Applied fix for POP3Client returning empty reply strings (PR 34133). Thanks to sammy_c@lineone.net
            </action>
            <action dev="rwinston" type="fix">
                NTP port parameter was being ignored (PR 34219). Fixed by felix.eichhorn@3soft.de
            </action>
            <action dev="scohen" type="add">
                An FTP parser for MVS was added. Submitted by wnoto@openfinance.com
            </action>
            <action dev="scohen" type="add">
                Added functionality for extensible parsing of FTP responses, using a configurable format string. This should enable the FTP client to operate across many different locales and date formats.
            </action>
        </release>

        <release version="1.3.0" date="December 15, 2004" description="many fixes and enhancements">
            <action dev="rwinston" type="fix">
                Applied patch for PR 31793. Thanks to mario@ops.co.at
            </action>
            <action dev="rwinston" type="add">
                Added message threading functionality to the NNTP client.
            </action>
            <action dev="rwinston" type="update">
                Added return code 521 to FTPReply.java - this should obviate the need for the Ant FTP task to manually declare it.
            </action>
            <action dev="rwinston" type="fix">
                Add explicit notify() in TelnetInputStream::read(), so available() returns an accurate value. Thanks to tpalkot@gmail.com.
            </action>
            <action dev="rwinston" type="add">
                Added SNTP/NTP components into the Commons-Net codebase, courtesy of
                Jason Matthews.
            </action>
            <action dev="rwinston" type="add">
                Added POP3 test suite, courtesy of Mike George mike.george@comcast.net.
            </action>
            <action dev="scohen" type="fix">
                Applied fix for FTPClient returning null for certain timestamp formats (BUG #30737)
            </action>
            <action dev="rwinston" type="fix">
                Build.xml fixes - dont include example classes in redistributable
                .jar, remove test dependency from javadoc target, and exclude private members from generated javadoc.
            </action>
            <action dev="rwinston" type="fix">
                Fixed bug in TFTPClient::setMaxTimeout(), spotted by steve@widge.net
            </action>
            <action dev="dfs" type="fix">
                Some changes to facilitate compilation under JDK 5.0
            </action>
            <action dev="rwinston" type="fix">
                Return correct NNTP article count when high and low watermarks are 0.
                Spotted by jmordax@terra.es
            </action>
            <action dev="rwinston" type="fix">
                Remove trailing null byte in TFTP packets. Thanks to gerard.dens@alcatel.be
            </action>
            <action dev="dfs" type="fix">
                Many javadoc fixes.
            </action>
            <action dev="rwinston" type="update">
                Allow FTPClient to set transfer buffer size.
            </action>
            <action dev="rwinston" type="update">
                Ensure consistent handling of encoding throughout FTPClient
                operations. Patch submitted by leif@tanukisoftware.com.
            </action>
            <action dev="dfs" type="fix">
                Fix TelnetClient zombie thread issue
            </action>    


        </release>
        <release version="1.3.0-dev" date="July 28, 2004"
            description="regression fix">
            <action dev="dfs" type="fix">
                Fixed regression from migration to new parsers.  Most of the
                new parsers parsed the file size as an integer instead of a
                long.  Changed all of them to set the size to long.  This
                problem was detected by the reporter of:
                http://issues.apache.org/bugzilla/show_bug.cgi?id=30345
            </action>
        </release>
        <release version="1.2.2" date="June 25, 2004" description="fix release">
            <action dev="scohen" type="fix">
                fixed bug in the way FTPClient.listFiles worked when a directory was not
                specified.  Current directory was not being 'remembered'.  This was most 
                problematic in the dependent ftp task of Ant.
            </action>
            <action dev="scohen" type="fix">
                fixed handling of certain unusual "special" file types in the Unix parser.
            </action>
        </release>    

        <release version="1.2.1" date="May 6, 2004" description="fix release">
            <action dev="scohen" type="fix">
                changed code that rendered package uncompilable under JDK 1.2
            </action>
        </release>    

        <release version="1.2.0" date="April 30, 2004" description="autodetection of system for listings">
            <action dev="scohen" type="fix">
                Mario Ivankovits mario@ops.co.at added
                functionality supporting correct handling of the &quot;dirstyle&quot; 
                attribute of NT and OS400 servers that allows them to mimic Unix ftp servers.
                and a bug fix affecting handling of sticky and suid bits on Unix FTP servers.
            </action>
            <action dev="scohen" type="add">
                Mario Ivankovits mario@ops.co.at added parser for OS400.
            </action>
            <action dev="jbrekke,scohen" type="fix">
                Added a functional junit test testing list parsing against real servers 
                and fix several    bugs found through this test.
            </action>
            <action dev="dfs" type="add">
                Ted Wise ctwise@bellsouth.net provided a
                patch to add the XHDR extended NNTP command.
            </action>
            <action dev="scohen,dfs" type="update">
                Deprecated FTPFileListParser interface, DefaultFTPFileListParser
                class, and the FTPClient.listFiles methods that accepted an
                FTPFileListParser parameter.  These deprecated classes and methods
                will be removed in version 2.0.
            </action>
            <action dev="scohen" type="add">
                Added org.apache.commons.net.parser.FTPFileEntryParserFactory
                interface and a default implementation:
                DefaultFTPFileEntryParserFactory.  This addition facilitates the
                autodetection of which FTPFileEntryParser to use to generate
                listings.  FTPClient.listFiles methods were added that implement
                autodetection.
            </action>
        </release>

<!-- Not yet released; probably never will be 
        <release version="1.1.1" date="TBD" description="last jdk1.1 compatible release">
            <action dev="scohen" type="fix">
                Removed all JDK 1.1 incompatibilities that had been introduced
                unintentionally in previous versions.  Release 1.1.1 is the last 
                JDK 1.1 compatible release.  Any future 1.1.x maintenance releases
                will remain JDK !.1 compatible, but version 1.2 may break
                compatibility and will be guaranteed to work with only J2SE 1.2
                and later.
            </action>
        </release>
 -->
        <release version="1.1.0" date="October 23, 2003" description="many enhancements and bug fixes">
            <action dev="dfs" type="add">
                Rory Winston Rory.Winston@telewest.co.uk provided
                patches to add the following extended NNTP commands to
                NNTPClient: XOVER, AUTHINFO USER, AUTHINFO PASS, and
                LIST ACTIVE.
            </action>
            <action dev="dfs" type="fix">
                Changed connection hooks for FTP, SMTP, POP3, and NNTP classes
                to force use of an 8-bit US-ASCII superset (ISO-8859-1) for
                protocol communication.  This was necessary because
                InputStreamReader and OutputStreamWriter use the default
                client-side character set encoding.  fasselin@ca.ibm.com
                reported failure of SMTP on OS/390 which has EBCDIC as the
                native character set.
            </action>

            <action dev="dfs" type="fix">
                Applied variation of fix suggested by Matthieu Recouly
                matthieu.recouly@laposte.net so that
                UnixFTPEntryParser may handle listings of the form:
                    "drwxr-xr-x 1 usernameftp 512 Jan 29 23:32 prog"
                where the space between user name and group is omitted.
            </action>
            <action dev="dfs" type="fix">
                Applied patch from Stephane Este-Gracias
                sestegra@free.fr that fixes the parsing of
                VMS listings by VMSFTPEntryParser..
            </action>
            <action dev="brekke" type="fix">
                If the buffer queue run full, the run() method sometimes hangs forever.
                Changed wait() to wait(100) as with other changes in TelnetInputStream.
                Fix submitted From: J. Matysiak ( j.matysiak@cenit.de ).
            </action>
            <action dev="brekke" type="fix">
                FTP.smnt(String dir) was not passing on the dir to the SMNT command as an argument.
            </action>
            <action dev="brekke" type="add">
                Added a link to the FAQ currently hosted on the Apache Wiki.
            </action>
            <action dev="dfs" type="update">
                Changed package private NNTP._reader and NNTP._writer member
                variables to protected NNTP._reader_ and NNTP._writer_
                variables as suggested by issue report 16995 to facilitate
                extending NNTPClient functionality in subclasses.
            </action>
            <action dev="dfs" type="update">
                Changed name of FTPClient.__openDataConnection() to
                FTPClient._openDataConnection_() to remain consistent
                with the convention in the code that protected members
                are of the form _foo_.  At some point __openDataConnection()
                had been changed from private to protected.
            </action>
            <action dev="brekke" type="add">
                Added terminal option support to the telnet client with tests.
                From Bruno D'Avanzo ( b.davanzo@inwind.it ).
            </action>
            <action dev="scohen" type="add">
                New parsers merged with mainline with support for old list parsers.
            </action>
        </release>

        <release version="1.0.0" date="February 23, 2003" description="first jakarta-commons release">
            <action dev="brekke" type="add">
                Added a migration document for moving from NetComponents to Commons/Net.
            </action>
            <action dev="brekke" type="fix">
                Moved the ftp2 tree with tests to a proposal directory and setup 
                a build for that code.  This can grow in this area so users don't 
                think it is production ready.
            </action>
            <action dev="dfs" type="fix">
                Cleaned up license header on some source.
            </action>
            <action dev="dfs" type="fix">
                Moved .io and .util to .net.io and .net.util in preparation for
                1.0 release.
            </action>
            <action dev="dfs" type="fix">
                Fixed typo in NNTP.removeProtocolCommandListener() method name.  It
                was missing an L.  From: joev@atg.com.
            </action>
            <action dev="brekke" type="add">
                Various site updates including this changes doc and publish
                date information.
            </action>
            <action dev="dfs" type="fix">
                Patch for restarting FTP file transfers.  The offset was not
                being sent immediately before the data transfer command on
                account.  The bug was apparently introduced in NetComponents
                when it was decided to always send a PORT command before each data 
                transfer to avoid socket reuse problems on Windows.  
                From: Tapan Karecha ( tapan@india.hp.com ).
            </action>
            <action dev="dfs" type="fix">
                Applied a fix for potential deadlock in TelnetInputStream by
                changing a wait() to a wait(100).
                From: Tapan Karecha ( tapan@india.hp.com ).
            </action>
            <action dev="dfs" type="update">
                FTP examples now use passive ftp connections.
            </action>
        </release>
    </body>
</document>
