jetty-8.1.15.v20140411 - 11 April 2014
 + 397167 Remote Access documentation is wrong
 + 419799 complete after exceptions thrown from async error pages
 + 420776 complete error pages after startAsync
 + 421197 fix method comment and ensure close synchronized
 + 422137 Added maxQueued to QueuedThreadPool MBean
 + 424180 improve bad message errors
 + 425038 WebSocketClient leaks file handles when exceptions are thrown from
   open()
 + 425551 Memory Leak in SelectConnector$ConnectTimeout.expired.
 + 426658 backport Bug 425930 to jetty-8
 + 427761 allow endpoints to be interrupted
 + 428708 JDBCSessionIdManager when clearing expired sessions failed, jetty
   should still be able to startup
 + 428710 JDBCSession(Id)Manager use 'read committed isolation level'
 + 430968 Use wrapped response with async dispatch
 + 432452 ConnectHandler does not timeout sockets in FIN_WAIT2.

jetty-8.1.14.v20131031 - 31 October 2013
 + 417772 fixed low resources idle timeout
 + 418636 Name anonymous filter and holders with classname-hashcode
 + 419432 Allow to override the SslContextFactory on a per-destination basis.
 + 420048 DefaultServlet alias checks configured resourceBase
 + 420530 AbstractLoginModule never fails a login

jetty-7.6.14.v20131031 - 31 October 2013
 + 417772 fixed low resources idle timeout
 + 418636 Name anonymous filter and holders with classname-hashcode
 + 419432 Allow to override the SslContextFactory on a per-destination basis.
 + 420048 DefaultServlet alias checks configured resourceBase
 + 420530 AbstractLoginModule never fails a login

jetty-8.1.13.v20130916 - 16 September 2013
 + 412629 PropertyFileLoginModule doesn't cache user configuration file even
   for refreshInterval=0
 + 413484 setAttribute in nosql session management better handles _dirty status
 + 413684 deprecated unsafe alias checkers
 + 414235 RequestLogHandler configured on a context fails to handle forwarded
   requests
 + 414393 StringIndexOutofBoundsException with > 8k multipart content without
   CR or LF
 + 414431 Avoid debug NPE race
 + 414507 Ensure AnnotationParser ignores parent dir hierarchy when checking
   for hidden dirnames
 + 414652 WebSocket's sendMessage() may hang on congested connections.
 + 415192 <jsp-file> maps to JspPropertyGroupServlet instead of JspServlet
 + 415401 Add XmlConfiguration.initializeDefaults that allows to set default
   values for any XmlConfiguration that may be overridden in the config file
 + 416266 HttpServletResponse.encodeURL() encodes on first request when only
   SessionTrackingMode.COOKIE is used
 + 416585 WebInfConfiguration examines webapp classloader first instead of its
   parent when looking for container jars
 + 416787 StringIndexOutOfBounds with a pathMap of ""
 + 416990 JMX names statically unique

jetty-7.6.13.v20130916 - 16 September 2013
 + 412629 PropertyFileLoginModule doesn't cache user configuration file even
   for refreshInterval=0
 + 413484 setAttribute in nosql session management better handles _dirty status
 + 413684 deprecated unsafe alias checkers
 + 414235 RequestLogHandler configured on a context fails to handle forwarded
   requests
 + 414393 StringIndexOutofBoundsException with > 8k multipart content without
   CR or LF
 + 414431 Avoid debug NPE race
 + 414507 Ensure AnnotationParser ignores parent dir hierarchy when checking
   for hidden dirnames
 + 414652 WebSocket's sendMessage() may hang on congested connections.
 + 415192 <jsp-file> maps to JspPropertyGroupServlet instead of JspServlet
 + 415401 Add XmlConfiguration.initializeDefaults that allows to set default
   values for any XmlConfiguration that may be overridden in the config file
 + 416585 WebInfConfiguration examines webapp classloader first instead of its
   parent when looking for container jars
 + 416990 JMX names statically unique

jetty-8.1.12.v20130726 - 26 July 2013
 + 396706 CGI support parameters
 + 397193 MongoSessionManager refresh updates last access time
 + 407342 ReloadedSessionMissingClassTest uses class compiled with jdk7
 + 408529 Etags set in 304 response
 + 408600 set correct jetty.url in all pom files
 + 408642 setContentType from addHeader
 + 408662 In pax-web servlet services requests even if init() has not finished
   running
 + 408806 getParameter returns null on Multipart request if called before
   request.getPart()/getParts()
 + 408909 GzipFilter setting of headers when reset and/or not compressed
 + 409028 Jetty HttpClient does not work with proxy CONNECT method.
 + 409133 Empty <welcome-file> causes StackOverflowError
 + 409436 NPE on context restart using dynamic servlet registration
 + 409449 Ensure servlets, filters and listeners added via dynamic
   registration, annotations or descriptors are cleaned on context restarts
 + 409556 FileInputStream not closed in DirectNIOBuffer
 + 410405 Avoid NPE for requestDispatcher(../)
 + 410630 MongoSessionManager conflicting session update op
 + 410750 NoSQLSessions: implement session context data persistence across
   server restarts
 + 410893 async support defaults to false for spec created servlets and filters
 + 411135 HttpClient may send proxied https requests to the proxy instead of
   the target server.
 + 411216 RequestLogHandler handles async completion
 + 411458 MultiPartFilter getParameterMap doesn't preserve multivalued
   parameters 411459  MultiPartFilter.Wrapper getParameter should use charset
   encoding of part
 + 411755 MultiPartInputStreamParser fails on base64 encoded content
 + 411909 GzipFilter flushbuffer() results in erroneous finish() call
 + 412712 HttpClient does not send the terminal chunk after partial writes.
 + 412750 HttpClient close expired connections fix
 + 413371 Default JSON.Converters for List and Set.
 + 413372 JSON Enum uses name rather than toString()
 + 413684 Trailing slash shows JSP source
 + 413812 Make RateTracker serializable

jetty-7.6.12.v20130726 - 26 July 2013
 + 396706 CGI support parameters
 + 397193 MongoSessionManager refresh updates last access time
 + 407342 ReloadedSessionMissingClassTest uses class compiled with jdk7
 + 408529 Etags set in 304 response
 + 408600 set correct jetty.url in all pom files
 + 408642 setContentType from addHeader
 + 408662 In pax-web servlet services requests even if init() has not finished
   running
 + 408909 GzipFilter setting of headers when reset and/or not compressed
 + 409028 Jetty HttpClient does not work with proxy CONNECT method.
 + 409133 Empty <welcome-file> causes StackOverflowError
 + 409556 FileInputStream not closed in DirectNIOBuffer
 + 410630 MongoSessionManager conflicting session update op
 + 410750 NoSQLSessions: implement session context data persistence across
   server restarts
 + 411135 HttpClient may send proxied https requests to the proxy instead of
   the target server.
 + 411216 RequestLogHandler handles async completion
 + 411458 MultiPartFilter getParameterMap doesn't preserve multivalued
   parameters 411459  MultiPartFilter.Wrapper getParameter should use charset
   encoding of part
 + 411755 MultiPartInputStreamParser fails on base64 encoded content
 + 411909 GzipFilter flushbuffer() results in erroneous finish() call
 + 412712 HttpClient does not send the terminal chunk after partial writes.
 + 412750 HttpClient close expired connections fix
 + 413371 Default JSON.Converters for List and Set.
 + 413372 JSON Enum uses name rather than toString()
 + 413684 Trailing slash shows JSP source
 + 413812 Make RateTracker serializable

jetty-8.1.11.v20130520 - 20 May 2013
 + 402844 STOP.PORT & STOP.KEY behaviour has changed
 + 403281 jetty.sh waits for started or failure before returning
 + 403513 jetty:run goal cannot be executed twice during the maven build
 + 403570 Asynchronous Request Logging
 + 404010 fix cast exception in mongodb session manager
 + 404128 Add Vary headers rather than set them
 + 404283 org.eclipse.jetty.util.Scanner.scanFile() dies with an NPE if
   listFiles() returns null
 + 404325 data constraint redirection does send default port
 + 404517 Close connection if request received after half close
 + 404789 Support IPv6 addresses in DoSFilter white list.
 + 404958 Fixed Resource.newSystemResource striped / handling
 + 405281 allow filemappedbuffers to not be used
 + 405537 NPE in rendering JSP using SPDY and wrapped ServletRequest
 + 406437 Digest Auth supports out of order nc
 + 406618 Jetty startup in OSGi Equinox fails when using option
   jetty.home.bundle=org.eclipse.jetty.osgi.boot
 + 406923 CR line termination
 + 407136 @PreDestroy called after Servlet.destroy()
 + 407173 java.lang.IllegalStateException: null when using JDBCSessionManager
 + 407931 Add toggle for failing on servlet availability
 + 407976 JDBCSessionIdManager potentially leaves server in bad state after
   startup
 + 408077 HashSessionManager leaves file handles open after being stopped
 + 408446 Multipart parsing issue with boundry and charset in ContentType
   header

jetty-8.1.10.v20130312 - 12 March 2013
 + 376273 Early EOF because of SSL Protocol Error on
   https://api-3t.paypal.com/nvp.
 + 381521 allow compress methods to be configured
 + 392129 fixed handling of timeouts after startAsync
 + 394064 ensure that JarFile instances are closed on JarFileResource.release()
 + 398649 ServletContextListener.contextDestroyed() is not called on
   ContextHandler unregistration
 + 399703 made encoding error handling consistent
 + 399799 do not hold lock while calling invalidation listeners
 + 399967 Shutdown hook calls destroy
 + 400040 NullPointerException in HttpGenerator.prepareBuffers
 + 400142 ConcurrentModificationException in JDBC SessionManger
 + 400144 When loading a session fails the JDBCSessionManger produces duplicate
   session IDs
 + 400312 ServletContextListener.contextInitialized() is not called when added
   in ServletContainerInitializer.onStartup
 + 400457 Thread context classloader hierarchy not searched when finding
   webapp's java:comp/env
 + 400859 limit max size of writes from cached content
 + 401211 Remove requirement for jetty-websocket.jar in WEB-INF/lib
 + 401317 Make Safari 5.x websocket support minVersion level error more clear
 + 401382 Prevent parseAvailable from parsing next chunk when previous has not
   been consumed. Handle no content-type in chunked request.
 + 401474 Performance problem in org.eclipse.jetty.annotation.AnnotationParser
 + 401485 zip file closed exception
 + 401531 StringIndexOutOfBoundsException for "/*" <url-pattern> of
   <jsp-property-group> fix for multiple mappings to *.jsp
 + 401908 Enhance DosFilter to allow dynamic configuration of attributes.
 + 402048 org.eclipse.jetty.server.ShutdownMonitor doesn't stop after the jetty
   server is stopped
 + 402485 reseed secure random
 + 402735 jetty.sh to support status which is == check
 + 402833 Test harness for global error page and hide exception message from
   reason string

jetty-7.6.11.v20130520 - 20 May 2013
 + 402844 STOP.PORT & STOP.KEY behaviour has changed
 + 403281 jetty.sh waits for started or failure before returning
 + 403513 jetty:run goal cannot be executed twice during the maven build
 + 403570 Asynchronous Request Logging
 + 404010 fix cast exception in mongodb session manager
 + 404128 Add Vary headers rather than set them
 + 404283 org.eclipse.jetty.util.Scanner.scanFile() dies with an NPE if
   listFiles() returns null
 + 404325 data constraint redirection does send default port
 + 404517 Close connection if request received after half close
 + 404789 Support IPv6 addresses in DoSFilter white list.
 + 404958 Fixed Resource.newSystemResource striped / handling
 + 405281 allow filemappedbuffers to not be used
 + 405537 NPE in rendering JSP using SPDY and wrapped ServletRequest
 + 406437 Digest Auth supports out of order nc
 + 406923 CR line termination
 + 407136 @PreDestroy called after Servlet.destroy()
 + 407173 java.lang.IllegalStateException: null when using JDBCSessionManager
 + 407976 JDBCSessionIdManager potentially leaves server in bad state after
   startup
 + 408077 HashSessionManager leaves file handles open after being stopped
 + 408446 Multipart parsing issue with boundry and charset in ContentType
   header

jetty-7.6.10.v20130312 - 12 March 2013
 + 376273 Early EOF because of SSL Protocol Error on
   https://api-3t.paypal.com/nvp.
 + 381521 allow compress methods to be configured
 + 394064 ensure that JarFile instances are closed on JarFileResource.release()
 + 398649 ServletContextListener.contextDestroyed() is not called on
   ContextHandler unregistration
 + 399703 made encoding error handling consistent
 + 399799 do not hold lock while calling invalidation listeners
 + 399967 Shutdown hook calls destroy
 + 400040 NullPointerException in HttpGenerator.prepareBuffers
 + 400142 ConcurrentModificationException in JDBC SessionManger
 + 400144 When loading a session fails the JDBCSessionManger produces duplicate
   session IDs
 + 400457 Thread context classloader hierarchy not searched when finding
   webapp's java:comp/env
 + 400859 limit max size of writes from cached content
 + 401211 Remove requirement for jetty-websocket.jar in WEB-INF/lib
 + 401317 Make Safari 5.x websocket support minVersion level error more clear
 + 401382 Prevent parseAvailable from parsing next chunk when previous has not
   been consumed. Handle no content-type in chunked request.
 + 401474 Performance problem in org.eclipse.jetty.annotation.AnnotationParser
 + 401531 StringIndexOutOfBoundsException for "/*" <url-pattern> of
   <jsp-property-group> fix for multiple mappings to *.jsp
 + 401908 Enhance DosFilter to allow dynamic configuration of attributes.
 + 402048 org.eclipse.jetty.server.ShutdownMonitor doesn't stop after the jetty
   server is stopped
 + 402485 reseed secure random
 + 402735 jetty.sh to support status which is == check
 + 402833 Test harness for global error page and hide exception message from
   reason string

jetty-8.1.9.v20130131 - 31 January 2013
 + 362226 HttpConnection "wait" call causes thread resource exhaustion
 + 367638 throw exception for excess form keys
 + 381521 Only set Vary header when content could be compressed
 + 382237 support non java JSON classes
 + 391248 fixing localhost checking in statistics servlet
 + 391249 fix for invalid XML node dispatchedTimeMean in statistics servlet
 + 391345 fix missing br tag in statistics servlet
 + 391623 Add option to --stop to wait for target jetty to stop
 + 392417 Prevent Cookie parsing interpreting unicode chars
 + 392492 expect headers only examined for requests>=HTTP/1.1
 + 393075 1xx 204 and 304 ignore all headers suggesting content
 + 393158 java.lang.IllegalStateException when sending an empty InputStream
 + 393220 remove dead code from ServletHandler and log ServletExceptions in
   warn instead of debug
 + 393947 additional tests
 + 393968 fix typo in javadoc
 + 394294 A web-bundle started before jetty-osgi should be deployed as a webapp
   when jetty-osgi starts
 + 394514 Preserve URI parameters in sendRedirect
 + 394541 remove continuation jar from distro, add as dep to test-jetty-webapp
 + 394719 remove regex from classpath matching
 + 394811 Make JAASLoginService log login failures to DEBUG instead of WARN.
   Same for some other exceptions.
 + 394829 Session can not be restored after SessionManager.setIdleSavePeriod
   has saved the session
 + 394839 Allow multipart mime with no boundary
 + 394870 Make enablement of remote access to test webapp configurable in
   override-web.xml
 + 395215 Multipart mime with just LF and no CRLF
 + 395380 add ValidUrlRule to jetty-rewrite
 + 395394 allow logging from boot classloader
 + 396253 FilterRegistration wrong order
 + 396459 Log specific message for empty request body for multipart mime
   requests
 + 396500 HttpClient Exchange takes forever to complete when less content sent
   than Content-Length
 + 396574 add JETTY_HOME as a location for pid to be found
 + 396886 MultiPartFilter strips bad escaping on filename="..."
 + 397110 Accept %uXXXX encodings in URIs
 + 397111 Tolerate empty or excessive whitespace preceeding MultiParts
 + 397112 Requests with byte-range throws NPE if requested file has no mimetype
   (eg no file extension)
 + 397130 maxFormContentSize set in jetty.xml is ignored
 + 397190 improve ValidUrlRule to iterate on codepoints
 + 397321 Wrong condition in default start.config for annotations
 + 397535 Support pluggable alias checking to support symbolic links
 + 398337 UTF-16 percent encoding in UTF-16 form content
 + 399132 check parent dir of session store against file to be removed
 + JETTY-1533 handle URL with no path

jetty-7.6.9.v20130131 - 31 January 2013
 + 362226 HttpConnection "wait" call causes thread resource exhaustion
 + 367638 throw exception for excess form keys
 + 381521 Only set Vary header when content could be compressed
 + 382237 support non java JSON classes
 + 391248 fixing localhost checking in statistics servlet
 + 391249 fix for invalid XML node dispatchedTimeMean in statistics servlet
 + 391345 fix missing br tag in statistics servlet
 + 391623 Add option to --stop to wait for target jetty to stop
 + 392417 Prevent Cookie parsing interpreting unicode chars
 + 392492 expect headers only examined for requests>=HTTP/1.1
 + 393075 1xx 204 and 304 ignore all headers suggesting content
 + 393220 remove dead code from ServletHandler and log ServletExceptions in
   warn instead of debug
 + 393947 additional tests
 + 393968 fix typo in javadoc
 + 394514 Preserve URI parameters in sendRedirect
 + 394541 remove continuation jar from distro, add as dep to test-jetty-webapp
 + 394719 remove regex from classpath matching
 + 394811 Make JAASLoginService log login failures to DEBUG instead of WARN.
   Same for some other exceptions.
 + 394829 Session can not be restored after SessionManager.setIdleSavePeriod
   has saved the session
 + 394839 Allow multipart mime with no boundary
 + 395215 Multipart mime with just LF and no CRLF
 + 395380 add ValidUrlRule to jetty-rewrite
 + 395394 allow logging from boot classloader
 + 396459 Log specific message for empty request body for multipart mime
   requests
 + 396500 HttpClient Exchange takes forever to complete when less content sent
   than Content-Length
 + 396574 add JETTY_HOME as a location for pid to be found
 + 396886 MultiPartFilter strips bad escaping on filename="..."
 + 397110 Accept %uXXXX encodings in URIs
 + 397111 Tolerate empty or excessive whitespace preceeding MultiParts
 + 397112 Requests with byte-range throws NPE if requested file has no mimetype
   (eg no file extension)
 + 397130 maxFormContentSize set in jetty.xml is ignored
 + 397190 improve ValidUrlRule to iterate on codepoints
 + 397321 Wrong condition in default start.config for annotations
 + 397535 Support pluggable alias checking to support symbolic links
 + 398337 UTF-16 percent encoding in UTF-16 form content
 + 399132 check parent dir of session store against file to be removed
 + JETTY-1533 handle URL with no path

jetty-8.1.8.v20121106 - 06 November 2012
 + 371170 MongoSessionManager LastAccessTimeTest fails
 + 388675 Non utf8 encoded query strings not decoded to parameter map using
   queryEncoding
 + 388706 Avoid unnecessary indirection through Charset.name
 + 389390 AnnotationConfiguration is ignored if the metadata-complete attribute
   is present in an override descriptor regardless of the value
 + 389452 if web-fragment metadata-complete==true still scan its related jar if
   there there is a ServletContainerInitializer, ensure webapp restarts work
 + 389686 Fix reference to org.eclipse.jetty.util.log.stderr.LONG system
   property in javadoc for StdErrLog
 + 389956 Bad __context set in WebAppContext.start sequence with respect to ENC
   setup
 + 389965 OPTIONS should allow spaces in comma separated list
 + 390108 Servlet 3.0 API for programmatic login doesn't appear to work
 + 390161 Apply DeferredAuthentication fix to jaspi
 + 390163 Implement ServletRegistration.Dynamic.setServletSecurity
 + 390503 http-method-omission element not being processed
 + 390560 The method AnnotationParser.getAnnotationHandlers(String) always
   returns a empty collection.
 + 391080 Multipart temp files can be left on disk from Request.getPart and
   getParts
 + 391082 No exception if multipart input stream incomplete
 + 391188 Files written with Request.getPart().write(filename) should not be
   auto-deleted
 + 391483 fix bad javadoc example in shutdown handler
 + 391622 Be lenient on RFC6265 restriction on duplicate cookie names in same
   response
 + 391623 Add option to --stop to wait for target jetty to stop
 + 391877 org.eclipse.jetty.webapp.FragmentDescriptor incorrectly reporting
   duplicate others for after ordering
 + 392239 Allow no error-code or exception for error-pages
 + 392525 Add option to --stop-wait to specify timeout
 + 392641 JDBC Sessions not scavenged if expired during downtime
 + 392812 MongoSessionIDManager never purges old sessions
 + 393014 Mongodb purgevalid using query for purgeinvalid
 + 393015 Mongodb purge not rescheduled
 + 393075 Jetty WebSocket client cannot connect to Tomcat WebSocket Server
 + 393218 add xsd=application/xml mime mapping to defaults
 + 393363 Use Locale.ENGLISH for all toUpperCase and toLowerCase calls
 + 393368 min websocket version
 + 393383 delay onClose call until closeOut is done
 + 393494 HashSessionManager can't delete unrestorable sessions on Windows
 + JETTY-1547 Jetty does not honor web.xml
   web-app/jsp-config/jsp-property-group/default-content-type

jetty-7.6.8.v20121106 - 06 November 2012
 + 371170 MongoSessionManager LastAccessTimeTest fails
 + 388675 Non utf8 encoded query strings not decoded to parameter map using
   queryEncoding
 + 389686 Fix reference to org.eclipse.jetty.util.log.stderr.LONG system
   property in javadoc for StdErrLog
 + 389956 Bad __context set in WebAppContext.start sequence with respect to ENC
   setup
 + 389965 OPTIONS should allow spaces in comma separated list
 + 390161 Apply DeferredAuthentication fix to jaspi
 + 390560 The method AnnotationParser.getAnnotationHandlers(String) always
   returns a empty collection.
 + 391483 fix bad javadoc example in shutdown handler
 + 391622 Be lenient on RFC6265 restriction on duplicate cookie names in same
   response
 + 391623 Add option to --stop to wait for target jetty to stop
 + 392239 Allow no error-code or exception for error-pages
 + 392525 Add option to --stop-wait to specify timeout
 + 392641 JDBC Sessions not scavenged if expired during downtime
 + 392812 MongoSessionIDManager never purges old sessions
 + 393014 Mongodb purgevalid using query for purgeinvalid
 + 393015 Mongodb purge not rescheduled
 + 393075 Jetty WebSocket client cannot connect to Tomcat WebSocket Server
 + 393218 add xsd=application/xml mime mapping to defaults
 + 393363 Use Locale.ENGLISH for all toUpperCase and toLowerCase calls
 + 393368 min websocket version
 + 393383 delay onClose call until closeOut is done
 + 393494 HashSessionManager can't delete unrestorable sessions on Windows

jetty-8.1.7.v20120910 - 10 September 2012
 + 388895 Update dependencies for jetty-jndi
 + fix busy logging statement re: sessions

jetty-8.1.6.v20120903 - 03 September 2012
 + 347130 Empty getResourcePaths due to ZipFileClosedException
 + 367591 Support Env variables in XmlConfiguration.
 + 377055 Prevent webapp classloader leaks
 + 379207 backported fixes from jetty-9 to make hierarchy work
 + 379423 Jetty URL Decoding fails for certain international characters
 + 383304 Reset PrintWriter on response recycle
 + 384847 better name
 + 385049 fix issue with pipelined connections when switching protocols
 + 385651 Message 'Address already in use' not specific enough
 + 386010 JspRuntimeContext rewraps System.err
 + 386591 add UnixCrypt note to about.html
 + 386714 used deferred auth for form login and error pages
 + 387896 populate session in SessionAuthentication as a valueBound in addition
   to activation so it is populate when needed
 + 387943 Catch CNFE when no jstl jars are installed
 + 387953 jstl does not work with jetty-7 in osgi
 + 388072 GZipFilter incorrectly gzips when Accept-Encoding: gzip; q=0
 + 388073 null session id from cookie causes NPE fixed
 + 388102 Jetty HttpClient memory leaks when sending larger files
 + 388393 WebAppProvider doesn't work alongside OSGi deployer
 + 388502 handle earlyEOF with 500
 + 388652 Do not flush on handle return if request is suspended
 + JETTY-1501 Setting custom error response message changes page title
 + JETTY-1515 Include cookies on 304 responses from DefaultServlet.
 + JETTY-1527 handle requests with URIs like http://host  (ie no / )
 + JETTY-1529 Ensure new session that has just been authenticated does not get
   renewed
 + JETTY-1532 HTTP headers decoded with platform's default encoding
 + JETTY-1541 fixed different behaviour for single byte writes
 + 385925 make SslContextFactory.setProtocols and
   SslContextFactory.setCipherSuites preserve the order of the given parameters

jetty-8.1.5.v20120716 - 16 June 2012
 + 376717 Balancer Servlet with round robin support, contribution, added
   missing license
 + 379250 Server is added to shutdown hook twice
 + 380866 maxIdleTime set to 0 after session migration
 + 381399 Unable to stop a jetty instance that has not finished starting
 + 381401 Print log warning when stop attempt made with incorrect STOP.KEY
 + 381402 Make ContextHandler take set of protected directories
 + 381521 set Vary:Accept-Encoding header for content that might be compressed
 + 381639 CrossOriginFilter does not support Access-Control-Expose-Headers.
 + 381712 Support all declared servlets that implement
   org.apache.jasper.servlet.JspServlet
 + 381825 leave URI params in forwarded requestURI
 + 381876 Monitor should wait for child to finish before exiting.
 + 382343 Jetty XML support for Map is broken.
 + 383251 500 for SocketExceptions
 + 383881 WebSocketHandler sets request as handled
 + 384254 revert change to writable when not dispatched
 + 384280 Implement preliminary ServletRegistrations
 + 384847 CrossOriginFilter is not working.
 + 384896 JDBCSessionManager fails to load existing sessions on oracle when
   contextPath is /
 + 384980 Jetty client unable to recover from Time outs when connection count
   per address hits max.
 + 385138 add getter for session path and max cookie age that seemed to
   disappear in a merge long ago
 + JETTY-1523 It is imposible to map servlet to "/" using
   WebApplicationInitializer
 + JETTY-1525 Show handle status in response debug message
 + JETTY-1530 refine search control on ldap login module

jetty-8.1.4.v20120524 - 24 May 2012
 + 367608 ignore the aysncrequestreadtest as it is known to fail and is waiting
   for a fix
 + 371853 Support bundleentry: protocol for webapp embedded as directory in
   osgi bundle
 + 373620 Add ch.qos.logback.access.jetty to the Import-Package for
   jetty-osgi-boot-logback bundle
 + 376152 apply context resources recursively
 + 376801 Make JAAS login modules useable without jetty infrastructure
 + 377323 Request#getParts() throws ServletException when it should be throwing
   IllegalStateException
 + 377391 Manifest updates to jetty-osgi-boot-logback
 + 377492 NPE if jsp taglibs bundle not deployed
 + 377550 set charset when content type is set
 + 377587 ConnectHandler write will block on partial write
 + 377610 New session not timed out if an old session is invalidated in scope
   of same request
 + 377709 Support for RequestParameterCallback missing
 + 378242 Re-extract war on restart if incomplete extraction
 + 378273 Remove default Bundle-Localization header
 + 378487 Null out contextPath on Request.recycle
 + 379015 Use factored jetty xml config files for defaults
 + 379046 avoid closing idle connections from selector thread
 + 379089 DefaultServlet ignores its resourceBase and uses context's
   ResourceCollection when listing diretories
 + 379194 ProxyServlet enhancement to enable easy creation of alternative
   HttpClient implementations
 + 379909 FormAuthenticator Rembers only the URL of first Request before
   authentication
 + 380034 last modified times taken from JarEntry for JarFile resources
 + 380212 Clear buffer if parsing fails due to full buffer
 + 380222 JettyPolicyRuntimeTest failure

jetty-8.1.3.v20120416 - 16 April 2012
 + 349110 MultiPartFilter records the content-type in request params
 + 367172 Remove detection for slf4j NOPLogger
 + 372678 Embedded Examples need updates for new LoginService requirement
 + 373269 Make ServletHandler.notFound() method impl do nothing - override to
   send back 404.
 + 373421 address potential race condition related to the nonce queue removing
   the same nonce twice
 + 373952 bind called too frequently on refresh
 + 374018 correctly handle requestperminuted underflow
 + 374152 jetty-all-server MANIFEST contains wrong import:
   javax.servlet.annotation;version="[2.6,3)"
 + 374252 SslConnection.onClose() does not forward to nested connection.
 + 374258 SPDY leaks SSLEngines. Made the test more reliable.
 + 374367 NPE in QueuedThreadPool.dump() with early java6 jvms
 + 374475 Response.sendRedirect does not encode UTF-8 characters properly
 + 374881 Set copyWebInf to false by default
 + 374891 enhancement to how ProxyServlet determines the proxy target
 + 375009 Filter initialization error will throw MultiException
 + 375083 Flow control should take in account window size changes from
   concurrent SETTINGS
 + 375096 If starting a server instance fails in osgi it is cleaned up.
 + 375490 NPE with --help on command line
 + 375509 Stalled stream stalls other streams or session control frames. Now
   using a "death pill" instead of a boolean in order to avoid race conditions
   where DataInfos were read from the queue (but the boolean not updated yet),
   and viceversa.
 + 375594 fixed SSL tests so they are not order dependent
 + 375709 Ensure resolveTempDirectory failure does not deadlock; improve error
   message
 + 375906 Part.getHeader method not case insensitive
 + 375970 HttpServletRequest.getRemoteAddr() returns null when HTTP is over
   SPDY.
 + 376201 HalfClosed state not handled properly. Addendum to restore previous
   behavior, where a closed stream was also half closed.
 + 376324 <max-file-size> is not respected in <multipart-config>
 + JETTY-1495 Ensure dynamic servlet addition does not cause servlets to be
   inited.
 + JETTY-1500 form parameters from multipart request not available via
   request.getParameter
 + JETTY-1504 HttpServletResponseWrapper ignored when using asyncContext?

jetty-8.1.2.v20120308 - 08 March 2012
 + 370387 SafariWebsocketDraft0Test failure during build.
 + 371168 Update ClientCrossContextSessionTest
 + 372093 handle quotes in Require-Bundle manifest string
 + 372457 Big response + slow clients + pipelined requests cause Jetty spinning
   and eventually closing connections. Added a TODO for a method renaming that
   will happen in the next major release (to avoid break implementers).
 + 372487 JDBCSessionManager does not work with Oracle
 + 372806 Command line should accept relative paths for xml config files
 + 373037 jetty.server.Response.setContentLength(int) should not close a Writer
   when length=0
 + 373162 add improved implementation for getParameterMap(), needs a test
   though and the existing setup doesn't seem like it would easily support the
   needed test so need to do that still
 + 373306 Set default user agent extraction pattern for UserAgentFilter
 + 373567 cert validation issue with ocsp and crldp always being enabled when
   validating turned on fixed
 + 373603 NullPointer in WebServletAnnotation
 + JETTY-1409 GzipFilter will double-compress application/x-gzip content
 + JETTY-1489 WebAppProvider attempts to deploy .svn folder
 + JETTY-1494 .

jetty-8.1.1.v20120215 - 15 February 2012
 + 369121 simplified test
 + 370120 jvm arguments added via start.ini and --exec are missing spaces
 + 370137 SslContextFactory does not respect order for
   [included|excluded]Protocols() and [included|excluded]CipherSuites().
 + 370368 resolve stack overflow in mongo db session manager
 + 370386 Remove META-INF from jetty distro
 + 371040 nosqlsession needs to call correct super contructor for new sessions
 + 371041 valid was not being set to new mongo db sessions, and the call to
   mongodb api was wrong in isIdInUse
 + 371162 NPE protection for nested security handlers
 + JETTY-1484 Add option for HashSessionManager to delete session files if it
   can't restore them

jetty-8.1.0.v20120127 - 27 January 2012
 + 368773 allow authentication to be set by non securityHandler handlers
 + 368992 avoid update key while flushing during a write
 + 369216 turned off the shared resource cache
 + 369349 replace quotes with a space escape method

jetty-8.1.0.RC5 - 20 January 2012
 + 359329 Prevent reinvocation of LoginModule.login with jaspi for already
   authed user
 + 368632 Remove superfluous removal of org.apache.catalina.jsp_file
 + 368633 fixed configure.dtd resource mappings
 + 368635 moved lifecycle state reporting from toString to dump
 + 368773 process data constraints without realm
 + 368787 always set token view to new header buffers in httpparser
 + 368821 improved test harness
 + 368920 JettyAwareLogger always formats the arguments.
 + 368948 POM for jetty-jndi references unknown version for javax.activation.
 + 368992 NPE in HttpGenerator.prepareBuffers() test case.
 + JETTY-1475 made output state fields volatile to provide memory barrier for
   non dispatched thread IO

jetty-8.1.0.RC4 - 13 January 2012
 + 365048 jetty Http client does not send proxy authentication when requesting
   a Https-resource through a web-proxy.
 + 366774 removed XSS vulnerbility
 + 367099 Upgrade jetty-websocket for RFC 6455 - Addendum.
 + 367433 added tests to investigate
 + 367435 improved D00 test harness
 + 367485 HttpExchange canceled before response do not release connection.
 + 367502 WebSocket connections should be closed when application context is
   stopped.
 + 367548 jetty-osgi-boot must not import the nested package twice
 + 367591 corrected configuration.xml version to 7.6
 + 367635 Added support for start.d directory
 + 367716 simplified maxIdleTime logic
 + 368035 WebSocketClientFactory does not invoke super.doStop().
 + 368060 do not encode sendRedirect URLs
 + 368112 NPE on <jsp-config><taglib> element parsing web.xml
 + 368113 Support servlet mapping to ""
 + 368114 Protect against non-Strings in System properties for Log
 + 368189 WebSocketClientFactory should not manage external thread pool. 368240
   - Improve AggregateLifeCycle handling of shared lifecycles
 + 368215 Remove debug from jaspi
 + 368240 Better handling of locally created ThreadPool. Forgot to null out
   field.
 + 368291 Change warning to info for NoSuchFieldException on
   BeanELResolver.properties
 + 367638 limit number of form parameters to avoid DOS
 + JETTY-1467 close half closed when idle

jetty-8.1.0.RC2 - 22 December 2011
 + 359329 jetty-jaspi must exports its packages. jetty-plus must import
   javax.security
 + 364638 HttpParser closes if data received while seeking EOF. Tests fixed to
   cope
 + 364921 Made test less time sensitive
 + 364936 use Resource for opening URL streams
 + 365267 NullPointerException in bad Address
 + 365375 ResourceHandler should be a HandlerWrapper
 + 365750 Support WebSocket over SSL, aka wss://
 + 365932 Produce jetty-websocket aggregate jar for android use
 + 365947 Set headers for Auth failure and retry in http-spi
 + 366316 Superfluous printStackTrace on 404
 + 366342 Dont persist DosFilter trackers in http session
 + 366730 pass the time idle to onIdleExpire
 + 367048 test harness for guard on suspended requests
 + 367175 SSL 100% CPU spin in case of blocked write and RST.
 + 367219 WebSocketClient.open() fails when URI uses default ports.
 + 367383 jsp-config element must be returned for
   ServletContext.getJspConfigDescriptor
 + JETTY-1460 suppress PrintWriter exceptions
 + JETTY-1463 websocket D0 parser should return progress even if no fill done
 + JETTY-1465 NPE in ContextHandler.toString

jetty-8.1.0.RC1 - 06 December 2011
 + 360245 The version of the javax.servlet packages to import is 2.6 instead of
   3.0
 + 365370 ServletHandler can fall through to nested handler

jetty-8.1.0.RC0 - 30 November 2011
 + 352565 cookie httponly flag ignored
 + 353285 ServletSecurity annotation ignored
 + 357163 jetty 8 ought to proxy jetty8 javadocs
 + 357209 JSP tag listeners not called
 + 360051 SocketConnectionTest.testServerClosedConnection is excluded.
 + 361135 Allow session cookies to NEVER be marked as secure, even on HTTPS
   requests.
 + 362249 update shell scripts to jetty8
 + 363878 Add ecj compiler to jetty-8 for jsp
 + 364283 can't parse the servlet multipart-config for the web.xml
 + 364430 Support web.xml enabled state for servlets

jetty-7.6.0.RC5 - 20 January 2012
 + 359329 Prevent reinvocation of LoginModule.login with jaspi for already
   authed user
 + 368632 Remove superfluous removal of org.apache.catalina.jsp_file
 + 368633 fixed configure.dtd resource mappings
 + 368635 moved lifecycle state reporting from toString to dump
 + 368773 process data constraints without realm
 + 368787 always set token view to new header buffers in httpparser
 + 368821 improved test harness
 + 368920 JettyAwareLogger always formats the arguments.
 + 368948 POM for jetty-jndi references unknown version for javax.activation.
 + 368992 avoid non-blocking flush when writing to avoid setting !_writable
   without _writeblocked
 + JETTY-1475 made output state fields volatile to provide memory barrier for
   non dispatched thread IO

jetty-7.6.0.RC4 - 13 January 2012
 + 365048 jetty Http client does not send proxy authentication when requesting
   a Https-resource through a web-proxy.
 + 366774 removed XSS vulnerbility
 + 367099 Upgrade jetty-websocket for RFC 6455 - Addendum.
 + 367716 simplified maxIdleTime logic
 + 368035 WebSocketClientFactory does not invoke super.doStop().
 + 368060 do not encode sendRedirect URLs
 + 368114 Protect against non-Strings in System properties for Log
 + 368189 WebSocketClientFactory should not manage external thread pool.
 + 368215 Remove debug from jaspi
 + 368240 Improve AggregateLifeCycle handling of shared lifecycles
 + 368291 Change warning to info for NoSuchFieldException on
   BeanELResolver.properties

jetty-7.6.0.RC3 - 05 January 2012
 + 367433 added tests to investigate
 + 367435 improved D00 test harness
 + 367485 HttpExchange canceled before response do not release connection.
 + 367502 WebSocket connections should be closed when application context is
   stopped.
 + 367591 corrected configuration.xml version to 7.6
 + 367635 Added support for start.d directory
 + 367638 limit number of form parameters to avoid DOS
 + JETTY-1467 close half closed when idle

jetty-7.6.0.RC2 - 22 December 2011
 + 364638 HttpParser closes if data received while seeking EOF. Tests fixed to
   cope
 + 364921 Made test less time sensitive for ssl
 + 364936 use Resource for opening URL streams
 + 365267 NullPointerException in bad Address
 + 365375 ResourceHandler should be a HandlerWrapper
 + 365750 Support WebSocket over SSL, aka wss://
 + 365932 Produce jetty-websocket aggregate jar for android use
 + 365947 Set headers for Auth failure and retry in http-spi
 + 366316 Superfluous printStackTrace on 404
 + 366342 Dont persist DosFilter trackers in http session
 + 366730 pass the time idle to onIdleExpire
 + 367048 test harness for guard on suspended requests
 + 367175 SSL 100% CPU spin in case of blocked write and RST.
 + 367219 WebSocketClient.open() fails when URI uses default ports.
 + JETTY-1460 suppress PrintWriter exceptions
 + JETTY-1463 websocket D0 parser should return progress even if no fill done
 + JETTY-1465 NPE in ContextHandler.toString

jetty-7.6.0.RC1 - 04 December 2011
 + 352565 cookie httponly flag ignored
 + 353285 ServletSecurity annotation ignored
 + 357163 jetty 8 ought to proxy jetty8 javadocs
 + 357209 JSP tag listeners not called
 + 360051 SocketConnectionTest.testServerClosedConnection is excluded.
 + 361135 Allow session cookies to NEVER be marked as secure, even on HTTPS
   requests.
 + 362249 update shell scripts to jetty8
 + 363878 Add ecj compiler to jetty-8 for jsp
 + 364283 can't parse the servlet multipart-config for the web.xml
 + 364430 Support web.xml enabled state for servlets
 + 365370 ServletHandler can fall through to nested handler

jetty-7.6.0.RC0 - 29 November 2011
 + Refactored NIO layer for better half close handling
 + 349110 fixed bypass chunk handling
 + 360546 handle set count exceeding max integer
 + 362111 StdErrLog.isDebugEnabled() returns true too often
 + 362113 Improve Test Coverage of org.eclipse.jetty.util.log classes
 + 362407 setTrustStore(Resource) -> setTrustStoreResource(R)
 + 362447 add setMaxNonceAge() to DigestAuthenticator
 + 362468 NPE at line org.eclipse.jetty.io.BufferUtil.putHexInt
 + 362614 NPE in accepting connection
 + 362626 IllegalStateException thrown when SslContextFactory preconfigured
   with SSLContext
 + 362696 expand virtual host configuration options to ContextHandler and add
   associated test case for new behavior
 + 362742 improved UTF8 exception reason
 + 363124 improved websocket close handling
 + 363381 Throw IllegalStateException if Request uri is null on getServerName
 + 363408 GzipFilter should not attempt to compress HTTP status 204
 + 363488 ShutdownHandler use stopper thread
 + 363718 Setting java.rmi.server.hostname in jetty-jmx.xml
 + 363757 partial fix
 + 363785 StdErrLog must use system-dependent EOL.
 + 363943 ignore null attribute values
 + 363993 EOFException parsing HEAD response in HttpTester
 + 364638 SCEP does idle timestamp checking. New setCheckForIdle method
   controls onIdleExpired callback. 364921 a second onIdleExpired callback will
   result in close rather than a shutdown output.
 + 364657 Support HTTP only cookies from standard API
 + JETTY-1442 add _hostHeader setter for ProxyRule

jetty-8.0.4.v20111024 - 24 October 2011
 + 358263 JDBCSessionIdManager add setDatasource(DataSource) method
 + 358649 Replace existing StdErrLog system properties for DEBUG/IGNORED with
   LEVEL instead.
 + 360836 Accept parameters with bad UTF-8. Use replacement character
 + 360912 CrossOriginFilter does not send Access-Control-Allow-Origin on
   responses. 355103 Make allowCredentials default to true in
   CrossOriginFilter.
 + 360938 Connections closed after a while.
 + 361135 secure cookies for sessions
 + 361319 Log initialization does not catch correct exceptions on all jvms
 + 361325 359292 Allow KeyStore to be set
 + 361456 release timer task on connection failed
 + 361655 ExecutorThreadPool.isLowOnThreads() returns wrong value.
 + JETTY-1444 start threadpool before selector manager

jetty-7.5.4.v20111024 - 24 October 2011
 + 358263 JDBCSessionIdManager add setDatasource(DataSource) method
 + 358649 Replace existing StdErrLog system properties for DEBUG/IGNORED with
   LEVEL instead.
 + 360836 Accept parameters with bad UTF-8. Use replacement character
 + 360912 CrossOriginFilter does not send Access-Control-Allow-Origin on
   responses. 355103 Make allowCredentials default to true in
   CrossOriginFilter.
 + 360938 Connections closed after a while.
 + 361319 Log initialization does not catch correct exceptions on all jvms
 + 361325 359292 Allow KeyStore to be set
 + 361456 release timer task on connection failed
 + 361655 ExecutorThreadPool.isLowOnThreads() returns wrong value.
 + JETTY-1444 start threadpool before selector manager

jetty-8.0.3.v20111011 - 11 October 2011
 + 348978 migrate jetty-http-spi
 + 358649 StdErrLog system properties for package/class logging LEVEL.

jetty-8.0.2.v20111006 - 06 October 2011
 + 336443 add missing comma in DigestAuthenticator string
 + 342161 ScannerTest fails intermittently on Mac OS X
 + 346419 testing HttpClient FDs
 + 353267 Request._parameters initialization bug
 + 353509 jetty-client unit tests are running too long
 + 353627 Basic Auth checks that Basic method has been send
 + 356144 Allow SelectorManager thread priority to be set
 + 356274 Start SSL socket factory in call to open()
 + 357163 jetty 8 ought to proxy jetty8 javadocs
 + 357178 websockets draft 14 support
 + 357188 Send content buffer directly
 + 357209 JSP tag listeners not called
 + 357216 Logging via Log4J does not expand braces in format strings
 + 357240 more half close refinements
 + 357338 remove debug
 + 357672 resolve issue with serializing pojos with mongodb session manager,
   thanks to john simone for the discovery and fix
 + 357959 Include javadoc in distribution
 + 358027 NullPointerException in ResourceHandler with jetty-stylesheet.css
 + 358035 idle time only active if > 0
 + 358147 Add catch for UnknownHostException to fix leaky file descriptor in
   client
 + 358164 Dispatch from servlet to handler
 + 358263 add method for osgi users to register a driver as Class.forName does
   not work for them
 + 358649 StdErrLog system properties for package/class logging LEVEL.
 + 358674 Still allows sslv3 for now
 + 358687 Updated jsp does not scan for system tlds Fixed pattern.
 + 358784 JSP broken on Java 1.5
 + 358925 bit more javadoc on usage
 + 358959 File descriptor leak with UnresolvedAddressException
 + 359309 adjust previous test for servletPath to include pathInfo
 + 359673 updated websocket version handling
 + 359675 Principal != String, fix for issue in property file login manager
 + 360051 SocketConnectionTest.testServerClosedConnection is excluded.
 + 360066 jsps referenced in web.xml <jsp-file> elements do not compile
 + JETTY-1130 Access Sessions from HashSessionIdManager
 + JETTY-1277 Fixed sendRedirect encoding of relative locations
 + JETTY-1322 idle sweeper checks for closed endp
 + JETTY-1377 extra logging for busy selector
 + JETTY-1378 new sys property for the latest jsp-impl to force the use of the
   JDTCompiler when running in OSGi.
 + JETTY-1414 applied to PropertyUserStore
 + JETTY-1415 Start/Stop Server and Client only once in test, code format
 + JETTY-1420 Set Host header for new request in RedirectListener
 + JETTY-1421 Implement RedirectListener.onException,onConnectionFailed
 + JETTY-1423 force connection to be closed returned
 + JETTY-1430 local JNDI contexts don't carry environment
 + JETTY-1434 Add a jsp that exercises jstl.
 + JETTY-1439 space in directory installation path causes classloader problem

jetty-7.5.3.v20111011 - 11 October 2011
 + 348978 migrate jetty-http-spi
 + 358649 StdErrLog system properties for package/class logging LEVEL.

jetty-7.5.2.v20111006 - 06 October 2011
 + 336443 check nonce count is increasing
 + 342161 ScannerTest fails intermittently on Mac OS X
 + 346419 testing HttpClient FDs
 + 353267 Request._parameters initialization bug
 + 353509 jetty-client unit tests are running too long
 + 353627 Basic Auth checks that Basic method has been send
 + 356144 Allow SelectorManager thread priority to be set
 + 356274 Start SSL socket factory in call to open()
 + 357178 websockets draft 14 support
 + 357188 Send content buffer directly
 + 357209 JSP tag listeners not called
 + 357216 Logging via Log4J does not expand braces in format strings
 + 357240 more half close refinements
 + 357338 remove debug
 + 357672 resolve issue with serializing pojos with mongodb session manager,
   thanks to john simone for the discovery and fix
 + 357959 Include javadoc in distribution
 + 358027 NullPointerException in ResourceHandler with jetty-stylesheet.css
 + 358035 idle time only active if > 0
 + 358147 Add catch for UnknownHostException to fix leaky file descriptor in
   client
 + 358164 Dispatch from servlet to handler
 + 358263 add method for osgi users to register a driver as Class.forName does
   not work for them
 + 358649 StdErrLog system properties for package/class logging LEVEL.
 + 358674 Still allows sslv3 for now
 + 358687 Updated jsp does not scan for system tlds Fixed pattern.
 + 358784 JSP broken on Java 1.5
 + 358925 bit more javadoc on usage
 + 358959 File descriptor leak with UnresolvedAddressException
 + 359309 adjust previous test for servletPath to include pathInfo
 + 359673 updated websocket version handling
 + 359675 Principal != String, fix for issue in property file login manager
 + 360051 SocketConnectionTest.testServerClosedConnection is excluded.
 + 360066 jsps referenced in web.xml <jsp-file> elements do not compile
 + JETTY-1130 Access Sessions from HashSessionIdManager
 + JETTY-1277 Fixed sendRedirect encoding of relative locations
 + JETTY-1322 idle sweeper checks for closed endp
 + JETTY-1377 extra logging for busy selector
 + JETTY-1378 new sys property for the latest jsp-impl to force the use of the
   JDTCompiler when running in OSGi.
 + JETTY-1414 applied to PropertyUserStore
 + JETTY-1415 Start/Stop Server and Client only once in test, code format
 + JETTY-1420 Set Host header for new request in RedirectListener
 + JETTY-1421 Implement RedirectListener.onException,onConnectionFailed
 + JETTY-1423 force connection to be closed returned
 + JETTY-1430 local JNDI contexts don't carry environment
 + JETTY-1434 Add a jsp that exercises jstl.
 + JETTY-1439 space in directory installation path causes classloader problem

jetty-8.0.1.v20110908 - 08 September 2011
 + 350634 Added Resource.newResource(File)
 + 356190 fix monodb tests  for changed test api
 + 356428 removed timed waits from test
 + 356693 reduce visibility to webapp of websocket implementations
 + 356695 jetty server jars are provided for websockets
 + 356726 Instead of the sessionDestroyed called sessionCreated after
   invalidate session
 + 356751 Add null protection to ServletContextHandler.doStop
 + 356823 correctly decode close codes.  Send not utf-8 close code.
 + 357058 Acceptor thread blocking

jetty-7.5.1.v20110908 - 08 September 2011
 + 350634 Added Resource.newResource(File)
 + 356190 fix monodb tests  for changed test api
 + 356428 removed timed waits from test
 + 356693 reduce visibility to webapp of websocket implementations
 + 356695 jetty server jars are provided for websockets
 + 356726 Instead of the sessionDestroyed called sessionCreated after
   invalidate session
 + 356751 Add null protection to ServletContextHandler.doStop
 + 356823 correctly decode close codes.  Send not utf-8 close code.
 + 357058 Acceptor thread blocking

jetty-8.0.0.v20110901 - 01 September 2011
 + 352565 cookie httponly flag ignored
 + 353073 better warnings
 + 353285 ServletSecurity annotation ignored
 + 356421 Upgraded websocket to draft 13 support

jetty-7.5.0.v20110901 - 01 September 2011
 + 356421 Upgraded websocket to draft 13 support
 + 353073 better warnings

jetty-7.5.0.RC2 - 30 August 2011
 + 293739 Hide stacks in named log testing. Various other minor log cleanups in
   output.
 + 352188 TestClient correctly processes --host option in jetty-websocket
 + 352222 Moved JmxMonitor functionality from Codehaus
 + 353014 TimeoutExchangeTest run time reduced
 + 353073 deprecated non factory method for websocket clients
 + 353192 Better warning for classes of wrong type
 + 353623 Added new methods to HttpExchange
 + 353624 HttpURI accepts java.net.URI object in constructor
 + 354080 ServletContextHandler allows to replace any subordinate handler when
   restarted
 + 355478 set public to HashedSession, looks like honest mistake and not by
   design to be this way
 + 355854 remove automatic conversion in favor of issuing a warning for
   jetty-web.xml that can't be processed
 + 356128 Moved integration tests from jetty-monitor to test-integration module
 + 356137 Upgrade to jsp implementation version 2.1.3-b10
 + 356144 added SelectorManager.setSelectorPriorityDelta(int)
 + JETTY-1410 handle 1xx in similar fashion to 401s and 302s

jetty-7.5.0.RC1 - 19 August 2011
 + 276670 SLF4J loggers show correct location information
 + 335001 Eliminate expected exceptions from log when running in JBoss
 + 355103 Make allowCredentials default to true in CrossOriginFilter
 + 355162 Allow creating an empty resource collection
 + JETTY-1410 HTTP client handles CONTINUE 100 response correctly
 + JETTY-1414 HashLoginService doesn't refresh realm if specified config
   filename is not an absolute platform specific value

jetty-8.0.0.RC0 - 16 August 2011
 + Merge from jetty-7.4.3
 + Enable annotations by default
 + 352565 cookie httponly flag ignored
 + 353285 ServletSecurity annotation ignored

jetty-8.0.0.M3 - 27 May 2011
 + 324505 Implement API login
 + 335500 request.getParts() throws a NullPointerException
 + 343472 isUserInRole does not prevent subsequent login call.
 + 346180 jsp-2.2 support
 + Updated to jetty-7.4.2.v20110526

jetty-7.5.0.RC0 - 15 August 2011
 + 298502 Handle 200 Connect responses with no content-length
 + 347484 / - > ${/} in some paths in grant codebases
 + 349005 add javadoc detailing the convenience hack of removing leading /'s
 + 351516 Refactored sessions to better support nosql session managers
 + 351576 Do not use deprecated method File.toURL()
 + 352046 Need try/catch around features set in XmlParser
 + 352133 Generally resolve java 1.5isms
 + 352176 xml parsing on startElement should be more flexible on using qName or
   localName
 + 352421 HttpURI paths beginning with '.'
 + 352684 Implemented spinning thread analyzer
 + 352786 GzipFilter fails to pass parameters to GzipResponseWrapper
 + 352999 ExpireTest running too long
 + 353073 WebSocketClient
 + 353095 maven-jetty-plugin: PermGen leak due to javax.el.BeanELResolver
 + 353165 addJars can follow symbolic link jar files
 + 353210 Bundle-Version in o.e.j.o.boot.logback fix
 + 353465 JAASLoginService ignores callbackHandlerClass
 + 353563 HttpDestinationQueueTest too slow
 + 353862 Improve performance of QuotedStringTokenizer.quote()
 + 354014 Content-Length is passed to wrapped response in GZipFilter
 + 354204 Charset encodings property file not used
 + 354397 RewriteRegexRule handles special characters in regex group
 + 354466 Typo in example config of jetty-plus.xml

jetty-7.4.5.v20110725 - 25 July 2011
 + 347484 / - > ${/} in some paths in grant codebases
 + 352133 resolve some 1.5isms
 + 352421 HttpURI paths beginning with '.'
 + 352786 GzipFilter fails to pass parameters to GzipResponseWrapper

jetty-7.4.4.v20110707 - 07 July 2011
 + 308851 Converted all jetty-client module tests to JUnit 4
 + 345268 JDBCSessionManager does not work with maxInactiveInterval = -1
 + 350397 SelectChannelConnector does not shutdown gracefully
 + 350634 Reverted FileResource constructor changes
 + 351039 Forward dispatch should retain locale
 + 351199 HttpServletResponse.encodeURL() wrongly encodes an url without path
   when cookies are disabled
 + JETTY-1153 Default charset/encoding of HTTP POST requests
 + JETTY-1380 Jetty Rewrite example does not work in Hightide

jetty-7.4.3.v20110701 - 01 July 2011
 + 295832 ProxyServlet more extensible and configurable
 + 302566 GZIP handler for embedded Jetty servers
 + 308851 Converted HttpExchangeTest and related tests to JUnit 4
 + 324704 JDBC Session Manager reloading session
 + 332200 Eliminate expected exceptions from log while using
   org.eclipse.jetty.jmx bundle
 + 347468 o.e.j.deploy.binding.GlobalWebappConfigBindingTest fails on Windows
   platform
 + 347617 Dynamically install/update/remove OSGi bundles discovered in the
   contexts folder
 + 347717 start.jar destroys dependent child of --exec
 + 347889 OSGi should follow directive visibility:=reexport for
   META-INF/web-fragments and resources
 + 347898 Close channel on JVM exceptions
 + 348652 jetty.sh starts two unix processes
 + 348935 Close A tag in directory listing
 + 349344 Passing empty query string to UrlEncoded#decodeTo(String, MultiMap,
   String) does not yield an empty map
 + 349738 set buffer sizes for http client in proxy servlet
 + 349870 proxy servlet protect continuation against fast failing exchanges
 + 349896 SCEP supports zero maxIdleTime
 + 349897 draft -09 websockets
 + 349997 MBeanContainer uses weak references
 + 350533 Add "Origin" to the list of allowed headers in CrossOriginFilter
 + 350634 Cleanup FileResource construction
 + 350642 Don't close SCEP during NIOBuffer manipulation
 + JETTY-1342 Recreate selector in change task
 + JETTY-1385 NPE in jetty client's
   HTttpExchange.setRequestContentSource(InputStream)
 + JETTY-1390 RewriteHandler handles encoded URIs

jetty-7.4.2.v20110526
 + 334443 Improve the ability to specify extra class paths using the Jetty
   Maven Plugin
 + 336220 tmp directory is not set if you reload a webapp with
   jetty-maven-plugin
 + 338364 Fixed expires header for set cookies
 + 345729 binding for managing server and system classes globally
 + 345615 Enable SSL Session caching
 + 345763 Source file is updated during the build
 + 345873 Update jetty-ssl.xml to new style
 + 345900 Handle IPv6 with default port
 + 346014 Fixed full HttpGenerator
 + 346124 ServletContext resources paths not resolved correctly when using UNC
   shares
 + 346179 o.e.j.util.ScannerTest fails on MacOS X platform
 + 346181 o.e.j.server.StressTest stalls on MacOS X platform
 + 346998 AbstractLifeCycle.isRunning() returns false if state changes from
   STARTING to STARTED during call
 + 346614 HttpConnection.handle() spins in case of SSL truncation attacks
 + 346764 OrderedGroupBinding deployment binding
 + 347137 Allow SSL renegotiations by default in HttpClient
 + 374174 Consistent mbean names
 + JETTY-1146 Encode jsessionid in sendRedirect
 + JETTY-1342 Recreate selector if wakeup throws JVM bug

jetty-7.4.1.v20110513
 + 288563 remove unsupported and deprecated --secure option
 + 332907 Add context property to ObjectName of JMX MBeans
 + 336056 Ability to override the computation of the ContextHandler to deploy
   the DefaultServlet on the HttpService
 + 340040 Support for a total timeout
 + 343083 Set nested dispatch type and connection
 + 343172 Check package implementor for version
 + 343277 add support for a context white list
 + 343352 make sure that jetty.osgi.boot is activated when a WAB is registered
 + 343482 refactored overlay deployer layout to use WAR layout
 + 343567 HttpClient does not limit the destination's exchange queue
 + 343680 Handle OSGi bundle jars not ending in ".war"
 + 343707 'REQUEST' is printed on console for each incoming HTTP request
 + 343923 flush timeouts applied to outer loop
 + 343936 Session idle calls unbind and remove listeners
 + 344059 Websockets draft-07
 + 344067 Add support for OSGi fragment bundles to add static resources to
   web-bundles
 + 344513 Attempting to set ConfigurationClasses in jetty-web.xml causes NPE
 + 344529 Ability to customize the error handling of the OSGi HttpService
 + 345047 Readded deprecated ScanningAppDeployer#setMonitoredDir
 + 345290 Weak references from SessionIdManager. HashSessionManager cleanup.
 + 345543 Always close endpoint on SSLException
 + 345656 Disambiguate SslContextFactory#validateCerts property
 + 345679 Allow setting an initialized KeyStore as keystore/truststore of
   SslContextFactory
 + 345704 jetty-nested works with forwarded SSL in cloudfoundry
 + JETTY-954 WebAppContext eats any start exceptions instead of stopping the
   server load
 + JETTY-1314 Handle bad URI encodings
 + JETTY-1324 Tested not using CESU-8 instead of UTF-8
 + JETTY-1326 Invoker names not hashCode based
 + JETTY-1343 IllegalArgumentException for bad % encodings
 + JETTY-1347 Updated ServletHander javadoc

jetty-7.4.0.v20110414
 + 342504 Scanner Listener
 + 342700 refine websocket API for anticipated changes
 + JETTY-1362 Set root cause of UnavailableException
 + Various test harness cleanups to avoid random failures

jetty-7.4.0.RC0
 + 324110 Added test harnesses for merging of QueryStrings.
 + 337685 Update websocket API in preparation for draft -07
 + 338627 HashSessionManager.getIdleSavePeriod returns milliseconds instead of
   seconds
 + 338807 Ignore content length in 1xx, 204, 304 responses
 + 338819 Externally control Deployment Manager application lifecycle
 + 339084 Fixed NPE with servlet 3.0 async listener
 + 339150 Validate client certificate when it is used for authentication
 + 339187 In the OSGi manifest of the jetty-all-server aggregate, mark
   javax.annotation as optional
 + 339543 Add configuration options for Certificate Revocation checking
 + 340265 Improve handling of io shutdown in SSL
 + 340621 Added SizedThreadPool interface
 + 340636 HashSessionManager lazy loads all sessions
 + 340838 Update ConnectHandler to perform half closes properly
 + 340878 Integrations should be able to load their own keystores
 + 340920 Dynamically assign RMI registry port for integration testing
 + 340949 Scanner delays file notifications until files are stable
 + 341006 Move inner enums out into separate file
 + 341105 Stack trace is printed for an ignored exception
 + 341145 WebAppContext MBean attribute serverClasses returns empty value
 + 341171 Locking in HttpDestination blocks all requests to the same address
 + 341206 Stop order is wrong in HandlerWrapper
 + 341255 org.eclipse.http usage in AJP/SessionId linkage
 + 341386 Remote close not detected by HttpClient
 + 341394 Remove 'Unavailable' JMX attributes of WebAppContext MBean
 + 341439 Blocking HttpClient does not use soTimeout for timeouts
 + 341561 Exception when adding o.e.j.s.DoSFilter as managed attribute
 + 341692 Fixed deadlock if stopped while starting
 + 341736 Split jetty-nested out of war module
 + 341726 JSONPojoConverter handles characters
 + 341992 Overlayed context deployer
 + 341694 Disable AJP buffer resizing
 + 341850 Protect QTP dump from bad stacks
 + JETTY-1245 Pooled Buffers implementation
 + JETTY-1354 Added jetty-nested
 + Ensure generated fragment names are unique
 + Added extra session removal test

jetty-8.0.0.M2 - 16 November 2010
 + 320073 Reconsile configuration mechanism
 + 321068 JSF2 fails to initialize
 + 324493 Registration init parameter handling null check, setInitParameters
   additive
 + 324505 Request.login method must throw ServletException if it cant login
 + 324872 allow disabling listener restriction from using *Registration
   interfaces
 + 327416 Change meaning of @HandlesTypes in line with latest interpretation by
   JSR315
 + 327489 Change meaning of @MultipartConfig to match servlet spec 3.0
   maintenance release 3.0a
 + 328008 Handle update to Servlet Spec 3 Section 8.2.3.h.ii
 + 330188 Reject web-fragment.xml with same <name> as another already loaded
   one
 + 330208 Support new wording on servlet-mapping and filter-mapping merging
   from servlet3.0a
 + 330292 request.getParts() returns only one part when the name is the same
 + Update to jetty-7.2.1.v20101111

jetty-7.3.1.v20110307 - 07 March 2011
 + 316382 Support a more strict SSL option with certificates
 + 333481 Handle UCS-4 codepoints in decode and encode
 + 335329 Moved blocking timeout handling to outside try catch
 + 336668 policy supports cert validation
 + 336691 Possible wrong length returned by ChannelEndPoint.flush() in case of
   RandomAccessFileBuffer
 + 336781 If xml parser is not validating, turn off external dtd resolution
 + 336793 Tee data filled and flushed from endpoint
 + 337258 Scanner start and end cycle notification
 + 337268 Allow specifying alias of a certificate to be used by SSL connector
 + 337270 Shared Timer for session management
 + 337271 Flush SSL endpoint when dispatch thread held forever
 + 337678 Readded optional async connection mode for HttpClient
 + 337685 Work in progress on draft 6 websockets
 + 337746 Fixed Session deIdle recursion
 + 337784 Improve HashSessionManager for session migrations
 + 337878 Extra tests of security constraints
 + 337896 HttpExchange.timeout does not override HttpClient.timeout
 + 337898 set client HttpConnection max idle time from exchange timeout
 + 338035 Default acceptors 0.25*CPUs and improved selector/acceptor thread
   names.
 + 338068 Leaking ConstraintMappings on redeploy
 + 338092 ProxyServlet leaks memory
 + 338607 Removed managed attributes when context is stopped
 + 338819 Externally control Deployment Manager application lifecycle
 + JETTY-1304 Allow quoted boundaries in Multipart filter
 + JETTY-1317 More elegent handling of bad URIs in requests
 + JETTY-1331 Allow alternate XML configuration processors (eg spring)
 + JETTY-1335 HttpClient's SelectConnector clean-up
 + JETTY-1333 HttpClient _timeout and _soTimeout is messed up
 + JETTY-1337 Workname cannot contain '.'
 + JETTY-1338 Trust default SecureRandom seed

jetty-7.3.0.v20110203 - 03 February 2011
 + JETTY-1259 NullPointerException in JDBCSessionIdManager when invalidating
   session (further update)
 + 296978 standardizing various Testing Util Classes to jetty-test-helper
 + 319178 test failure fix in jetty-util on windows
 + 320457 add SPNEGO support
 + 324505 Implement API login
 + 328872 Multi Jetty xml files not loading if directory is referenced in
   jetty.conf
 + 329746 client option to set just truststore and use strict ssl context
 + 331803 Update XML configuration files to use proper arguments for startup
   command in examples
 + 332179 Fixed formatting of negative dates
 + 332432 Scanner.java now always scanning the canonical form of File
 + 332517 Improved DefaultServlet debug
 + 332703 Cleanup context scope JNDI at stop
 + 332796 Annotations inheritance does not work with jetty7
 + 332799 100% CPU on redeploy session invalidation
 + 332937 Added Destroyable Dumpable interfaces and reworked dependent
   lifecycles, specially of JNDI
 + 333247 fix api compat issue in ConstraintSecurityHandler
 + 333415 wired up HttpInput.available and added test harnesses
 + 333481 Handle UTF-32 codepoints in decode and encode
 + 333608 tlds defined in web.xml are not picked up
 + 333679 Refactored jetty-jmx. Moved mbeans to modules
 + 333717 HttpExchange able to return local address used
 + 333771 System properties are not available inside XML configuration file by
   using the 'property' tag
 + 333875 Monitor public constructor
 + 333892 Improved JVM bug detection
 + 334062 It should be possible to embed in the jetty.home.bundle the ssl
   keystore files
 + 334229 javax-security needs to import the package javax.security.cert in its
   OSGi manifest
 + 334311 fix buffer reuse issue in CachedExchange
 + 335329 Stop SSL spin during handshake and renogotiate
 + 335361 Fixed 'jetty.sh check' to show current PID when JETTY_PID env.
   variable is set
 + 335641 Cleaned up dispatch handling to avoid key.interestOps==0 when
   undispatched
 + 335681 Improve ChannelEndPoint.close() to avoid spinning
 + 335836 Race when updating SelectChannelEndPoint._dispatched

jetty-7.2.2.v20101205 - 05 December 2010
 + JETTY-1308 327109 (re)fixed AJP handling of empty packets
 + 331703 Fixed failing OSGI test TestJettyOSGiBootWithJsp.java on MacOSX
 + 331567 IPAccessHandlerTest failed on MacOS fix
 + 328789 Clean up tmp files from test harnesses
 + 331230 Fixed low thread warnings when acceptors>threadpool
 + 331461 Fixed idle timeout for unflushed HTTP/1.0
 + JETTY-1307 Check that JarFileResource directories end with /
 + 330210 Improve performance of writing large bytes arrays
 + 330208 Support new wording on servlet-mapping and filter-mapping merging
   from servlet3.0a
 + 330188 Reject web-fragment.xml with same <name> as another already loaded
   one
 + 330229 Jetty tries to parse META-INF/*.tld when jsp-api is not on classpath,
   causing DTD entity resoluton to fail
 + 330265 start.jar --stop kills --exec subprocess
 + 330417 Atomic PUT in PutFilter
 + 330419 Reloading webapp duplicates StandardDescriptorProcessor
 + 330686 OSGi: Make org.eclipse.jetty.jsp-2.1 a fragment of
   org.apache.jasper.glassfish
 + 330732 Removed System.err debugging
 + 330764 Command line properties passed to start.jar --exec
 + JETTY-1297 Improved matching of vhosts so that a vhost match has priority

jetty-7.2.1.v20101111 - 11 November 2010
 + 324679 Fixed dedection of write before static content
 + 328199 Ensure blocking connectors always close socket
 + 328205 Improved SelectManager stopping
 + 328306 Serialization of FormAuthentication
 + 328332 Response.getContentType works with setHeader
 + 328523 Fixed overloaded setters in AppProvider
 + 328008 Handle update to Servlet Spec 3 Section 8.2.3.h.ii
 + 328778 Improved javadoc for secure session cookies
 + 328782 allow per connection max idle time to be set
 + 328885 web overrides do not override
 + 328988 Idle saving of session values
 + 329180 Spin check for Selector to stop
 + 329410 Enforce XmlConfiguration properties as Map<String,String>
 + 329602 only clear ServletContext attributes on doStop
 + 329642 Concurrent modification exception in Deployment Manager
 + 329643 Improved deployment of resource collections
 + JETTY-748 Prevent race close of socket by old acceptor threads
 + JETTY-1291 Extract query parameters even if POST content consumed
 + JETTY-1295 Contexts mixed up when hot-deploying on virtual hosts
 + JETTY-1297 Make ServletContext.getContext(String) virtual host aware

jetty-6.1.26 - 10 November 2010
 + JETTY-748 Prevent race close of socket by old acceptor threads
 + JETTY-1239 HTAccessHandler [allow from 127.0.0.1] does not work
 + JETTY-1291 Extract query parameters even if POST content consumed
 + JETTY-1293 Avoid usage of String.split
 + JETTY-1296 Always clear changes list in selectManager

jetty-6.1.26.RC0 - 20 October 2010
 + JETTY-547 Improved usage of shutdownOutput before close.
 + JETTY-912 add per exchange timeout
 + JETTY-1051 offer jetty.skip flag for maven plugin
 + JETTY-1096 exclude maven and plexus classes from jetty plugin
 + JETTY-1248 Infinite loop creating temp MultiPart files
 + JETTY-1264 Idle timer deadlock
 + JETTY-1271 Handle unavailable request
 + JETTY-1278 J2se6 SPI filter handling fix
 + JETTY-1283 Allow JSONPojoConvertorFactory to set fromJSON
 + JETTY-1287 rewrite handler thread safe issue resolved
 + JETTY-1288 info when atypical classloader set to WebAppContext
 + JETTY-1289 MRU cache for filter chains
 + JETTY-1292 close input streams after keystore.load()
 + 325468 Clean work webapp dir before unpack
 + 327109 Fixed AJP handling of empty packets
 + 327562 Implement all X-Forwarded headers in ProxyServlet

jetty-7.2.0.v20101020 - 20 October 2010
 + 289540 added javadoc into distribution
 + 297154 add source distribution artifact
 + 323985 Xmlconfiguration pulls start.jar config properties
 + 324369 Improved handling of multiple versions of
   draft-ietf-hybi-thewebsocketprotocol
 + 326734 Configure Digest maxNonceAge with Security handler init param
 + 327109 Fixed AJP handling of empty packets
 + 327183 Allow better configurability of HttpClient for TLS/SSL
 + 327469 removed needless java6 dependencies
 + 327562 Implement all X-Forwarded headers in ProxyServlet
 + 327601 Multipart Filter handles quoted tokens
 + 327725 Nested ResourceCaches
 + 328199 Ensure blocking connectors always close socket
 + 328205 Improved SelectManager stopping
 + 328273 Added serializable to default user identity
 + JETTY-1288 Info statement when atypical classloader set on WebAppContext
 + JETTY-1289 LRU cache for filter chains

jetty-7.2.0.RC0 - 01 October 2010
 + 314087 Simplified SelectorManager
 + 319334 Concurrent, sharable ResourceCache
 + 319370 WebAppClassLoader.Context
 + 319444 Two nulls are appended to log statements from ContextHanler$Context
 + 320073 Reconsile configuration mechanism
 + 320112 Websocket in aggregate jars
 + 320264 Removed duplicate mime.property entries
 + 320457 Added rfc2045 support to B64Code
 + 321232 BasicAuthenticator ignores bad Authorization header.
 + 321307 HashSessionManager calls passivation listeners.
 + 321730 SelectChannelEndPoint prints to System.err
 + 321735 HttpClient onException called for buffer overflow.
 + 322448 Added jetty-dir.css for directory listings
 + 322575 NPE in HotSwapHandler if old handler null
 + 322683 RewriteHandler thread safety
 + 323196 org.mortbay properties to org.eclipse
 + 323435 MovedContextHandler permanent redirection
 + 323464 IPv6 localhost with no Host header
 + 324110 Merge async dispatch parameters
 + 324158 Durable download or Orbit jars
 + 324260 Jetty-6 continuations handle complete calls
 + 324359 illegal actions on AsyncContext should not change its state.
 + 324360 validate input on getResource since loop logic obscures subclass
   input validation.
 + 324369 Implement draft-ietf-hybi-thewebsocketprotocol-01
 + 324377 Allow dispatch of ServletRequest and ServletResponse
 + 324379 Change content type after getWriter
 + 324501 Fire RequestListener.requestDestroyed in last-to-first order.
 + 324601 Check session expiry on access
 + 324679 Allow filter to write before static content
 + 324811 NPE in Server.dump
 + 324812 restore WebAppContext constructor used by geronimo integration
 + 325072 include to DefaultServlet of missing file throws
   FileNotFoundException
 + 325105 websocket ondisconnect fixed
 + 325128 websocket send during onConnect
 + 325468 Clean work webapp dir before unpack
 + 326612 Handle X-Forwarded-Proto header
 + JETTY-912 added per exchange timeout api
 + JETTY-1063 Plugin problems with spaces in classpath resource references
 + JETTY-1245 Do not use direct buffers with NIO SSL
 + JETTY-1249 Apply max idle time to all connectors
 + JETTY-1250 Parallel start of HandlerCollection
 + JETTY-1256 annotation and jta jars from Orbit
 + JETTY-1259 NullPointerException in JDBCSessionIdManager when invalidating
   session
 + JETTY-1261 errant listener usage in StandardDescriptorProcessor
 + JETTY-1263 JDBCSessionIdManager table creation fails on Oracle
 + JETTY-1265 Reason field option in client response
 + JETTY-1266 Destroy sessions before filters/servlets
 + JETTY-1268 Form Auth saves POST data
 + JETTY-1269 Improve log multithreadedness
 + JETTY-1270 Websocket closed endp protection
 + JETTY-1271 handled unavailable exception
 + JETTY-1279 Make jetty-plus.xml enable plus features for all webapps by
   default
 + JETTY-1281 Create new session after authentication
 + JETTY-1283 JSONPojoConvertorFactory can turn off fromJSON
 + Fix jetty-plus.xml for new configuration names
 + Added ignore to Logger interface
 + Improved debug dump

jetty-7.1.6.v20100715
 + 319519 Warn about duplicate configuration files
 + 319655 Reset HEAD status
 + JETTY-1247 synchronize recylcing of SSL NIO buffers
 + JETTY-1248 fix parsing of bad multiparts
 + JETTY-1249 Apply max idle time to all connectors
 + JETTY-1251 Replace then close selector for JVM bugs

jetty-8.0.0.M1 - 12 July 2010
 + 306350 Ensure jars excluded by ordering are not scanned for annotations
 + JETTY-1224 Change jetty-8 merge rules for fragment descriptors and
   annotations
 + Ensure <absolute-ordering> in web.xml overrides relative <ordering> in
   fragments
 + Ensure empty <absolute-ordering> implies exclusion of all fragments
 + Ensure servlet-api jar class inheritance hierarchy is scanned

jetty-7.1.5.v20100705
 + Update ecj to 3.6 Helios release drop
 + 288194 Add blacklist/whitelist to ProxyServlet and ProxyHandler
 + 296570 EOFException for HttpExchange when HttpClient.stop called.
 + 311550 The WebAppProvider should allow setTempDirectory
 + 316449 Websocket disconnect fix
 + 316584 Exception on startup if temp path has spaces and extractWAR=false
 + 316597 Removed null check and fixed name in Resource#hrefEncodeURI
 + 316970 jetty.sh fails to find JETTY_HOME in standard directories
 + 316973 jetty.sh claims java installation is invalid
 + 316976 removed quotes of JAVA_OPTIONS in jetty.sh
 + 317019 Date HTTP header not sent for HTTP/1.0 requests
 + 317759 Allow roles and constraints to be added after init
 + 317906 OPTIONS correctly handles TRACE
 + 318308 Correct quoting of unicode control characters
 + 318470 unboxing NPE protection in HttpConnection
 + 318551 Optional uncheck Printwriter
 + JETTY-1237 Save local/remote address to be available after close
 + 317007 Unable to run Jetty OSGi when
   -Dosgi.compatibility.bootdelegation=false
 + 316909 CNFE: org.xml.sax.SAXException on org.eclipse.jetty.osgi.boot start
   with jsp fragment
 + 317231 Ability to configure jetty with a fragment bundle that contains
   etc/jetty.xml
 + 319060 Support web-bundles that are not expanded (bundle is zipped)

jetty-6.1.25 - 26 July 2010
 + Jetty-6 is now in maintenance mode.
 + JETTY-1212 Long content lengths
 + JETTY-1214 Avoid ISE when scavenging invalid session
 + JETTY-1223 DefaultServlet: NPE when setting relativeResourceBase and
   resourceBase is not set
 + JETTY-1226 javax.activation needs to be listed in the system classes
 + JETTY-1237 Remember local/remote details of endpoint
 + JETTY-1251 protected against closed selector
 + COMETD-112 if two threads create the same channel, then create events may
   occur after subscribe events
 + 320264 Removed duplicate mime.property entries

jetty-7.1.4.v20100610
 + 298551 SslSocketConnector does not need keystore stream
 + 295715 AbstractSessionManager decoupled from Context
 + 292326 Stop continuations if server is stopped.
 + 292814 Make QoSFilter and DoSFilter JMX manageable
 + 293222 Improve request log to handle/show asynchronous latency
 + 294212 Can not customize session cookie path
 + 301608 Deregister shutdown hooks
 + 302350 org.eclipse.jetty.server.NCSARequestLog is missing JavaDoc
 + 303661 jetty.sh failes if JETTY_HOME is not writeable
 + 304100 Better document JMX setup in jetty-jmx.xml
 + 305300 AsyncContext.start dispatches runnable
 + 314299 Create test harness for JDBCLoginService
 + 314581 Implement the Sec-Websocket handshake
 + 315190 CrossOriginFilter avoid headers not understood by WebSocket
 + 315687 included init script fails to test for JETTY_HOME as empty
 + 315715 Improved Cookie version handling. Server.setMaxCookieVersion
 + 315744 Fixed STOP.PORT and STOP.KEY in start.jar
 + 315748 Removed --fromDaemon from start.jar (replaced with --daemon)
 + 315925 Improved context xml configuration handling
 + 315995 Incorrect package name in system classes list
 + 316119 Fixed maxIdleTime for SocketEndPoint
 + 316254 Implement @DeclareRoles
 + 316334 Breaking change on org.eclipse.jetty.client.HttpExchange
 + 316399 Debug output in MultiPartFilter
 + 316413 Restarting webapp for packed war fails
 + 316557 OSGi HttpService failure due to undeployed context handlers
 + JETTY-547 Delay close after shutdown until request read
 + JETTY-1231 Support context request log handler

jetty-7.1.3.v20100526
 + 296567 HttpClient RedirectListener handles new HttpDestination
 + 297598 JDBCLoginService uses hardcoded credential class
 + 305898 Websocket handles query string in URI
 + 307457 Exchanges are left unhandled when connection is lost
 + 313205 Unable to run test-jdbc-sessions tests
 + 314177 JSTL support is broken
 + 314009 jetty.xml configuration file on command line
 + 314459 support maven3 for builds

jetty-7.1.2.v20100523
 + 308866 Update test suite to JUnit4 - Module jetty-util
 + 312948 Recycle SSL crypto buffers
 + 313196 randomly allocate ports for session test.
 + 313278 Implement octet ranges in IPAccessHandler
 + 313336 secure websockets
 + 314009 updated README.txt
 + Update links to jetty website and wiki on test webapp

jetty-7.1.1.v20100517
 + 302344 Make the list of available contexts if root context is not configured
   optional
 + 304803 Remove TypeUtil Integer and Long caches
 + 306226 HttpClient should allow changing the keystore and truststore type
 + 308857 Update test suite to JUnit4 - Module jetty-jndi
 + 308856 Update test suite to JUnit4 - Module jetty-jmx
 + 308860 Update test suite to JUnit4 - Module jetty-rewrite
 + 308850 Update test suite to JUnit4 - Module jetty-annotations
 + 308853 Update test suite to JUnit4 - Module jetty-deploy
 + 308854 Update test suite to JUnit4 - Module jetty-http
 + 308859 Update test suite to JUnit4 - Module jetty-policy
 + 308858 Update test suite to JUnit4 - Module jetty-plus
 + 308863 Update test suite to JUnit4 - Module jetty-servlet
 + 308855 Update test suite to JUnit4 - Module jetty-io
 + 308862 Update test suite to JUnit4 - Module jetty-server
 + 308867 Update test suite to JUnit4 - Module jetty-webapp
 + 310918 Fixed write blocking for client HttpConnection
 + 312526 Protect shutdown thread initialization during shutdown

jetty-7.1.0 - 05 May 2010
 + 306353 fixed cross context dispatch to root context.
 + 311154 Added deprecated StringBuffer API for backwards compatibility
 + 311554 Protect shutdown thread from Server#doStop
 + 312243 Optimized timeout handling

jetty-7.1.0.RC1 - 05 May 2010
 + 286889 Allow System and Server classes to be set on Server instance and when
   applied to all webapps
 + 291448 SessionManager has isCheckingRemoteSessionIdEncoding
 + 296650 JETTY-1198 reset idle timeout on request body chunks
 + 297104 HTTP CONNECT does not work correct with SSL destinations
 + 306782 Close connection when expected 100 continues is not sent
 + 308848 Update test suite to JUnit4 - Module jetty-ajp
 + 308861 Update test suite to JUnit4 - Module jetty-security
 + 308864 Update test suite to JUnit4 - Module jetty-servlets
 + 308865 Update test suite to JUnit4 - Module jetty-start
 + 308868 Update test suite to JUnit4 - Module jetty-websocket
 + 308869 Update test suite to JUnit4 - Module jetty-xml
 + 309153 Hide extracted WEB-INF/lib when running a non-extracted war
 + 309369 Added WebSocketLoadTest
 + 309686 Fixed response buffers usage
 + 310094 Improved start.jar options handling and configs
 + 310382 NPE protection when WAR is not a file
 + 310562 SslSocketConnector fails to start if excludeCipherSuites is set
 + 310634 Get the localport when opening a server socket.
 + 310703 Update test suite to JUnit4 - Module tests/test-integration
 + 310918 Synchronize content exchange
 + 311154 Use Appendable in preference to StringBuilder/StringBuffer in APIs
 + 311362 Optional org.eclipse.jetty.util.log.stderr.SOURCE
 + JETTY-1030 Improve jetty.sh script
 + JETTY-1142 Replace Set-Cookies with same name

jetty-7.1.0.RC0 - 27 April 2010
 + 294563 Websocket client connection
 + 297104 Improve handling of CONNECT method
 + 306349 ProxyServlet does not work unless deployed at /
 + 307294 Add AbstractLifeCycle.AbstractLifeCycleListener implementation
 + 307847 Fixed combining mime type parameters
 + 307898 Handle large/async websocket messages
 + 308009 ObjectMBean incorrectly casts getTargetException() to Exception
 + 308420 convert jetty-plus.xml to use DeploymentManager
 + 308925 Protect the test webapp from remote access
 + 309466 Removed synchronization from StdErrLog
 + 309765 Added JSP module
 + 310051 _configurationClasses now defaults to null in WebAppContext
 + 310094 Improved start.jar usage and config files
 + 310431 Default ErrorHandler as server Bean
 + 310467 Allow SocketConnector to create generic Connection objects
 + 310603 Make Logger interface consistent
 + 310605 Make a clean room implementation of the JSP logger bridge
 + Add AnnotationConfiguration to jetty-plus.xml
 + Fix jetty-plus.xml reference to addLifeCycle
 + JETTY-1200 SSL NIO Endpoint wraps non NIO buffers
 + JETTY-1202 Use platform default algorithm for SecureRandom
 + Merged 7.0.2.v20100331
 + Add NPE protection to ContainerInitializerConfiguration
 + Temporarily remove jetty-osgi module to clarify jsp version compatibility
 + JETTY-1212 handle long content lengths
 + JETTY-1214 avoid ISE when scavenging invalid session
 + JETTY-903 Stop both caches

jetty-7.0.2.v20100331 - 31 March 2010
 + 297552 Don't call Continuation timeouts from acceptor tick
 + 298236 Additional unit tests for jetty-client
 + 306783 NPE in StdErrLog when Throwable is null
 + 306840 Suppress content-length in requests with no content
 + 306880 Support for UPGRADE in HttpClient
 + 306884 Suspend with timeout <=0 never expires
 + 306782 httpbis interpretation of 100 continues. Body never skipped
 + 307589 updated servlet 3.0 continuations for final API
 + Take excess logging statements out of startup
 + Ensure webapps with no WEB-INF don't scan WEB-INF/lib
 + Allow Configuration array to be set on Server instance for all web apps

jetty-6.1.24 - 21 April 2010
 + JETTY-903 Stop both caches
 + JETTY-1198 reset idle timeout on request body chunks
 + JETTY-1200 SSL NIO Endpoint wraps non NIO buffers
 + JETTY-1211 SetUID loadlibrary name and debug
 + 308925 Protect the test webapp from remote access
 + COMETD-99 ClientImpl logs exceptions in listeners with "debug" level
 + COMETD-100 ClientImpl logs "null" as clientId
 + COMETD-107 Reloading the application with reload extension does not fire
   /meta/connect handlers until long poll timeout expires
 + Upgraded to cometd 1.1.1 client

jetty-6.1.23 - 02 April 2010
 + JSON parses NaN as null
 + Updated JSP to 2.1.v20091210
 + COMETD-28 Improved concurrency usage in Bayeux and channel handling
 + COMETD-46 reset ContentExchange content on resend
 + COMETD-58 Extension.rcv() return null causes NPE in
   AbstractBayeux.PublishHandler.publish
 + COMETD-59 AcknowledgeExtension does not handle null channel in Message
 + COMETD-62 Delay add listeners until after client construction
 + 296569 removeLifeCycleListener() has no effect
 + 292800 ContextDeployer - recursive setting is undone by FilenameFilter
 + 300178 HttpClients opens too many connections that are immediately closed
 + 304658 Inconsistent Expires date format in Set-Cookie headers with maxAge=0
 + 304698 org.eclipse.jetty.http.HttpFields$DateGenerator.formatCookieDate()
   uses wrong (?) date format
 + 306331 Session manager is kept after call to doScope
 + 306840 suppress content-length in requests without content
 + Remove references to old content in HttpClient client tests for www.sun.com
 + JETTY-875 Allow setting of advice field in response to Handshake
 + JETTY-983 Range handling cleanup
 + JETTY-1133 Handle multiple URL ; parameters
 + JETTY-1134 BayeuxClient: Connect msg should be sent as array
 + JETTY-1149 transient should be volatile in AbstractLifeCycle
 + JETTY-1153 System property for UrlEncoded charset
 + JETTY-1155 HttpConnection.close notifies HttpExchange
 + JETTY-1156 SSL blocking close with JVM Bug busy key fix
 + JETTY-1157 Don't hold array passed in write(byte[])
 + JETTY-1158 NPE in StdErrLog when Throwable is null
 + JETTY-1161 An Extension that measures round-trip delay for cometd messages.
 + JETTY-1162 Add support for async/sync message delivery to BayeuxClient
 + JETTY-1163 AJP13 forces 8859-1 encoding
 + JETTY-1168 Don't hold sessionIdManager lock when invalidating sessions
 + JETTY-1170 NPE on client when server-side extension returns null
 + JETTY-1174 Close rather than finish Gzipstreams to avoid JVM leak
 + JETTY-1175 NPE in TimesyncExtension
 + JETTY-1176 NPE in StatisticsExtension if client is null
 + JETTY-1177 Allow error handler to set cacheControl
 + JETTY-1178 Make continuation servlet to log the incoming JSON in case of
   parsing errors
 + JETTY-1180 Extension methods are wrongly called
 + JETTY-1182 COMETD-76 do not lock client while sending messages.
 + JETTY-1183 AcknowledgedMessagesClientExtension does not handle correctly
   message resend when client long polls again
 + JETTY-1186 Better document JMX setup in jetty-jmx.xml
 + JETTY-1188 Null old jobs in QueuedThreadPool
 + JETTY-1191 Limit size of ChannelId cache
 + JETTY-1192 Fixed Digested POST and HttpExchange onRetry
 + JETTY-1193 Exception details are lost in AbstractCometdServlet.getMessages
 + JETTY-1195 Coalesce buffers in ChannelEndPoint.flush()
 + JETTY-1196 Enable TCP_NODELAY by default in client connectors
 + JETTY-1197 SetUID module test fails when using Java 1.6 to build
 + JETTY-1199 FindBugs cleanups
 + JETTY-1205 Memory leak in browser-to-client mapping
 + JETTY-1207 NPE protection in FormAuthenticator
 + JETTY-1202 Use platfrom default algorithm for SecureRandom

jetty-7.0.2.RC0
 + JSON parses NaN as null
 + 290765 Reset input for HttpExchange retry.
 + 292799 WebAppDeployer - start a started context?
 + 292800 ContextDeployer - recursive setting is undone by FilenameFilter
 + 294799 when configuring a webapp, don't look for WEB-INF/jetty6-web.xml
 + 296569 removeLifeCycleListener() has no effect
 + 296765 JMX Connector Server and ShutdownThread
 + 297421 Hide server/system classes from WebAppClassLoader.getResources
 + 297783 Handle HEAD reponses in HttpClient
 + 298144 Unit test for jetty-client connecting to a server that uses Basic
   Auth
 + 298145 Reorganized test harness to separate the HTTP PUT and HTTP GET test
   URLs
 + 298234 Unit test for jetty-client handling different HTTP error codes
 + 298667 DeploymentManager uses ContextProvider and WebAppProvider
 + 299455 Enum support in JSONPojoConvertor
 + 300178 HttpClients opens too many connections that are immediately closed
 + 300733 Jars from lib/ext are not visible for my web application
 + 300933 AbstractConnector uses concurrent objects for stats
 + 301089 Improve statistics available in StatisticsHandler and
   AbstractConnector
 + 302018 Improve statistics available in AbstractSessionHandler
 + 302198 Rename HttpClient authorization classes to Authentication
 + 302244 invalid configuration boolean conversion in FormAuthenticator
 + 302246 redirect loop using form authenticator
 + 302556 CrossOriginFilter does not work correctly when
   Access-Control-Request-Headers header is not present
 + 302669 WebInfConfiguration.unpack() unpacks WEB-INF/* from a
   ResourceCollection, breaking JSP reloading with ResourceCollections
 + 303526 Added include cyphers
 + 304307 Handle ;jsessionid in FROM Auth
 + 304532 Skip some tests on IBM JVMs until resolved
 + 304658 Inconsistent Expires date format in Set-Cookie headers with maxAge=0
 + 304698 org.eclipse.jetty.http.HttpFields$DateGenerator.formatCookieDate()
   uses wrong (?) date format
 + 304781 Reset HttpExchange timeout on slow request content.
 + 304801 SSL connections FULL fix
 + 306330 Flush filter chain cache after Invoker servlet
 + 306331 Session manager is kept after call to doScope
 + JETTY-776 Make new session-tests module to concentrate all reusable session
   clustering test code
 + JETTY-910 Allow request listeners to access session
 + JETTY-983 Range handling cleanup
 + JETTY-1151 JETTY-1098 allow UTF-8 with 0 carry bits
 + JETTY-1153 System property for UrlEncoded charset
 + JETTY-1155 HttpConnection.close notifies HttpExchange
 + JETTY-1156 SSL blocking close with JVM Bug busy key fix
 + JETTY-1157 Don't hold array passed in write(byte[])
 + JETTY-1163 AJP13 forces 8859-1 encoding
 + JETTY-1177 Allow error handler to set cacheControl
 + JETTY-1179 Persistant session tables created on MySQL use wrong datatype
 + JETTY-1184 shrink thread pool even with frequent small jobs
 + JETTY-1133 Handle multiple URL ; parameters
 + JETTY-1174 Close rather than finish Gzipstreams to avoid JVM leak
 + JETTY-1192 Fixed Digested POST
 + JETTY-1199 FindBugs cleanups
 + COMETD-46 reset ContentExchange response content on resend
 + Added IPAccessHandler
 + Updated Servlet3Continuation to final 3.0.20100224
 + 305997 Coalesce buffers in ChannelEndPoint.flush()
 + 306028 Enable TCP_NODELAY by default in client connectors

jetty-8.0.0.M0 - 28 February 2010
 + Updated servlet 3.0 spec 20100224
 + Merged 7.0.1.v20091116
 + Updated to cometd 1.0.1

jetty-7.0.1.v20091125 - 25 November 2009
 + 274251 DefaultServlet supports exact match mode.
 + 288401 HttpExchange.cancel() Method Unimplemented
 + 289027 deobfuscate HttpClient SSL passwords
 + 289265 Test harness for async input
 + 289959 Improved ContextDeployer configuration
 + 289960 start.jar assumes command line args are configs
 + 291019 Fix default DEBUG option; "-D.DEBUG=true" now works
 + 291340 Race condition in onException() notifications
 + 291543 make bin/*.sh scripts executable in distribution
 + 291589 Update jetty-rewrite demo
 + 292642 Fix errors in embedded Jetty examples
 + 292825 Continuations ISE rather than ignore bad transitions
 + 292546 Proactively enforce HttpClient idle timeout
 + 293222 Improved StatisticsHandler for async
 + 293506 Unable to use jconsole with Jetty when running with security manager
 + 293557 Add "jad" mime mapping
 + 294154 Patched jetty-osgi
 + 294224 HttpClient timeout setting has no effect when connecting to host
 + 294345 Support for HTTP/301 + HTTP/302 response codes
 + 294563 Initial websocket implementation
 + JETTY-937 More JVM bug work arounds. Insert pause if all else fails
 + JETTY-983 Send content-length with multipart ranges
 + JETTY-1114 unsynchronised WebAppClassloader.getResource(String)
 + JETTY-1121 Merge Multipart query parameters
 + JETTY-1122 Handle multi-byte utf that causes buffer overflow
 + JETTY-1125 TransparentProxy incorrectly configured for test webapp
 + JETTY-1129 Filter control characters out of StdErrLog
 + JETTY-1135 Handle connection closed before accepted during JVM bug work
   around
 + JETTY-1144 fixed multi-byte character overflow
 + JETTY-1148 Reset partially read request reader.
 + COMETD-34 Support Baeyux MBean
 + Fixed XSS issue in CookieDump demo servlet.
 + Improved start.jar usage text for properties
 + Promoted Jetty Centralized Logging from Sandbox
 + Promoted Jetty WebApp Verifier from Sandbox
 + Refactored continuation test harnessess
 + Fixed client abort asocciation
 + CQ-3581 jetty OSGi contribution
 + Moved centralized logging and verifier back to sandbox
 + CVE-2009-3555 Prevent SSL renegotiate for SSL vulnerability
 + 295421 Cannot reset() a newly created HttpExchange: IllegalStateException 0
   => 0
 + 295562 CrossOriginFilter does not work with default values in Chrome and
   Safari

jetty-7.0.0.v20091005 - 05 October 2009
 + 291340 Race condition in onException() notifications

jetty-6.1.21 - 22 September 2009
 + JETTY-719 Document state machine of jetty http client
 + JETTY-933 State == HEADER in client
 + JETTY-936 Improved servlet matching and optimized
 + JETTY-1038 ChannelId.isParentOf returns the wrong result
 + JETTY-1061 Catch exceptions from cometd listeners
 + JETTY-1072 maven plugin handles context path not as documented
 + JETTY-1080 modified previous fix for windows
 + JETTY-1084 HEAD command not setting content-type in response under certain
   circumstances
 + JETTY-1090 resolve inifinte loop condition for webdav listener
 + JETTY-1092 MultiPartFilter can be pushed into infinite loop
 + JETTY-1093 Request.toString throws exception when size exceeds 4k
 + JETTY-1098 Default form encoding is UTF8
 + JETTY-1099 Improve cookie handling in BayeuxClient
 + JETTY-1100 extend setuid feature to allow setting max open file descriptors
 + JETTY-1102 Wrong usage of deliver() in private chat messages
 + JETTY-1108 SSL EOF detection
 + JETTY-1109 Improper handling of cookies in Terracotta tests
 + JETTY-1112 Response fails if header exceeds buffer size
 + JETTY-1113 IllegalStateException when adding servlet filters
   programmatically
 + JETTY-1114 Unsynchronize webapp classloader getResource
 + 282543 HttpClient SSL buffer size fix
 + 288055 fix jetty-client for failed listener state machine
 + 288153 reset exchange when resending
 + 288182 PUT request fails during retry
 + Fix DefaultServletTest for windows
 + Update Jetty implementation of com.sun.net.httpserver.*
 + Include tmp directory sweeper in build
 + Streamline jetty-jboss build, update sar to QueuedThreadPool

jetty-7.0.0.RC6 - 21 September 2009
 + Fixed XSS issue in CookieDump demo servlet.
 + 289958 StatisticsServlet incorrectly adds StatisticsHandler
 + 289960 start.jar assumes command line args are configs
 + 290081 Eager consume LF after CR
 + 290761 HttpExchange isDone handles intercepted events.
 + JETTY-719 Document state machine of jetty http client
 + JETTY-780 CNFE during startup of webapp with spring-context >= 2.5.1
 + JETTY-936 274251 Improved servlet matching and optimized'
 + JETTY-1080 modify previous fix to work on windows
 + JETTY-1084 HEAD command not setting content-type in response under certain
   circumstances
 + JETTY-1086 Use UncheckedPrintWriter & cleaned up HttpStatus.Code usage
 + JETTY-1090 resolve potential infinite loop with webdav listener
 + JETTY-1092 MultiPartFilter can be pushed into infinite loop
 + JETTY-1093 Request.toString throws exception when size exceeds 4k
 + JETTY-1098 Default form encoding is UTF8
 + JETTY-1101 Updated servlet3 continuation constructor
 + JETTY-1105 Custom error pages aren't working
 + JETTY-1108 SSL EOF detection
 + JETTY-1112 Response fails if header exceeds buffer size
 + JETTY-1113 IllegalStateException when adding servlet filters
   programmatically
 + 280723 Add non blocking statistics handler
 + 282543 HttpClient SSL buffer size fix
 + 283357 org.eclipse.jetty.server.HttpConnectionTest exceptions
 + 288055 jetty-client fails to resolve failed resolution attempts correctly
 + 288153 jetty-client resend doesn't reset exchange
 + 288466 LocalConnector is not thread safe
 + 288514 AbstractConnector does not handle InterruptedExceptions on shutdown
 + 288772 Failure to connect does not set status to EXCEPTED
 + 289146 formalize reload policy functionality
 + 289156 jetty-client: no longer throw runtime exception for bad authn details
 + 288182 PUT request fails during retry
 + 289221 HttpExchange does not timeout when using blocking connector
 + 289285 org.eclipse.jetty.continuation 7.0.0.RC5 imports the
   org.mortbay.util.ajax package
 + 289686 HttpExchange.setStatus() has too coarse synchronization
 + Tweak DefaultServletTest under windows
 + Copy VERSION.txt to distro
 + Remove printlns from jetty-plus

jetty-6.1.20 - 27 August 2009
 + JETTY-838 Don't log and throw
 + JETTY-874 Better error on full header.
 + JETTY-960 Support ldaps
 + JETTY-1046 maven-jetty-jspc-plugin keepSources takes affect only in
   packageRoot
 + JETTY-1057 XSS error page
 + JETTY-1065 Add RedirectRegexRule to provide match/replace/group redirect
   support
 + JETTY-1066 Send 400 error for request URI parse exceptions
 + JETTY-1068 Avoid busy flush of async SSL
 + JETTY-1069 Adjust Bayeux Java client backoff algorithm
 + JETTY-1070 Java Bayeux Client not sending /meta/disconnect on stop
 + JETTY-1074 JMX thread manipulation
 + JETTY-1077 HashSSORealm shares Principals between UserRealms
 + JETTY-1078 Automatic JSON Pojo Conversion
 + JETTY-1079 ResourceCollection.toString() can throw IllegalStateException
 + JETTY-1080 Ignore files that would be extracted outside the destination
   directory when unpacking WARs
 + JETTY-1081 Handle null content type in GzipFilter
 + JETTY-1084 Disable GzipFilter for HEAD requests
 + JETTY-1085 Allow url sessionID if cookie invalid
 + JETTY-1086 Added UncheckedPrintWriter to avoid ignored EOFs
 + JETTY-1087 Chunked SSL non blocking input
 + JETTY-1098 Upgrade jsp to SJSAS-9_1_1-B60F-07_Jan_2009
 + 283513 Check endp.isOpen when blocking read
 + 283818 fixed merge of forward parameters
 + 285006 Fixed NPE in AbstractConnector during shutdown
 + 286535 ContentExchange status code
 + 286911 Clean out cache when recycling HTTP fields
 + COMETD-7 max latency config for lazy messages
 + Added getSubscriptions to cometd client
 + Made unSubscribeAll public on cometd client
 + Removed clearing of queue in unSubscribeAll for cometd client
 + Update test-jndi and test-annotation examples for atomikos 3.5.5
 + Clarified cometd interval timeout and allow per client intervals
 + Update Main.main method to call setWar
 + Added DebugHandler

jetty-7.0.0.RC5 - 27 August 2009
 + 286911 Clean out cache when recycling HTTP fields
 + JETTY-838 Don't log and throw
 + JETTY-874 Better header full warnings
 + JETTY-960 Support for ldaps
 + JETTY-1081 Handle null content type in GzipFilter
 + JETTY-1084 Disable GzipFilter for HEAD requests
 + JETTY-1085 Allow url sessionID if cookie invalid
 + JETTY-1086 Added UncheckedPrintWriter to avoid ignored EOFs
 + JETTY-1087 Chunked SSL non blocking input
 + 287496 Use start.ini always and added --exec
 + 287632 FilterContinuations for blocking jetty6

jetty-6.1.19 - 01 July 2009
 + JETTY-799 shell script for jetty on cygwin
 + JETTY-863 Non blocking stats handler
 + JETTY-937 Further Improvements for sun JVM selector bugs
 + JETTY-970 BayeuxLoadGenerator latency handling
 + JETTY-1011 Grizzly uses queued thread pool
 + JETTY-1028 jetty:run plugin should check for the web.xml from the overlays
   if not found in src/main/webapp/WEB-INF/
 + JETTY-1029 Handle quoted cookie paths
 + JETTY-1031 Handle large pipeline
 + JETTY-1033 jetty-plus compiled with jdk1.5
 + JETTY-1034 Cookie parsing
 + JETTY-1037 reimplemented channel doRemove
 + JETTY-1040 jetty.client.HttpConnection does not handle non IOExceptions
 + JETTY-1042 Avoid cookie reuse on shared connection
 + JETTY-1044 add commons-daemon support as contrib/start-daemon module
 + JETTY-1045 Handle the case where request.PathInfo() should be "/*"
 + JETTY-1046 maven-jetty-jspc-plugin keepSources takes affect only in
   packageRoot
 + JETTY-1047 Cometd client can grow cookie headers
 + JETTY-1048 Default servlet can handle partially filtered large static
   content
 + JETTY-1049 Improved transparent proxy usability
 + JETTY-1054 Avoid double deploys
 + JETTY-1055 Cookie quoting
 + JETTY-1057 Error page stack trace XSS
 + JETTY-1058 Handle trailing / with aliases on
 + JETTY-1062 Don't filter cometd message without data

jetty-7.0.0.RC4 - 18 August 2009
 + 286185 Implement ability for JSON implementation to automatically register
   convertors
 + Added discoverable start options
 + 286535 ContentExchange status code
 + 285891 SessionAuthentication is serializable
 + JETTY-1079 ResourceCollection.toString
 + 279820 Fixed HotSwapHandler
 + JETTY-1080 Ignore files that would be extracted outside the destination
   directory when unpacking WARs
 + JETTY-1057 XSS error page

jetty-7.0.0.RC3 - 07 August 2009
 + 277403 remove system properties
 + JETTY-1074 JMX thread manipulation
 + Improved deferred authentication handling
 + 285697 extract parameters if dispatch has query
 + 282447 concurrent destinations in HttpClient
 + 283172 fix Windows build, broken on directory creation with the
   DefaultServlet
 + 283375 additional error-checking on SSL connector passwords to prevent NPE
 + 283513 Check endp.isOpen when blocking read

jetty-7.0.0.RC2 - 29 June 2009
 + 283844 Webapp / TLD errors are not clear
 + 283375 improved extensibility of SSL connectors
 + 283818 fixed merge of forward parameters
 + backport jetty-8 annotation parsing to jetty-7
 + Disassociate method on IdentityService
 + 284510 Enhance jetty-start for diagnosis and unit testing
 + 284475 update jetty.sh for new OPTIONS syntax
 + Added DebugHandler
 + Added JavaUtilLog for Jetty logging to java.util.logging framework
 + 284981 Implement a cross-origin filter
 + Improved handling of overlays and resourceCollections
 + 285006 fix AbstractConnector NPE during shutdown.

jetty-7.0.0.RC1 - 15 June 2009
 + JETTY-1066 283357 400 response for bad URIs
 + JETTY-1068 Avoid busy flush of async SSL
 + 283344 Startup on windows is broken

jetty-7.0.0.RC0 - 08 June 2009
 + JETTY-967 create standalone build for PKCS12Import at codehaus
 + JETTY-1056 update jetty-ant module for Jetty 7 at codehaus trunk
 + JETTY-1058 Handle trailing / with aliases
 + 280843 Buffer pool uses isHeader
 + 271535 Adding integration tests, and enabling RFC2616 tests
 + 281287 Handle date headers before 1 Jan 1970
 + 282807 Better handling of 100 continues if response committed.

jetty-7.0.0.M4 - 01 June 2009
 + 281059 NPE in QTP with debug on
 + JETTY-799 shell script for jetty on cygwin
 + JETTY-1031 Handle large pipeline
 + JETTY-1034 Cookie parsing
 + JETTY-1042 Prevent cookie leak between shared connection
 + JETTY-1048 Fix for large partially filtered static content
 + JETTY-1049 Improved transparent proxy usability
 + JETTY-1054 Avoid double deploys
 + JETTY-1055 Cookie quoting
 + JETTY-1057 Error page stack trace XSS

jetty-7.0.0.M3 - 20 June 2009
 + fixed race with expired async listeners
 + refactored configuration mechanism
 + added WebAppContext.setConfigurationDiscovered for servlet 3.0 features
 + 274251 Allow dispatch to welcome files that are servlets (configurable)
 + 277403 Cleanup system property usage.
 + 277798 Denial of Service Filter
 + Portable continuations for jetty6 and servlet3
 + Refactored continuations to only support response wrapping
 + Added ContinuationThrowable
 + 276545 Quoted cookie paths
 + 279725 Support 100 and 102 expectations
 + Refactored AbstractBuffers to HttpBuffers for performance
 + Numerous cleanups from static code analysis
 + 280707 client.HttpConnection does not catch and handle non-IOExceptions
 + 281470 Handle the case where request.PathInfo() should be "/*"

jetty-7.0.0.M2 - 18 May 2009
 + JETTY-937 Work around Sun JVM bugs
 + JETTY-941 Linux chkconfig hint
 + JETTY-959 CGI servlet doesn't kill the CGI in case the client disconnects
 + JETTY-980 Fixed ResourceHandler ? handling, and bad URI creation in listings
 + JETTY-996 Make start-stop-daemon optional
 + 273767 Update to use geronimo annotations spec 1.1.1
 + JETTY-1003 java.lang.IllegalArgumentException: timeout can't be negative
 + JETTY-1004 CERT VU#402580 Canonical path handling includes ? in path segment
 + JETTY-1013 MySql Error with JDBCUserRealm
 + JETTY-1014 Enable start-stop-daemon by default on jetty.sh
   (START_STOP_DAEMON=1)
 + JETTY-1015 Reduce BayeuxClient and HttpClient lock contention
 + JETTY-1020 ZipException in org.mortbay.jetty.webapp.TagLibConfiguration
   prevents all contexts from being loaded
 + 275396 Added ScopedHandler to set servlet scope before security handler

jetty-6.1.18 - 16 May 2009
 + JETTY-937 Improved work around sun JVM selector bugs
 + JETTY-1004 CERT VU#402580 Canonical path handling includes ? in path segment
 + JETTY-1008 ContinuationBayeux destroy is called
 + JETTY-1013 MySql Error with JDBCUserRealm
 + JETTY-1014 Enable start-stop-daemon by default on jetty.sh
   (START_STOP_DAEMON=1)
 + JETTY-1015 Reduce BayeuxClient and HttpClient lock contention
 + JETTY-1017 HttpDestination has too coarse locking
 + JETTY-1018 Denial of Service Filter
 + JETTY-1020 ZipException in org.mortbay.jetty.webapp.TagLibConfiguration
   prevents all contexts from being loaded
 + JETTY-1022 Removed several 1.5isms

jetty-5.1.15 - 18 May 2009
 + JETTY-418 synchronized load class
 + JETTY-1004 CERT VU402580 Canonical path handling includes ? in path segment
 + Fixes for CERT438616-CERT237888-CERT21284

jetty-6.1.17 - 30 April 2009
 + JETTY-936 Make optional dispatching to welcome files as servlets
 + JETTY-937 Work around sun JVM selector bugs
 + JETTY-941 Linux chkconfig hint
 + JETTY-957 Reduce hardcoded versions
 + JETTY-980 Security / Directory Listing XSS present
 + JETTY-982 Make test-jaas-webapp run with jetty:run
 + JETTY-983 Default Servlet sets accept-ranges for cached/gzipped content
 + JETTY-988 X-Forwarded-Host has precedence over X-Forwarded-Server
 + JETTY-989 GzipFilter handles addHeader
 + JETTY-990 Async HttpClient connect
 + JETTY-992 URIUtil.encodePath encodes markup characters
 + JETTY-996 Make start-stop-daemon optional
 + JETTY-997 Remove jpackage-utils dependency on rpm install
 + JETTY-985 Allow listeners to implement both interfaces
 + JETTY-1000 Avoided needless 1.5 dependency
 + JETTY-1002 cometd-api to 1.0.beta8
 + JETTY-1003 java.lang.IllegalArgumentException: timeout can't be negative
 + JETTY-1004 CERT VU#402580 Canonical path handling includes ? in path segment
 + JETTY-1006 Resume meta connect on all XD messages

jetty-7.0.0.M1 - 22 April 2009
 + 271258 FORM Authentication dispatch handling avoids caching
 + Initial support for LoginService.logout
 + Removed HTTPConnection specifics from connection dispatching
 + JETTY-695 Handler dump
 + Reworked authentication for deferred authentication
 + Reworked JMX for new layout
 + JETTY-983 DefaultServlet generates accept-ranges for cached/gzip content
 + 273011 JETTY-980 JETTY-992 Security / Directory Listing XSS present
 + 271536 Add support to IO for quietly closing Readers / Writers
 + 273101 Fix DefaultServletTest XSS test case
 + 273153 Test for Nested references in DispatchServlet

jetty-6.1.16 - 01 April 2009
 + JETTY-702 Create "jetty-tasks.xml" for the Ant plugin
 + JETTY-899 Standardize location for configuration files which go into etc
 + JETTY-936 Allow dispatch to welcome files that are servlets
 + JETTY-944 Lazy messages don't prevent long polls waiting
 + JETTY-946 Redeploys with maven jetty plugin of webapps with overlays don't
   work
 + JETTY-947 Exception stops terracotta session scavenger
 + JETTY-948 ConcurrentModificationException in TerracottaSessionManager
   scavenger
 + JETTY-949 Move cometd source to cometd.org project
 + JETTY-953 SSL keystore file input stream is not being closed directly
 + JETTY-956 SslSelectChannelConnector - password should be the default value
   of keyPassword if not specified
 + JETTY-959 CGI servlet doesn't kill the CGI in case the client disconnects
 + JETTY-964 Typo in Jetty 6.1.15 Manifest - Bundle-RequiredExcutionEnvironment
 + JETTY-972 Move cometd code back from cometd.org project (temporarily)
 + JETTY-973 Deliver same message to a collection of cometd Clients

jetty-7.0.0.M0 - 27 March 2009
 + JETTY-496 Support inetd/xinetd through use of System.inheritedChannel()
 + JETTY-540 Merged 3.0 Public Review changes
 + JETTY-567 Delay in initial TLS Handshake With FireFox 3 beta5 and
   SslSelectChannelConnector
 + JETTY-600 Automated tests of WADI integration + upgrade to WADI 2.0
 + JETTY-691 System.getProperty() calls ... wrap them in doPrivileged
 + JETTY-713 Expose additional AbstractConnector methods via MBean
 + JETTY-731 Completed DeliverListener for cometd
 + JETTY-748 RandomAccessFileBuffer for hadoop optimization
 + JETTY-749 Improved ArrayQueue
 + JETTY-765 ensure stop mojo works for all execution phases
 + JETTY-774 Improved caching of mime types with charsets
 + JETTY-775 AbstractSessionTest remove timing related test
 + JETTY-778 handle granular windows timer in lifecycle test
 + JETTY-779 Fixed line feed in request log
 + JETTY-781 Add "mvn jetty:deploy-war" for deploying a pre-assembled war
 + JETTY-782 Implement interval advice for BayeuxClient
 + JETTY-783 Update jetty self-signed certificate
 + JETTY-784 TerracottaSessionManager leaks sessions scavenged in other nodes
 + JETTY-786 Allow DataSourceUserRealm to create tables
 + JETTY-787 Handle MSIE7 mixed encoding
 + JETTY-788 Fix jotm for scoped jndi naming
 + JETTY-790 WaitingContinuations can change mutex if not pending
 + JETTY-792 TerracottaSessionManager does not unlock new session with
   requested id
 + JETTY-793 Fixed DataCache millisecond rounding
 + JETTY-794 WADI integration tests fail intermittently.
 + JETTY-795 NullPointerException in SocketConnector.java
 + JETTY-801 Bring back 2 arg EnvEntry constructor
 + JETTY-802 Modify the default error pages to make association with Jetty
   clearer
 + JETTY-804 HttpClient timeout does not always work
 + JETTY-805 Fix jetty-jaas.xml for new UserRealm package
 + JETTY-806 Timeout related Deadlocks in HTTP Client
 + JETTY-807 HttpTester to handle charsets
 + JETTY-808 cometd client demo run.sh
 + JETTY-809 Need a way to customize WEB-INF/lib file extensions that are added
   to the classpath
 + JETTY-811 Allow configuration of system properties for the maven plugin
   using a file
 + JETTY-813 Simplify NCSARequestLog.java
 + JETTY-814 Add org.eclipse.jetty.client.Address.toString()
 + JETTY-816 Implement reconnect on java bayeux client
 + JETTY-817 Aborted SSL connections may cause jetty to hang with full cpu
 + JETTY-818 Support javax.servlet.request.ssl_session_id
 + JETTY-821 Allow lazy loading of persistent sessions
 + JETTY-822 Commit when autocommit=true causes error with mysql
 + JETTY-823 Extend start.config profiles
 + JETTY-824 Access to inbound byte statistics
 + JETTY-825 URL decoding of spaces (+) fails for encoding not utf8
 + JETTY-830 Add ability to reserve connections on http client
 + JETTY-831 Add ability to stop java bayeux client
 + JETTY-832 More UrlDecoded handling in relation to JETTY-825
 + JETTY-834 Configure DTD does not allow <Map> children
 + JETTY-837 Response headers set via filter are ignored for static resources
 + JETTY-840 add default mime types to *.htc and *.pps
 + JETTY-841 Duplicate messages when sending private message to yourself with
   cometd chat demo
 + JETTY-842 NPE in jetty client when no path component
 + JETTY-843 META-INF/MANIFEST.MF is not present in unpacked webapp
 + JETTY-844 Replace reflection with direct invocation in Slf4jLog
 + JETTY-848 Temporary folder not fully cleanup after stop (via Sweeper)
 + JETTY-854 JNDI scope does not work with applications in a .war
 + JETTY-859 MultiPartFilter ignores the query string parameters
 + JETTY-861 switched buffer pools to ThreadLocal implementation
 + JETTY-862 EncodedHttpURI ignores given encoding in constructor
 + JETTY-866 jetty-client test case fix
 + JETTY-869 NCSARequestLog locale config
 + JETTY-870 NullPointerException in Response when performing redirect to wrong
   relative URL
 + JETTY-871 jetty-client expires() NPE race condition fixed
 + JETTY-876 Added new BlockingArrayQueue and new QueuedThreadPool
 + JETTY-894 Add android .apk to mime types
 + JETTY-897 Remove swing dependency in GzipFilter
 + JETTY-898 Allow jetty debs to start with custom java args provided by users
 + JETTY-899 Standardize location and build process for configuration files
   which go into etc
 + JETTY-890 merge jaspi branch to trunk
 + JETTY-909 Update useragents cache
 + JETTY-917 Change for JETTY-811 breaks systemProperties config parameter in
   maven-jetty-plugin
 + JETTY-922 Fixed NPE on getRemoteHost when socket closed
 + JETTY-923 Client supports attributes
 + JETTY-926 default location for generatedClasses of jspc plugin is incorrect
 + JETTY-939 NPE in AbstractConfiguration.callPreDestroyCallbacks
 + JETTY-938 Deadlock in the TerracottaSessionManager
 + JETTY-946 Redeploys with maven jetty plugin of webapps with overlays don't
   work
 + JETTY-950 Fix double-printing of request URI in request log
 + JETTY-953 SSL keystore file input stream is not being closed directly
 + JETTY-956 SslSelectChannelConnector - password should be the default value
   of keyPassword if not specified
 + moved to org.eclipse packages
 + simplified HandlerContainer API

jetty-6.1.15 - 04 March 2009
 + JETTY-931 Fix issue with jetty-rewrite.xml
 + JETTY-934 fixed stop/start of Bayeux Client
 + JETTY-938 Deadlock in the TerracottaSessionManager
 + JETTY-939 NPE in AbstractConfiguration.callPreDestroyCallbacks
 + JETTY-923 BayeuxClient uses message pools to reduce memory footprint
 + JETTY-924 Improved BayeuxClient disconnect handling
 + JETTY-925 Lazy bayeux messages
 + JETTY-926 default location for generatedClasses of jspc plugin is incorrect

jetty-6.1.15 - 02 March 2009
 + JETTY-923 BayeuxClient uses message pools to reduce memory footprint
 + JETTY-924 Improved BayeuxClient disconnect handling
 + JETTY-925 Lazy bayeux messages
 + JETTY-926 default location for generatedClasses of jspc plugin is incorrect

jetty-6.1.15.rc4 - 19 February 2009
 + JETTY-496 Support inetd/xinetd through use of System.inheritedChannel()
 + JETTY-713 Expose additional AbstractConnector methods via MBean
 + JETTY-749 Improved ack extension
 + JETTY-811 Allow configuration of system properties for the maven plugin
   using a file
 + JETTY-840 add default mime types to *.htc and *.pps
 + JETTY-848 Temporary folder not fully cleanup after stop (via Sweeper)
 + JETTY-872 Handshake handler calls wrong extension callback
 + JETTY-879 Support extra properties in jQuery comet implementation
 + JETTY-802 Modify the default error pages to make association with Jetty
   clearer
 + JETTY-869 NCSARequestLog locale config
 + JETTY-870 NullPointerException in Response when performing redirect to wrong
   relative URL
 + JETTY-878 Removed printStackTrace from WaitingContinuation
 + JETTY-882 ChannelBayeuxListener called too many times
 + JETTY-884 Use hashcode for threadpool ID
 + JETTY-815 Add comet support to jQuery javascript library
 + JETTY-887 Split configuration and handshaking in jquery comet
 + JETTY-888 Fix abort in case of multiple outstanding connections
 + JETTY-894 Add android .apk to mime types
 + JETTY-898 Allow jetty debs to start with custom java args provided by users
 + JETTY-909 Update useragents cache

jetty-6.1.15.rc3 - 28 January 2009
 + JETTY-691 System.getProperty() calls ... wrap them in doPrivileged
 + JETTY-844 Replace reflection with direct invocation in Slf4jLog
 + JETTY-861 switched buffer pools to ThreadLocal implementation
 + JETTY-866 jetty-client test case fix

jetty-6.1.15.rc2 - 23 January 2009
 + adjustment to jetty-client assembly packaging
 + JETTY-567 Delay in initial TLS Handshake With FireFox 3 beta5 and
   SslSelectChannelConnector

jetty-6.1.15.pre0 - 20 January 2009
 + JETTY-600 Automated tests of WADI integration + upgrade to WADI 2.0
 + JETTY-749 Reliable message delivery
 + JETTY-794 WADI integration tests fail intermittently.
 + JETTY-781 Add "mvn jetty:deploy-war" for deploying a pre-assembled war
 + JETTY-795 NullPointerException in SocketConnector.java
 + JETTY-798 Jboss session manager incompatible with LifeCycle.Listener
 + JETTY-801 Bring back 2 arg EnvEntry constructor
 + JETTY-802 Modify the default error pages to make association with Jetty very
   clear
 + JETTY-804 HttpClient timeout does not always work
 + JETTY-806 Timeout related Deadlocks in HTTP Client
 + JETTY-807 HttpTester to handle charsets
 + JETTY-808 cometd client demo run.sh
 + JETTY-809 Need a way to customize WEB-INF/lib file extensions that are added
   to the classpath
 + JETTY-814 Add org.eclipse.jetty.client.Address.toString()
 + JETTY-816 Implement reconnect on java bayeux client
 + JETTY-817 Aborted SSL connections may cause jetty to hang with full cpu
 + JETTY-819 Jetty Plus no more jre 1.4
 + JETTY-821 Allow lazy loading of persistent sessions
 + JETTY-824 Access to inbound byte statistics
 + JETTY-825 URL decoding of spaces (+) fails for encoding not utf8
 + JETTY-827 Externalize servlet api
 + JETTY-830 Add ability to reserve connections on http client
 + JETTY-831 Add ability to stop java bayeux client
 + JETTY-832 More UrlDecoded handling in relation to JETTY-825
 + JETTY-833 Update debian and rpm packages for new jsp-2.1-glassfish jars and
   servlet-api jar
 + JETTY-834 Configure DTD does not allow <Map> children
 + JETTY-837 Response headers set via filter are ignored for static resources
 + JETTY-841 Duplicate messages when sending private message to yourself with
   cometd chat demo
 + JETTY-842 NPE in jetty client when no path component
 + JETTY-843 META-INF/MANIFEST.MF is not present in unpacked webapp
 + JETTY-852 Ensure handshake and connect retried on failure for jquery-cometd
 + JETTY-854 JNDI scope does not work with applications in a .war
 + JETTY-855 jetty-client uber assembly support
 + JETTY-858 ContentExchange provides bytes
 + JETTY-859 MultiPartFilter ignores the query string parameters
 + JETTY-862 EncodedHttpURI ignores given encoding in constructor

jetty-6.1.14 - 14 November 2008
 + JETTY-630 jetty6-plus rpm is missing the jetty6-plus jar
 + JETTY-748 Reduced flushing of large content
 + JETTY-765 ensure stop mojo works for all execution phases
 + JETTY-777 include util5 on the jetty debs
 + JETTY-778 handle granular windows timer in lifecycle test
 + JETTY-779 Fixed line feed in request log
 + JETTY-782 Implement interval advice for BayeuxClient
 + JETTY-783 Update jetty self-signed certificate
 + JETTY-784 TerracottaSessionManager leaks sessions scavenged in other nodes
 + JETTY-787 Handle MSIE7 mixed encoding
 + JETTY-788 Fix jotm for new scoped jndi
 + JETTY-790 WaitingContinuations can change mutex if not pending
 + JETTY-791 Ensure jdk1.4 compatibility for jetty-6
 + JETTY-792 TerracottaSessionManager does not unlock new session with
   requested id
 + JETTY-793 Fixed DataCache millisecond rounding

jetty-6.1.12 - 04 November 2008
 + JETTY-731 Completed DeliverListener for cometd
 + JETTY-772 Increased default threadpool size to 250
 + JETTY-774 Cached text/json content type
 + JETTY-775 fix port of openspaces to jetty-6

jetty-7.0.0.pre5 - 30 October 2008
 + JETTY-766 Fix npe
 + JETTY-767 Fixed SSL Client no progress handshake bug
 + JETTY-768 Remove EnvEntry overloaded constructors
 + JETTY-769 jquery example error
 + JETTY-771 Ensure NamingEntryUtil is jdk1.4 compliant
 + JETTY-772 Increased default threadpool size to 250

jetty-6.1.12.rc5 - 30 October 2008
 + JETTY-703 maxStopTimeMs added to QueuedThreadPool
 + JETTY-762 improved QueuedThreadPool idle death handling
 + JETTY-763 Fixed AJP13 constructor
 + JETTY-766 Ensure SystemProperties set early on jetty-maven-plugin
 + JETTY-767 Fixed SSL Client no progress handshake bug
 + JETTY-768 Remove EnvEntry overloaded constructors
 + JETTY-771 Ensure NamingEntryUtil jdk1.4 compliant

jetty-7.0.0.pre4 - 28 October 2008
 + JETTY-241 Support for web application overlays in rapid application
   development (jetty:run)
 + JETTY-319 improved passing of exception when webapp unavailable
 + JETTY-331 SecureRandom hangs on systems with low entropy (connectors slow to
   start)
 + JETTY-591 No server classes for jetty-web.xml
 + JETTY-604 AbstractSession.setSessionURL
 + JETTY-670 $JETTY_HOME/bin/jetty.sh not worked in Solaris, because of
   /usr/bin/which has no error-code
 + JETTY-676 ResourceHandler doesn't support HTTP HEAD requests
 + JETTY-677 GWT serialization issue
 + JETTY-680 Can't configure the ResourceCollection with maven
 + JETTY-681 JETTY-692 MultiPartFilter is slow for file uploads
 + JETTY-682 Added listeners and queue methods to cometd
 + JETTY-686 LifeCycle.Listener
 + JETTY-687 Issue with servlet-mapping in dynamic servlet invoker
 + JETTY-688 Cookie causes NumberFormatException
 + JETTY-689 processing of non-servlet related annotations
 + JETTY-690 Updated XBean dependencies to XBean version 3.4.3 and Spring
   2.0.5.
 + JETTY-696 jetty.sh restart not working
 + JETTY-698 org.eclipse.resource.JarResource.extract does not close
   JarInputStream jin
 + JETTY-699 Optimized cometd sending of 1 message to many many clients
 + JETTY-700 unit test for unread request data
 + JETTY-703 maxStopTimeMs added to QueuedThreadPool
 + JETTY-708 allow 3 scopes for jndi resources: jvm, server or webapp
 + JETTY-709 Jetty plugin's WebAppConfig configured properties gets overridden
   by AbstractJettyRunMojo even when already set
 + JETTY-710 Worked around poor implementation of File.toURL()
 + JETTY-711 DataSourceUserRealm implementation
 + JETTY-712 HttpClient does not handle request complete after response
   complete
 + JETTY-715 AJP Key size as Integer
 + JETTY-716 Fixed NPE on empty cometd message
 + JETTY-718 during ssl unwrap, return true if some bytes were read, even if
   underflow
 + JETTY-720 fix HttpExchange.waitForStatus
 + JETTY-721 Support wildcard in VirtualHosts configuration
 + JETTY-723 jetty.sh does not check if TMP already is set
 + JETTY-724 better handle EBCDIC default JVM encoding
 + JETTY-728 Improve Terracotta integration and performances
 + JETTY-730 Set SAX parse features to defaults
 + JETTY-731 DeliverListener for cometd
 + JETTY-732 Case Sensitive Basic Authentication Response Header
   Implementations
 + JETTY-733 Expose ssl connectors with xbean
 + JETTY-735 Wrong default jndi name on DataSourceUserRealm
 + JETTY-736 Client Specific cometd advice
 + JETTY-737 refactored jetty.jar into jetty, xml, security, ssl, webapp and
   deploy jars
 + JETTY-738 If jetty.sh finds a pid file is does not check to see if a process
   with that pid is still running
 + JETTY-739 Race in QueuedThreadPool
 + JETTY-741 HttpClient connects slowly due to reverse address lookup by
   InetAddress.getHostName()
 + JETTY-742 Private messages in cometd chat demo
 + JETTY-747 Handle HttpClient exceptions better
 + JETTY-755 Optimized HttpParser and buffers for few busy connections
 + JETTY-757 Unhide JAAS classes
 + JETTY-758 Update JSP to glassfish tag SJSAS-9_1_1-B51-18_Sept_2008
 + JETTY-759 Fixed JSON small negative real numbers
 + JETTY-760 Handle wildcard VirtualHost and normalize hostname in
   ContextHandlerCollection
 + JETTY-762 improved QueuedThreadPool idle death handling
 + JETTY-763 Fixed AJP13 constructor
 + JETTY-766 Ensure SystemProperties set early on jetty-maven-plugin

jetty-6.1.12.rc4 - 21 October 2008
 + JETTY-319 improved passing of exception when webapp unavailable
 + JETTY-729 Backport Terracotta integration to Jetty6.1 branch
 + JETTY-744 Backport of JETTY-741: HttpClient connects slowly due to reverse
   address lookup by InetAddress.getHostName()
 + JETTY-747 Handle exceptions better in HttpClient
 + JETTY-755 Optimized HttpParser and buffers for few busy connections
 + JETTY-758 Update JSP 2.1 to glassfish tag SJSAS-9_1_1-B51-18_Sept_2008
 + JETTY-759 Fixed JSON small negative real numbers
 + JETTY-760 Handle wildcard VirtualHost and normalize hostname in
   ContextHandlerCollection

jetty-6.1.12.rc3 - 10 October 2008
 + JETTY-241 Support for web application overlays in rapid application
   development (jetty:run)
 + JETTY-686 LifeCycle.Listener
 + JETTY-715 AJP key size
 + JETTY-716 NPE for empty cometd message
 + JETTY-718 during ssl unwrap, return true if some bytes were read, even if
   underflow
 + JETTY-720 fix HttpExchange.waitForStatus
 + JETTY-721 Support wildcard in VirtualHosts configuration
 + JETTY-722 jndi related threadlocal not cleared after deploying webapp
 + JETTY-723 jetty.sh does not check if TMP already is set
 + JETTY-725 port JETTY-708 (jndi scoping) to jetty-6
 + JETTY-730 set SAX parser features to defaults
 + JETTY-731 DeliverListener for cometd
 + JETTY-732 Case Sensitive Basic Authentication Response Header
   Implementations
 + JETTY-736 Client Specific cometd advice
 + JETTY-738 If jetty.sh finds a pid file is does not check to see if a process
   with that pid is still running
 + JETTY-739 Race in QueuedThreadPool
 + JETTY-742 Private messages in cometd chat demo

jetty-6.1.12rc2 - 12 September 2008
 + JETTY-282 Support manually-triggered reloading
 + JETTY-331 SecureRandom hangs on systems with low entropy (connectors slow to
   startup)
 + JETTY-591 No server classes for jetty-web.xml
 + JETTY-670 $JETTY_HOME/bin/jetty.sh not worked in Solaris, because of
   /usr/bin/which has no error-code
 + JETTY-671 Configure DTD does not allow <Property> children
 + JETTY-672 Utf8StringBuffer doesn't properly handle null characters (char
   with byte value 0)
 + JETTY-676 ResourceHandler doesn't support HTTP HEAD requests
 + JETTY-677 GWT serialization issue
 + JETTY-680 Can't configure the ResourceCollection with maven
 + JETTY-681 JETTY-692 MultiPartFilter is slow for file uploads
 + JETTY-682 Added listeners and queue methods to cometd
 + JETTY-683 ResourceCollection works for jsp files but does not work for
   static resources under DefaultServlet
 + JETTY-687 Issue with servlet-mapping in dynamic servlet invoker
 + JETTY-688 Cookie causes NumberFormatException
 + JETTY-696 ./jetty.sh restart not working
 + JETTY-698 org.eclipse.resource.JarResource.extract does not close
   JarInputStream jin
 + JETTY-699 Optimize cometd sending of 1 message to many many clients
 + JETTY-709 Jetty plugin's WebAppConfig configured properties gets overridden
   by AbstractJettyRunMojo even when already set
 + JETTY-710 Worked around poor implementation of File.toURL()
 + JETTY-712 HttpClient does not handle request complete after response
   complete

jetty-7.0.0pre3 - 06 August 2008
 + Upgrade jsp 2.1 to SJSAS-9_1_02-B04-11_Apr_2008
 + JETTY-30 Externalize servlet-api to own project
 + JETTY-182 Support setting explicit system classpath for jasper
   Jsr199JavaCompiler
 + JETTY-319 Get unavailable exception and added startWithUnavailable option
 + JETTY-381 JETTY-622 Multiple Web Application Source Directory
 + JETTY-442 Accessors for mimeType on ResourceHandler
 + JETTY-502 forward of an include should hide include attributes
 + JETTY-562 RewriteHandler support for virtual hosts
 + JETTY-563 JETTY-482 OpenRemoteServiceServlet for GWT1.5M2+
 + JETTY-564 Consider optionally importing org.apache.jasper.servlet
 + JETTY-571 SelectChannelConnector throws Exception on close on Windows
 + JETTY-608 Suspend/Resume/Complete request listeners
 + JETTY-621 Improved LazyList javadoc
 + JETTY-626 Null protect reading the dtd resource from classloader
 + JETTY-628 Rewrite rule for rewriting scheme
 + JETTY-629 Don't hold timeout lock during expiry call.
 + JETTY-632 OSGi tags for Jetty client
 + JETTY-633 Default form encoding 8859_1 rather than utf-8
 + JETTY-635 Correctly merge request parameters when doing forward
 + JETTY-636 Separate lifeycle of jsp build
 + JETTY-637 empty date headers throw IllegalArgumentException
 + JETTY-641 JDBC Realm purge cache problem
 + JETTY-642 NPE in LdapLoginModule
 + JETTY-644 LdapLoginModule uses proper filters when searching
 + JETTY-645 Do not provide jetty-util to the webapps
 + JETTY-646 Should set Cache-Control header when sending errors to avoid
   caching
 + JETTY-647 suspended POSTs with binary data do too many resumes
 + JETTY-650 Parse "*" URI for HTTP OPTIONS request
 + JETTY-651 Release resources during destroy
 + JETTY-653 Upgrade jta api specs to more recent version
 + JETTY-654 Allow Cometd Bayeux object to be JMX manageable
 + JETTY-655 Support parsing application/x-www-form-urlencoded parameters via
   http PUT
 + JETTY-656 HttpClient defaults to async mode
 + JETTY-659 ContentExchange and missing headers in HttpClient
 + JETTY-663 AbstractDatabaseLoginModule handle not found UserInfo and userName
 + JETTY-665 Support merging class directories
 + JETTY-666 scanTargetPatterns override the values already being set by
   scanTarget
 + JETTY-667 HttpClient handles chunked content
 + JETTY-669 Http methods other than GET and POST should not have error page
   content
 + JETTY-671 Configure DTD does not allow <Property> children
 + JETTY-672 Utf8StringBuffer doesn't properly handle null characters (char
   with byte value 0)
 + JETTY-675 ServletContext.getRealPath("") returns null instead of returning
   the root dir of the webapp

jetty-6.1.12rc1 - 01 August 2008
 + Upgrade jsp 2.1 to SJSAS-9_1_02-B04-11_Apr_2008
 + JETTY-319 Get unavailable exception and added startWithUnavailable option
 + JETTY-381 JETTY-622 Multiple Web Application Source Directory
 + JETTY-442 Accessors for mimeType on ResourceHandler
 + JETTY-502 forward of an include should hide include attributes
 + JETTY-562 RewriteHandler support for virtual hosts
 + JETTY-563 GWT OpenRemoteServiceServlet GWT1.5M2+
 + JETTY-564 Consider optionally importing org.apache.jasper.servlet
 + JETTY-571 SelectChannelConnector throws Exception on close on Windows
 + JETTY-596 Proxy authorization support in HttpClient
 + JETTY-599 handle buffers consistently handle invalid index for poke
 + JETTY-603 Handle IPv6 in HttpURI
 + JETTY-605 Added optional threadpool to BayeuxService
 + JETTY-606 better writeTo impl for BIO
 + JETTY-607 Add GigaSpaces session clustering
 + JETTY-610 jetty.class.path not being interpreted
 + JETTY-613 website module now generates site-component for jetty-site
 + JETTY-614 scanner allocated hashmap on every scan
 + JETTY-623 ServletContext.getServerInfo() non compliant
 + JETTY-626 Null protect reading the dtd resource from classloader
 + JETTY-628 Rewrite rule for rewriting scheme
 + JETTY-629 Don't hold timeout lock during expiry call.
 + JETTY-632 OSGi tags for Jetty client
 + JETTY-633 Default form encoding 8859_1 rather than utf-8
 + JETTY-635 Correctly merge request parameters when doing forward
 + JETTY-637 empty date headers throw IllegalArgumentException
 + JETTY-641 JDBC Realm purge cache problem
 + JETTY-642 NPE in LdapLoginModule
 + JETTY-644 LdapLoginModule uses proper filters when searching
 + JETTY-646 Should set Cache-Control header when sending errors to avoid
   caching
 + JETTY-647 suspended POSTs with binary data do too many resumes
 + JETTY-650 Parse "*" URI for HTTP OPTIONS request
 + JETTY-651 Release resources during destroy
 + JETTY-654 Allow Cometd Bayeux object to be JMX manageable
 + JETTY-655 Support parsing application/x-www-form-urlencoded parameters via
   http PUT
 + JETTY-656 HttpClient defaults to async mode
 + JETTY-657 Backport jetty-7 sslengine
 + JETTY-658 backport latest HttpClient from jetty-7 to jetty-6
 + JETTY-659 ContentExchange and missing headers in HttpClient
 + JETTY-660 Backported QoSFilter
 + JETTY-663 AbstractDatabaseLoginModule handle not found UserInfo and userName
 + JETTY-665 Support merging class directories
 + JETTY-666 scanTargetPatterns override the values already being set by
   scanTarget
 + JETTY-667 HttpClient handles chunked content
 + JETTY-669 Http methods other than GET and POST should not have error page
   content

jetty-7.0.0pre2 - 30 June 2008
 + JETTY-336 413 error for header buffer full
 + JETTY-425 race in stopping SelectManager
 + JETTY-568 Avoid freeing DirectBuffers. New locking NIO ResourceCache.
 + JETTY-569 Stats for suspending requests
 + JETTY-576 servlet dtds and xsds not being loaded locally
 + JETTY-572 Unique cometd client ID
 + JETTY-578 OSGI Bundle-RequiredExcutionEnvironment set to J2SE-1.5
 + JETTY-579 OSGI resolved management and servlet.resources import error
 + JETTY-580 Fixed SSL shutdown
 + JETTY-581 ContextPath constructor
 + JETTY-582 final ISO_8859_1
 + JETTY-584 handle null contextPath
 + JETTY-587 persist sessions to database
 + JETTY-588 handle Retry in ServletException
 + JETTY-589 Added Statistics Servlet
 + JETTY-590 Digest auth domain for root context
 + JETTY-592 expired timeout callback without synchronization
 + JETTY-595 SessionHandler only deals with base request session
 + JETTY-596 proxy support in HttpClient
 + JETTY-598 Added more reliable cometd message flush option
 + JETTY-599 handle buffers consistently handle invalid index for poke
 + JETTY-603 Handle IPv6 in HttpURI
 + JETTY-605 Added optional threadpool to BayeuxService
 + JETTY-606 better writeTo impl for BIO
 + JETTY-607 Add GigaSpaces session clustering
 + JETTY-609 jetty-client improvements for http conversations
 + JETTY-610 jetty.class.path not being interpreted
 + JETTY-611 make general purpose jar scanning mechanism
 + JETTY-612 scan for web.xml fragments
 + JETTY-613 various distribution related changes
 + JETTY-614 scanner allocates hashmap on every iteration
 + JETTY-615 Replaced CDDL servlet.jar with Apache-2.0 licensed version
 + JETTY-623 ServletContext.getServerInfo() non compliant

jetty-6.1.11 - 06 June 2008
 + JETTY-336 413 error for full header buffer
 + JETTY-425 race in stopping SelectManager
 + JETTY-580 Fixed SSL shutdown
 + JETTY-581 ContextPath constructor
 + JETTY-582 final ISO_8859_1
 + JETTY-584 handle null contextPath
 + JETTY-588 handle Retry in ServletException
 + JETTY-590 Digest auth domain for root context
 + JETTY-592 expired timeout callback without synchronization
 + JETTY-595 SessionHandler only deals with base request session
 + JETTY-596 Proxy support in HttpClient
 + JETTY-598 Added more reliable cometd message flush option

jetty-6.1.10 - 20 May 2008
 + Use QueuedThreadPool as default
 + JETTY-440 allow file name patterns for jsp compilation for jspc plugin
 + JETTY-529 CNFE when deserializing Array from session resolved
 + JETTY-537 JSON handles Locales
 + JETTY-547 Shutdown SocketEndpoint output before close
 + JETTY-550 Reading 0 bytes corrupts ServletInputStream
 + JETTY-551 Upgraded to Wadi 2.0-M10
 + JETTY-556 Encode all URI fragments
 + JETTY-557 Allow ServletContext.setAttribute before start
 + JETTY-558 optional handling of X-Forwarded-For/Host/Server
 + JETTY-566 allow for non-blocking behavior in jetty maven plugin
 + JETTY-572 unique cometd client ID
 + JETTY-579 osgi fixes with management and servlet resources

jetty-7.0.0pre1 - 03 May 2008
 + Allow annotations example to be built regularly, copy to contexts-available
 + Make annotations example consistent with servlet 3.0
 + Refactor JNDI impl to simplify
 + Improved suspend examples
 + address osgi bundling issue relating to build resources
 + JETTY-529 CNFE when deserializing Array from session resolved
 + JETTY-558 optional handling of X-Forwarded-For/Host/Server
 + JETTY-559 ignore unsupported shutdownOutput
 + JETTY-566 allow for non-blocking behavior in jetty maven plugin
 + JETTY-440 allow file name patterns for jsp compilation for jspc plugin

jetty-7.0.0pre0 - 21 April 2008
 + Jetty-6.1.8 Changes
 + Refactor of Continuation towards servlet 3.0 proposal
 + JETTY-282 Support manually-triggered reloading by maven plugin
 + QueuedThreadPool default
 + RetryRequest exception now extends ThreadDeath
 + Added option to dispatch to suspended requests.
 + Delay 100 continues until getInputStream
 + HttpClient supports pipelined request
 + BayeuxClient use a single connection for polling
 + Make javax.servlet.jsp optional osgi import for jetty module
 + Ensure Jotm tx mgr can be found in jetty-env.xml
 + Renamed modules management and naming to jmx and jndi.
 + JETTY-341 100-Continues sent only after getInputStream called.
 + JETTY-386 backout fix and replaced with
   ContextHandler.setCompactPath(boolean)
 + JETTY-399 update OpenRemoteServiceServlet to gwt 1.4
 + JETTY-467 allow URL rewriting to be disabled.
 + JETTY-468 unique holder names for addServletWithMapping
 + JETTY-471 LDAP JAAS Realm
 + JETTY-474 Fixed case sensitivity issue with HttpFields
 + JETTY-475 AJP connector in RPMs
 + JETTY-486 Improved jetty.sh script
 + JETTY-487 Handle empty chunked request
 + JETTY-494 Client side session replication
 + JETTY-519 HttpClient does not recycle closed connection.
 + JETTY-522 Add build profile for macos for setuid
 + JETTY-523 Default servlet uses ServletContext.getResource
 + JETTY-524 Don't synchronize session event listener calls
 + JETTY-525 Fixed decoding for long strings
 + JETTY-526 Fixed MMBean fields on JMX MBeans
 + JETTY-528 Factor our cookie parsing to CookieCutter
 + JETTY-530 Improved JMX MBeanContainer lifecycle
 + JETTY-531 Optional expires on MovedContextHandler
 + JETTY-532 MBean properties for QueuedThreadPool
 + JETTY-535 Fixed Bayeux server side client memory leak
 + JETTY-537 JSON handles Locales
 + JETTY-538 test harness fix for windows
 + JETTY-540 Servlet-3.0 & java5 support (work in progress)
 + JETTY-543 Atomic batch get and put of files.
 + JETTY-545 Rewrite handler
 + JETTY-546 Webapp runner. All in one jar to run a webapps
 + JETTY-547 Shutdown SocketEndpoint output before close
 + JETTY-550 Reading 0 bytes corrupts ServletInputStream
 + JETTY-551 Wadi 2.0-M10
 + JETTY-553 Fixed customize override
 + JETTY-556 Encode all URI fragments
 + JETTY-557 Allow ServletContext.setAttribute before start
 + JETTY-560 Allow decoupling of jndi names in web.xml

jetty-6.1.9 - 26 March 2008
 + Make javax.servlet.jsp optional osgi import for jetty module
 + Ensure Jotm tx mgr can be found in jetty-env.xml
 + JETTY-399 update OpenRemoteServiceServlet to gwt 1.4
 + JETTY-471 LDAP JAAS Realm
 + JETTY-475 AJP connector in RPMs
 + JETTY-482 update to JETTY-399
 + JETTY-519 HttpClient does not recycle closed connection.
 + JETTY-522 Add build profile for macos for setuid
 + JETTY-525 Fixed decoding for long strings
 + JETTY-526 Fixed MMBean fields on JMX MBeans
 + JETTY-532 MBean properties for QueuedThreadPool
 + JETTY-535 Fixed Bayeux server side client memory leak
 + JETTY-538 test harness fix for windows
 + JETTY-541 Cometd per client timeouts

jetty-6.1.8 - 28 February 2008
 + Added QueuedThreadPool
 + Optimized QuotedStringTokenizer.quote()
 + further Optimizations and improvements of Cometd
 + Optimizations and improvements of Cometd, more pooled objects
 + Improved Cometd timeout handling
 + Added BayeuxService
 + Cookie support in BayeuxClient
 + Improved Bayeux API
 + add removeHandler(Handler) method to HandlerContainer interface
 + Added JSON.Convertor and non static JSON instances
 + Long cache for JSON
 + Fixed JSON negative numbers
 + JSON unquotes /
 + Add "mvn jetty:stop"
 + allow sessions to be periodically persisted to disk
 + grizzly fixed for posts
 + Remove duplicate commons-logging jars and include sslengine in jboss sar
 + Allow code ranges on ErrorPageErrorHandler
 + AJP handles bad mod_jk methods
 + JETTY-350 log ssl errors on SslSocketConnector
 + JETTY-417 JETTY_LOGS environment variable not queried by jetty.sh
 + JETTY-433 ContextDeployer constructor fails unnecessarily when using a
   security manager if jetty.home not set
 + JETTY-434 ContextDeployer scanning of sub-directories should be optional
 + JETTY-481 Handle empty Bayeux response
 + JETTY-489 Improve doco on the jetty.port property for plugin
 + JETTY-490 Fixed JSONEnumConvertor
 + JETTY-491 opendocument mime types
 + JETTY-492 Null pointer in HashSSORealm
 + JETTY-493 JSON handles BigDecimals
 + JETTY-498 Improved cookie parsing
 + JETTY-507 Fixed encoding from JETTY-388 and test case
 + JETTY-508 Extensible cometd handlers
 + JETTY-509 Fixed JSONP transport for changing callback names
 + JETTY-511 jetty.sh mishandled JETTY_HOME when launched from a relative path
 + JETTY-512 add slf4j as optional to manifest
 + JETTY-513 Terracotta session replication does not work when the initial page
   on each server does not set any attributes
 + JETTY-515 Timer is missing scavenging Task in HashSessionManager

jetty-6.1.7 - 22 December 2007
 + Added BayeuxService
 + Added JSON.Convertor and non static JSON instances
 + Add "mvn jetty:stop"
 + allow sessions to be periodically persisted to disk
 + Cookie support in BayeuxClient
 + grizzly fixed for posts
 + jetty-6.1 branch created from 6.1.6 and r593 of jetty-contrib trunk
 + Optimizations and improvements of Cometd, more pooled objects
 + Update java5 patch
 + JETTY-386 CERT-553235 backout fix and replaced with
   ContextHandler.setCompactPath(boolean)
 + JETTY-467 allow URL rewriting to be disabled.
 + JETTY-468 unique holder names for addServletWithMapping
 + JETTY-474 Fixed case sensitivity issue with HttpFields
 + JETTY-486 Improved jetty.sh script
 + JETTY-487 Handle empty chunked request

jetty-6.1.6 - 18 November 2007
 + rudimentary debian packaging
 + updated grizzly connector to 1.6.1
 + JETTY-455 Optional cometd id
 + JETTY-459 Unable to deploy from Eclipse into the root context
 + JETTY-461 fixed cometd unknown channel
 + JETTY-464 typo in ErrorHandler
 + JETTY-465 System.exit() in constructor exception for MultiPartOutputStream

jetty-6.1.6rc1 - 05 November 2007
 + Upgrade jsp 2.1 to SJSAS-9_1-B58G-FCS-08_Sept_2007
 + Housekeeping on poms
 + CERT VU#38616 handle single quotes in cookie names.
 + Improved JSON parsing from Readers
 + Moved some impl classes from jsp-api-2.1 to jsp-2.1
 + Added configuration file for capturing stderr and stdout
 + Updated for dojo 1.0(rc) cometd
 + Give bayeux timer name
 + Give Terracotta session scavenger a name
 + Jetty Eclipse Plugin 1.0.1: force copy of context file on redeploy
 + JETTY-388 Handle utf-16 and other multibyte non-utf-8 form content.
 + JETTY-409 String params that denote files changed to File
 + JETTY-438 handle trailing . in vhosts
 + JETTY-439 Fixed 100 continues clash with Connection:close
 + JETTY-451 Concurrent modification of session during invalidate
 + JETTY-443 windows bug causes Acceptor thread to die
 + JETTY-445 removed test code
 + JETTY-448 added setReuseAddress on AbstractConnector
 + JETTY-450 Bad request for response sent to server
 + JETTY-452 CERT VU#237888 Dump Servlet - prevent cross site scripting
 + JETTY-453 updated Wadi to 2.0-M7
 + JETTY-454 handle exceptions with themselves as root cause
 + JETTY-456 allow null keystore for osX
 + JETTY-457 AJP certificate chains

jetty-6.1.6rc0 - 03 October 2007
 + Added jetty.lib system property to start.config
 + AJP13 Fix on chunked post
 + Fix cached header optimization for extra characters
 + SetUID option to support setgid
 + Make mx4j used only if runtime uses jdk<1.5
 + Moved Grizzly to contrib
 + Give deployment file Scanner threads a unique name
 + Fix Host header for async client
 + Fix typo in async client onResponsetHeader method name
 + Tweak OSGi manifests to remove unneeded imports
 + Allow scan interval to be set after Scanner started
 + Add jetty.host system property
 + Allow properties files on the XmlConfiguration command line.
 + Prevent infinite loop on stopping with temp dir
 + Ensure session is completed only when leaving context.
 + Update terracotta to 2.4.1 and exclude ssl classes
 + Update jasper2.1 to tag SJSAS-9_1-B58C-FCS-22_Aug_2007
 + Removal of unneeded dependencies from management, maven-plugin, naming &
   plus poms
 + Adding setUsername,setGroupname to setuid and mavenizing native build
 + UTF-8 for bayeux client
 + CVE-2007-5615 Added protection for response splitting with bad headers.
 + Cached user agents strings in the /org/mortbay/jetty/useragents resource
 + Make default time format for RequestLog match NCSA default
 + Use terracotta repo for build; make jetty a terracotta module
 + Fix patch for java5 to include cometd module
 + Added ConcatServlet to combine javascript and css
 + Add ability to persist sessions with HashSessionManager
 + Avoid FULL exception in window between blockForOutput and remote close
 + Added JPackage RPM support
 + Added JSON.Convertable
 + Updated README, test index.html file and jetty-plus.xml file
 + JETTY-259 SystemRoot set for windows CGI
 + JETTY-311 avoid json keywords
 + JETTY-376 allow anything but CRLF in reason string
 + JETTY-398 Allow same WADI Dispatcher to be used across multiple web-app
   contexts
 + JETTY-400 consume CGI stderr
 + JETTY-402 keep HashUserRealm in sync with file
 + JETTY-403 Allow long content length for range requests
 + JETTY-404 WebAppDeployer sometimes deploys duplicate webapp
 + JETTY-405 Default date formate for reqest log
 + JETTY-407 AJP handles unknown content length
 + JETTY-413 Make rolloveroutputstream timer daemon
 + JETTY-422 Allow <Property> values to be null in config files
 + JETTY-423 Ensure javax.servlet.forward parameters are latched on first
   forward
 + JETTY-425 Handle duplicate stop calls better
 + JETTY-430 improved cometd logging
 + JETTY-431 HttpClient soTimeout

jetty-6.1.5 - 19 July 2007
 + Upgrade to Jasper 2.1 tag SJSAS-9_1-B50G-BETA3-27_June_2007
 + Fixed GzipFilter for dispatchers
 + Fixed reset of reason
 + JETTY-392 updated LikeJettyXml example

jetty-6.1.5rc0 - 15 July 0200
 + update terracotta session clustering to terracotta 2.4
 + SetUID option to only open connectors before setUID.
 + Protect SslSelectChannelConnector from exceptions during close
 + Improved Request log configuration options
 + Added GzipFilter and UserAgentFilter
 + make OSGi manifests for jetty jars
 + update terracotta configs for tc 2.4 stable1
 + remove call to open connectors in jetty.xml
 + update links on website
 + make jetty plus example webapps use ContextDeployer
 + Dispatch SslEngine expiry (non atomic)
 + Make SLF4JLog impl public, add mbean descriptors
 + SPR-3682 - dont hide forward attr in include.
 + Upgrade to Jasper 2.1 tag SJSAS-9_1-B50G-BETA3-27_June_2007
 + JETTY-253 Improved graceful shutdown
 + JETTY-373 Stop all dependent lifecycles
 + JETTY-374 HttpTesters handles large requests/responses
 + JETTY-375 IllegalStateException when committed.
 + JETTY-376 allow spaces in reason string
 + JETTY-377 allow sessions to be wrapped with
   AbstractSesssionManager.SessionIf
 + JETTY-378 handle JVMs with non ISO/UTF default encodings
 + JETTY-380 handle pipelines of more than 4 requests!
 + JETTY-385 EncodeURL for new sessions from dispatch
 + JETTY-386 Allow // in file resources

jetty-6.1.4 - 15 June 2007
 + fixed early open() call in NIO connectors
 + JETTY-370 ensure maxIdleTime<=0 means connections never expire
 + JETTY-371 Fixed chunked HEAD response
 + JETTY-372 make test for cookie caching more rigorous

jetty-6.1.4rc1 - 10 June 2007
 + Work around IBM JVM socket close issue
 + moved documentation for jetty and jspc maven plugins to wiki
 + async client improvements
 + fixed handling of large streamed files
 + Fixed synchronization conflict SslSelectChannel and SelectChannel
 + Optional static content cache
 + JETTY-310 better exception when no filter file for cometd servlet
 + JETTY-323 handle htaccess without a user realm
 + JETTY-346 add wildcard support to extra scan targets for maven plugin
 + JETTY-355 extensible SslSelectChannelConnector
 + JETTY-357 cleaned up ssl buffering
 + JETTY-360 allow connectors, userRealms to be added from a <jettyConfig> for
   maven plugin
 + JETTY-361 prevent url encoding of dir listings for non-link text
 + JETTY-362 More object locks
 + JETTY-365 make needClientAuth work on SslSelectChannelConnector
 + JETTY-366 JETTY-368 Improved bayeux disconnect

jetty-6.1.4rc0 - 01 June 2007
 + Reorganized import of contrib modules
 + Unified JMX configuration
 + Updated slf4j version to 1.3.1
 + Updated junit to 3.8.2
 + Allow XmlConfiguration properties to be configured
 + Add (commented out) jspc precompile to test-webapp
 + Add slf4j-api for upgraded version
 + Change scope of fields for Session
 + Add ability to run cometd webapps to maven plugin
 + Delay ssl handshake until after dispatch in sslSocketConnector
 + Set so_timeout during ssl handshake as an option on SslSocketConnector
 + Optional send Date header. Server.setSendDateHeader(boolean)
 + update etc/jetty-ssl.xml with new handshake timeout setting
 + fixed JSP close handling
 + improved date header handling
 + fixed waiting continuation reset
 + JETTY-257 fixed comet cross domain
 + JETTY-309 fix applied to sslEngine
 + JETTY-317 rollback inclusion of cometd jar for maven plugin
 + JETTY-318 Prevent meta channels being created
 + JETTY-330 Allow dependencies with scope provided for jspc plugin
 + JETTY-335 SslEngine overflow fix
 + JETTY-337 deprecated get/setCipherSuites and added
   get/setExcludeCipherSuites
 + JETTY-338 protect isMoreInBuffer from destroy
 + JETTY-339 MultiPartFiler deletes temp files on IOException
 + JETTY-340 FormAuthentication works with null response
 + JETTY-344 gready fill in ByteArrayBuffer.readFrom
 + JETTY-345 fixed lost content with blocked NIO.
 + JETTY-347 Fixed type util init
 + JETTY-352 Object locks

jetty-6.1.3 - 04 May 2007
 + Handle CRLF for content in header optimization
 + JETTY-309 don't clear writable status until dispatch
 + JETTY-315 suppressed warning
 + JETTY-322 AJP13 cping and keep alive

jetty-6.1.2 - 01 May 2007
 + Improved unavailabile handling
 + sendError resets output state
 + Fixed session invalidation error in WadiSessionManager
 + Updated Wadi to version 2.0-M3
 + Added static member definition in WadiSessionManager
 + JETTY-322 fix ajp cpong response and close handling
 + JETTY-324 fix ant plugin
 + JETTY-328 updated jboss

jetty-6.1.2rc5 - 24 April 2007
 + set default keystore for SslSocketConnector
 + removed some compile warnings
 + Allow jsp-file to be / or /*
 + JETTY-305 delayed connection destroy
 + JETTY-309 handle close in multivalue connection fields.
 + JETTY-314 fix for possible NPE in Request.isRequestedSessionIdValid

jetty-6.1.2rc4 - 19 April 2007
 + JETTY-294 Fixed authentication reset
 + JETTY-299 handle win32 paths for object naming
 + JETTY-300 removed synchronized on dispatch
 + JETTY-302 correctly parse quoted content encodings
 + JETTY-303 fixed dual reset of generator
 + JETTY-304 Fixed authentication reset

jetty-6.1.2rc3 - 16 April 2007
 + Improved performance and exclusions for TLD scanning
 + MBean properties assume writeable unless marked RO
 + refactor of SessionManager and SessionIdManager for clustering
 + Improvements to allow simple setting of Cache-Control headers
 + AJP redirects https requests correctly
 + Fixed writes of unencoded char arrays.
 + JETTY-283 Parse 206 and 304 responses in client
 + JETTY-285 enable jndi for mvn jetty:run-war and jetty:run-exploded
 + JETTY-289 fixed javax.net.ssl.SSLException on binary file upload
 + JETTY-292 Fixed error page handler error pages
 + JETTY-293 fixed NPE on fast init
 + JETTY-294 Response.reset() resets headers as well as content
 + JETTY-295 Optional support of authenticated welcome files
 + JETTY-296 Close direct content inputstreams
 + JETTY-297 Recreate tmp dir on stop/start
 + JETTY-298 Names in JMX ObjectNames for context, servlets and filters

jetty-6.1.2rc2 - 27 March 2007
 + Enable the SharedStoreContextualiser for the WadiSessionManager(Database
   store for clustering)
 + AJP13 CPING request and CPONG response implemented
 + AJP13 Shutdown Request from peer implemented
 + AJP13 remoteUser, contextPath, servletPath requests implemented
 + Change some JNDI logging to debug level instead of info
 + Update jasper to glassfish tag SJSAS-9_1-B39-RC-14_Mar_2007
 + Optimized multi threaded init on startup servlets
 + Removed unneeded specialized TagLibConfiguration class from maven plugin
 + Refactor Scanner to increase code reuse with maven/ant plugins
 + Added RestFilter for PUT and DELETE from Aleksi Kallio
 + Make annotations work for maven plugin
 + JETTY-125 maven plugin: ensure test dependencies on classpath for
   <useTestClasspath>
 + JETTY-246 path encode cookies rather than quote
 + JETTY-254 prevent close of jar entry by bad JVMs
 + JETTY-256 fixed isResumed and work around JVM bug
 + JETTY-258 duplicate log message in ServletHandler
 + JETTY-260 Close connector before stop
 + JETTY-262 Allow acceptor thread priority to be adjusted
 + JETTY-263 Added implementation for authorizationType Packets
 + JETTY-265 Only quote cookie values if needed
 + JETTY-266 Fix deadlock with shutdown
 + JETTY-271 ResourceHandler uses resource for MimeType mapping
 + JETTY-272 Activate and Passivate events for sessions
 + JETTY-274 Improve flushing at end of request for blocking
 + JETTY-276 Partial fix for reset/close race
 + JETTY-277 Improved ContextHandlerCollection
 + JETTY-278 Session invalidation delay until no requests
 + JETTY-280 Fixed deadlock with two flushing threads
 + JETTY-284 Fixed stop connector race
 + JETTY-286 isIntegral and isConfidential methods overridden in
   SslSelectChannelConnector

jetty-6.1.2rc1 - 08 March 2007
 + TagLibConfiguration uses resource input stream
 + Improved handling of early close in AJP
 + add ajp connector jar to jetty-jboss sar
 + Improved Context setters for wadi support
 + fix Dump servlet to handle primitive array types
 + handle comma separated values for the Connection: header
 + Added option to allow null pathInfo within context
 + BoundedThreadPool queues rather than blocks excess jobs.
 + Support null pathInfo option for webservices deployed to jetty/jboss
 + Workaround to call SecurityAssocation.clear() for jboss webservices calls to
   ejbs
 + Ensure jetty/jboss uses servlet-spec classloading order
 + call preDestroy() after servlet/filter destroy()
 + Fix constructor for Constraint to detect wildcard role
 + Added support for lowResourcesIdleTime to SelectChannelConnector
 + JETTY-157 make CGI handle binary data
 + JETTY-175 JDBCUserRealm use getInt instead of getObject
 + JETTY-188 Use timer for session scavaging
 + JETTY-235 default realm name
 + JETTY-242 fix race condition with scavenging sessions when stopping
 + JETTY-243 FULL
 + JETTY-244 Fixed UTF-8 buffer overflow
 + JETTY-245 Client API improvements
 + JETTY-246 spaces in cookies
 + JETTY-248 setContentLength after content written
 + JETTY-250 protect attribute enumerations from modification
 + JETTY-252 Fixed stats handling of close connection
 + JETTY-254 prevent close of jar file by bad JVMs

jetty-6.1.2rc0 - 15 February 2007
 + JETTY-223 Fix disassociate of UserPrincipal on dispatches
 + JETTY-226 Fixed SSLEngine close issue
 + JETTY-232 Fixed use of override web.xml
 + JETTY-236 Buffer leak
 + JETTY-237 AJPParser Buffer Data Handling
 + JETTY-238 prevent form truncation
 + Patches from sybase for ClientCertAuthenticator
 + Coma separated cookies
 + Cometd timeout clients

jetty-6.1.2pre1 - 05 February 2007
 + JETTY-224 run build up to process-test before invoking jetty:run
 + Added error handling for incorrect keystore/truststore password in
   SslSelectChannelConnector
 + fixed bug with virtual host handling in ContextHandlerCollection
 + added win32service to standard build
 + refactored cometd to be continuation independent
 + allow ResourceHandler to use resource base from an enclosing ContextHandler

jetty-6.1.2pre0 - 01 February 2007
 + Fixed 1.4 method in jetty plus
 + Fixed generation of errors during jsp compilation for jsp-2.1
 + Added cometd jsonp transport from aabeling
 + Added terracotta cluster support for cometd
 + JETTY-213 request.isUserInRole(String) fixed
 + JETTY-215 exclude more transitive dependencies from tomcat jars for jsp-2.0
 + JETTY-216 handle AJP packet fragmentation
 + JETTY-218 handle AJP ssl key size and integer
 + JETTY-219 fixed trailing encoded chars in cookies
 + JETTY-220 fixed AJP content
 + JETTY-222 fix problem parsing faces-config.xml
 + add support for Annotations in servlet, filter and listener sources
 + improved writer buffering
 + moved JSON parser to util to support reuse
 + handle virtual hosts in ContextHandlerCollection
 + enable SslSelectChannelConnector to modify the SslEngine's client
   authentication settings

jetty-6.1.1 - 15 January 2007

jetty-6.1.1rc1 - 12 January 2007
 + Use timers for Rollover logs and scanner
 + JETTY-210 Build jsp-api-2.0 for java 1.4

jetty-6.1.1rc0 - 10 January 2007
 + Fixed unpacking WAR
 + extras/win32service download only if no JavaServiceWrapper exist
 + MultiPartFilter deleteFiles option
 + CGI servlet fails without exception
 + JETTY-209 Added ServletTester.createSocketConnector
 + JETTY-210 Build servlet-api-2.5 for java 1.4
 + JETTY-211 fixed jboss build
 + ensure response headers on AjaxFilter messsages turn off caching
 + start webapps on deployment with jboss, use isDistributed() method from
   WebAppContext
 + simplified chat demo

jetty-6.1.0 - 09 January 2007
 + Fixed unpacking WAR

jetty-6.1.0 - 05 January 2007
 + Improved config of java5 threadpool
 + Protect context deployer from Errors
 + Added WebAppContext.setCopyWebDir to avoid JVM jar caching issues.
 + GERONIMO-2677 refactor of session id handling for clustering
 + ServletTester sets content length
 + Added extras/win32service
 + JETTY-206 fixed AJP getServerPort and getRemotePort

jetty-6.1.0rc3 - 02 January 2007
 + JETTY-195 fixed ajp ssl_cert handling
 + JETTY-197 fixed getRemoteHost
 + JETTY-203 initialize ServletHandler if no Context instance
 + JETTY-204 setuid fix
 + setLocale does not use default content type
 + Use standard releases of servlet and jsp APIs.
 + implement resource injection and lifecycle callbacks declared in web.xml
 + extras/servlet-tester

jetty-6.1.0rc2 - 20 December 2006
 + AJP13Parser, throw IllegalStateException on unimplemented AJP13 Requests
 + ContextHandlerCollection is noop with no handlers
 + ensure servlets initialized if only using ServletHandler
 + fixed Jetty-197 AJP13 getRemoteHost()
 + Refactored AbstractSessionManager for ehcache
 + ensure classpath passed to jspc contains file paths not urls
 + JETTY-194 doubles slashes are significant in URIs
 + JETTY-167 cometd refactor
 + remove code to remove SecurityHandler if no constraints present
 + JETTY-201 make run-as work for both web container and ejb container in jboss
 + ensure com.sun.el.Messages.properties included in jsp-2.1 jar

jetty-6.1.0rc1 - 14 December 2006
 + simplified idle timeout handling
 + JETTY-193 MailSessionReference without authentication
 + JETTY-199 newClassPathResource
 + ensure unique name for ServletHolder instances
 + added cache session manager(pre-alpha)

jetty-6.1.0rc0 - 08 December 2006
 + JETTY-181 Allow injection of a java:comp Context
 + JETTY-182 Optionally set JSP classpath initparameter
 + Dispatcher does not protect javax.servlet attributes
 + DefaultHandler links virtual hosts.
 + Fixed cachesize on invalidate
 + Optimization of writers
 + ServletHandler allows non REQUEST exceptions to propogate
 + TCK fixes from Sybase:
 + Handle request content encodings
 + forward query attribute fix
 + session attribute listener
 + Servlet role ref
 + flush if content-length written
 + 403 for BASIC authorization failure
 + null for unknown named dispatches
 + JETTY-184 cometd connect non blocking
 + Support for RFC2518 102-processing response
 + JETTY-123 fix improved
 + Added org.mortbay.thread.concurrent.ThreadPool
 + Added extras/gwt
 + Fixed idle timeout
 + JETTY-189 ProxyConnection
 + Added spring ejb3 demo example
 + update jasper to glassfish SJSAS-9_1-B27-EA-07_Dec_2006
 + JETTY-185 tmp filename generation

jetty-6.1.0pre3 - 22 November 2006
 + fixed NIO endpoint flush. Avoid duplicate sends
 + CVE-2006-6969 Upgraded session ID generation to use SecureRandom
 + updated glassfish jasper to tag SJSAS-9_1-B25-EA-08_Nov_2006
 + Support TLS_DHE_RSA_WITH_AES_256_CBC_SHA
 + JETTY-180 XBean support for context deploy
 + JETTY-154 Cookies are double quotes only
 + Expose isResumed on Continuations
 + Refactored AJP generator

jetty-6.0.2 - 22 November 2006
 + Moved all modules updates from 6.1pre2 to 6.0
 + Added concept of bufferred endpoint
 + Added conversion Object -> ObjectName for the result of method calls made on
   MBeans
 + Added DataFilter configuration to cometd
 + added examples/test-jaas-webapp
 + Added extraClassPath to WebAppContext
 + Added hierarchical destroy of mbeans
 + Added ID constructor to AbstractSessionManager.Session
 + added isStopped() in LifeCycle and AbstractLifeCycle
 + Added override descriptor for deployment of RO webapps
 + add <Property> replacement in jetty xml config files
 + alternate optimizations of writer (use -Dbuffer.writers=true)
 + Allow session cookie to be refreshed
 + Apply queryEncoding to getQueryString
 + CGI example in test webapp
 + change examples/test-jndi-webapp so it can be regularly built
 + Default soLinger is -1 (disabled)
 + ensure "" returned for ServletContext.getContextPath() for root context
 + ensure sessions nulled out on request recycle; ensure session null after
   invalidate
 + ensure setContextPath() works when invoked from jetty-web.xml
 + fixed NIO endpoint flush. Avoid duplicate sends
 + Fixed NPE in bio.SocketEndPoint.getRemoteAddr()
 + Fixed resource cache flushing
 + Fixed tld parsing for maven plugin
 + HttpGenerator can generate requests
 + Improved *-mbean.properties files and specialized some MBean
 + JETTY-118 ignore extra content after close.
 + JETTY-119 cleanedup Security optimizatoin
 + JETTY-123 handle windows UNC paths
 + JETTY-126 handle content > Integer.MAX_VALUE
 + JETTY-129 ServletContextListeners called after servlets are initialized
 + JETTY-151 Idle timeout only applies to blocking operations
 + JETTY-154 Cookies are double quotes only
 + JETTY-171 Fixed filter mapping
 + JETTY-172 use getName() instead of toString
 + JETTY-173 restore servletpath after dispatch
 + Major refactor of SelectChannel EndPoint for client selector
 + make .tag files work in packed wars
 + Plugin shutdown context before stopping it.
 + Refactored session lifecycle and additional tests
 + release resource lookup in Default servlet
 + (re)make JAAS classes available to webapp classloader
 + Reverted UnixCrypt to use coersions (that effected results)
 + Session IDs can change worker ID
 + Simplified ResourceCache and Default servlet
 + SocketConnector closes all connections in doStop
 + Upgraded session ID generation to use SecureRandom
 + updated glassfish jasper to tag SJSAS-9_1-B25-EA-08_Nov_2006
 + Support TLS_DHE_RSA_WITH_AES_256_CBC_SHA

jetty-5.1.14 - 09 August 2007
 + patched with correct version
 + JETTY-155 force close with content length.
 + JETTY-369 failed state in Container

jetty-5.1.13
 + Sourceforge 1648335: problem setting version for AJP13

jetty-5.1.12 - 22 November 2006
 + Added support for TLS_DHE_RSA_WITH_AES_256_CBC_SHA
 + Upgraded session ID generation to use SecureRandom
 + Quote single quotes in cookies
 + AJP protected against bad requests from mod_jk
 + JETTY-154 Cookies ignore single quotes

jetty-4.2.27 - 22 November 2006
 + Upgraded session ID generation to use SecureRandom
 + AJP protected against bad requests from mod_jk

jetty-6.1.0pre2 - 20 November 2006
 + Added extraClassPath to WebAppContext
 + Fixed resource cache flushing
 + Clean up jboss module licensing

jetty-6.1.0pre1 - 19 November 2006
 + Use ContextDeployer as main deployer in jetty.xml
 + Added extras/jboss
 + Major refactor of SelectChannel EndPoint for client selector
 + Fixed NPE in bio.SocketEndPoint.getRemoteAddr()
 + Reverted UnixCrypt to use coersions (that effected results)
 + JETTY-151 Idle timeout only applies to blocking operations
 + alternate optimizations of writer (use -Dbuffer.writers=true)
 + JETTY-171 Fixed filter mapping
 + JETTY-172 use getName() instead of toString
 + JETTY-173 restore servletpath after dispatch
 + release resource lookup in Default servlet
 + Simplified ResourceCache and Default servlet
 + Added override descriptor for deployment of RO webapps
 + Added hierarchical destroy of mbeans

jetty-6.1.0pre0 - 21 October 2006
 + add <Property> replacement in jetty xml config files
 + make .tag files work in packed wars
 + add hot deployment capability
 + ensure setContextPath() works when invoked from jetty-web.xml
 + ensure sessions nulled out on request recycle; ensure session null after
   invalidate
 + ensure "" returned for ServletContext.getContextPath() for root context
 + Fixed tld parsing for maven plugin
 + Improved *-mbean.properties files and specialized some MBean
 + Added conversion Object -> ObjectName for the result of method calls made on
   MBeans
 + JETTY-129 ServletContextListeners called after servlets are initialized
 + change examples/test-jndi-webapp so it can be regularly built
 + added isStopped() in LifeCycle and AbstractLifeCycle
 + fixed isUserInRole checking for JAASUserRealm
 + fixed ClassCastException in JAASUserRealm.setRoleClassNames(String[])
 + add a maven-jetty-jspc-plugin to do jspc precompilation
 + added examples/test-jaas-webapp
 + (re)make JAAS classes available to webapp classloader
 + CGI example in test webapp
 + Plugin shutdown context before stopping it.
 + Added concept of bufferred endpoint
 + Factored ErrorPageErrorHandler out of WebAppContext
 + Refactored ErrorHandler to avoid statics
 + Transforming classloader does not transform resources.
 + SocketConnector closes all connections in doStop
 + Improved charset handling in URLs
 + minor optimization of bytes to UTF8 strings
 + JETTY-112 ContextHandler checks if started
 + JETTY-113 support optional query char encoding on requests
 + JETTY-114 removed utf8 characters from code
 + JETTY-115 Fixed addHeader
 + added cometd chat demo
 + JETTY-119 cleanedup Security optimizatoin
 + Refactored session lifecycle and additional tests
 + JETTY-121 init not called on externally constructed servlets
 + JETTY-124 always initialize filter caches
 + JETTY-126 handle content > Integer.MAX_VALUE
 + JETTY-123 handle windows UNC paths
 + JETYY-120 SelectChannelConnector closes all connections on stop
 + Added ID constructor to AbstractSessionManager.Session
 + Allow session cookie to be refreshed
 + Added DataFilter configuration to cometd
 + Added extras/setuid to support start as root
 + Apply queryEncoding to getQueryString
 + JETTY-118 ignore extra content after close.
 + HttpGenerator can generate requests
 + Ported HtAccessHandler
 + Start of a client API
 + Session IDs can change worker ID
 + Default soLinger is -1 (disabled)
 + AJP Connector

jetty-5.1.11 - 08 October 2006
 + fixed ByteBufferOutputStream capacity calculation
 + Fixed AJP handling of certificate length (1494939)
 + Fixed AJP chunk header (1507377)
 + Fixed order of destruction event calls
 + Fix to HttpOutputStream from M.Traverso
 + Default servlet only uses setContentLength on wrapped responses

jetty-4.2.26 - 08 October 2006
 + Backport of AJP fixes

jetty-6.0.1 - 24 September 2006
 + fixed isUserInRole checking for JAASUserRealm
 + fixed ClassCastException in JAASUserRealm.setRoleClassNames(String[])
 + Improved charset handling in URLs
 + Factored ErrorPageErrorHandler out of WebAppContext
 + Refactored ErrorHandler to avoid statics
 + JETTY-112 ContextHandler checks if started
 + JETTY-114 removed utf8 characters from code
 + JETTY-115 Fixed addHeader
 + JETTY-121 init not called on externally constructed servlets
 + minor optimization of bytes to UTF8 strings
 + JETTY-113 support optional query char encoding on requests
 + JETTY-124 always initialize filter caches
 + JETYY-120 SelectChannelConnector closes all connections on stop

jetty-6.0.0 - 10 September 2006
 + SocketConnector closes all connections in doStop
 + Conveniance builder methods for listeners and filters
 + Transforming classloader does not transform resources.
 + Plugin shutdown context before stopping it.

jetty-6.0.0rc4 - 05 September 2006
 + bind jetty-env.xml entries to java:comp/env
 + JETTY-107 Poor cast in SessionDump demo.
 + Set charset on error pages

jetty-6.0.0rc3 - 01 September 2006
 + pulled 6.0.0 branch
 + JETTY-103
 + Move MailSessionReference to org.mortbay.naming.factories
 + Less verbose handling of BadResources from bad URLs
 + Avoid double error handling of Bad requests
 + don't warn for content length on head requests
 + JETTY-104 (raised glassfish ISSUE-1044) hide JSP forced path attribute
 + JETTY-68 Complete request after sendRedirect
 + Transferred the sslengine patch from the patches directory to extras

jetty-6.0.0rc2 - 25 August 2006
 + use mvn -Dslf4j=false jetty:run to disable use of slf4j logging with
   jdk1.4/jsp2.0
 + added org.apache.commons.logging package to system classes that can't be
   overridden by a webapp classloader
 + mvn -Djetty.port=x jetty:run uses port number given for the default
   connector
 + Fixed NPE when no resource cache
 + Refactored WebXmlConfiguration to allow custom web.xml resource
 + Moved more utility packagtes to the util jar
 + Direct buffer useage is optional
 + Destroy HttpConnection to improve buffer pooling
 + Timestamp in StdErrLog

jetty-6.0.0rc1 - 16 August 2006
 + Support for binding References and Referenceables and javax.mail.Sessions in
   JNDI
 + Added TransformingWebAppClassLoader for spring 2.0 byte code modification
   support
 + JETTY-90
 + Fixed FD leak for bad TCP acks. JETTY-63
 + JETTY-87
 + Change path mapping so that a path spec of /foo/* does not match /foo.bar :
   JETTY-88
 + add <requestLog> config param to jetty plugin
 + JETTY-85 JETTY-86 (TrustManager and SecureRandom are now configurable;
   better handling of null/default values)
 + parse jsp-property-group in web.xml for additional JSP servlet mappings
 + protected setContentType from being set during include
 + JETTY-91
 + added modules/spring with XmlBeanFactory configuration
 + removed support for lowResources from SelectChannelConnector
 + added start of cometd implementation (JSON only)
 + added start of grizzly connector
 + removed org.mortbay. from context system classes configuration
 + -DSTOP.PORT must be specified.
 + moved optional modules to extras
 + fixed bug that caused Response.setStatus to ignore the provided message
 + refactored resource cache
 + Allow direct filling of buffers for uncached static content.
 + Added simple ResourceHandler and FileServer example

jetty-6.0.0rc0 - 07 July 2006
 + change prefix from "jetty6" to just "jetty" for plugin: eg is now mvn
   jetty:run
 + allow <key> or <name> in <systemProperty> for plugin
 + simplified jetty.xml with new constructor injections
 + added setters and getters on SessionManager API for session related config:
   cookie name, url parameter name, domain, max age and path.
 + add ability to have a lib/ext dir from which to recursively add all jars and
   zips to the classpath
 + patch to allow Jetty to use JSP2.1 from Glassfish instead of Jasper from
   Tomcat
 + fixed classesDirectory param for maven plugin to be configurable
 + ensure explicitly set tmp directory called "work" is not deleted on exit
 + ensure war is only unpacked if war is newer than "work" directory
 + change name of generated tmp directory to be
   "Jetty_"+host+"_"+port+"_"+contextpath+"_"+virtualhost
 + Cleaned up idle expiry.
 + Ssl algorithm taken from system property
 + Added 8 random letters&digits to Jetty-generated tmp work dir name to ensure
   uniqueness
 + Simplify runtime resolution of JSP library for plugin
 + Ensure mvn clean cleans the build
 + Do not wrap EofException with EofException
 + reverse order for destroy event listeners
 + added StatisticsHandler and statistics on Connector.
 + Simplified Servlet Context API
 + Added maximum limit to filter chain cache.
 + refactor HttpChannelEndPoint in preparation for SslEngine
 + ContextHandlerCollection addContext and setContextClass
 + Discard excess bytes in header buffer if connection is closing
 + Updated javax code from
   http://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk/java/javax@417727
 + Threadpool does not need to be a LifeCycle
 + support graceful shutdown
 + Added WebAppContextClassLoader.newInstance to better support exensible
   loaders.
 + immutable getParameterMap()
 + support <load-on-startup> for SingleThreadModel
 + changed ServletContext.getResourcePaths()  to not return paths containing
   double slashes
 + fixed HttpGenerator convertion of non UTF-8: JETTY-82
 + added html module from jetty 5 - but deprecated until maintainer found

jetty-6.0.0beta17 - 01 June 2006
 + Added config to disable file memory mapped buffers for windows
 + Added Request.isHandled()
 + Refactored Synchronization of SelectChannelConnector
 + Recovered repository from Codehaus crash
 + ContextHandler.setConnectors replace setHosts
 + Connector lowResourceMaxIdleTime  implemented.
 + Default servlet checks for aliases resources
 + Added clover reports and enough tests to get >50% coverage
 + Fixed IE SSL issue.
 + Implemented runAs on servlets
 + Flush will flush all bytes rather than just some.
 + Protected WEB-INF and META-INF
 + don't reset headers during forward
 + BoundedThreadPool.doStop waits for threads to complete

jetty-6.0.0beta16 - 12 May 2006
 + remove a couple of System.err.printlns
 + replace backwards compativle API in UrlEncoded

jetty-6.0.0beta15 - 11 May 2006
 + Added Server attribute org.mortbay.jetty.Request.maxFormContentSize
 + Renamed NotFoundHandler to DefaultHandler
 + Added automatic scan of all WEB-INF/jetty-*.xml files for plugin
 + Added <scanTargets> parameter to allow other locations to scan for plugin
 + Major refactor to simplify Server and handler hierarchy
 + setSendServerVersion method added to Server to control sending of Server:
   http header
 + removed SelectBlockingChannelConnector (unmaintained)
 + Improved HttpException
 + Moved more resources to resources
 + Added ThrottlingFilter and fixed race in Continuations
 + Added taglib resources to 2.1 jsp api jar
 + Reset of timer task clears expiry
 + improved MBeanContainer object removal
 + ContextHandler.setContextPath can be called after start.
 + Fixed handling of params after forward
 + Added --version to start.jar
 + Added embedded examples
 + Simplified DefaultServlet static content buffering
 + readded BoundedThreadPool shrinking (and then fixed resulting deadlock)
 + improved MBean names
 + improved support for java5 jconsole
 + Session scavenger threads from threadpool
 + Thread names include URI if debug set
 + don't accept partial authority in request line.
 + enforce 204 and 304 have no content

jetty-6.0.0beta14 - 09 April 2006
 + ignore dirs and files that don't exist in plugin scanner
 + added support for stopping jetty using "java -jar start.jar --stop"
 + added configurability for webdefault.xml in maven plugin
 + adding InvokerServlet
 + added ProxyServlet
 + stop JDBCUserRealm coercing all credentials to String
 + Change tmp dir of plugin to work to be in line with jetty convention
 + Modify plugin to select JSP impl at runtime
 + Use start.config to select which JSP impl at runtime based on jdk version
 + Added JSP 2.1 APIs from apache
 + Added Jasper 2.1 as jesper (jasper without JCL)
 + Started readding logging to jesper using jdk logging
 + fixed priority of port from url over host header
 + implemented request.isUserInRole
 + securityHandler removed if not used.
 + moved test webapps to examples directory
 + improved contentType handling and test harness
 + fixed forward bug (treated as include)
 + fixed HttpField iterator
 + added jetty-util.jar module
 + added reset to Continuation

jetty-6.0.0beta12 - 16 March 2006
 + Fixed maven plugin JNDI for redeploys
 + Fixed tld discovery for plugin (search dependencies)
 + Fixed JettyPlus for root contexts
 + Fixed error handling in error page
 + Added JSP2.0 demos to test webapp
 + Upgraded jasper to 5.5.15
 + Added provider support to SslListener
 + Log ERROR for runtimeExceptions

jetty-6.0.0beta11 - 14 March 2006
 + added JAAS
 + added webapp-specific JNDI entries
 + added missing Configurations for maven plugin
 + fixed FORM authentication
 + moved dtd and xsd to standard javax location
 + added patch to use joda-time
 + refactored session ID management
 + refactored configuration files and start()
 + fixed ; decoding in URIs
 + Added HttpURI and improved UTF-8 parsing.
 + refactored writers and improved UTF-8 generation.

jetty-6.0.0beta10 - 25 February 2006
 + Added support for java:comp/env
 + Added support for pluggable transaction manager
 + Forward masks include attributes and vice versa
 + Fixed default servlet handling of includes
 + Additional accessors for request logging
 + added getLocalPort() to connector
 + Fixed content-type for range requests
 + Fix for sf1435795 30sec delay from c taylor
 + Fix for myfaces and include with close
 + Fix sf1431936 don't chunk the chunk
 + Fix http://jira.codehaus.org/browse/JETTY-6. hi byte reader
 + Updates javax to MR2 release

jetty-6.0.0beta9 - 09 February 2006
 + PathMap for direct context mapping.
 + Refactored chat demo and upgraded prototype.js
 + Continuation cleanup
 + Fixed unraw decoding of query string
 + Fixed dispatch of wrapped requests.
 + Fixed double flush of short content.
 + Added request log.
 + Added CGI servlet.
 + Force a tempdir to be set.
 + Force jasper scratch dir.
 + fixed setLocale bug sf1426940
 + Added TLD tag listener handling.

jetty-6.0.0beta8 - 24 January 2006
 + fixed dispatch of new session problem. sf:1407090
 + reinstated rfc2616 test harness
 + Handle pipeline requests without hangs
 + Removed queue from thread pool.
 + improved caching of content types
 + fixed bug in overloaded write method on HttpConnection (reported against
   Tapestry4.0)
 + hid org.apache.commons.logging and org.slf4j packages from webapp
 + maven-jetty6-plugin stopped transitive inclusion of log4j and
   commons-logging from commons-el for jasper
 + patch to remove spurious ; in HttpFields
 + improve buffer return mechanism.
 + conveniance addHandler removeHandler methods
 + maven-jetty6-plugin: ensure compile is done before invoking jetty
 + maven-jetty6-plugin: support all types of artifact dependencies

jetty-6.0.0Beta7
 + Fixed infinite loop with chunk handling
 + Faster header name lookup
 + removed singleton Container
 + reduced info verbosity
 + null dispatch attributes not in names
 + maven-jetty6-plugin added tmpDirectory property
 + maven-jetty6-plugin stopped throwing an error if there is no target/classes
   directory

jetty-6.0.0Beta6
 + Fixed issue with blocking reads
 + Fixed issue with unknown headers
 + optimizations

jetty-6.0.0Beta5
 + Moved to SVN
 + Fixed writer char[] creations
 + Added management module for mbeans

jetty-6.0.0Beta4
 + System property support in plugin
 + CVE-2006-2758 Fixed JSP visibility security issue.
 + Improved jetty-web.xml access to org.mortbay classes.
 + Jasper 5.5.12

jetty-6.0.0Beta3
 + Fixed error in block read
 + Named dispatch.
 + Fixed classloader issue with server classes

jetty-6.0.0Beta2
 + merged util jar back into jetty jar
 + Simpler continuation API
 + loosely coupled with JSP servlet
 + loosely coupled with SLF4J
 + Improved reuse of HttpField values and cookies.
 + Improved buffer return

jetty-6.0.0Beta1
 + Servlet 2.5 API
 + SSL connector
 + maven2 plugin
 + shutdown hook
 + refactored start/stop
 + Implemented all listeners
 + Error pages
 + Virtual hosts
 + Multiple select sets

jetty-6.0.0Beta0
 + Maven 2 build
 + Dispatcher parameters
 + UTF-8 encoding for URLs
 + Fixed blocking read

jetty-6.0.0APLPA3
 + Added demo for Continuations
 + Jasper and associated libraries.

jetty-6.0.0ALPHA2
 + Continuations - way cool way to suspend a request and retry later.
 + Dispatchers
 + Security

jetty-6.0.0ALPHA1
 + Filters
 + web.xml handling

jetty-6.0.0ALPHA0
 + Totally rearchitected and rebuilt, so 10 years of cruft could be removed!
 + Improved "dependancy injection" and "inversion of control" design of
   components
 + Improved "interceptor" design of handlers
 + Smart split buffer design allows large buffers to only be allocated to
   active connections. The resulting memory savings allow very large buffers to
   be used, which increases the chance of efficient asynchronous flushing and
   of avoiding chunking.
 + Optional use of NIO Buffering so that efficient direct buffers and memory
   mapped files can be used.
 + Optional use of NIO non-blocking scheduling so that threads are not
   allocated per connection.
 + Optional use of NIO gather writes, so that for example a HTTP header and a
   memory mapped
 + file may be sent as sent is a single operation.
 + Missing Security
 + Missing Request Dispatchers
 + Missing web.xml based configuration
 + Missing war support

jetty-5.1.11RC0 - 05 April 2006
 + stop JDBCUserRealm forcing all credentials to be String
 + force close with shutdownOutput for win32
 + NPE protection if desirable client certificates
 + Added provider support to SslListener
 + logging improvements for servlet and runtime exceptions
 + Fixed AJP handling of ;jsessionid.
 + improved contentType param handling

jetty-5.1.10 - 05 January 2006
 + Fixed path aliasing with // on windows.
 + Fix for AJP13 with multiple headers
 + Fix for AJP13 with encoded path
 + Remove null dispatch attributes from getAttributeNames
 + Put POST content default back to iso_8859_1. GET is UTF-8 still

jetty-4.2.25 - 04 January 2006
 + Fixed aliasing of // for win32

jetty-5.1.9 - 07 December 2005
 + Fixed wantClientAuth(false) overriding netClientAuth(true)

jetty-6.0.0betaX
 + See http://jetty.mortbay.org/jetty6 for 6.0 releases

jetty-5.1.8 - 07 December 2005
 + Fixed space in URL issued created in 5.1.6

jetty-5.1.7 - 07 December 2005

jetty-5.1.7rc0 - 06 December 2005
 + improved server stats
 + char encoding for MultiPartRequest
 + fixed merging of POST params in dispatch query string.
 + protect from NPE in dispatcher getValues
 + Updated to 2.6.2 xerces
 + JSP file servlet mappings copy JspServlet init params.
 + Prefix servlet context logs with org.mortbay.jetty.context
 + better support for URI character encodings
 + use commons logging jar instead of api jar.

jetty-5.1.6 - 18 November 2005
 + CVE-2006-2758 Fixed JSP visibility security issue.
 + Improved jetty-web.xml access to org.mortbay classes.

jetty-5.1.5 - 10 November 2005
 + Improved shutdown hook
 + Improved URL Decoding
 + Improved mapping of JSP files.

jetty-5.1.5rc2 - 07 October 2005
 + Reverted dispatcher params to RI rather than spec behaviour.
 + ProxyHandler can handle chained proxies
 + unsynchronized ContextLoader
 + ReFixed merge of Dispatcher params
 + public ServerMBean constructor
 + UTF-8 encoding for URLs
 + Response.setLocale will set locale even if getWriter called.

jetty-5.1.5rc1 - 23 August 2005
 + upgraded to commons logging 1.0.4
 + Release commons logging factories when stopping context.
 + Fixed illegal state with chunks and 100 continue - Tony Seebregts
 + Fixed PKCS12Import input string method
 + Fixed merge of Dispatcher parameters
 + Encoded full path in ResourceHandler directory listing
 + handle extra params after charset in header
 + Fixed 100-continues with chunking and early commit

jetty-5.1.5rc0 - 16 August 2005
 + Fixed component remove memory leak for stop/start cycles
 + Facade over commons LogFactory so that discovery may be avoided.
 + Applied ciphersuite patch from tonyj
 + Authenticators use servlet sendError
 + CGI sets SCRIPT_FILENAME
 + HttpTunnel timeout
 + NPE protection for double stop in ThreadedServer
 + Expect continues only sent if input is read.

jetty-5.1.4 - 05 June 2005
 + Fixed FTP close issue.
 + setup MX4J with JDK1.5 in start.config
 + set classloader during webapp doStop
 + NPE protection in ThreadedServer
 + ModelMBean handles null signatures
 + Change JAAS impl to be more flexible on finding roles

jetty-5.1.4rc0 - 19 April 2005
 + ServletHttpContext correctly calls super.doStop.
 + HttpServer delegates component handling to Container.
 + Allow ServletHandler in normal HttpContext again.
 + Stop start.jar putting current directory on classpath.
 + More protection from null classloaders.
 + Turn off web.xml validation for JBoss.

jetty-5.1.3 - 07 April 2005
 + Some minor code janitorial services

jetty-4.2.24 - 07 April 2005

jetty-5.1.3rc4 - 31 March 2005
 + Moved servlet request wrapping to enterContextScope for geronimo security
 + refixed / mapping for filters
 + Allow XmlConfiguration to start with no object.
 + updated to mx4j 3.0.1
 + rework InitialContextFactory to use static 'default' namespace
 + make java:comp/env immutable for webapps as per J2EE spec

jetty-5.1.3rc3 - 20 March 2005
 + removed accidental enablement of DEBUG for JettyPlus jndi in
   log4j.properties
 + fixed "No getter or setter found" mbean errors

jetty-5.1.3rc2 - 16 March 2005
 + Updated JSR154Filter for ERROR dispatch
 + Fixed context to _context refactory error

jetty-5.1.3rc1 - 13 March 2005
 + Fixed typo in context-param handling.
 + update to demo site look and feel.
 + Fixed principal naming in FormAuthenticator
 + JettyPlus updated to JOTM 2.0.5, XAPool 1.4.2

jetty-4.2.24rc1
 + Fixed principal naming in FormAuthenticator

jetty-5.1.3rc0 - 08 March 2005
 + Flush filter chain caches on servlet/filter change
 + Fixed rollover filename format bug
 + Fixed JSR154 error dispatch with explicit pass of type.
 + Allow system and server classes to be configured for context loader.
 + IOException if EOF read during chunk.
 + Fixed HTAccess crypt salt handling.
 + Added simple xpath support to XmlParser
 + Added TagLibConfiguration to search for listeners in TLDs.
 + Added SslListener for 1.4 JSSE API.
 + Fixed moderate load preventing ThreadPool shrinking.
 + Added logCookie and logLatency support to NCSARequestLog
 + Added new JAAS callback to allow extra login form fields in authentication

jetty-4.2.24rc0 - 08 March 2005
 + Back ported Jetty 5 ThreadedServer and ThreadPool
 + Added logCookie and logLatency support to NCSARequestLog

jetty-5.1.2 - 18 January 2005
 + Added id and ref support to XmlConfiguration
 + Cleaned up AbstractSessionManager synchronization.
 + Fixed potential concurrent login problem with JAAS
 + Apply patch #1103953

jetty-4.2.23 - 16 January 2005
 + Cleaned up AbstractSessionManager synchronization.
 + Fixed potential concurrent login problem with JAAS

jetty-5.1.2pre0 - 22 December 2004
 + Fixed case of Cookie parameters
 + Support Secure and HttpOnly in session cookies
 + Modified useRequestedID handling to only use IDs from other contexts
 + Added global invalidation to AbstractSessionManager
 + UnavailableException handling from handle
 + Fixed suffix filters

jetty-4.2.23RC0 - 17 December 2004
 + LineInput handles readers with small internal buffer
 + Added LogStream to capture stderr and stdout to logging
 + Support Secure and HttpOnly in session cookies
 + Build unsealed jars

jetty-5.1.1 - 01 December 2004

jetty-5.1.1RC1
 + Some minor findbugs code cleanups
 + Made more WebApplicationHandle configuration methods public.
 + Fixed ordering of filters with multiple interleaved mappings.
 + Allow double // within URIs
 + Applied patch for MD5 hashed credentials for MD5

jetty-5.1.1RC0 - 17 November 2004
 + fix for adding recognized EventListeners
 + fix commons logging imports to IbmJsseListener
 + added new contributed shell start/stop script
 + excluded ErrorPageHandler from standard build in extra/jdk1.2 build

jetty-5.1.0 - 14 November 2004

jetty-5.1.RC1 - 24 October 2004
 + Allow JSSE listener to be just confidential or just integral.
 + Fixed NPE for null contenttype
 + improved clean targets
 + when committed setHeader is a noop rather than IllegalStateException
 + Partially flush writers on every write so content length can be detected.
 + Build unsealed jars
 + default / mapping does not apply to Filters
 + many minor cleanups suggested from figbug utility
 + Allow multiple accepting threads

jetty-5.1.RC0 - 11 October 2004
 + Fixed many minor issues from J2EE 1.4 TCK testing See sf.net bugs 1031520 -
   1032205
 + Refactored, simplified and optimized HttpOutputStream
 + LineInput handles readers with small internal buffer
 + Added LogStream to capture stderr and stdout to logging
 + Added filter chain cache
 + Added JSR77 servlet statistic support
 + Refactored webapp context configurations
 + Added LifeCycle events and generic container.
 + Upgraded to ant-1.6 for jasper
 + Fixed HTAccessHandler
 + JBoss 4.0.0 support

jetty-5.0.0 - 10 September 2004

jetty-5.0.RC4 - 05 September 2004
 + Fixed configuration of URL alias checking
 + JettyJBoss: Use realm-name from web.xml if present, otherwise use
   security-domain from jboss-web.xml

jetty-5.0.RC3 - 28 August 2004
 + DIGEST auth handles qop, stale and maxNonceAge.
 + Less verbose warning for non validating xml parser.
 + fixed jaas logout for jetty-jboss
 + fixed deployment of ejb-link elements in web.xml with jboss
 + Update to jasper 5.0.27
 + Added parameters for acceptQueueSize and lowResources level.
 + Changed default URI encoding to UTF-8
 + Fixes to work with java 1.5
 + JettyPlus upgrade to XAPool 1.3.3. and HSQLDB 1.7.2
 + JettyPlus addition of pluggable DataSources
 + Always say close for HTTP/1.0 non keep alive.

jetty-4.2.22
 + fixed jaas logout for jetty-jboss integration
 + fixed deployment of ejb-link elements in web.xml for jboss
 + Added parameters for acceptQueueSize and lowResources level.

jetty-5.0.RC2 - 02 July 2004
 + Fixed DIGEST challenge delimiters
 + HTAccess calls UnixCrypt correctly
 + integrated jetty-jboss with jboss-3.2.4
 + Error dispatchers are always GET requests.
 + OPTIONS works for all URLs on default servlet
 + add JMX support for JettyPlus
 + add listing of java:comp/env for webapp with JMX
 + make choice of override of JNDI ENC entries: config.xml or web.xml
 + Default servlet may use only pathInfo for resource
 + Fixed session leak in j2ee
 + Fixed no-role security constraint combination.
 + Fix to use runas roles during servlet init and destroy
 + Fixed JAAS logout
 + HttpContext sendError for authentication errors

jetty-4.2.21 - 02 July 2004
 + integrated jetty-jboss with jboss-3.2.4
 + add JMX support for JettyPlus
 + add listing of java:comp/env for webapp with JMX
 + make choice of override of JNDI ENC entries: config.xml or web.xml
 + Fixed JAAS logout

jetty-5.0.RC1 - 24 May 2004
 + Changed to apache 2.0 license
 + added extra/etc/start-plus.config to set up main.class for jettyplus
 + maxFormContentLength may be unlimited with <0 value
 + Fixed HTTP tunnel timeout setting.
 + Improved handling of exception from servlet init.
 + FORM auth redirects to context on a re-auth
 + Handle multiple virutal hosts from JBoss 3.2.4RC2

jetty-4.2.20 - 22 May 2004
 + maxFormContentLength may be unlimited with <0 value
 + Fixed HTTP tunnel timeout setting.
 + Improved handling of exception from servlet init.
 + FORM auth redirects to context on a re-auth

jetty-5.0.0RC0 - 07 April 2004
 + Updated JettyPlus to JOTM 1.4.3 (carol-1.5.2, xapool-1.3.1)
 + ServletContext attributes wrap HttpContext attributes.
 + Factored out XML based config from WebApplicationContext
 + Improved RequestLog performance
 + Fixed j2se 1.3 problem with HttpFields
 + Default servlet respectes servlet path
 + Fixed setCharacterEncoding for parameters.
 + Fixed DOS problem
 + Worked around bad jboss URL handler in XMLParser
 + Forced close of connections over stop/start
 + ProxiedFor field support added to NCSARequestLog
 + Fixed Default servlet for non empty servlet paths
 + Updated mx4j to V2
 + Updated jasper to 5.0.19
 + Changed dist naming convention to lowercase

jetty-4.2.20RC0 - 07 April 2004
 + Worked around bad jboss URL handler in XMLParser
 + Forced close of connections over stop/start
 + HttpFields protected headers
 + ProxiedFor field support added to NCSARequestLog
 + Fixed Default servlet for non empty servlet paths
 + Changed dist naming convention to lowercase

jetty-4.2.19 - 19 March 2004
 + Fixed DOS attack problem

jetty-5.0.beta2 - 12 February 2004
 + Added skeleton JMX MBean for jetty plus
 + Fixed HEAD with empty chunk bug.
 + Fixed jetty.home/work handling
 + Fixed setDate thread safety
 + Fixed SessionManager init
 + Improved low thread handling
 + FileResource better handles non sun JVM
 + Monitor closes socket before exit
 + Updated to Japser 5.0.16
 + RequestDispatcher uses request encoding for query params
 + Fixed busy loop in threadpool run
 + Reorganized ServletHolder init
 + Added log4j context repository to jettyplus
 + NPE guard for no-listener junit deployment
 + Added experimental NIO listeners again.
 + fixed filter dispatch configuration.
 + fixed lazy authentication with FORMs

jetty-4.2.18 - 01 March 2004
 + Added log4j context repository to jettyplus
 + NPE guard for no-listener junit deployment
 + Improved log performance
 + Fixed j2se 1.3 problem with HttpFields
 + Suppress some more IOExceptions
 + Default servlet respectes servlet path

jetty-4.2.17 - 01 February 2004
 + Fixed busy loop in threadpool run
 + Reorganized ServletHolder init

jetty-4.2.16 - 30 January 2004
 + Fixed setDate multi-cpu race
 + Improved low thread handling
 + FileResource better handles non sun JVM
 + Fixed HttpTunnel for JDK 1.2
 + Monitor closes socket before exit
 + RequestDispatcher uses request encoding for query params
 + Update jasper to 4.1.29

jetty-5.0.beta1 - 24 December 2003
 + SecurityConstraints not reset by stop() on custom context
 + Fixed UnixCrypt handling in HTAccessHandler
 + Added patch for JBoss realm single sign on
 + Reorganized FAQ
 + Env variables for CGI
 + Removed support for old JBoss clustering

jetty-4.2.15 - 24 December 2003
 + SecurityConstraints not reset by stop() on custom context
 + Fixed UnixCrypt handling in HTAccessHandler
 + Added patch for JBoss realm single sign on
 + Environment variables for CGI
 + Removed support for old JBoss clustering

jetty-5.0.beta0 - 22 November 2003
 + Removed support for HTTP trailers
 + PathMap uses own Map.Entry impl for IBM JVMs
 + Use ${jetty.home}/work or WEB-INF/work for temp directories if present
 + Protect ThreadPool.run() from interrupted exceptions
 + Added org.mortbay.http.ErrorHandler for error pages.
 + Fixed init race in HttpFields cache
 + Allow per listener handlers
 + Added MsieSslHandler to handle browsers that don't grok persistent SSL (msie
   5)
 + Respect content length when decoding form content.
 + JBoss integration uses writer rather than stream for XML config handling
 + Expire pages that contain set-cookie as per RFC2109 recommendation
 + Updated jasper to 5.0.14beta
 + Removed the CMR/CMP distributed session implementation

jetty-4.2.15rc0 - 22 November 2003
 + PathMap uses own Map.Entry impl for IBM JVMs
 + Race in HttpFields cache
 + Use ${jetty.home}/work or WEB-INF/work for temp directories if present
 + Protect ThreadPool.run() from interrupted exceptions
 + Added org.mortbay.http.ErrorHandler for error pages.
 + JsseListener checks UserAgent for browsers that can't grok persistent SSL
   (msie5)
 + Removed the CMR/CMP distributed session implementation

jetty-4.2.14 - 04 November 2003
 + respect content length when decoding form content.
 + JBoss integration uses writer rather than stream for XML config handling
 + Fixed NPE in SSO
 + Expire pages that contain set-cookie as per RFC2109 recommendation

jetty-5.0.alpha3 - 19 October 2003
 + Reworked Dispatcher to better support cross context sessions.
 + Use File.toURI().toURL() when jdk 1.2 alternative is available.
 + Priority added to ThreadPool
 + replaced win32 service with http://wrapper.tanukisoftware.org
 + FileClassPath derived from walk of classloader hierarchy.
 + Implemented security constraint combinations
 + Set TransactionManager on JettyPlus datasources and pools
 + Fixed null pointer if no sevices configured for JettyPlus
 + Updated jasper and examples to 5.0.12
 + Lazy authentication if no auth constraint.
 + Restore servlet handler after dispatch
 + Allow customization of HttpConnections
 + Failed requests excluded from duration stats

jetty-4.2.14RC1 - 19 October 2003
 + Reworked Dispatcher to better support cross context sessions.
 + Added UserRealm.logout and arrange for form auth
 + Allow customization of HttpConnections
 + Failed requests excluded from

jetty-4.2.14RC0 - 07 October 2003
 + Correctly setup context classloader in cross context dispatch.
 + Put a semi busy loop into proxy tunnels for IE problems
 + Fixed handling of error pages for IO and Servlet exceptions
 + updated extra/j2ee to jboss 3.2.1+
 + Use File.toURI().toURL() when jdk 1.2 alternative is available.
 + cookie timestamps are in GMT
 + Priority on ThreadedServer
 + replaced win32 service with http://wrapper.tanukisoftware.org
 + Build fileclasspath from a walk of the classloaders
 + Set TransactionManager on JettyPlus datasources and pools
 + Fixed null pointer if no sevices configured for JettyPlus
 + Fixed comments with embedded double dashes on jettyplus.xml file

jetty-5.0.alpha2 - 19 September 2003
 + Use commons logging.
 + Use log4j if extra is present.
 + Improved JMX start.
 + Update jakarta examples
 + Correctly setup context classloader in cross context dispatch.
 + Turn off validation without non-xerces errors
 + minor doco updates.
 + moved mailing lists to sourceforge.
 + Put a semi busy loop into proxy tunnels for IE problems
 + MultipartRequest supports multi value headers.
 + XML entity resolution uses URLs not Resources
 + Implemented ServletRequestListeners as optional filter.
 + Moved error page mechanism to be webapp only.
 + Fixed error page handling of IO and Servlet exceptions.

jetty-5.0.alpha1 - 12 August 2003
 + Switched to mx4j
 + Improve combinations of Security Constraints
 + Implemented locale encoding mapping.
 + Synced with 4.2.12
 + Updated to Jasper 5.0.7
 + Server javadoc from war

jetty-5.0.alpha0 - 16 July 2003
 + Compiled against 2.4 servlet spec.
 + Implemented remote/local addr/port methods
 + Updated authentication so that a normal Principal is used.
 + updated to jasper 5.0.3
 + Implemented setCharaterEncoding
 + Implemented filter-mapping <dispatcher> element
 + Implemented Dispatcher forward attributes.

jetty-4.2.12 - 12 August 2003
 + Restore max inactive interval for session manager
 + Removed protection of org.mortbay.http attributes
 + Fixed parameter ordering for a forward request.
 + Fixed up HTAccessHandler
 + Improved error messages from ProxyHandler
 + Added missing S to some OPTIONS strings
 + Added open method to threaded server.
 + FORMAuthenticator does 403 with empty error page.
 + Fixed MIME types for chemicals
 + Padding for IE in RootNotFoundHandler

jetty-4.2.11 - 12 July 2003
 + Fixed race in servlet initialization code.
 + Cookie params all in lower case.
 + Simplified AJP13 connection handling.
 + Prevent AJP13 from reordering query.
 + Support separate Monitor class for start
 + Branched for Jetty 5 development.

jetty-4.2.10 - 07 July 2003
 + Updates to JettyPlus documentation
 + Updates to Jetty tutorial for start.jar, jmx etc

jetty-4.2.10pre2 - 04 July 2003
 + Improvement to JettyPlus config of datasources and connection pools
 + Addition of mail service for JettyPlus
 + Move to Service-based architecture for JettyPlus features
 + Re-implementation of JNDI
 + Many improvements in JettyPlus java:comp handling
 + Allow multiple security-role-ref elements per servlet.
 + Handle Proxy-Connection better
 + Cleaned up alias handling.
 + Confidential redirection includes query
 + handle multiple security role references
 + Fixed cookie handling for old cookies and safari
 + Restricted ports in ProxyHandler.
 + URI always encodes %
 + Session statistics
 + XmlConfiguration can get/set fields.

jetty-4.2.10pre1 - 02 June 2003
 + Fixed JSP code visibility problem introduced in Jetty-4.2.10pre0
 + Added stop.jar
 + Added SSO implementation for FORM authentication.
 + WebApplicationContext does not reassign defaults descriptor value.
 + Fixed AJP13 protocol so that request/response header enums are correct.
 + Fixed form auth success redirect after retry, introduced in 4.2.9rc1
 + Trace support is now optional (in AbstractHttpHandler).
 + Deprecated forced chunking.
 + Form authentication remembers URL over 403
 + ProxyHandler has improved test for request content
 + Removed support of org.mortbay.http.User role.
 + Fixed problem with shared session for inter context dispatching.

jetty-4.2.10pre0 - 05 May 2003
 + Moved Log4JLogSink into JettyPlus
 + Added ability to override jetty startup class by using -Djetty.server on
   runline
 + Incorporate JettyPlus jotm etc into build.
 + Massive reorg of the CVS tree.
 + Incorporate jetty extra and plus into build
 + Integrate with JAAS
 + Apply the append flag of RolloverFileOutputStream constructor.
 + RolloverFileOutputStream manages Rollover thread.
 + New look and feel for www site.
 + Fixed table refs in JDBCUserRealm.
 + Allow params in form auth URLs
 + Updated to jasper jars from tomcat 4.1.24
 + Allow query params in error page URL.
 + ProxyHandler checks black and white lists for Connect.
 + Merge multivalued parameters in dispatcher.
 + Fixed CRLF bug in MultiPartRequest
 + Warn if max form content size is reached.
 + getAuthType returns CLIENT_CERT instead of CLIENT-CERT.
 + getAuthType maps the HttpServletRequest final strings.
 + FORM Authentication is serializable for session distribution.

jetty-4.2.9 - 19 March 2003
 + Conditional headers check after /dir to /dir/ redirection.

jetty-4.2.9rc2 - 16 March 2003
 + Fixed build.xml for source release
 + Made rfc2068 PUT/POST Continues support optional.
 + Defaults descriptor has context classloader set.
 + Allow dispatch to j_security_check
 + Added X-Forwarded-For header in ProxyHandler
 + Updated included jmx jars

jetty-4.2.9rc1 - 06 March 2003
 + Work around URLClassloader not handling leading /
 + Dump servlet can load resources for testing now.
 + Added trust manager support to SunJsseListener.
 + Added support for client certs to AJP13.
 + Cleaned up includes
 + Removed checking for single valued headers.
 + Optional 2.4 behaviour for sessionDestroyed notification.
 + Stop proxy url from doing user interaction.
 + Turn request log buffering off by default.
 + Reduced default context cache sizes (Total 1MB file 100KB).
 + ProxyHandler has black and white host list.
 + Added requestlog to HttpContext.
 + Allow delegated creation of WebApplication derivations.
 + Check Data contraints before Auth constraints

jetty-4.2.8_01 - 18 February 2003
 + Patched first release of 4.2.8 with correct version number
 + Fixed CGI servlet to handle multiple headers.
 + Added a SetResponseHeadersHandler, can set P3P headers etc.
 + ProxyHandler can handle multiple cookies.
 + Fixed AdminServlet to handle changed getServletPath better.
 + Default servlet can have own resourceBase.
 + Rolled back SocketChannelListener to 4.2.5 version
 + Added option to resolve remote hostnames.  Defaults to off.
 + Added MBeans for Servlets and Filters
 + Moved ProxyHandler to the src1.4 tree

jetty-4.2.7 - 04 February 2003
 + Upgraded to JSSE 1.0.3_01 to fix security problem.
 + Fixed proxy tunnel for non persistent connections.
 + Relative sendRedirect handles trailing / correctly.
 + Changed PathMap to conform to / getServletPath handling.

jetty-4.2.6 - 24 January 2003
 + Improved synchronization on AbstractSessionManager.
 + Allow AJP13 buffers to be resized.
 + Fixed LineInput problem with expanded buffers.
 + ClientCertAuthentication updates request.
 + Fixed rel sendRedirects for root context.
 + Added HttpContext.setHosts to restrict context by real interface.
 + Added MBeans for session managers
 + Improved SocketChannelListener contributed.
 + Added version to HttpServerMBean.

jetty-4.2.5 - 14 January 2003
 + Fixed pathParam bug for ;jsessionid
 + Don't process conditional headers and ranges for includes
 + Added Log4jSink in the contrib directory.
 + Fixed requestedSessionId null bug.

jetty-4.2.4 - 04 January 2003
 + Fixed stop/start handling of servlet context
 + Reuse empty LogSink slots.
 + HTAccessHandler checks realm as well as htpassword.
 + Clear context listeners after stop.
 + Clear context attributes after stop.
 + Use requestedSessionId as default session ID.
 + Added MBeans for handlers
 + Upgraded jasper to 4.1.18

jetty-4.2.4rc0 - 12 December 2002
 + Simplified ThreadedServer
 + Use ThreadLocals for ByteArrayPool to avoid synchronization.
 + Use Version to reset HttpFields
 + Cheap clear for HttpFields
 + Fixed setBufferSize NPE.
 + Cleaned up some unused listener throws.
 + Handle chunked form data.
 + Allow empty host header.
 + Avoid optional 100 continues.
 + Limit form content size.
 + Handle = in param values.
 + Added HttpContext.flushCache
 + Configurable root context.
 + RootNotFoundHandler to help when no context found.
 + Update jasper to 4.1.16beta
 + Fixed dir listing from jars.
 + Dir listings in UTF8
 + Character encoding handling for GET requests.
 + Removed container transfer encoding handling.
 + Improved setBufferSize handling
 + Code logs objects rather than strings.
 + Better access to session manager.
 + Fixed isSecure and getScheme for SSL over AJP13
 + Improved ProxyHandler to the point is works well for non SSL.
 + Implemented RFC2817 CONNECT in ProxyHandler
 + Added gzip content encoding support to Default and ResourceHandler

jetty-4.2.3 - 02 December 2002
 + Removed aggressive threadpool shrinkage to avoid deadlock on SMP machines.
 + Fixed some typos
 + Added links to Jetty Powered page
 + Clean up of ThreadedServer.stop()
 + Updated bat scripts
 + Added PKCS12Import class to import PKCS12 key directly
 + removed old HttpContext.setDirAllowed()
 + added main() to org.mortbay.http.Version
 + Check form authentication config for leading /
 + Cleaner servlet stop to avoid extra synchronization on handle
 + org.mortbay.http.HttpContext.FileClassPathAttribute

jetty-4.2.2 - 20 November 2002
 + Fixed sendRedirect for non http URLS
 + Fixed URI query recycling for persistent connections
 + Fixed handling of empty headers
 + Added EOFException to reduce log verbosity on closed connections.
 + Avoided bad buffer status after closed connection.

jetty-4.2.1 - 18 November 2002
 + Fixed bad optimization in UrlEncoding
 + Re-enabled UrlEncoding test harnesses

jetty-4.2.0 - 16 November 2002
 + Fixed AJP13 buffer size.
 + Fixed remove listener bug.
 + Fixed include of Invoker servlet.
 + Restrict 304 responses to seconds time resolution.
 + Use IE date formatting for speed.
 + Removed jasper source and just include jars from 4.1.12
 + Worked around JVM1.3 bug for JSPs
 + Lowercase jsessionid for URLs only.
 + Made NCSARequestLog easier to extend.
 + Added definitions for RFC2518 WebDav response codes.
 + Removed remaining non portable getBytes() calls
 + Added upload demo to dump servlet.
 + Many more optimizations.

jetty-4.1.4 - 16 November 2002
 + Fixed ContextLoader parent delegation bug
 + Fixed remove SocketListener bug.
 + Fixed Invoker servlet for RD.include
 + Use IE date formatting for last-modified efficiency
 + Last modified handling uses second resolution.
 + Made NCSARequestLog simpler to extend.

jetty-4.2.0rc1 - 02 November 2002
 + Support default mime mapping defined by *
 + Recycling of HttpFields class.
 + Renamed Filter application methods.
 + Fixed firstWrite after commit.
 + Fixed ContextLoader parent delegation bug.
 + Fixed problem setting the size of chunked buffers.
 + Removed unused Servlet and Servlet-Engine headers.
 + Fixed servletpath on invoker for named servlets.
 + Fixed directory resource bug in JarFileResource.
 + Improved handling of 2 byte encoded characters within forms.

jetty-4.2.0rc0 - 24 October 2002
 + Greg's birthday release!
 + Added embedded iso8859 writer to HttpOutputStream.
 + Removed duplicate classes from jar
 + Fixed RolloverFileOutputStream without date.
 + Fixed SessionManager initialization
 + Added authenticator to admin.xml
 + Fixed Session timeout NPE.

jetty-4.1.3 - 24 October 2002
 + Fixed RolloverFileOutputStream without date.
 + Fixed SessionManager initialization
 + Added authenticator to admin.xml
 + Fixed Session timeout NPE.

jetty-4.0.6 - 24 October 2002
 + Clear interrupted status in ThreadPool
 + Fixed forward query string handling
 + fixed forward attribute handling for jsp-file servlets
 + Fixed setCharacterEncoding to work with getReader
 + Fixed handling of relative sendRedirect after forward.
 + Fixed virtual hosts temp directories.

jetty-4.2.0beta0 - 13 October 2002
 + New ThreadPool implementation.
 + New Buffering implementation.
 + New AJP13 implementation.
 + Removed Dispatcher dependancy on ServletHttpContext
 + getNamedDispatcher(null) returns containers default servlet.
 + unquote charset in content type
 + Stop/Start filters in declaration order.
 + Use "standard" names for default,jsp & invoker servlets.
 + Fixed caching of directories to avoid shared buffers.
 + Fixed bad log dir detection
 + Fix Session invalidation bug
 + Build without jmx
 + 404 instead of 403 for WEB-INF requests
 + FORM authentication sets 403 error page
 + Allow %3B encoded ; in URLs
 + Allow anonymous realm
 + Update jasper to 4.1.12 tag

jetty-4.1.2 - 13 October 2002
 + Some AJP13 optimizations.
 + getNamedDispatcher(null) returns containers default servlet.
 + unquote charset in content type
 + Stop/Start filters in declaration order.
 + Use "standard" names for default,jsp & invoker servlets.
 + Fixed caching of directories to avoid shared buffers.
 + Fixed bad log dir detection
 + Fix Session invalidation bug
 + Build without jmx
 + 404 instead of 403 for WEB-INF requests
 + FORM authentication sets 403 error page
 + Allow %3B encoded ; in URLs
 + Allow anonymous realm
 + Update jasper to 4.1.12 tag

jetty-4.1.1 - 30 September 2002
 + Fixed client scripting vulnerability with jasper2.
 + Merged LimitedNCSARequestLog into NCSARequestLog
 + Fixed space in resource name handling for jdk1.4
 + Moved launcher/src to src/org/mortbay/start
 + Fixed infinite recursion in JDBCUserRealm
 + Avoid setting sotimeout for optimization.
 + String comparison of If-Modified-Since headers.
 + Touch files when expanding jars
 + Deprecated maxReadTime.
 + Cache directory listings.

jetty-4.1.0 - 22 September 2002
 + Fixed CGI+windows security hole.
 + Fixed AJP13 handling of mod_jk loadbalancing.
 + Stop servlets in opposite order to start.
 + NCSARequest log buffered default
 + WEB-INF/classes before WEB-INF/lib
 + Sorted directory listings.
 + Handle unremovable tempdir.
 + Context Initparams to control session cookie domain, path and age.
 + ClientCertAuthenticator protected from null subjectDN
 + Added LimitedNCSARequestLog
 + Use javac -target 1.2 for normal classes

jetty-4.1.0RC6 - 14 September 2002
 + Don't URL encode FileURLS.
 + Improved HashUserRealm doco
 + FormAuthenticator uses normal redirections now.
 + Encode URLs of Authentication redirections.
 + Added logon.jsp for no cookie form authentication.
 + Extended Session API to pass request for jvmRoute handling
 + Fixed problem with AJP 304 responses.
 + Improved look and feel of demo
 + Cleaned up old debug.
 + Added redirect to welcome file option.

jetty-4.1.0RC5 - 08 September 2002
 + AJP13Listener caught up with HttpConnection changes.
 + Added commandPrefix init param to CGI
 + More cleanup in ThreadPool for idle death.
 + Improved errors for misconfigured realms.
 + Implemented security-role-ref for isUserInRole.

jetty-4.1.0RC4 - 30 August 2002
 + Included IbmJsseListener in the contrib directory.
 + Updated jasper2 to 4.1.10 tag.
 + Reverted to 302 for all redirections as all clients do not understand 303
 + Created statsLock sync objects to avoid deadlock when stopping.

jetty-4.1.0RC3 - 28 August 2002
 + Fixed security problem for suffix matching with trailing "/"
 + addWebApplications encodes paths to allow for spaces in file names.
 + Improved handling of PUT,DELETE & MOVE.
 + Improved handling of path encoding in Resources for bad JVMs
 + Added buffering to request log
 + Created and integrated the Jetty Launcher
 + Made Resource canonicalize it's base path for directories
 + Allow WebApplicationHandler to be used with other handlers.
 + Added defaults descriptor to addWebApplications.
 + Allow FORM auth pages to be within security constraint.

jetty-4.1.0RC2 - 20 August 2002
 + Conveninace setClassLoaderJava2Compliant method.
 + Clear interrupted status in ThreadPool
 + Fixed HttpFields cache overflow
 + Improved ByteArrayPool to handle multiple sizes.
 + Added HttpListener.bufferReserve
 + Use system line separator for log files.
 + Updated to Jasper2 (4_1_9 tag)
 + Build ant, src and zip versions with the release

jetty-4.1.0RC1 - 11 August 2002
 + Fixed forward query string handling
 + Fixed setCharacterEncoding to work with getReader
 + Fixed getContext to use canonical contextPathSpec
 + Improved the return codes for PUT
 + Made HttpServer serializable
 + Updated international URI doco
 + Updated jasper to CVS snapshot 200208011920
 + Fixed forward to jsp-file servlet
 + Fixed handling of relative sendRedirect after forward.

jetty-4.1.0RC0 - 31 July 2002
 + Fixed getRealPath for packed war files.
 + Changed URI default charset back to ISO_8859_1
 + Restructured Password into Password and Credentials
 + Added DigestAuthenticator
 + Added link to a Jetty page in Korean.
 + Added ExpiryHandler which can set a default Expires header.

jetty-4.0.5 - 31 July 2002
 + Fixed getRealPath for packed war files.
 + Reversed order of ServletContextListener.contextDestroyed calls
 + Fixed getRequestURI for RD.forward to return new URI.

jetty-4.1.B1 - 19 July 2002
 + Updated mini.http.jar target
 + CGI Servlet, pass all HTTP headers through.
 + CGI Servlet, catch and report program invocation failure status.
 + CGI Servlet, fixed suffix mapping problem.
 + CGI Servlet, set working directory for exec
 + Support HTTP/0.9 requests again
 + Reversed order of ServletContextListener.contextDestroyed calls
 + Moved dynamic servlet handling to Invoker servlet.
 + Moved webapp resource handling to Default servlet.
 + Sessions create attribute map lazily.
 + Added PUT,DELETE,MOVE support to webapps.
 + Added 2.4 Filter dispatching support.

jetty-3.1.9 - 15 July 2002
 + Allow doHead requests to be forwarded.
 + Fixed race in ThreadPool for minThreads <= CPUs

jetty-4.1.B0 - 13 July 2002
 + Added work around of JDK1.4 bug with NIO listener
 + Moved 3rd party jars to $JETTY_HOME/ext
 + Fixed ThreadPool bug when minThreads <= CPUs
 + close rather than disable stream after forward
 + Allow filter init to access servlet context methods.
 + Keep notFoundContext out of context mapping lists.
 + mod_jk FAQ
 + Fixed close problem with load balancer.
 + Stopped RD.includes closing response.
 + RD.forward changes getRequestURI.
 + NCSARequestLog can log to stderr

jetty-4.1.D2 - 24 June 2002
 + Support trusted external authenticators.
 + Moved jmx classes from JettyExtra to here.
 + Set contextloader during webapplicationcontext.start
 + Added AJP13 listener for apache integration.
 + Fixed ChunkableOutputStream close propagation
 + Better recycling of HttpRequests.
 + Protect session.getAttributeNames from concurrent modifications.
 + Allow comma separated cookies and headers
 + Back out Don't chunk 30x empty responses.
 + Conditional header tested against welcome file not directory.
 + Improved ThreadedServer stopping on bad networks
 + Use ThreadLocals to avoid unwrapping in Dispatcher.

jetty-4.0.4 - 23 June 2002
 + Back out change: Don't chunk 30x empty responses.
 + Conditional header tested against welcome file not directory.
 + Improved ThreadedServer stopping on bad networks

jetty-4.0.3 - 20 June 2002
 + WebapplicationContext.start sets context loader
 + Fixed close propagation of on-chunked output streams
 + Force security disassociation.
 + Better recycling of HttpRequests.
 + Protect session.getAttributeNames from concurrent modifications.
 + Allow session manager to be initialized when set.
 + Fixed japanese locale
 + Allow comma separated cookies and headers

jetty-4.1.D1 - 08 June 2002
 + Recycle servlet requests and responses
 + Added simple buffer pool.
 + Reworked output buffering to keep constant sized buffers.
 + Don't chunk 30x empty responses.
 + Fixed "" contextPaths in Dispatcher.
 + Removed race for the starting of session scavaging
 + Fixed /foo/../bar// bug in canonical path.
 + Merged ResourceBase and SecurityBase into HttpContext

jetty-4.0.2 - 06 June 2002
 + Fixed web.dtd references.
 + Fixed handler/context start order.
 + Added OptimizeIt plug
 + Fixed /foo/../bar// bug in canonical path.
 + Don't chunk 30x empty responses.
 + Fixed "" contextPaths in Dispatcher.
 + Removed race for the starting of session scavaging

jetty-3.1.8 - 06 June 2002
 + Made SecurityConstraint.addRole() require authentication.
 + Fixed singled threaded dynamic servlets
 + Fixed no slash context redirection.
 + Fixed /foo/../bar// bug in canonical path.

jetty-4.1.D0 - 05 June 2002
 + The 4.1 Series started looking for even more performance within the 2.3
   specification.
 + Removed the HttpMessage facade mechanism
 + BRAND NEW WebApplicationHandler & WebApplicationContext
 + Added TypeUtil to reduce Integer creation.
 + General clean up of the API for for MBean getters/setters.
 + Experimental CLIENT-CERT Authenticator
 + Restructured ResourceHandler into ResourceBase
 + Fixed web.dtd references.
 + Fixed handler/context start order.
 + Added OptimizeIt plug.

jetty-4.0.1 - 22 May 2002
 + Fixed contextclassloader on ServletContextEvents.
 + Support graceful stopping of context and server.
 + Fixed "null" return from getRealPath
 + OutputStreamLogSink config improvements
 + Updated jasper to 16 May snapshot

jetty-4.0.1RC2 - 14 May 2002
 + Better error for jre1.3 with 1.4 classes
 + Cleaned up RD query string regeneration.
 + 3DES Keylength was being reported as 0. Now reports 168 bits.
 + Implemented the run-as servlet tag.
 + Added confidential and integral redirections to HttpListener
 + Fixed ServletResponse.reset() to resetBuffer.

jetty-4.0.1RC1 - 29 April 2002
 + Improved flushing of chunked responses
 + Better handling if no realm configured.
 + Expand ByteBuffer full limit with capacity.
 + Fixed double filtering of welcome files.
 + Fixed FORM authentication auth of login page bug.
 + Fixed setTempDirectory creation bug
 + Avoid flushes during RequestDispatcher.includes

jetty-4.0.1RC0 - 18 April 2002
 + Updated Jasper to CVS snapshot from Apr 18 18:50:59 BST 2002
 + Pass pathParams via welcome file forward for jsessionid
 + Extended facade interfaces to HttpResponse.sendError
 + Moved basic auth handling to HttpRequest
 + AbstractSessionManager sets contextClassLoader for scavanging
 + Set thread context classloader for webapp load-on-startup inits
 + Added extract arg to addWebApplications
 + Fixed delayed response bug: Stopped HttpConnection consuming input from
   timedout connection.
 + DTD allows static "Get" and "Set" methods to be invoked.

jetty-4.0.0 - 22 March 2002
 + Updated tutorial configure version
 + Added IPAddressHandler for IP restrictions
 + Updated contributors.
 + Minor documentation updates.
 + Jetty.sh cygwin support

jetty-4.0.RC3 - 20 March 2002
 + Fixed ZZZ offset format to +/-HHMM
 + Updated history
 + JDBCUserRealm instantiates JDBC driver
 + ContextInitialized notified before load-on-startup servlets.
 + Suppress WriterOutputStream warning.
 + Changed html attribute order for mozilla quirk.

jetty-4.0.RC2 - 12 March 2002
 + Fixed security constraint problem with //
 + Fixed version for String XmlConfigurations
 + Fixed empty referrer in NCSA log.
 + Dont try to extract directories
 + Added experimental nio SocketChannelListener
 + Added skeleton load balancer
 + Fixed column name in JDBCUserRealm
 + Remove last of the Class.forName calls.
 + Removed redundant sessionID check.
 + Security FAQ
 + Disabled the Password EXEC mechanism by default

jetty-3.1.7 - 12 March 2002
 + Fixed security problem with constraints being bypassed with // in URLs

jetty-4.0.RC1 - 06 March 2002
 + Added ContentEncodingHandler for compression.
 + Fixed filter vs forward bug.
 + Improved efficiency of quality list handling
 + Simplified filter API to chunkable streams
 + XmlParser is validating by default. use o.m.x.XmlParser.NotValidating
   property to change.
 + contextDestroyed event sent before destruction.
 + Minor changes to make HttpServer work on J2ME CVM
 + Warn if jdk 1.4 classes used on JVM <1.4
 + WebApplication will use ContextLoader even without WEB-INF directory.
 + FileResource depends less on FilePermissions.
 + Call response.flushBuffer after service to flush wrappers.
 + Empty suffix for temp directory.
 + Contributors list as an image to prevent SPAM!
 + Fixed recursive DEBUG loop in Logging.
 + Updated jetty.sh to always respect arguments.

jetty-3.1.6 - 28 February 2002
 + Implemented 2.3 clarifications to security constraint semantics PLEASE
   REVIEW YOUR SECURITY CONSTRAINTS (see README).
 + Empty suffix for temp directory.
 + Fixed HttpFields remove bug
 + Set Listeners default scheme
 + LineInput can handle any sized marks
 + HttpResponse.sendError makes a better attempt at finding an error page.
 + Dispatcher.forward dispatches directly to ServletHolder to avoid premature
   exception handling.

jetty-4.0.B2 - 25 February 2002
 + Minor Jasper updates
 + Improve handling of unknown URL protocols.
 + Improved default jetty.xml
 + Adjust servlet facades for welcome redirection
 + User / mapping rather than /* for servlet requests to static content
 + Accept jetty-web.xml or web-jetty.xml in WEB-INF
 + Added optional JDK 1.4 src tree
 + o.m.u.Frame uses JDK1.4 stack frame handling
 + Added LoggerLogSink to direct Jetty Logs to JDK1.4 Log.
 + Start ServletHandler as part of the FilterHandler start.
 + Simplified addWebApplication
 + Added String constructor to XmlConfiguration.
 + Added org.mortbay.http.JDBCUserRealm
 + Init classloader for JspServlet
 + Slightly more agressive eating unused input from non persistent connection.

jetty-4.0.B1 - 13 February 2002
 + WriterOutputStream so JSPs can include static resources.
 + Suppress error only for IOExceptions not derivitives.
 + HttpConnection always eats unused bodies
 + Merged HttpMessage and Message
 + LineInput waits for LF after CF if seen CRLF before.
 + Added setClassLoader and moved getFileClassPath to HttpContext
 + Updated examples webapp from tomcat
 + getRequestURI returns encoded path
 + Servlet request destined for static content returns paths as default servlet

jetty-4.0.B0 - 04 February 2002
 + Implemented 2.3 security constraint semantics PLEASE REVIEW YOUR SECURITY
   CONSTRAINTS (see README).
 + Stop and remove NotFound context for HttpServer
 + HttpContext destroy
 + Release process builds JettyExtra
 + Welcome files may be relative
 + Fixed HttpFields remove bug
 + Added Array element to XMLConfiguration
 + Allow listener schemes to be set.
 + Added index links to tutorial
 + Renamed getHttpServers and added setAnonymous
 + Updated crimson to 1.1.3
 + Added hack for compat tests in watchdog for old tomcat stuff
 + Added AbstractSessionManager
 + Support Random Session IDs in HashSessionManager.
 + Common handling of TRACE
 + Updated tutorial and FAQ
 + Reduce object count and add hash width to StringMap
 + Factor out RolloverFileOutputStream from OutputStreamLogSink
 + Remove request logSink and replace with RequestLog using
   RolloverFileOutputStream
 + Handle special characters in resource file names better.
 + Welcome file dispatch sets requestURI.
 + Removed triggers from Code.

jetty-4.0.D4 - 14 January 2002
 + Prevent output after forward
 + Handle ServletRequestWrappers for Generic Servlets
 + Improved handling of UnavailableException
 + Extract WAR files to standard temp directory
 + URI uses UTF8 for % encodings.
 + Added BlueRibbon campaign.
 + RequestDispatcher uses cached resources for include
 + Improved HttpResponsse.sendError error page matching.
 + Fixed noaccess auth demo.
 + FORM auth caches UserPrincipal
 + Added isAuthenticated to UserPrincipal

jetty-4.0.D3 - 31 December 2001
 + Fixed cached filter wrapping.
 + Fixed getLocale again
 + Patch jasper to 20011229101000
 + Removed limits on mark in LineInput.
 + Corrected name to HTTP_REFERER in CGI Servlet.
 + Fixed UrlEncoding for % + combination.
 + Generalized temp file handling
 + Fixed ContextLoader lib handling.
 + DateCache handles misses better.
 + HttpFields uses DateCache more.
 + Moved admin port to 8081 to avoid JBuilder
 + Made Frame members private and fixed test harness
 + cookies with maxAge==0 expire on 1 jan 1970
 + setCookie always has equals

jetty-3.1.5 - 11 December 2001
 + setCookie always has equals for cookie value
 + cookies with maxage==0 expired 1 jan 1970
 + Fixed formatting of redirectURLs for NS4.08
 + Fixed ChunableInputStream.resetStream bug.
 + Ignore IO errors when trying to persist connections.
 + Allow POSTs to static resources.
 + stopJob/killStop in ThreadPool to improve stopping ThreadedServer on some
   platforms.
 + Branched at Jetty_3_1

jetty-4.0.D2 - 02 December 2001
 + Removed most of the old doco, which needs to be rewritten and added again.
 + Restructured for demo and test hierarchies
 + Fixed formatting of redirect URLs.
 + Removed ForwardHandler.
 + Removed Demo.java (until updated).
 + Made the root context a webapplication.
 + Moved demo docroot/servlets to demo directory
 + added addWebApplications auto discovery
 + Disabled last forwarding by setPath()
 + Removed Request set methods (will be replaced)
 + New event model to decouple from beans container.
 + Better handling of charset in form encoding.
 + Allow POSTs to static resources.
 + Fixed ChunableInputStream.resetStream bug.
 + Ignore IO errors when trying to persist connections.
 + stopJob/killStop in ThreadPool to improve stopping ThreadedServer on some
   platforms.

jetty-4.0.D1 - 14 November 2001
 + Fixed ServletHandler with no servlets
 + Fixed bug with request dispatcher parameters
 + New ContextLoader implementation.
 + New Dispatcher implementation
 + Added Context and Session Event Handling
 + Added FilterHolder
 + Added FilterHandler
 + Changed HandlerContext to HttpContext
 + Simplified ServletHandler
 + Removed destroy methods
 + Simplified MultiMap

jetty-4.0.D0 - 06 November 2001
 + Branched from Jetty_3_1 == Jetty_3_1_4
 + 2.3 Servlet API
 + 1.2 JSP API
 + Jasper from tomcat4
 + Start SessionManager abstraction.
 + Added examples webapp from tomcat4
 + Branched at Jetty_3_1

jetty-3.1.4 - 06 November 2001
 + Added RequestLogFormat to allow extensible request logs.
 + Support the ZZZ timezone offset format in DateCache
 + HTAccessHandler made stricter on misconfiguration
 + Generate session unbind events on a context.stop()
 + Default PathMap separator changed to ":,"
 + PathMap now ignores paths after ; or ? characters.
 + Remove old stuff from contrib that had been moved to extra
 + getRealPath accepts \ URI separator on platforms using \ file separator.

jetty-3.1.3 - 26 October 2001
 + Fix security problem with trailing special characters. Trailing %00 enabled
   JSP source to be viewed or other servlets to be bypassed.
 + Fixed several problems with external role authentication. Role
   authentication in JBoss was not working correctly and there were possible
   object leaks. The fix required an API change to UserPrinciple and UserRealm.
 + Allow a per context UserRealm instance.
 + Upgraded JSSE to 1.0.2
 + Improved FORM auth handling of role failure.
 + Improved Jasper debug output.
 + Improved ThreadedServer timeout defaults
 + Fixed binary files in CVS
 + Fixed Virtual hosts to case insensitive.
 + PathMap spec separator changed from ',' to ':'. May be set with
   org.mortbay.http.PathMap.separators system property.
 + Correct dispatch to error pages with javax attributes set.

jetty-3.1.2 - 13 October 2001
 + Fixed double entry on PathMap.getMatches
 + Fixed servlet handling of non session url params.
 + Fixed attr handling in XmlParser.toString
 + Fixed request log date formatting
 + Fixed NotFoundHandler handling of unknown methods
 + Fixed FORM Authentication username.
 + Fixed authentication role handling in FORM auth.
 + FORM authentication passes query params.
 + Added short delay to shutdown hook for JVM bug.
 + Added ServletHandler.sessionCount()
 + Added run target to ant
 + Changed 304 responses for Opera browser.
 + Changed JSESSIONID to jsessionid
 + Log OK state after thread low warnings.
 + Changed unsatisfiable range warnings to debug.
 + Further improvements in handling of shutdown.

jetty-3.1.1 - 27 September 2001
 + Fixed jar manifest format - patched 28 Sep 2001
 + Removed JDK 1.3 dependancy
 + Fixed ServletRequest.getLocale().
 + Removed incorrect warning for WEB-INF/lib jar files.
 + Handle requestdispatcher during init.
 + Use lowercase tags in html package to be XHTML-like.
 + Correctly ignore auth-constraint descriptions.
 + Reduced verbosity of bad URL errors from IIS virus attacks

jetty-3.1.0 - 21 September 2001
 + Added long overdue Tutorial documentation.
 + Improved some other documentation.
 + Fix ResourceHandler cache invalidate.
 + Fix ServletResponse.setLocale()
 + Fix reuse of Resource
 + Fix Jetty.bat for spaces.
 + Fix .. handling in URI
 + Fix REFFERER in CGI
 + Fix FORM authentication on exact patterns
 + Fix flush on stop bug in logs.
 + Fix param reading on CGI servlet
 + New simplified jetty.bat
 + Improved closing of listeners.
 + Optimized List creation
 + Removed win32 service.exe
 + Added HandlerContext.registerHost

jetty-3.1.rc9 - 02 September 2001
 + Added bin/orgPackage.sh script to change package names.
 + Changed to org.mortbay domain names.
 + Form auth login and error pages relative to context path.
 + Fixed handling of rel form authentication URLs
 + Added support for Nonblocking listener.
 + Added lowResourcePersistTimeMs for more graceful degradation when we run out
   of threads.
 + Patched Jasper to 3.2.3.
 + Added handlerContext.setClassPaths
 + Fixed bug with non cookie sessions.
 + Format cookies in HttpFields.

jetty-3.1.rc8 - 22 August 2001
 + Support WEB-INF/web-jetty.xml configuration extension for webapps
 + Allow per context log files.
 + Updated sponsors page
 + Added HttpServer statistics
 + Don't add notfound context.
 + Many major and minor optimizations:
 + ISO8859 conversion
 + Buffer allocation
 + URI pathAdd
 + StringMap
 + URI canonicalPath
 + OutputStreamLogSink replaces WriterLogSink
 + Separation of URL params in HttpHandler API.
 + Fixed handling of default mime types
 + Allow contextpaths without leading /
 + Removed race from dynamic servlet initialization.

jetty-3.1.rc7 - 09 August 2001
 + Fix bug in sendRedirect for HTTP/1.1
 + Added doco for Linux port redirection.
 + Don't persist connections if low on threads.
 + Added shutdown hooks to Jetty.Server to trap Ctl-C
 + Fixed bug with session ID generation.
 + Added FORM authentication.
 + Remove old context path specs
 + Added UML diagrams to Jetty architecture documentation.
 + Use Enumerations to reduce conversions for servlet API.
 + Optimized HttpField handling to reduce object creatiyon.
 + ServletRequest SSL attributes in line with 2.2 and 2.3 specs.
 + Dump Servlet displays cert chains
 + Fixed redirect handling by the CGI Servlet.
 + Fixed request.getPort for redirections from 80
 + Added utility methods to ServletHandler for wrapping req/res pairs.
 + Added method handling to HTAccessHandler.
 + ServletResponse.sendRedirect puts URLs into absolute format.

jetty-3.1.rc6 - 10 July 2001
 + Avoid script vulnerability in error pages.
 + Close persistent HTTP/1.0 connections on missing Content-Length
 + Use exec for jetty.sh run
 + Improved SSL debugging information.
 + KeyPairTool can now load cert chains.
 + KeyPairTool is more robust to provider setup.
 + Fixed bug in B64Code. Optimised B64Code.
 + Added Client authentication to the JsseListener
 + Fixed a problem with Netscape and the acrobat plugin.
 + Improved debug output for IOExceptions.
 + Updated to JSSE-1.0.2, giving full strength crypto.
 + Win32 Service uses Jetty.Server instead of HttpServer.
 + Added getResource to HandleContext.
 + WebApps initialize resourceBase before start.
 + Fixed XmlParser to handle xerces1.3 OK
 + Added Get element to the XmlConfiguration class.
 + Added Static calls to the XmlConfiguration class.
 + Added debug and logging config example to demo.xml
 + Moved mime types and encodings to property bundles.
 + RequestDispatch.forward() uses normal HandlerContext.handle() path if
   possible.
 + Cleaned up destroy handling of listeners and contexts.
 + Removed getConfiguration from LifeCycleThread to avoid JMX clash.
 + Cleaned up Win32 Service server creation.
 + Moved gimp image files to Jetty3Extra

jetty-3.1.rc5 - 01 May 2001
 + Added build target for mini.jetty.jar - see README.
 + Major restructing of packages to separate servlet dependancies. c.m.XML  -
   moved XML dependant classes from c.m.Util c.m.HTTP - No servlet or XML
   dependant classes: c.m.Jetty.Servlet - moved from c.m.HTTP.Handler.Servlet
   c.m.Servlet - received some servlet dependant classes from HTTP.
 + Added UnixCrypt support to c.m.U.Password
 + Added HTaccessHandler to authenitcate against apache .htaccess files.
 + Added query param handling to ForwardHandler
 + Added ServletHandler().setUsingCookies().
 + Optimized canonical path calculations.
 + Warn and close connections if content-length is incorrectly set.
 + Request log contains bytes actually returned.
 + Fixed handling of empty responses at header commit.
 + Fixed ResourceHandler handling of ;JSESSIONID
 + Fixed forwarding to null pathInfo requests.
 + Fixed handling of multiple cookies.
 + Fixed EOF handling in MultiPartRequest.
 + Fixed sync of ThreadPool idleSet.
 + Fixed jetty.bat classpath problems.

jetty-3.0.6 - 26 April 2001
 + Fixed handling of empty responses at header commit.
 + Fixed ResourceHandler handling of ;JSESSIONID
 + Fixed forwarding to null pathInfo requests.
 + Fixed EOF handlding in MultiPartRequest.
 + Fixed sync of ThreadPool idleSet.
 + Load-on-startup the JspServlet so that precompiled servlets work.

jetty-3.1.rc4 - 14 April 2001
 + Include full versions of JAXP and Crimson
 + Added idle thread getter to ThreadPool.
 + Load-on-startup the JspServlet so that precompiled servlets work.
 + Removed stray debug println from the Frame class.

jetty-3.0.5 - 14 April 2001
 + Branched from 3.1 trunk to fix major errors
 + Fixed LineInput bug EOF
 + Improved flush ordering for forwarded requests.
 + Turned off range handling by default until bugs resolved
 + Don't chunk if content length is known.
 + fixed getLocales handling of quality params
 + Created better random session ID
 + Resource handler strips URL params like JSESSION.
 + Fixed session invalidation unbind notification to conform with spec
 + Load-on-startup the JspServlet so that precompiled servlets work.

jetty-3.1.rc3 - 09 April 2001
 + Implemented multi-part ranges so that acrobat is happy.
 + Simplified multipart response class.
 + Improved flush ordering for forwarded requests.
 + Improved ThreadPool stop handling
 + Frame handles more JIT stacks.
 + Cleaned up handling of exceptions thrown by servlets.
 + Handle zero length POSTs
 + Start session scavenger if needed.
 + Added ContentHandler Observer to XmlParser.
 + Allow webapp XmlParser to be observed for ejb-ref tags etc.
 + Created better random session ID

jetty-3.1.rc2 - 30 March 2001
 + Lifecycle.start() may throw Exception
 + Added MultiException to throw multiple nested exceptions.
 + Improved logging of nested exceptions.
 + Only one instance of default MIME map.
 + Use reference JAXP1.1 for XML parsing.y
 + Version 1.1 of configuration dtd supports New objects.
 + Improved handling of Primitive classes in XmlConfig
 + Renamed getConnection to getHttpConnection
 + fixed getLocales handling of quality params
 + fixed getParameter(name) handling for multiple values.
 + added options to turn off ranges and chunking to support acrobat requests.

jetty-3.1.rc1 - 18 March 2001
 + Moved JMX and SASL handling to Jetty3Extra release
 + Fixed problem with ServletContext.getContext(uri)
 + Added Jetty documentation pages from JettyWiki
 + Cleaned up build.xml script
 + Minimal handling of Servlet.log before initialization.
 + Various SSL cleanups
 + Resource handler strips URL params like JSESSION.

jetty-3.1.rc0 - 23 February 2001
 + Added JMX management framework.
 + Use Thread context classloader as default context loader parent.
 + Fixed init order for unnamed servlets.
 + Fixed session invalidation unbind notification to conform with spec
 + Improved handling of primitives in utilities.
 + Socket made available via HttpConnection.
 + Improved InetAddrPort and ThreadedServer to reduce DNS lookups.
 + Dynamic servlets may be restricted to Context classloader.
 + Reoganized packages to allowed sealed Jars
 + Changed getter and setter methods that did not conform to beans API.

jetty-3.0.4 - 23 February 2001
 + Fixed LineInput bug with split CRLF.

jetty-3.0.3 - 03 February 2001
 + Fixed pipelined request buffer bug.
 + Handle empty form content without exception.
 + Allow Log to be disabled before initialization.
 + Included new Jetty Logo
 + Implemented web.xml servlet mapping to a JSP
 + Fixed handling of directories without trailing /

jetty-3.0.2 - 13 January 2001
 + Replaced ResourceHandler FIFO cache with LRU cache.
 + Greatly improved buffering in ChunkableOutputStream
 + Padded error bodies for IE bug.
 + Improved HTML.Block efficiency
 + Improved jetty.bat
 + Improved jetty.sh
 + Handle unknown status reasons in HttpResponse
 + Ignore included response updates rather than IllegalStateException
 + Removed classloading stats which were causing circular class loading
   problems.
 + Allow '+' in path portion of a URL.
 + Try ISO8859_1 encoding if can't find ISO-8859-1
 + Restructured demo site pages.
 + Context specific security permissions.
 + Added etc/jetty.policy as example policy file.

jetty-3.0.1 - 20 December 2000
 + Fixed value unbind notification for session invalidation.
 + Removed double null check possibility from ServletHolder

jetty-3.0.0 - 17 December 2000
 + Improved jetty.sh logging
 + Improved dtd resolution in XML parser.
 + Fixed taglib parsing
 + Fixed rel path handling in default configurations.
 + Optional extract war files.
 + Fixed WriterLogSink init bug
 + Use inner class to avoid double null check sync problems
 + Fixed rollover bug in WriterLogSink

jetty-3.0.0.rc8 - 13 December 2000
 + Optional alias checking added to FileResource.  Turned on by default on all
   platforms without the "/" file separator.
 + Mapped *.jsp,*.jsP,*.jSp,*.jSP,*.Jsp,*.JsP,*.JSp,*.JSP
 + Tidied handling of ".", ".." and "//" in resource paths
 + Protected META-INF as well as WEB-INF in web applications.
 + Jetty.Server catches init exceptions per server
 + getSecurityHandler creates handler at position 0.
 + SysV unix init script
 + Improved exit admin handling
 + Change PathMap handling of /* to give precedence over suffix mapping.
 + Forward to welcome pages rather than redirect.
 + Removed special characters from source.
 + Default log options changed if in debug mode.
 + Removed some unused variables.
 + Added ForwardHandler
 + Removed security constraint on demo admin server.
 + Patched jasper to tomcat 3.2.1

jetty-3.0.0.rc7 - 02 December 2000
 + Fixed security problem with lowercase WEB-INF uris on windows.
 + Extended security constraints (see README and WebApp Demo).
 + Set thread context classloader during handler start/stop calls.
 + Don't set MIME-Version in response.
 + Allow dynamic servlets to be served from /
 + Handle multiple inits of same servlet class.
 + Auto add a NotFoundHandler if needed.
 + Added NotFoundServlet
 + Added range handling to ResourceHandler.
 + CGI servlet handles not found better.
 + WEB-INF protected by NotFoundServlet rather than security constraint.
 + PUT, MOVE disabled in WebApplication unless defaults file is passed.
 + Conditionals apply to puts, dels and moves in ResourceHandler.
 + URIs accept all characters < 0xff.
 + Set the AcceptRanges header.
 + Depreciated RollOverLogSink and moved functionality to an improved
   WriterLogSink.
 + Changed log options to less verbose defaults.
 + ThreadedServer.forceStop() now makes a connection to itself to handle
   non-premptive close.
 + Double null lock checks use ThreadPool.__nullLockChecks.
 + Split Debug servlet out of Admin Servlet.
 + Added Com.mortbay.HTTP.Handler.Servlet.Context.LogSink attribute to Servlet
   Context. If set, it is used in preference to the system log.

jetty-3.0.0.rc6 - 20 November 2000
 + RequestDispatcher.forward() only resets buffer, not headers.
 + Added ServletWriter that can be disabled.
 + Resource gets systemresources from it's own classloader.
 + don't include classes in release.
 + Allow load-on-startup with no content.
 + Fixed RollOverFileLogSink bug with extra log files.
 + Improved Log defaults
 + Don't start HttpServer log sink on add.
 + Admin servlet uses unique links for IE.
 + Added Win32 service support
 + Reduced risk of double null check sync problem.
 + Don't set connection:close for normal HTTP/1.0 responses.
 + RequestDispatcher new queries params replace old.
 + Servlet init order may be negative.
 + Corrected a few of the many spelling mistakes.
 + Javadoc improvements.
 + Webapps serve dynamics servlets by default.
 + Warn for missing WEB-INF or web.xml
 + Sessions try version 1 cookies in set-cookie2 header.
 + Session cookies are given context path
 + Put extra server and servlet info in header.
 + Version details in header can be suppressed with System property
   java.com.mortbay.HTTP.Version.paranoid
 + Prevent reloading dynamic servlets at different paths.
 + Implemented resource aliases in HandlerContext - used by Servlet Context
 + Map tablib configuration to resource aliases.
 + Implemented customizable error pages.
 + Simple stats in ContextLoader.
 + Allow HttpMessage state to be manipulated.
 + Allow multiple set cookies.

jetty-3.0.0.rc5 - 12 November 2000
 + Default writer encoding set by mime type if not explicitly set.
 + Relax webapp rules, accept no web.xml or no WEB-INF
 + Pass flush through ServletOut
 + Avoid jprobe race warnings in DateCache
 + Allow null cookie values
 + Servlet exceptions cause 503 unavailable rather than 500 server error
 + RequestDispatcher can dispatch static resources.
 + Merged DynamicHandler into ServletHandler.
 + Added debug form to Admin servlet.
 + Implemented servlet load ordering.
 + Moved JSP classpath hack to ServletHolder
 + Removed Makefile build system.
 + Many javadoc cleanups.

jetty-2.4.9 - 12 November 2000
 + HttpListener ignore InterruptedIOExceptions
 + HttpListener default max idle time = 20s
 + HtmlFilter handles non default encodings
 + Writing HttpRequests encodes path
 + HttpRequest.write uses ISO8859_1 encoding.

jetty-3.0.0.rc4 - 06 November 2000
 + Provide default JettyIndex.properties
 + Fixed mis-synchronization in ThreadPool.stop()
 + Fixed mime type mapping bug introduced in RC3
 + Ignore more IOExceptions (still visible with debug).

jetty-3.0.0.rc3 - 05 November 2000
 + Changed ThreadPool.stop for IBM 1.3 JVM
 + Added bin/jetty.sh run script.
 + upgraded build.xml to ant v1.2
 + Set MaxReadTimeMs in all examples
 + Further clean up of the connection close actions
 + Moved unused classes from com.mortbay.Util to com.mortbay.Tools in new
   distribution package.
 + Handle mime suffixes containing dots.
 + Added gz tgz tar.gz .z mime mappings.
 + Fixed default mimemap initialization bug
 + Optimized persistent connections by recycling objects
 + Added HandlerContext.setHttpServerAccess for trusted contexts.
 + Set the thread context class loader in HandlerContext.handle
 + Prevent servlet setAttribute calls to protected context attributes.
 + Removed redundant context attributes.
 + Implemented mime mapping in webapplications.
 + Strip ./ from relative resources.
 + Added context class path dynamic servlet demo

jetty-3.0.0.rc2 - 29 October 2000
 + Replaced ISO-8859-1 literals with StringUtil static
 + Pass file based classpath to JspServlet (see README).
 + Prevented multiple init of ServletHolder
 + ErlEncoding treats params without values as empty rather than null.
 + Accept public DTD for XmlConfiguration (old style still supported).
 + Cleaned up non persistent connection close.
 + Accept HTTP/1. as HTTP/1.0 (for netscape bug).
 + Fixed thread name problem in ThreadPool

jetty-3.0.0.rc1 - 22 October 2000
 + Added simple admin servlet.
 + Added CGI to demo
 + Added HashUserRealm and cleaned up security constraints
 + Added Multipart request and response classes from Jetty2
 + Moved and simplified ServletLoader to ContextLoader.
 + Initialize JSP with classloader.
 + All attributes in javax. java. and com.mortbay. name spaces to be set.
 + Partial handling of 0.9 requests.
 + removed Thread.destroy() calls.
 + Cleaned up exception handling.

jetty-2.4.8 - 23 October 2000
 + Fixed bug with 304 replies with bodies.
 + Improved win32 make files.
 + Fixed closing socket problem

jetty-3.0.B05 - 18 October 2000
 + Improved null returns to get almost clean watchdog test.
 + Cleaned up response committing and flushing
 + Handler RFC2109 cookies (like any browser handles them!)
 + Added default webapp servlet mapping /servlet/name/*
 + Improved path spec interpretation by looking at 2.3 spec
 + Implemented security-role-ref for servlets
 + Protected servletConfig from downcast security problems
 + Made test harnesses work with ant.
 + improved ant documentation.
 + Removed most deprecation warnings
 + Fixed JarFileResource to handle jar files without directories.
 + Implemented war file support
 + Java2 style classloading
 + Improved default log format for clarity.
 + Separated context attributes and initParams.

jetty-3.0.B04 - 12 October 2000
 + Restricted context mapping to simple model for servlets.
 + Fixed problem with session ID in paths
 + Added modified version of JasperB3.2 for JSP
 + Moved FileBase to docroot
 + Merged and renamed third party jars.
 + Do not try multiple servlets for a request.
 + Implemented Context.getContext(uri)
 + Added webdefault.xml for web applications.
 + Redirect to index files, so index.jsp works.
 + Filthy hack to teach jasper JspServer Jetty classpath

jetty-3.0.B03 - 09 October 2000
 + Expanded import package.*; lines
 + Expanded leading tabs to spaces
 + Improved Context to Handler contract.
 + Parse but not handler startup ordering in web applications.
 + Send request log via a LogSink
 + Added append mode in RolloverFileLogSink
 + Made LogSink a Lifecycle interface
 + Improved handler toString
 + Redirect context only paths.
 + Pass object to LogSink
 + Implemented request dispatching.
 + Redo dynamic servlets handling
 + Improved Log rollover.
 + Simplified path translation and real path calculation.
 + Catch stop and destroy exceptions in HttpServer.stop()
 + Handle ignorable spaces in XmlConfiguration
 + Handle ignorable spaces in WebApplication
 + Warn about explicit sets of WebApplication
 + Remove 411 checks as IE breaks this rule after redirect.
 + Removed last remnants JDK 1.1 support
 + Added release script

jetty-2.4.7 - 06 October 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.

jetty-3.0.B02 - 24 August 2000
 + Fixed LineInput bug with SSL giving CR pause LF.
 + Fixed HTTP/1.0 input close bug
 + Fixed bug in TestRFC2616
 + Improved ThreadedServer stop and destroy
 + Use resources in WebApplication
 + Added CGI servlet

jetty-3.0.B01 - 21 August 2000
 + SSL implemented with JsseListener
 + Partial implementation of webapp securitycontraints
 + Implemented more webapp configuration
 + Switched to the aelfred XML parser from microstar, which is only partially
   validating, but small and lightweight

jetty-2.4.6 - 16 August 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

jetty-3.0.A99 - 10 August 2000
 + Implemented jetty.xml configuration
 + Added Xmlconfiguration utility
 + ServletLoader simplied and uses ResourcePath
 + Replaced FileHandler with ResourceHandler
 + Use SAX XML parsing instead of DOM for space saving.
 + Removed FileBase. Now use ResourceBase instead
 + Added Resource abstraction
 + Make it compile cleanly with jikes.
 + Re-added commented out imports for JDK-1.1 compile

jetty-3.0.A98 - 20 July 2000
 + Implemented Jetty demos and Site as Web Application.
 + Implemented WebApplicationContext
 + Switched to JDK1.2 only
 + ServletRequest.getServerPort() returns 80 rather than 0
 + Fixed constructor to RolloverFileLogSink
 + Improved synchronization on LogSink
 + Allow HttpRequest.toString() handles bad requests.

jetty-3.0.A97 - 13 July 2000
 + Tempory request log implementation
 + Less verbose debug
 + Better tuned SocketListener parameters
 + Started RequestDispatcher implementation.
 + Added WML mappings
 + Fixed makefiles for BSD ls
 + Fixed persistent commits with no content (eg redirect+keep-alive).
 + Implemented servlet isSecure().
 + Implemented servlet getLocale(s).
 + Formatted version in server info string.
 + Protect setContentLength from a late set in default servlet HEAD handling.
 + Added error handling to LifeCycleThread
 + implemented removeAttribute on requests

jetty-2.4.5 - 09 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

jetty-3.0.A96 - 27 June 2000
 + Fixed bug with HTTP/1.1 Head reqests to servlets.
 + Supressed un-needed chunking EOF indicators.

jetty-3.0.A95 - 24 June 2000
 + Fixed getServletPath for default "/"
 + Handle spaces in file names in FileHandler.

jetty-3.0.A94 - 19 June 2000
 + Implemented Sessions.
 + PathMap exact matches can terminate with ; or # for URL sessions and
   targets.
 + Added HandlerContext to allow grouping of handlers into units with the same
   file, resource and class configurations.
 + Cleaned up commit() and added complete() to HttpResponse
 + Updated license to clarify that commercial usage IS OK!

jetty-3.0.A93 - 14 June 2000
 + Major rethink! Moved to 2.2 servlet API
 + Lots of changes and probably unstable

jetty-3.0.A92 - 07 June 2000
 + Added HTML classes to jar
 + Fixed redirection bug in FileHandler

jetty-2.4.4 - 03 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

jetty-3.0.A91 - 03 June 2000
 + Improved LogSink mechanism
 + Implemented realPath and getResource methods for servlets.
 + Abstracted ServletHandler
 + Simplified HttpServer configuration methods and arguments
 + Simplified class loading
 + Added HTML classes from Jetty2

jetty-3.0.A9 - 07 May 2000
 + Improvided finally handling of output end game.
 + Fixed double chunking bug in SocketListener.
 + File handler checks modified headers on directory indexes.
 + ServletLoader tries unix then platform separator for zip separator.

jetty-3.0.A8 - 04 May 2000
 + Servlet2_1 class loading re-acrchitected. See README.
 + Moved Sevlet2_1 handler to com.mortbay.Servlet2_1
 + addCookie takes an int maxAge rather than a expires date.
 + Added LogSink extensible log architecture.
 + Code.ignore only outputs when debug is verbose.
 + Added Tenlet class for reverse telnet.

jetty-2.4.3 - 04 May 2000
 + Pass Cookies with 0 max age to browser.
 + Allow CRLF in UrlEncoded

jetty-2.4.2 - 23 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.

jetty-3.0.A7 - 15 April 2000
 + Include java 1.2 source hierarchy
 + removed excess ';' from source
 + fixed flush problem with chunked output for IE5
 + Added InetGateway to help debug IE5 problems
 + added removeValue method to MultiMap

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

jetty-3.0.A6 - 09 April 2000
 + Integrated skeleton 2.1 Servlet container
 + Improved portability of Frame and Debug.
 + Dates forced to use US locale
 + Removed Converter utilities and InetGateway.
 + added bin/useJava2Collections to convert to JDK1.2

jetty-2.4.0 - 24 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

jetty-2.3.5 - 25 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.

jetty-2.3.4 - 18 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.

jetty-3.0.A5 - 19 October 1999
 + Use ISO8859_1 instead of UTF8 for headers etc.
 + Use char array in UrlEncoded.decode
 + Do our own URL string encoding with 8859-1
 + Replaced LF wait in LineInput with state boolean.

jetty-2.3.3 - 19 October 1999
 + 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.

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

jetty-3.0.A4 - 16 October 1999
 + Request attributes
 + Basic Authentication Handler.
 + Added LF wait after CR to LineInput.
 + UTF8 in UrlDecoded.decodeString.

jetty-2.3.1 - 14 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.

jetty-3.0.A3 - 14 October 1999
 + Added LifeCycle interface to Utils implemented by ThreadPool,
   ThreadedServer, HttpListener & HttpHandler
 + StartAll, stopAll and destroyAll methods added to HttpServer.
 + MaxReadTimeMs added to ThreadedServer.
 + Added service method to HttpConnection for specialization.

jetty-3.0.A2 - 13 October 1999
 + UTF8 handling on raw output stream.
 + Reduced flushing on writing response.
 + Fixed LineInput problem with repeated CRs
 + Cleaned up Util TestHarness.
 + Prevent entity content for responses 100-199,203,304
 + Added cookie support and demo.
 + HTTP/1.0 Keep-alive (about time!)
 + Virtual Hosts.
 + NotFound Handler
 + OPTION * Handling.
 + TRACE handling.
 + HEAD handling.

jetty-3.0.A1 - 12 October 1999
 + LineInput uses own buffering and uses character encodings.
 + Added MultiMap for common handling of multiple valued parameters.
 + Added parameters to HttpRequest
 + Quick port of FileHandler
 + Setup demo pages.
 + Added PathMap implementing mapping as defined in the 2.2 API specification
   (ie. /exact, /prefix/*, *.extention & default ).
 + Added HttpHandler interface with start/stop/destroy lifecycle
 + Updated HttpListener is start/stop/destroy lifecycle.
 + Implemented simple extension architecture in HttpServer.

jetty-3.0.A0 - 09 October 1999
 + Started fresh repository in CVS
 + Moved com.mortbay.Base classes to com.mortbay.Util
 + Cleanup of UrlEncoded, using 1.2 Collections.
 + Cleanup of URI, using 1.2 Collections.
 + Extended URI to handle absolute URLs
 + Cleanup of LineInput, using 1.2 Collections.
 + Moved HttpInput/OutputStream to ChunkableInput/OutputStream.
 + Cleaned up chunking code to use LineInput and reduce buffering.
 + Added support for transfer and content encoding filters.
 + Added support for servlet 2.2 outbut buffer control.
 + Generalized notification of outputStream events.
 + Split HttpHeader into HttpFields and HttpMessage.
 + HttpMessage supports chunked trailers.
 + HttpMessage supports message states.
 + Added generalized HTTP Connection.
 + Cleanup of HttpRequest and decoupled from Servlet API
 + Cleanup and abstraction of ThreadPool.
 + ThreadedServer based on ThreadPool.
 + Cleanup of HttpResponse and decoupled from Servlet API
 + Created RFC2616 test harness.
 + gzip and deflate request transfer encodings
 + TE field coding and trailer handler
 + HttpExceptions now produce error pages with specific detail of the
   exception.

jetty-2.3.0 - 05 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.

jetty-2.3.0A - 22 September 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.

jetty-2.2.8 - 15 September 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

jetty-2.2.7 - 09 September 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.

jetty-2.2.6 - 05 September 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.

jetty-2.2.5 - 19 August 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!).

jetty-2.2.4 - 02 August 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.

jetty-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.

jetty-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

jetty-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.

jetty-2.2.0 - 01 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.

jetty-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.

jetty-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.

jetty-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.

jetty-2.2.Beta1 - 07 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.

jetty-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

jetty-2.2.Alpha1 - 07 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

jetty-2.2.Alpha0 - 06 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

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

jetty-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

jetty-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

jetty-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).

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

jetty-2.1.2 - 09 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.

jetty-2.1.1 - 05 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

jetty-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.

jetty-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

jetty-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!

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

jetty-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

jetty-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

jetty-2.0.2 - 01 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.

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

jetty-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.

jetty-2.0.Beta3 - 29 September 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

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

jetty-2.0Beta1 - 01 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.

jetty-2.0Alpha2 - 01 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

jetty-1.3.5 - 01 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

jetty-2.0Alpha1 - 08 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

jetty-1.3.4 - 15 March 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.

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

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

jetty-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

jetty-1.3.0
 + Added DbAdaptor to JDBC wrappers
 + Beta release of Tracker

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

jetty-1.1.1
 + Improved documentation

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

jetty-1.0.1
 + Bug fixes

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

