
Release 2.4.9 12 Nov 2000
  + HttpListener ignore InterruptedIOExceptions
  + HttpListener default max idle time = 20s
  + HtmlFilter handles non default encodings
  + HttpRequest.write uses ISO8859_1 encoding.

Release 2.4.8 23 Oct 2000
  + Fixed bug with 304 replies with bodies.
  + Improved win32 make files.
  + Fixed closing socket problem

Release 2.4.7 6th Oct 2000
  + Allow Objects to be passed to LogSink
  + Set content length on errors for keep alive.
  + Added encode methods to URI
  + Improved win32 build
  + fixes to SSL doco
  + Support key and keystore passwords
  + Various improvements to  ServletDispatch, PropertyTree and
    associated classes.

Release 2.4.6 - 16th Aug 2000 
  + Turn Linger off before closing sockets, to allow restart.
  + JsseListener & SunJsseListener added and documented
  + com.mortbay.Util.KeyPairTool added to handle openSSL SSL keys.
  + Minor changes to compile with jikes.
  + Added passive mode methods to FTP

Release 2.4.5 - 9th July 2000 
  + Don't mark a session invalid until after values unbound.
  + Formatted version in server info.
  + Added HtmlExpireFilter and removed response cache
    revention from HtmlFilter. 
  + Fixed transaction handling in JDBC wrappers
 
Release 2.4.4 - 3rd June 2000 
  + Many debug call optimizations
  + Added RolloverFileLogSink
  + Improved LogSink configuration
  + Support System.property expansions in PropertyTrees.
  + Added uk.org.gosnell.Servlets.CgiServlet to contrib
  + HttpRequest.setRequestPath does not null pathInfo.
  + BasicAuthHandler uses getResourcePath so it can be used 
    behind request dispatching
  + Added HTML.Composite.replace
  + FileHandler implements IfModifiedSince on index files.
  + Added build-win32.mak

Release 2.4.3 - 4th May 2000 STABLE
  + Pass Cookies with 0 max age to browser.
  + Allow CRLF in UrlEncoded

Release 2.4.2 - 23rd April 2000 
  + Added LogSink and FileLogSink classes to allow extensible
    Log handling.
  + Handle nested RequestDispatcher includes.
  + Modified GNUJSP to prevent close in nested requests. 
  + Added GNUJSP to JettyServer.prp file.

Release 2.4.1 - 9th April 2000 
  + Removed debug println from ServletHolder.
  + Set encoding before exception in FileHandler.
  + Fixed bug in HtmlFilter for tags split between writes.

Release 2.4.0 - 24th March 2000 
  + Upgraded to gnujsp 1.0.0
  + Added per servlet resourceBase configuration.
  + Absolute URIs are returned by getRequestURI (if sent by browser). 
  + Improved parsing of stack trace in debug mode.
  + Implemented full handling of cookie max age.
  + Moved SetUID native code to contrib hierarchy
  + Form parameters only decoded for POSTs
  + RequestDispatcher handles URI parameters
  + Fixed bug with RequestDispatcher.include()
  + Fixed caste problem in UrlEncoded
  + Fixed null pointer in ThreadedServer with stopAll
  + Added VirtualHostHandler for virtual host handling
  + Added doc directory with a small start

Release 2.3.5 - 25th January 2000 
  + Fixed nasty bug with HTTP/1.1 redirects.
  + ProxyHandler sends content for POSTs etc.
  + Force locale of date formats to US.
  + Fixed expires bug in Cookies
  + Added configuration option to turn off Keep-Alive in HTTP/1.0
  + Allow configured servlets to be auto reloaded.
  + Allow properties to be configured for dynamic servlets.
  + Added contrib/com/kiwiconsulting/jetty JSSE SSL adaptor to release.

Release 2.3.4 - 18th January 2000
  + include from linux rather than genunix for native builds
  + Fixed IllegalStateException handling in DefaultExceptionHandler
  + MethodTag.invoke() is now public.
  + Improved HtmlFilter.activate header modifications.
  + Cookie map keyed on domain as well as name and path.
  + DictionaryConverter handles null values.
  + URI decodes applies URL decoding to the path.
  + Servlet properties allow objects to be stored.
  + Fixed interaction with resourcePaths and proxy demo.

Release 2.3.3 - 19th October 1999 STABLE
  + Replaced UTF8 encoding with ISO-8859-1 for headers.
  + Use UrlEncoded for form parameters.
  + Do our own URL encoding with ISO-8859-1
  + HTTP.HTML.EmbedUrl uses contents encoding.

Release 2.3.2 - 17th October 1999 
  + Fixed getReader bug with HttpRequest.
  + Updated UrlEncoded with Jetty3 version.

Release 2.3.1 - 14th October 1999
  + Force UTF8 for FTP commands
  + Force UTF8 for HTML 
  + Changed demo servlets to use writers in preference to outputstreams
  + NullHandler/Server default name.name.PROPERTIES to load 
    prefix/name.name.properties
  + Use UTF8 in HTTP headers
  + Added Oracle DB adapter
  + Added assert with no message to Code
  + ThreadedServer calls setSoTimeout(_maxThreadIdleMs) on 
    accepted sockets. Idle reads will timeout.
  + Prevented thread churn on idle server.
  + HTTP/1.0 Keep-Alive (about time!).
  + Fixed GNUJSP 1.0 resource bug.

Release 2.3.0 - 5th October 1999
  + Added SetUID class with native Unix call to set the 
    effective User ID.
  + FTP closes files after put/get.
  + FTP uses InetAddress of command socket for data socket.

Release 2.3.0A - 22 Sep 1999  
  + Added GNUJSP 1.0 for the JSP 1.0 API.
  + Use javax.servlet classes from JWSDK1.0
  + Added "Powered by Jetty" button.
  + ServerContext available to HtmlFilters via context param
  + Made session IDs less predictable and removed race.
  + Added BuildJetty.java file.
  + Expanded tabs to spaces in source.

Release 2.2.8 - 15 Sep 1999
  + Fixed bug in Element.attribute with empty string values.
  + Made translation of getRequestURI() optional.
  + Removed recursion from TranslationHandler
  + Added disableLog() to turn off logging.
  + Allow default table attributes to be overriden.
  + Improved quoting in HTML element values

Release 2.2.7 - 9 Sep 1999
  + Reverted semantics of getRequestURI() to return untranslated URI.
  + Added GzipFilter for content encoding.
  + Added default row, head and cell elements to Table.
  + FileHandler passes POST request through if the file does not exist.

Release 2.2.6 - 5 Sep 1999
  + New implementation of ThreadPool, avoids a thread leak problem.
  + Fixed Cookie max age order of magnitude bug.
  + Cookies always available from getCookies.
  + Cookies parameter renamed to CookiesAsParameters
  + HttpRequest.getSession() always returns a session as per
    the latest API spec.
  + Added destroy() method on all HttpHandlers. 
  + ServletHandler.destroy destroys all servlets.
  + FileHandler does not server files ending in '/'
  + Ignore duplicate single valued headers, rather than
    reply with bad request, as IE4 breaks the rules.
  + Allow the handling of getPathTranslated to
    be configured in ServletHandler.
  + Removed JRUN options from ServletHandler configuration.
  + Added ServletRunnerHandler to the contrib directories.
  + Updated HTML package to better support CSS:
     - cssClass, cssID and style methods added to element.
     - SPAN added to Block
     - media added to Style
     - class StyleLink added.

Release 2.2.5 - 19 Aug 1999
  + Fixed bug with closing connections in ThreadedServer
  + Made start and stop non final in ThreadedServer
  + Better default handling of ServletExceptions
  + Always close connection after a bad request.
  + Set Expires header in HtmlFilter.
  + Don't override the cookie as parameter option.
  + Limited growth in MultiPartResponse boundary.
  + Improved error messages from Jetty.Server.
  + Close loaded class files so Win32 can overwrite
    them before GC (what a silly file system!).

Release 2.2.4 - 2 Aug 1999
  + ThreadedServer can use subclasses of Thread.
  + Better help on Jetty.Server
  + HttpRequests may be passed to HttpFilter constructors.
  + HtmlFilter blanks IfModifiedSince headers on construction
  + Fixed bugs in HtmlFilter parser and added TestHarness.
  + Improved cfg RCS script.

Release 2.2.3 - 27 July 1999
  + Fixed parser bug in HtmlFilter
  + Made setInitialize public in ServletHolder
  + Improved performance of com.mortbay.HTML.Heading
  + Added stop call to HttpServer, used by Exit Servlet.
  + Simplified JDBC connection handling so that it works 
    with Java1.2 - albeit less efficiently.
  + FileHandler defaults to allowing directory access.
  + JDBC tests modified to use cloudscape as DB.

Release 2.2.2 - 22 July 1999
  + Fixed bug in HtmlFilter that prevented single char buffers
    from being written.
  + Implemented getResourceAsStream in FileJarServletLoader
  + Fixed bug with CLASSPATH in FileJarServletLoader after attempt
    to load from a jar.
  + Fixed bug in com.mortbay.Util.IO with thread routines.
  + Moved more test harnesses out of classes.
  + File handler passes through not allowed options for 
    non existant files.
  + NotFoundHandler can repond with SC_METHOD_NOT_ALLOWED.
  + Improved com.mortbay.Base.Log handling of different JVMs
  + Minor fixes to README

Release 2.2.1 - 18 July 1999
  + Comma separate header fields.
  + Protect against duplicate single valued headers.
  + Less verbose debug in PropertyTree
  + Ignore IOException in ThreadedServer.run() when closing.
  + Limit maximum line length in HttpInputStream.
  + Response with SC_BAD_REQUEST rather than close in more 
    circumstances
  + Handle continuation lines in HttpHeader.
  + HtmlFilter resets last-modified and content-length headers.
  + Implemented com.mortbay.Util.IO as a ThreadPool
  + Decoupled ExceptionHandler configuration from Handler stacks.
    Old config style will produce warning and Default behavior.
    See new config file format for changes.
  + Added TerseExceptionHandler 
  + Added optional resourceBase property to HttpConfiguration. This
    is used as a URL prefix in the getResource API and was suggested
    by the JSERV and Tomcat implementors.

Release 2.2.0 - 1 July 1999
  + Improved feature description page.
  + Added Protekt SSL HttpListener
  + Moved GNUJSP and Protekt listener to a contrib hierarchy.
  + ThreadedServer.stop() closes socket before interrupting threads.
  + Exit servlet improved (a little).
  + Fixed some of the javadoc formatting.

Release 2.2.Beta4 - 29 June 1999
  + FileHandler flushes files from cache in DELETE method.
  + ThreadedServer.stop() now waits until all threads are stopped.
  + Options "allowDir" added to FileHandler.
  + Added getGlobalProperty to Jetty.Server and used this to
    configure default page type.
  + Updated README.txt
  + Restructured com.mortbay.Jetty.Server for better clarity and
    documentation.
  + Added comments to configuration files.
  + Made ServerSocket and accept call generic in ThreadedServer for
    SSL listeners.
  + Altered meaning of * in PropertyTree to assist in abbreviated
    configuration files.
  + Added JettyMinimalDemo.prp as an example of an abbreviated
    configuration.
  + Expanded Mime.prp file
  + Added property handling to ServletHandler to read JRUN
    servlet configuration files.

Release 2.2.Beta3 - 22 June 1999
  + Re-implemented ThreadedServer to improve and balance performance.
  + Added file cache to FileHandler
  + Implemented efficient version of 
    ServletContext.getResourceAsStream() that does not open a 
    new socket connection (as does getResource()).
  + LookAndFeelServlet uses getResourceAsStream to get the file
    to wrap. This allows it to benefit from any caching done and
    to wrap arbitrary content (not just files).
  + Restructure demo so that LookAndFeel content comes from simple
    handler stack.
  + Fixed file and socket leaks in Include and Embed tags.
  + Ran dos2unix on all text files
  + Applied contributed patch of spelling and typo corrections
  + Added alternate constructors to HTML.Include for InputStream.
  + Server.shutdown() clears configuration so that server may 
    be restarted in same virtual machine.
  + Improved Block.write.
  + Fixed bug in HttpResponse flush.

Release 2.2.Beta2 - 12 June 1999
  + Added all write methods to HttpOutputStream$SwitchOutputStream
  + Added com.mortbay.Jetty.Server.shutdown() for gentler shutdown
    of server. Called from Exit servlet
  + HttpRequest.getParameterNames() no longer alters the order
    returned by getQueryString().
  + Handle  path info of a dynamic loaded servlets and
    correctly set the servlet path.
  + Standardized date format in persistent cookies.

Release 2.2.Beta1 - 7 June 1999
  + Defined abstract ServletLoader, derivations of which can be 
    specified in HttpConfiguration properties. 
  + Implemented all HttpServer attribute methods by mapping to the
    HttpConfiguration properties.  Dynamic reconfiguration is NOT
    supported by these methods (but we are thinking about it).
  + Close files after use to avoid "file leak" under heavy load.
  + Fixed missing copyright messages from some contributions
  + Fixed incorrect version numbers in a few places.
  + Improved ThreadPool synchronization and added minThreads.
  + Allow configuration of MinListenerThreads, MaxListenerThreads,
    MaxListenerThreadIdleMs
  + HtmlFilter optimized for being called by a buffered writer.
  + Don't warn about IOExceptions unless Debug is on.
  + Limit the job queue only grow to the max number of threads.
  + Included GNUJSP 0.9.9
  + Optional use of DateCache in log file format
  + Fixed cache in FileJarServletLoader
  + Destroy requests and responses to help garbage collector.
  + Restructure ThreadedServer to reduce object creation.

Release 2.2.Beta0 - 31 May 1999
  + Servlet loader handles jar files with different files separator.
  + ThreadedServer gently shuts down.
  + Handle malformed % characters in URLs.
  + Included and improved version of ThreadPool for significant 
    performance improvement under high load.
  + HttpRequest.getCookies returns empty array rather than null for no
    cookies.
  + Added HttpResponse.requestHandled() method to avoid bug with 
    servlet doHead method.
  + Added Page.rewind() method to allow a page to be written multiple 
    times
  + Added "Initialize" attribute to servlet configuration to allow
    servlet to be initialized when loaded.
  + LogHandler changed to support only a single outfile and optional
    append.
  + Included contributed com.mortbay.Jetty.StressTester class
  + Token effort to keep test files out of the jar 
  + Removed support for STF

Release 2.2.Alpha1 - 7 May 1999
  + ServletHolder can auto reload servlets
  + Dynamic servlets can have autoReload configured 
  + Wait for requests to complete before reloading.
  + Call destroy on old servlets when reloading.
  + Made capitalization of config file more consistent(ish)
  + Fixed bug in SessionDump

Release 2.2.Alpha0 - 6 May 1999
  + Improved PropertyTree implementation
  + Old Jetty.Server class renamed to Jetty.Server21
  + New Server class using PropertyTree for configuration
  + HttpHandlers given setProperties method to configure via Properties.
  + HttpListener class can be configured
  + Mime suffix mapping can be configured.
  + Removed historic API from sessions
  + Improved SessionDump servlet
  + Fixed date overflow in Cookies
  + HttpResponse.sendError avoids IllegalStateException
  + Added ServletLoader implementation if ClassLoader.
  + Dynamic loading of servlets.
  + Added reload method to ServletHolder, but no way to call it yet.
  + Changed options for FileServer
  + Implemented ServletServer
  + Removed SimpleServletServer

Release 2.1.7 - 22 April 1999
  + Fixed showstopper bug with getReader and getWriter in
    requests and responses.
  + HttpFilter uses package interface to get HttpOutputStream

Release 2.1.6 - 21 April 1999
  + Reduced initial size of most hashtables to reduce
    default memory overheads.
  + Throw IllegalStateException as required from gets of 
    input/output/reader/writer in requests/responses.
  + New simpler version of PropertyTree
  + Updated PropertyTreeEditor
  + Return EOF from HttpInputStream that has a content length.
  + Added additional date formats for HttpHeader.getDateHeader

Release 2.1.5 - 15 April 1999
  + Session URL encoding fixed for relative URLs.
  + Reduced session memory overhead of sessions
  + Form parameters protected against multiple decodes when redirected.
  + Added setType methods to com.mortbay.FTP.Ftp
  + Fixed bugs with invalid sessions
  + Page factory requires response for session encoding
  + Moved SessionHandler to front of stacks
  + HtmlFilter now expands <!=SESSION> to the URL encoded session if
    required.
  + Instrumented most of the demo to support URL session encoding.
  + Implemented HttpRequest.getReader()
  + Servlet log has been diverted to com.mortbay.Base.Log.event()
    Thus debug does not need to be turned on to see servlet logs.
  + Fixed alignment bug in TableForm
  + Removed RFCs from package
  + Fixed bug in ServletDispatch for null pathInfo

Release 2.1.4 - 26 March 1999
  + Fixed problem compiling PathMap under some JDKs.
  + Reduced HTML dependence in HTTP package to allow minimal configuration
  + Tightened license agreement so that binary distributions are required
    to include the license file.
  + HttpRequest attributes implemented.
  + Session max idle time implemented.
  + pathInfo returns null for zero length pathInfo (as per spec).
    Sorry if this breaks your servlets - it is a pain!
  + fixed bug in getRealPath
  + getPathTranslated now call getRealPath with pathInfo (as per spec).

Release 2.1.3 - 19 March 1999
  + Added support for suffixes to PathMap
  + Included GNUJSP implementation of Java Server Pages
  + Use Java2 javadoc

Release 2.1.2 - 9 March 1999
  + JSDK 2.1.1
  + API documentation for JSDK 2.1.1
  + Cascading style sheet HTML element added.
  + Fixed trailing / bug in FileHandler (again!).
  + Converted most servlets to HttpServlets using do Methods.

Release 2.1.1 - 5 March 1999
  + Reduced number of calls to getRemoteHost for optimization
  + Faster version of HttpInputStream.readLine().
  + com.mortbay.Base.DateCache class added and used to speed date handling. 
  + Handle '.' in configured paths (temp fix until PropertyTrees)
  + Fast char buffer handling in HttpInputStream
  + Faster version of HttpHeader.read()
  + Faster version of HttpRequest
  + Size all StringBuffers

Release 2.1.0 - 22 February 1999
  + Session URL Encoding
  + PropertyTrees (see new Demo page)
  + ServletDispatch (see new Demo page)
  + image/jpg -> image/jpeg
  + Deprecated com.mortbay.Util.STF
  + getServlet methods return null.

Release 2.1.B1 - 13 February 1999
  + Fixed bug with if-modified-since in FileHandler
  + Added video/quicktime to default MIME types.
  + Fixed bug with MultipartRequest.
  + Updated DefaultExceptionHandler.
  + Updated InetAddrPort.
  + Updated URI.
  + Implemented Handler translations and getRealPath.
  + Improved handling of File.separator in FileHandler.
  + Implemented RequestDispatcher (NOT Tested!).
  + Implemented getResource and getResourceAsStream (NOT Tested!).
  + Replace package com.mortbay.Util.Gateway with 
    class  com.mortbay.Util.InetGateway

Release 2.1.B0 - 30 January 1999
  + Uses JSDK2.1 API, but not all methods implemented.
  + Added support for PUT, MOVE, DELETE in FileHandler
  + FileHandler now sets content length.
  + Added plug gateway classes com.mortbay.Util.Gateway
  + Fixed command line bug with SimpleServletConfig
  + Minor changes to support MS J++ and its non standard 
    language extensions - MMMmmm should have left it unchanged!

Release 2.0.5 - 15 December 1998
  + Temp fix to getCharacterEncoding
  + added getHeaderNoParams

Release 2.0.4 - 10 December 1998
  + Use real release of JSDK2.0 (rather than beta).
  + Portability issues solved for Apple's
  + Improved error code returns
  + Removed MORTBAY_HOME support from Makefiles
  + Improved default Makefile behaviour
  + Implement getCharacterEncoding

Release 2.0.3 - 13 November 1998
  + Limit threads in ThreadedServer and low priority listener option 
    greatly improve performance under worse case loads.
  + Fix bug with index files for Jetty.Server. Previously servers
    configured with com.mortbay.Jetty.Server would not handle
    index.html files.  Need to make this configurable in the prp file.
  + Fixed errors in README file: com.mortbay.Jetty.Server was called
    com.mortbay.HTTP.Server

Release 2.0.2 - 1 November 1998
  + Use JETTY_HOME rather than MORTBAY_HOME for build environment
  + Add thread pool to threaded server for significant
    performance improvement.
  + Buffer files during configuration
  + Buffer HTTP Response headers.

Release 2.0.1 - 27 October 1998
  + Released under an Open Source license.

Release 2.0.0 - 25 October 1998
  + Removed exceptional case from FileHandler redirect.
  + Removed Chat demo (too many netscape dependencies).
  + Fixed Code.formatObject handling of null objects.
  + Added multipart/form-data demo.

Release 2.0.Beta3 - 29 Sep 1998
  + Send 301 for directories without trailing / in FileHandler
  + Ignore exception from HttpListener
  + Properly implemented multiple listening addresses
  + Added com.mortbay.Jetty.Server (see README.Jetty)
  + Demo converted to an instance of com.mortbay.Jetty.Server
  + Fixed Log Handler again.
  + Added com.mortbay.HTTP.MultiPartRequest to handle file uploads

Release 2.0Beta2 - July 1998
  + Fixed Log Handler for HTTP/1.1
  + Slight improvement in READMEEs

Release 2.0Beta1 - June 1998
  + Improved performance of Code.debug() calls, significantly
    in the case of non matching debug patterns.
  + Fixed bug with calls to service during initialization of servlet
  + Provided addSection on com.mortbay.HTML.Page
  + Provided reset on com.mortbay.HTML.Composite.
  + Proxy demo in different server instance
  + Handle full URLs in HTTP requests (to some extent)
  + Improved performance with special asciiToLowerCase
  + Warn if MSIE used for multi part MIME.

Release 2.0Alpha2 - May 1998
  + JDK1.2 javax.servlet API
  + Added date format to Log
  + Added timezone to Log
  + Handle params in getIntHeader and getDateHeader
  + Removed HttpRequest.getByteContent
  + Use javax.servlet.http.HttpUtils.parsePostData
  + Use javax.servlet.http.Cookie
  + Use javax.servlet.http.HttpSession
  + Handle Single Threaded servlets with servlet pool

Release 1.3.5 May 1998
  + Fixed socket inet bug in FTP
  + Debug triggers added to com.mortbay.Base.Code
  + Added date format to Log
  + Correct handling of multiple parameters 

Release 2.0Alpha1 Wed 8 April 1998
  + Fixed forward bug with no port number 
  + Removed HttpRequestHeader class
  + Debug triggers added to com.mortbay.Base.Code
  + Handle HTTP/1.1 Host: header
  + Correct formatting of Date HTTP headers
  + HttpTests test harness
  + Add HTTP/1.1 Date: header    
  + Handle file requests with If-Modified-Since: or If-Unmodified-Since:
  + Handle HEAD properly
  + Send Connection: close
  + Requires Host: header for 1.1 requests
  + Sends chunked data for 1.1 responses of unknown length.
  + handle extra spaces in HTTP headers
  + Really fixed handling of multiple parameters 
  + accept chunked data
  + Send 100 Continue for HTTP/1.1 requests (concerned about push???)
  + persistent connections

Release 1.3.4 - Sun 15 Mar 1998
  + Fixed handling of multiple parameters in query and form content.
    "?A=1%2C2&A=C%2CD" now returns two values ("1,2" & "C,D") rather
    than 4.
  + ServletHandler now takes an optional file base directory
    name which is used to set the translated path for pathInfo in
    servlet requests.
  + Dump servlet enhanced to exercise these changes.

Release 1.3.3
  + Fixed TableForm.addButtonArea bug.
  + TableForm.extendRow() uses existing cell
  + Closed exception window in HttpListener.java

Release 1.3.2
  + Fixed proxy bug with no port number 
  + Added per Table cell composite factories

Release 1.3.1
  + Minor fixes in SmtpMail
  + ForwardHandler only forwards as http/1.0 (from Tobias.Miller)
  + Improved parsing of stack traces
  + Better handling of InvocationTargetException in debug
  + Minor release adjustments for Tracker

Release 1.3.0
  + Added DbAdaptor to JDBC wrappers
  + Beta release of Tracker

Release 1.2.0
  + Reintroduced STF
  + Fixed install bug for nested classes
  + Better Debug configuration
  + DebugServlet
  + Alternate look and feel for Jetty

Release 1.1.1
  + Improved documentation

Release 1.1 
  + Improved connection caching in java.mortbay.JDBC
  + Moved HttpCode to com.mortbay.Util

Release 1.0.1
  + Bug fixes

Release 1.0  
  + First release in com.mortbay package structure
  + Included Util, JDBC, HTML, HTTP, Jetty





