NOTE: This document is the first cut at a status document
to track outstanding issues for the ongoing development of
Tomcat. Nothing in this document should be considered
authoritative until it has been discussed and initially
approved on the TOMCAT-DEV mailing list, at which point
this note will be removed.

Action Items List for Jakarta Tomcat

This document is a living list of the action items related to the current and future development of the Tomcat servlet container. As such, it focuses primarily on enhancements to existing features, as well as the addition of new features. Bugs in the implementation of existing features should be reported to http://jakarta.apache.org/bugs so that they can be tracked and fixed. The columns in this report contain the following information:

Additions to, subtractions from, and changes to the action items listed here should be discussed and approved on the TOMCAT-DEV mailing list, as described on the Decision Making page on the Jakarta Project web site. Developers can nominate themselves to work on particular action items by asking a Committer to add their name and EMAIL address to those items. The developers working on each item should discuss and agree upon the approach to be used for implementing the item's changes to the project source code and documentation, prior to completing those changes. Such discussions should take place on the TOMCAT-DEV mailing list so that everyone can stay apprised of what is going on, or chime in if they want to contribute ideas and suggestions.

At various points in time, particular action items will be selected and assigned to a particular interim release of Tomcat (based on lazy consensus on the TOMCAT-DEV mailing list). At that time, the assigned release will be recorded in this document, and the item will be listed under that release in the current RELEASE-PLAN schedule.

For convenience, the action items have been organized into general categories, which are presented in alphabetical order. The following categories of actions are currently identified:

NOTE: In addition to this list of action items related to the main CVS source branch for the jakarta-tomcat subproject, a number of people have expressed interest in working on the Catalina architecture. To facilitate tracking of these efforts, a separate STATUS document is maintained in the proposals/catalina subdirectory.



Architecture

Priority Release Action Item Volunteers
High --- Define a Tomcat-specific Service Provider Interface (SPI) that defines a stable API which application server and development tool providers can use to integrate Tomcat within their products. Craig McClanahan
Medium ---- Discuss and agree upon the outlines of the architecture for the core servlet container components of the next major release (4.0) of Tomcat, which will correspond to the next versions of the Servlet and JSP APIs. Craig McClanahan
Medium --- Discuss and agree upon the outlines of the architecture for the JSP page compiler and execution environment for the next major release (4.0) of Tomcat, which will correspond to the next versions of the Servlet and JSP APIs. Anil Vijendran
Low --- Discuss and agree upon Tomcat distribution strategies so that users can select a minimal "reference implementation" version of Tomcat to validate their own containers against, or a full featured release with all currently included functionality. --- and Costin Manolache

Administration

Priority Release Action Item Volunteers
High --- Add out-of-the-box functionality to install Tomcat as a "service" under Microsoft NT. ---
High --- Improve the ease of installation of Tomcat, especially on Windows platforms by integrating it with an installation program. ---
Medium --- Define functional and user interface requirements for the interactive (servlet/JSP based) administration tool for managing running Tomcat instances. ---
Medium --- Implement interactive administration tool that fulfills the requirements described above. ---
Low --- Design an implement a tool for creating and customizing web application deployment descriptors (i.e. web.xml files) in a user friendly manner. ---

Connectors

Priority Release Action Item Volunteers
High --- Improve the performance and thread utilization of the current HTTP/1.0 connector used by Tomcat stand-alone. ---
Medium --- Design, implement, and test an HTTP/1.1 connector to be used by Tomcat stand-alone. ---
Medium --- Implement a two-way communications protocol in the Apache connector, such that getRealPath() can respect Apache virtual mappings, getMimeType() can respect Apache MIME type mappings, and so on. ---
Medium --- Implement a new Apache/2.0 connector whereby Tomcat can be run "in process" instead of "out of process". --- and Costin Manolache
Medium --- Ensure that all web server connectors pass sufficient information to properly set the value returned by ServletRequest.isSecure() and to populate the SSL information attributes described in ... ---

Containers

Priority Release Action Item Volunteers
High --- Define and implement full virtual host support, including: single-JVM configuration option, support for per-virtual-host interceptors, and so on. --- and Costin Manolache
High --- Finish the implementation and testing of FORM-based authentication and access control. ---
Medium --- Design and implement DIGEST based authentication and access control. ---
Medium --- Design and implement SSL based authentication and access control, in a manner that minimizes installation hassles and does not cause problems with US export controls. ---
Medium --- Design and implement "single sign on" support for cross application access with a single login, as described in Section 11 of the Servlet API Specification Version 2.2. ---
Medium --- Design and implement support for serving web applications directly from WAR files, and/or from a URL-based document root. Probably requires pluggable implementation of the getResource() family of calls. ---
Medium --- Refactor the implementation of RequestSecurityProvider and SecurityCheck so that a Tomcat deployer can integrate with their own security realm by implementing a single class, rather than having to duplicate the code in SecurityCheck. --- and Costin Manolache
Medium --- Add support for pluggable session management components, with support for file-based, JDBC-based, JNDI-based, and possibly other persistence mechanisms. ---
Medium --- Improve the internationalization support provided in Tomcat by factoring remaining hard-coded English message strings into resource files, and providing translated resource files for other languages. ---
Medium --- Implement the optional web application environment support described in Section 9.9 of the Servlet API Specification Version 2.2, and Chapter 5 of the Java2 Platform Enterprise Edition Version 1.2 Specification. ---
Medium --- More generalized implementation of logging, that allows plugins for choosing log formatting styles. ---
Medium --- Design and implement better mechanisms for Tomcat to "sandbox" multiple web applications running in the same container, to avoid having them interfere with each other. --- and Costin Manolache
Low --- Implement instance pooling for servlets that implement the SingleThreadModel interface. ---
Low --- Fully support "absolute" document root paths on Windows that start with a '/' or '\' character, instead of a drive letter plus a colon. Currently, File.isAbsolute() on Windows JVMS considers such a path to be relative. ---

JSP Functionality

Priority Release Action Item Volunteers
Medium --- Incorporate support for pluggable JSP page parsers. ---
Medium --- Incorporate support for scripting languages other than Java, as outlined in the JSP specification. ---
Medium --- Review and optimize the performance of the servlet classes generated by the JSP page compiler. ---
Medium --- Make dependency checking a stand-alone module, and extend it to allow complex dependency checking. Make it useable from outside jsp, and add a "shortcut" for tocmat that will allow fast invocation Anil Vijendran Costin Manolache

Servlet Functionality

Priority Release Action Item Volunteers
High --- Add full support for WebDAV, either as servlets included in the full-featured distribution of Tomcat, or as a separate sub-project under Jakarta. ---
Medium --- Default file-serving servlet has problems dealing with directory and file names that contain spaces or other special characters. [Bug ID#10, 101]. ---
Low --- Integrate the Apache JSSI project's support for embedded <servlet> tags in .jhtml pages into the full-featured distribution of Tomcat (assuming the Apache JSSI project group agrees), bringing it up to date with respect to servlet API 2.2 as required. ---
Low --- Add a default servlet that can serve CGI scripts and applications, for use in Tomcat deployments not connected to a web server, or to enable RequestDispatcher-based access to CGI scripts and applications. ---


$Id$