+1 Remy Maucherat wrote: > After trying to address the concerns raised by the proposal draft, I > would like to call for a vote on it, now that the discussions have died > down. > > <ballot> > [ ] +1 I support the proposal, and will help implement it > [ ] +0 I support the proposal > [ ] -0 I do not support the proposal > [ ] -1 I am against the proposal being implemented, because: > > > </ballot> > > The vote will run for one full week until July 9th. Users and other > contributors may vote, but only committers have binding votes. > > Remy > > > ------------------------------------------------------------------------ > > > > Proposal for Apache Tomcat 5.0 > ============================== > > > > Introduction: > ------------ > > This document is a proposal for the next major release of Apache Tomcat, > Apache Tomcat 5.0. > > Apache Tomcat 5.0 will improve on the Apache Tomcat 3.3 and Apache > Tomcat 4.1 architectures, by making them simpler, more flexible and more > modular, while at the same time adding support for the new Servlet API 2.4 and > JSP 2.0 specifications, currently under development by the Java Community > Process. > > The major goals for Apache Tomcat 5.0 are to: > - improve scalability, reliability and performance over previous versions > - have simpler/cleaner code, so more people can get involved > - merge of the various ideas in 3.x and 4.x > - get the community togheter > - provide maximum modularity and compliance to the standards > - make it easy to continue to maintain the existing codebases > > Testing will occur to make sure the stated robustness and performance goals > are met by Tomcat 5.0. > > This proposal also tries to take advantage of the lessons learned while > optimizing and maintaining Tomcat. > > Note: The development of Apache Tomcat 4.1.x will continue in parallel to the > implementation of this proposal. > > > > General architecture: > -------------------- > > > An improved version of Coyote 1.0, called Coyote 2.0, will be used as > the Apache Tomcat 5.0 core. > > Coyote is currently considered a connector for Tomcat 3.3 and 4.x, and is under > development in the jakarta-tomcat-connectors repository. > > Coyote 1.0 includes: > - Protocol handlers for AJP 1.3, HTTP/1.1 and JNI > - Adapter for Tomcat 3.3 > - Adapter for Tomcat 4.x > > Extensibility capabilities will be added to Coyote, as well as JMX management > features, and if possible, addional protocol handlers (like WARP 1.0). > > The Servlet API 2.4 specification will be implemented in a new version of > Catalina, called Catalina 2.0. A new version of the Coyote adapter will be > written for it if mandated by API changes. Components which duplicate > functionality provided by Coyote will be removed, including the old connectors. > > On the JSP side, Jasper 2 will be updated to support JSP 2.0, will be renamed > to Jasper 3, and is the proposed Jasper codebase. It provides many > improvements over Jasper 1 included in Tomcat 3.x and Tomcat 4.0.x, including > good tag library handling, and near zero overhead when compared to > an equivalent hand coded servlet. Jasper 2 will also undergo additional > optimizations. > > Apache Tomcat 5.0 will be made by default of the following components: > - Coyote 2.0 - core > - Catalina 2.0 - Servlet API 2.4 implementation > - Jasper 2 - JSP 2.0 implementation > > Many other configurations are also possible, and it is expected that advanced > users take advantage of it to make Tomcat better suit their needs. It is also > possible that new special purpose components, like a bare bones Servlet API > implementation, be developed to address the embedded market. > > Due to the scope of this work, this initial Proposal only plans > the implementation and support of the default configuration described above. > > > > Changes over Apache Tomcat 4.1.x: > -------------------------------- > > > A lot of the Apache Tomcat 5.0 code will be based on the Apache Tomcat 4.1.x > codebase. Tomcat 5.0 will also be able to use the Tomcat 3.3.x code. > > The following major changes and additions are proposed to the current Apche > Tomcat code, and related dependencies: > > A) Removal of the org.apache.catalina.connector.* > > This package is currently deprecated in Tomcat 4.1 because of > its implementation inefficiencies, and general bad design. It is thus proposed > that it is removed in Tomcat 5.0. > > B) Addition of new loader code for the commons-daemon subproject > > It is proposed that, in an attempt to solve the problems with using startup > scripts, as well as adding additional features oriented towards reliability > (including the capability to restart Tomcat automatically should the JVM > crashes or experience memory management related problems), the launcher code > which will be developed as part of commons-daemon be adopted. > This code will be based in part on the launcher code used for the Sun Web > Services Pack, and in part on the Wrapper project code (available at SF.net), > if we manage to come to an agreement with the Wrapper developers. > > C) Extensions to Coyote > > It is proposed that Coyote 2.0 include the following changes over Coyote 1.0: > - The current hook mechanism used in Coyote 1.0 will be extended to be > more generic and powerful. > - It is also envisioned that JMX management capabilities could be added > to Coyote. > - Deprecated interfaces will be removed (two interfaces, at the moment). > - An additional protocol handler for the WARP 1.0 protocol will be added > provided there is user interest and developers willing to dedicate time. > > D) Implementation of the Servlet 2.4 Specification > > Catalina 2.0 is proposed to be identical to Catalina 1.1 (included > in Tomcat 4.1.x), with the exception of adding support for the new Servlet > Specification. The changes introduced in this new revision are relatively > limited, and shouldn't cause any major architectural changes in Catalina. > Catalina 2.0 will also inherit from all the refactorings done in Catalina 1.1. > > Servlet 2.4 Specification Draft: > http://jcp.org/aboutJava/communityprocess/review/jsr154/index.html > > E) Implementation of the JSP 2.0 Specification > > Jasper 2 will be modified to support the new JSP Specification. More important > changes will be required than for supporting the new Servlet Specification. > > JSP 2.0 Specification Draft: > http://jcp.org/aboutJava/communityprocess/review/jsr152/index.html > > Resources needed: > ---------------- > > * New jakarta-servletapi-5 repository > > This new repository will hold the default implementation of the Servlet > API 2.4 and the JSP 2.0 specifications. Alternately, the new API can be put > in the 'jakarta-servletapi' repository after a branch is created to hold the > current version of the code. > > * New jakarta-tomcat-5.0 repository > > This repository will contain the version of Catalina which will be updated to > support the Servlet API 2.4. Alternately, this code can be put in the > 'jakarta-tomcat-4.0' or 'jakarta-tomcat' repository after a branch is created > to hold the old code present. > > * New branch in jakarta-tomcat-jasper > > The implementation of JSP 2.0 will occur in the HEAD branch of the > jakarta-tomcat-jasper repository. A branch will be created to contain > the Jasper 2 code which is used in Tomcat 4.1.x. > > > > Release managers (proposed): > --------------------------- > > It is proposed that the release management duties be split for this release, > due to the amount of modules which will be part of Tomcat 5.0. > > Larry Isaacs > Remy Maucherat > > > > ------------------------------------------------------------------------ > > -- > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>