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:

- Priority - A sense of how important the Tomcat development community feels it is to address this issue in the short term.
- Release - The interim or final release (such as `3.2m2`) for which this action item is scheduled to be completed.
- Action Item - Concise description of the action item to be completed.
- Volunteers - Names and EMAIL addresses of those developers who have volunteered to assist in the design, implementation, testing, and documentation of this action item's changes to Tomcat.

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:

- Architecture of major Tomcat components
- Administration application and tools
- Connectors to web servers and HTTP clients
- Containers in the Tomcat core engine
- JSP functionality enhancements
- Servlet functionality enhancements

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. | --- and Gal Shachor
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. | Tom McAlees
Medium | --- | Implement interactive administration tool that fulfills the requirements described above. | Tom McAlees
Low | --- | Design an implement a tool for creating and customizing web application deployment descriptors (i.e. `web.xml` files) in a user friendly manner. | Tom McAlees

# 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. | --- and Gal Shachor
Medium | --- | Implement a new Apache/2.0 connector whereby Tomcat can be run "in process" instead of "out of process". | --- and Costin Manolache and Gal Shachor
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 ... | --- and Gal Shachor

# 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 and Gal Shachor
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: STATUS.html,v 1.6 2000/04/13 21:12:15 craigmcc Exp $