0. Previous ARC cases PSARC 2002/009 - Jakarta Tomcat 4.0.1 PSARC 2001/266 - Jakarta Tomcat for Apache PSARC 1999/542 - Apache for Solaris 1. Introduction Tomcat shipped with Solaris is currently tightly bound to Apache 1.3 Web Server with it's installation paths and the way it is started. Now that we have also Apache 2.2 and that Tomcat itself is very popular as a standalone server this project changes, for Tomcat, the installation paths and introduces a new SMF service for it. In addition Tomcat is upgraded to latest recommended version 6.0. This case seeks Minor Release Binding. 2. Details 2.1 Background Tomcat was integrated into Solaris as servlet engine for Apache 1.3 Web Server by PSARC 2001/266. Therefore it was installed into Apache 1.3 directories and it was started via the Apache 1.3 init.d script together with Apache Web Server itself. Later during Tomcat update via PSARC 2002/009 Tomcat was allowed to be functional as a self-contained HTTP server but it still remained tightly bound to Apache 1.3 Web Server. 2.2 Technical description This project makes Tomcat independent of Apache 1.3 Web Server by changing the installation paths from /usr/apache/tomcat, /var/apache/tomcat to /usr/tomcat6, /var/tomcat6 respectively. The way Tomcat is started is also changed to be an SMF(5) service and it is started as new user "tomcat" (instead of user "nobody" which was used previously). This user will have defined net_privaddr privilege so that Tomcat can be eventually configured to listen on privileged TCP port (e.g. 80 or 443). Details of the new user: /etc/passwd: tomcat:x:85:85:Tomcat Reserved UID:/: /etc/group: tomcat::85: /etc/user_attr: tomcat::::defaultpriv=basic,net_privaddr With the change to use SMF(5) Tomcat will now contain a ready to use configuration file /var/tomcat6/conf/server.xml. To comply with the Solaris file system organization (filesystem(5)) a relative symlink /etc/tomcat6, pointing to /var/tomcat6/conf directory, is added. The Apache 1.3 module Webapp, currently included in the SUNWtcatu package, is replaced by the JK module in the SUNWapchu package. This ensures that the Apache 1.3 installation will continue to work with the newer versions of Tomcat as well as providing. The current focus of development for Tomcat is version 6.0.x which is now stable and recommended for use (latest version 6.0.18). This version of Tomcat implements the Servlet/JSP 2.5/2.1 Specification. This project adds a major version number (tomcat6) to the path and SMF FRMI so that future projects can add in parallel a new major Tomcat version (tomcat7) and allow users to migrate to the new release at their own speed. 3. Interface table Interfaces imported NAME STABILITY NOTES Java Stable Java runtime Interfaces exported NAME STABILITY NOTES /usr/tomcat6/bin Uncommitted startup scripts /usr/tomcat6/lib Project Private Tomcat jar files /usr/tomcat6/docs Uncommitted Tomcat documentation /var/tomcat6/conf Uncommitted Tomcat configuration files /var/tomcat6/logs Uncommitted runtime log files /var/tomcat6/temp Project Private temporary files /var/tomcat6/webapps Uncommitted Example applications /var/tomcat6/work Project Private servlet engine work directory AJP13 (TCP Port 8009) Uncommitted communication protocol V1.3 HTTP/1.1 (TCP Port 8080) Uncommitted port for stand-alone http svc:/network/http:tomcat6 Committed FMRI /etc/apache/tomcat.conf Uncommitted Apache 1.3 Tomcat connector configuration file (SUNWapchr) Apache Commons DBCP Project Private The DBCP Component Apache Commons Pool Project Private The Pool component Eclipse JDT Runtime Bin Project Private used for JSP compilation Note about Project Private modules: The Apache Commons facilities and Eclipse JDT Runtime Binary are separate Open Source projects to Tomcat. A particular Tomcat version is developed and tested against particular versions of these projects. As such, Tomcat is in a consumer role relating to these projects and every serious bug (security issue) in any of these projects, which may have impact on Tomcat, triggers Tomcat community for issuing new version of Tomcat. As some of these projects might be bundled by Web Application (WAR file), Tomcat renames these modules to avoid conflict between various versions. This is the reason why these projects are Project Private and cannot be installed on system as an external dependency. 5. References Tomcat Documentation http://tomcat.apache.org/ Tomcat versions (implemented Servelet/JSP specifications) http://tomcat.apache.org/whichversion.html Apache Documentation http://httpd.apache.org/docs/ Apache Commons http://commons.apache.org/ Eclipse JDT Runtime Binary http://www.eclipse.org/ PSARC 2008/090 - Additional Apache2 Modules PSARC 2002/009 - Jakarta Tomcat 4.0.1 PSARC 2001/266 - Jakarta Tomcat for Apache PSARC 1999/542 - Apache for Solaris