Apache Tomcat Version 4.0 ========================= Release Notes ============= $Id$ ============ INTRODUCTION: ============ This document describes the changes that have been made in the current release candidate release of Apache Tomcat, relative to the previous release. The release notes for all prior releases of Tomcat 4.0 are also included, for your reference. Bug reports should be entered at the bug reporting system for Jakarta projects at: http://nagoya.apache.org/bugzilla/ Please report bugs and feature requests under product name "Tomcat 4". ============ NEW FEATURES: ============ -------------------- General New Features: -------------------- The 1.4 release of Ant is now required in order to build Tomcat 4.0 from source. Previous versions relied on Ant 1.3. Please read the "BUILDING.txt" file in the top-level directory of the source distribution for more information about building Tomcat 4.0 from source. Tomcat 4.0 now makes an XML parser, as well as other API classes, available to web applications by default. This behavior is consistent with that of previous versions of Tomcat, and will make porting apps much less painful. See "Tomcat 4.0 Standard APIs Available", below, for more information. The "build.xml" example file included in the Application Developer's Guide now creates a compilation classpath that automatically includes all of the classes that Tomcat 4.0 exposes to web applications. You should not need to customize this file unless you need to add additional application-specific classes into "/WEB-INF/lib". --------------------- Catalina New Features: --------------------- ------------------- Jasper New Features: ------------------- -------------------- Webapps New Features: -------------------- ========================== BUG FIXES AND IMPROVEMENTS: ========================== ------------------ Generic Bug Fixes: ------------------ ------------------ Catalina Bug Fixes: ------------------ WebdavServlet: The protocol name is no longer hard coded when parsing a destination header, which fixes problems when using https. StandardManager: Catch and log exceptions thrown by session.expire() when sessions are being timed out. Previously, any such exception would terminate the thread that checks for timed out sessions. StandardWrapperValve: Do not set a character encoding on the default page created for an HTTP status code. This was causing problems for Netscape Navigator when handling 302 redirects. StandardContext: If a problem occurs during application startup (the start() method), call stop() so that a web application is not left in a partly started state. Among other things, this allows you to restart the app from the Manager web application after correcting the problem that caused the startup to fail. ---------------- Jasper Bug Fixes: ---------------- Parser: Fix a bug that was causing null pointer exceptions in JakartaCommentGenerator. Compiler: Remove a spurious "null" in an error message when no mapping back to the original source file can be performed. JspC: Fix bugs that made it impossible to precompile JSP pages that referenced custom tag libraries with the "jspc" command line tool. Compiler: If the user specifies a "name" attribute on the tag, carry this through to the generated and tags. ----------------- Webapps Bug Fixes: ----------------- The form-based login example will now operate correctly even if cookies are turned off. Note that this is an extension to the servlet specification's requirements, which only require form-based login to work if either cookies or SSL sessions are used to maintain session identity. ============================ KNOWN ISSUES IN THIS RELEASE: ============================ --------------------- Tomcat 4.0 and Apache: --------------------- The binary distribution for Tomcat 4.0 includes the most recent stable version of the WARP connector, which is the Tomcat component that talks to mod_webapp inside Apache 1.3. The current state of this support is summarized as follows: * The mod_webapp connector is configured based on the contents of the web.xml file for your web application. See the documentation included with the connector for configuration requirements. * The version of the connector to be published with Tomcat 4.0 final has the following known issues: http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3509 http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3534 These problems will be addressed in a future release of the connector. ------------------------------------- Tomcat 4.0 and JNI Based Applications: ------------------------------------- Applications that require native libraries must ensure that the libraries have been loaded prior to use. Typically, this is done with a call like: static { System.loadLibrary("path-to-library-file"); } in some class. However, the application must also ensure that the library is not loaded more than once. If the above code were placed in a class inside the web application (i.e. under /WEB-INF/classes or /WEB-INF/lib), and the application were reloaded, the loadLibrary() call would be attempted a second time. To avoid this problem, place classes that load native libraries outside of the web application, and ensure that the loadLibrary() call is executed only once during the lifetime of a particular JVM. ---------------------------------- Tomcat 4.0 Standard APIs Available: ---------------------------------- A standard installation of Tomcat 4 makes all of the following APIs available for use by web applications (by placing them in "common/lib" or "lib"): * activation.jar (Java Activation Framework) * crimson.jar (Unsealed version of JAXP/1.1 parser) * jaxp.jar (Unsealed version of JAXP/1.1 API classes) * jdbc2_0-stdext.jar (JDBC 2.0 Optional Package, javax.sql.*) * jndi.jar (JNDI 1.2 base API classes) * jta-spec1_0_1 (Java Transacation APIs) * ldap.jar (JNDI LDAP provider required by JNDIRealm) * mail.jar (JavaMail 1.2) * servlet.jar (Servlet 2.3 and JSP 1.2 APIs) * tyrex-0.9.7.0.jar (Tyrex XA-compatible data source from tyrex.exolab.org) You can make additional APIs available to all of your web applications by putting unpacked classes into a "classes" directory (not created by default), or by placing them in JAR files in the "lib" directory. -------------------------- Tomcat 4.0 and XML Parsers: -------------------------- As described above, Tomcat 4.0 makes an XML parser (and many other standard APIs) available to web applications. This parser is also used internally to parse web.xml files and the server.xml configuration file. If you wish, you may replace the "jaxp.jar" and "crimson.jar" files in "common/lib" with another XML parser, as long as it is compatible with the JAXP/1.1 APIs. WARNING: Tomcat 4.0 ships with a modified version of the JAXP/1.1 "jaxp.jar" and "crimson.jar" files from JAXP/1.1 final release. The "sealed" attribute has been removed from the manifest file for these two JARs, to avoid "package sealing violation" errors that were caused by them in a JDK 1.3 environment. You MUST NOT replace these files with a different (or later) release of JAXP, unless that later release has had the sealed attribute removed, or you will encounter "package sealing violation" errors when trying to use a different XML parser in a web application.