Tomcat Logo

Apache Tomcat

Apache Logo

Apache Tomcat




Get Involved



All of the Apache Tomcat source code, documentation and this web site are managed under version control using Subversion. This page explains the structure of the Apache Tomcat Subversion repository. The page assumes you are familiar with the general Apache guidance for Subversion.

All Subversion links in this page use anonymous access.

Repository Structure

The root of the repository is

The directories below this level are:

Directory Contents
/archive/ Modules that are no longer maintained
/build/ Resources used to build the distributions for TC5.x onwards
/container/ The core Tomcat code
/current/ Single directory checkouts for each major version
/connectors/ The HTTP and AJP implementation code
/jasper/ Apache Tomcat's JSP engine
/servletapi/ The Servlet and JSP APIs
/site/ The Apache Tomcat website
/watchdog/ Specification compliance test harness for Apache Tomcat 3.x and 4.x

Convenience directories

To simplify checkouts of the latest sources for each major version of Apache Tomcat, a Subversion feature called externals has been used. This groups all the modules for a major Apache Tomcat release as sub-directories of a single directory and enables them to be checked out in a single command. The modules included for each version are listed in the section below.

There are some caveats to remember. Since all the subdirectories are still really different slices from the repository, relative paths won't always work as expected, for example. See the Externals Definitions section of the Subversion Book for details.

The URLs to use to checkout each version are:

Apache Tomcat Version URL

Note that if you view these directories in your browser they will appear to be empty.

Sources by major version

Tomcat 5.5.x is built from the following modules under

Tomcat 4.1.x is built from the following modules under

Tomcat 3.3.x is built from the following modules under

The Tomcat JK native connectors are built from the following module under


The Subversion repository has been structured using the following principles:

  • Each current module should appear directly under the tomcat directory.
  • Modules no longer used (eg tools service) should be clearly marked as archived.
  • The trunk for each module should be the the development branch of the latest Apache Tomcat version. Since there are always several active versions at any one time, rather than be called trunk this directory should be named using the Apache Tomcat version it represents, eg tc5.5.x.
  • The development branches for the other Apache Tomcat versions will be placed in the branches directory for each component.
  • Other (non-development) branches will be placed in the branches/other directory in sub-directories that group the other branches by the Apache Tomcat version from which they were created.
  • Tags will be treated in exactly the same way as branches.

Copyright 1999-2006, The Apache Software Foundation