List of other things to do:
---------------------------

Long-term
     - Control port password ? Maybe not, or only if someone asks for it
     - Add more automated tests as part of release process:
       - url matching (evaluation of servletPath/pathInfo)
       - security / authentication
       - cluster resilience
       - ajp13 connector
     - More complete manual/documentation
     - Publish apidocs
     - Eclipse plug-in ? internal launcher plus browser window, and project level config for 
         winstone properties
     - More accurate profiling of memory usage, object allocation etc
     - Auto-deployer for webappsDir folder. Redeploy warfiles that have been updated or added
     - Maven winstone plugin, so we can run maven winstone, and it will war-up and execute
     
v0.9.5
DONE - Add session persistence across reboots (ie serialize to file)
DONE - Add v2.5 spec support
DONE - Heaps of include/forward and session related fixes (thanks to Martin Cordova and Robert Boyce)

v0.8.1
DONE - License change to dual CDDL + LGPL
DONE - appfuse bugfix. All listeners need a context class loader set.
DONE - update outputstream to do include stacking internally, rather than returning new streams for each level
DONE - fixed some nasty web.xml parsing bugs

v0.8
DONE - Remove resource bundles as arguments. Declare statically in class
DONE - DB connection pool keep-alive support, etc
DONE - Cache filter matching calcs for various URLs
DONE - Virtual host support
DONE - Access log. Apache style if possible, minimal config.
DONE - Fix for davenport and jakarta slide webdav applications
DONE - Check for warfile, properties file inside classpath, so that we can pack an app in a single jar

v0.7
DONE - Fixed load-on-startup optional content bug (thanks to Matthias Wuttke)
DONE - Fixed the "error request loses attributes when forwarded" bug
DONE - Upgraded to maven build process, ant is deprecated
DONE - Reformatted source using eclipse source formatter
DONE - Added better resolution of paths in static resource servlet, so that spaces etc in paths are handled properly
DONE - Multiple webapp support
DONE - Fix for JamVM JNDI properties bug (thanks Martin Cordova)
DONE - SSL Key manager factory selector (thanks Martin Cordova)
DONE - TCK compliance testing
DONE - Added optional gzip and multipart upload filters
DONE - Fixed session bugs in SSL (thanks Martin Cordova)

v0.6.4
DONE - Added HTTPS listener class
DONE - Fixed the path separator bug in the classpath under linux
DONE - Changed default hostname lookups to off (more stable).

v0.6.3
DONE - Fixed the errorPage directive bug
DONE - Fixed bugs related to requestDispatcher and non-existants urls
DONE - Fixed querystring parsing error when non-latin1 encoding

v0.6.2
DONE - Move all debugging message lookups into logger (performance)
DONE - Made invoker servlet on by default

v0.6.1
DONE - Fix VariableInfo and BodyContent api errors for jsps
DONE - Fix WinstoneDataSource lockup problem

v0.6
DONE - Create winstone local jsp 2.0 api classes
DONE - Update to v2.4 servlet api classes
DONE - Refactor to winstone package, not com.rickknowles.winstone package
DONE - Test with Apache Struts framework
DONE - Added logfile directive
DONE - Fixed request/response locale setting
DONE - Fixed jsp include bugs
DONE - Fixed http session bugs
DONE - Added simple test application
DONE - Java wrapper for control operations, such as shutdown or flush
DONE - Additional control port options, such as manual webapp forced reload operation
DONE - Added 206 Partial Content (ie restartable downloads) to static servlet
DONE - Added interface specific binding for ajp13 and http listeners
DONE - Add additional listener class calls for request + attributes
DONE - Update to make winstone completely compliant with servlet 2.4 spec

(non-compliance with 2.4 spec parts completed in v0.6)
DONE - 1.6.1 Session Destroyed call timing is not called at correct time
DONE - 2.3.2.1 Error handling in servlet.init() - UnavailableException
DONE - 2.3.3.2 Error handling in servlet.service() - UnavailableException
DONE - 2.3.4 Calling destroy incorrectly - wait for all threads to finish
DONE - 3.5 Resource URLs
DONE - 4.1.1 Parse conditions for POST parameters
DONE - 4.4 Context Path / Servlet Path / Path Info values wrong
DONE - 4.5 Path translation methods incorrect
DONE - 4.7 Add SSL request attribute (javax.servlet.request.key_size)
DONE - 4.9 Request Encoding
DONE - 4.10 Implement request listeners
DONE - 4.10 Implement request attribute listeners
DONE - 5.1 Reset / Buffer management
DONE - 5.2 X-Powered-By
DONE - 5.3 Redirect URLs must be absolute
DONE - 5.4 Locale mapping implementation
DONE - 6.2.1 Filter init() error handling
DONE - 6.2.4 Build filter chain in reverse order
DONE - 6.2.5 Filter config for dispatcher
DONE - 7.1.1 Session cookie name
DONE - 7.4 Check order of session binding listeners
DONE - 7.6 Session accessed time
DONE - 7.7.2 Errors in distributed sessions
DONE - 8.1 Return null request dispatcher when no url found
DONE - 8.1 Request vs Context Dispatchers
DONE - 8.1.1 Query string in request dispatchers
DONE - 8.3 Request attributes for include dispatches
DONE - 8.3.1 getNamedDispatcher
DONE - 8.4.2 Forward request attributes
DONE - 8.5 Errors in dispatch
DONE - 9.5 404 for WEB-INF
DONE - 9.6 404 for META-INF
DONE - 9.7.1 Shared library classloader (common/lib)
IGNR - 9.7.1 Manifest depend libraries
DONE - 9.9.1 Error request attributes
DONE - 9.9.2 Error page matching
DONE - 9.9.3 Error filters
DONE - 9.10 Welcome file match
DONE - 9.12 Order of startup
DONE - 10.3.2 Order of listener invokation
DONE - 10.3.4 Session then context listeners
DONE - 10.6 Listener exceptions
DONE - 10.8 Can determine invalidate or timeout on session
DONE - 11.1 Rule order for URL match
DONE - 11.2 default mapping of /
DONE - 11.2.1 *.jsp mapping is overrideable
DONE - 12.2 Security on incoming only
DONE - 12.3 Match security-role-ref in IsUserInRole
IGNR - 12.7 run-as element in servlet
DONE - 12.8.1 * = all roles
DONE - 13.1 Locale-mapping element
IGNR - 13.2 Canonical paths in web.xml

v0.5
DONE - Implement session clustering between multiple Winstone instances
DONE - Make the core distribution jar smaller, with optional components detached
DONE - Add CLIENT-CERT authentication handler
DONE - Add DIGEST authentication handler
DONE - Add optional JNDI support for env-refs and jdbc datasource / mail session support

v0.4
DONE - Implement errorPage directives in web.xml
DONE - Add in request/response object pools to improve execution time
DONE - Add command line arguments to control handler thread startup/max-idle/max
DONE - Add servlet reloading to the WinstoneClassLoader
DONE - Add authentication/security model - pluggable if possible, so Winstone can work in non-security mode
DONE - Add xml-file-based realm support
DONE - Add FORM based authentication

v0.3
DONE - Modify the request handler thread to survive beyond a single request cycle
DONE - Add auto WAR extract instead of webroot
DONE - Change build process to use external ant
DONE - Add listener handlers, etc
DONE - Add filter handling code
DONE - Refactor HttpConnector links, and build an ajp13 connector
