aboutsummaryrefslogtreecommitdiff
path: root/www/tomcat41
diff options
context:
space:
mode:
authorErnst de Haan <znerd@FreeBSD.org>2002-03-30 14:51:12 +0000
committerErnst de Haan <znerd@FreeBSD.org>2002-03-30 14:51:12 +0000
commit00af56ae884fbf150e9bbc8a9da408cf445b1d46 (patch)
treed39b5413614be8b9e9007e14b788eeaa91962ac9 /www/tomcat41
parentf676c8f1b155eccc2a2ee1f058ee50b1ab2f80d2 (diff)
downloadports-00af56ae884fbf150e9bbc8a9da408cf445b1d46.tar.gz
ports-00af56ae884fbf150e9bbc8a9da408cf445b1d46.zip
Notes
Diffstat (limited to 'www/tomcat41')
-rw-r--r--www/tomcat41/Makefile180
-rw-r--r--www/tomcat41/distinfo2
-rw-r--r--www/tomcat41/files/daemonctl.152
-rw-r--r--www/tomcat41/files/daemonctl.c379
-rw-r--r--www/tomcat41/files/jakarta-tomcat.sh18
-rw-r--r--www/tomcat41/files/patch-aa45
-rw-r--r--www/tomcat41/files/patch-ab19
-rw-r--r--www/tomcat41/files/startup.sh18
-rw-r--r--www/tomcat41/files/tomcatctl145
-rw-r--r--www/tomcat41/files/tomcatctl.152
-rw-r--r--www/tomcat41/pkg-plist509
11 files changed, 728 insertions, 691 deletions
diff --git a/www/tomcat41/Makefile b/www/tomcat41/Makefile
index f6b3c8f87c76..430d26c52f4e 100644
--- a/www/tomcat41/Makefile
+++ b/www/tomcat41/Makefile
@@ -6,8 +6,7 @@
#
PORTNAME= jakarta-tomcat
-PORTVERSION= 3.2.4
-PORTREVISION= 2
+PORTVERSION= 3.3.1
CATEGORIES= www java
MASTER_SITES= http://jakarta.apache.org/builds/jakarta-tomcat/release/v${PORTVERSION}/bin/ \
http://www.metaverse.nl/~ernst/ \
@@ -16,8 +15,7 @@ MASTER_SITE_SUBDIR= znerd
MAINTAINER= znerd@FreeBSD.org
-RUN_DEPENDS= ${JAVA_HOME}/bin/javac:${JAVA_PORT}
-
+USE_JAVA= 1.2+
NO_BUILD= YES
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
@@ -29,16 +27,29 @@ APP_SHORTNAME= tomcat
CONTROL_SCRIPT_NAME= ${APP_SHORTNAME}ctl
CONTROL_SCRIPT= ${PREFIX}/bin/${CONTROL_SCRIPT_NAME}
STARTUP_ORDER?= 020
-STARTUP_SCRIPT= ${PREFIX}/etc/rc.d/${STARTUP_ORDER}.${PORTNAME}.sh
-JAVA_HOME?= ${LOCALBASE}/jdk1.3.1
-JAVA_PORT?= ${PORTSDIR}/java/jdk13
-USER_NAME= www
-GROUP_NAME= www
+STARTUP_SCRIPT_NAME= ${PORTNAME}.sh
+STARTUP_SCRIPT= ${PREFIX}/etc/rc.d/${STARTUP_ORDER}.${STARTUP_SCRIPT_NAME}
+USER= www
+GROUP= www
PW?= /usr/sbin/pw
-LISTEN_PORT?= 8080
+HTTP_PORT?= 8080
STDOUT_LOG= ${LOG_DIR}/stdout.log
STDERR_LOG= ${LOG_DIR}/stderr.log
AUTO_START?= NO
+PID_FILE= /var/run/${APP_SHORTNAME}.pid
+MANIFEST= MANIFEST.MF
+REPLACE_FILES= ${FILESDIR}/daemonctl.c \
+ ${FILESDIR}/${CONTROL_SCRIPT_NAME}.1 \
+ ${FILESDIR}/${STARTUP_SCRIPT_NAME} \
+ ${WRKSRC}/conf/server.xml \
+ ${FILESDIR}/${MANIFEST}
+# ${WRKSRC}/conf/workers.properties
+JAR_FILE= lib/${APP_SHORTNAME}.jar
+JAVA_ARGS= '"-Dtomcat.install=${APP_HOME}"'
+JAR_ARGS= '"run"'
+WRKDIR?= work
+
+.include <bsd.port.pre.mk>
pre-install:
@${ECHO_CMD} "Installation settings:"
@@ -47,90 +58,99 @@ pre-install:
@${ECHO_CMD} " Startup script location: ${STARTUP_SCRIPT}"
@${ECHO_CMD} " Location of JDK: ${JAVA_HOME}"
@${ECHO_CMD} " Location of Java port: ${JAVA_PORT}"
- @${ECHO_CMD} " Running as (user/group): ${USER_NAME}/${GROUP_NAME}"
- @${ECHO_CMD} " Port to listen at: ${LISTEN_PORT}"
+ @${ECHO_CMD} " Running as (user/group): ${USER}/${GROUP}"
+ @${ECHO_CMD} " HTTP port: ${HTTP_PORT}"
@${ECHO_CMD} " Logfile stdout: ${STDOUT_LOG}"
@${ECHO_CMD} " Logfile stderr: ${STDERR_LOG}"
@${ECHO_CMD} " Starting after install: ${AUTO_START}"
+ @PKG_PREFIX=${PREFIX} ${SH} pkg-install ${PKGNAME} PRE-INSTALL
do-install:
- @# Create the destination directory
- ${MKDIR} ${APP_HOME}
-
- @# Copy all files except .bat and .orig files
- ${RM} -f `${FIND} ${WRKSRC} -name '*.bat'`
- ${RM} -f `${FIND} ${WRKSRC} -name '*.orig'`
- ${CP} -R ${WRKSRC}/* ${APP_HOME}
- ${CHMOD} 755 `find ${APP_HOME} -type d`
-
- @# Install the workers.properties file after processing it
- ${CAT} ${WRKSRC}/conf/workers.properties \
- | ${SED} "/%%TOMCAT_HOME%%/s//${APP_HOME:S/\//\\\//g}/" \
- | ${SED} "/%%JAVA_HOME%%/s//${JAVA_HOME:S/\//\\\//g}/" \
- > ${WRKDIR}/workers.properties
- ${MV} ${WRKDIR}/workers.properties ${APP_HOME}/conf/workers.properties
-
- @# Install the startup script
- ${CAT} ${FILESDIR}/${PORTNAME}.sh \
- | ${SED} "/%%USER_NAME%%/s//${USER_NAME}/" \
- | ${SED} "/%%APP_SHORTNAME%%/s//${APP_SHORTNAME}/" \
- | ${SED} "/%%CONTROL_SCRIPT%%/s//${CONTROL_SCRIPT:S/\//\\\//g}/" \
- > ${STARTUP_SCRIPT}
- ${CHMOD} 0554 ${STARTUP_SCRIPT}
-
- @# Install the control script
- ${CAT} ${FILESDIR}/${CONTROL_SCRIPT_NAME} \
- | ${SED} "/%%PORTNAME%%/s//${PORTNAME}/" \
- | ${SED} "/%%APP_TITLE%%/s//${APP_TITLE}/" \
- | ${SED} "/%%APP_SHORTNAME%%/s//${APP_SHORTNAME}/" \
- | ${SED} "/%%APP_HOME%%/s//${APP_HOME:S/\//\\\//g}/" \
- | ${SED} "/%%LOG_DIR%%/s//${LOG_DIR:S/\//\\\//g}/" \
- | ${SED} "/%%STARTUP_SCRIPT_NAME%%/s//${PORTNAME}.sh/" \
- | ${SED} "/%%JAVA_HOME%%/s//${JAVA_HOME:S/\//\\\//g}/" \
- | ${SED} "/%%USER_NAME%%/s//${USER_NAME}/" \
- | ${SED} "/%%STDOUT_LOG%%/s//${STDOUT_LOG:S/\//\\\//g}/" \
- | ${SED} "/%%STDERR_LOG%%/s//${STDERR_LOG:S/\//\\\//g}/" \
- > ${CONTROL_SCRIPT}
- ${CHOWN} ${USER_NAME}:${GROUP_NAME} ${CONTROL_SCRIPT}
- ${CHMOD} 6554 ${CONTROL_SCRIPT}
-
- @# Create the directories that the application will create at the
- @# first run
- ${MKDIR} ${LOG_DIR}
- ${CHMOD} 6775 ${LOG_DIR}
-
- @# Install the server.xml file after processing it
- ${CAT} ${WRKSRC}/conf/server.xml \
- | ${SED} "/%%LISTEN_PORT%%/s//${LISTEN_PORT}/" \
- > ${WRKDIR}/server.xml
- ${MV} ${WRKDIR}/server.xml ${APP_HOME}/conf/server.xml
-
- @# Change ownership for the files
- ${CHOWN} -R ${USER_NAME}:${GROUP_NAME} ${APP_HOME}
-
- @# Change the execute permissions for all shell scripts
- ${CHMOD} 0554 ${APP_HOME}/bin/*
-
- @# Install the man page
+ @${ECHO_CMD} -n ">> Removing all .bat and .orig files..."
+ @${RM} -f `${FIND} ${WRKSRC} -name '*.bat'` `${FIND} ${WRKSRC} -name '*.orig'`
+ @${ECHO_CMD} " [ DONE ]"
+
+.for f in ${REPLACE_FILES}
+ @${ECHO_CMD} -n ">> Customizing `basename $f`..."
+ @${SED} \
+ -e "/%%APP_HOME%%/s//${APP_HOME:S/\//\\\//g}/g" \
+ -e "/%%APP_SHORTNAME%%/s//${APP_SHORTNAME}/g" \
+ -e "/%%APP_TITLE%%/s//${APP_TITLE}/g" \
+ -e "/%%CONTROL_SCRIPT%%/s//${CONTROL_SCRIPT:S/\//\\\//g}/g" \
+ -e "/%%CONTROL_SCRIPT_NAME%%/s//${CONTROL_SCRIPT_NAME}/g" \
+ -e "/%%GROUP%%/s//${GROUP}/g" \
+ -e "/%%HTTP_PORT%%/s//${HTTP_PORT}/g" \
+ -e "/%%JAVA_CMD%%/s//bin\/java/g" \
+ -e "/%%JAVA_HOME%%/s//${JAVA_HOME:S/\//\\\//g}/g" \
+ -e "/%%JAR_FILE%%/s//${JAR_FILE:S/\//\\\//g}/g" \
+ -e "/%%LOG_DIR%%/s//${LOG_DIR:S/\//\\\//g}/g" \
+ -e "/%%PID_FILE%%/s//${PID_FILE:S/\//\\\//g}/g" \
+ -e "/%%PORTNAME%%/s//${PORTNAME}/g" \
+ -e "/%%PORTVERSION%%/s//${PORTVERSION}/g" \
+ -e "/%%PREFIX%%/s//${PREFIX:S/\//\\\//g}/g" \
+ -e "/%%STARTUP_SCRIPT_NAME%%/s//${STARTUP_SCRIPT_NAME}/g" \
+ -e "/%%STDERR_LOG%%/s//${STDERR_LOG:S/\//\\\//g}/g" \
+ -e "/%%STDOUT_LOG%%/s//${STDOUT_LOG:S/\//\\\//g}/g" \
+ -e "/%%USER%%/s//${USER}/g" \
+ $f > ${WRKDIR}/`basename $f`
+ @${ECHO_CMD} " [ DONE ]"
+.endfor
+
+ @${ECHO_CMD} -n ">> Creating destination directory..."
+ @${MKDIR} ${APP_HOME}
+ @${MKDIR} ${LOG_DIR}
+ @${ECHO_CMD} " [ DONE ]"
+
+ @${ECHO_CMD} -n ">> Copying files to destination directory..."
+ @${CP} -R ${WRKSRC}/* ${APP_HOME}
+ @${CP} ${WRKDIR}/workers.properties ${APP_HOME}/conf
+ @${ECHO_CMD} " [ DONE ]"
+
+ @${ECHO_CMD} -n ">> Compiling and installing control script..."
+ @cd ${WRKDIR} && ${CC} -DJAR_ARGS=${JAR_ARGS} -DJAVA_ARGS=${JAVA_ARGS} -ansi -o ${CONTROL_SCRIPT_NAME} daemonctl.c
+ @${CP} ${WRKDIR}/${CONTROL_SCRIPT_NAME} ${CONTROL_SCRIPT}
+ @${CHOWN} ${USER}:${GROUP} ${CONTROL_SCRIPT}
+ @${CHMOD} 6754 ${CONTROL_SCRIPT}
+ @${ECHO_CMD} " [ DONE ]"
+
+ @${ECHO_CMD} -n ">> Installing startup script..."
+ @${CP} ${WRKDIR}/${STARTUP_SCRIPT_NAME} ${STARTUP_SCRIPT}
+ @${CHMOD} 0544 ${STARTUP_SCRIPT}
+ @${ECHO_CMD} " [ DONE ]"
+
.if !defined(NOPORTDOCS)
- ${CAT} ${FILESDIR}/${CONTROL_SCRIPT_NAME}.1 \
- | ${SED} "/%%APP_TITLE%%/s//${APP_TITLE}/" \
- | ${SED} "/%%PREFIX%%/s//${PREFIX:S/\//\\\//g}/" \
- | ${SED} "/%%CONTROL_SCRIPT_NAME%%/s//${CONTROL_SCRIPT_NAME}/" \
- | ${SED} "/%%STARTUP_ORDER%%/s//${STARTUP_ORDER}.sh/" \
- > ${WRKDIR}/${CONTROL_SCRIPT_NAME}.1
- ${INSTALL_MAN} ${WRKDIR}/${CONTROL_SCRIPT_NAME}.1 ${MANPREFIX}/man/man1
+ @${ECHO_CMD} -n ">> Installing man pages..."
+ @${INSTALL_MAN} ${WRKDIR}/${CONTROL_SCRIPT_NAME}.1 ${MANPREFIX}/man/man1
+ @${ECHO_CMD} " [ DONE ]"
.endif
+ @${ECHO_CMD} -n ">> Creating log files..."
+ @${INSTALL} /dev/null ${STDOUT_LOG}
+ @${INSTALL} /dev/null ${STDERR_LOG}
+ @${ECHO_CMD} " [ DONE ]"
+
+ @${ECHO_CMD} -n ">> Fixing ownership settings..."
+ @${CHOWN} -R ${USER}:${GROUP} ${APP_HOME}
+ @${ECHO_CMD} " [ DONE ]"
+
+ @${ECHO_CMD} -n ">> Fixing permissions..."
+ @${CHMOD} 755 `find ${APP_HOME} -type d`
+ @${ECHO_CMD} " [ DONE ]"
+
+ @${ECHO_CMD} -n ">> Creating PID file..."
+ @${TOUCH} ${PID_FILE}
+ @${CHOWN} ${USER}:${GROUP} ${PID_FILE}
+ @${CHMOD} 0600 ${PID_FILE}
+ @${ECHO_CMD} " [ DONE ]"
+
post-install:
@${ECHO_CMD} "${APP_TITLE} ${PORTVERSION} has been installed in ${APP_HOME}."
- @${ECHO_CMD} "If you would like a user to be able to use ${CONTROL_SCRIPT_NAME}, then put this user in the group ${GROUP_NAME}."
+ @${ECHO_CMD} "If a user should be able to use ${CONTROL_SCRIPT_NAME}, put it in the group ${GROUP}."
.if !defined(NOPORTDOCS)
@${ECHO_CMD} "Use 'man ${CONTROL_SCRIPT_NAME}' for information about starting and stopping ${APP_TITLE}."
.endif
.if ${AUTO_START} == "YES"
- @${ECHO_CMD} "Starting ${APP_TITLE}..."
@${CONTROL_SCRIPT} start || true
.endif
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
diff --git a/www/tomcat41/distinfo b/www/tomcat41/distinfo
index a1316d727f9d..553a1f743175 100644
--- a/www/tomcat41/distinfo
+++ b/www/tomcat41/distinfo
@@ -1 +1 @@
-MD5 (jakarta-tomcat-3.2.4.tar.gz) = 160a3fcab769a57f774a0aef0368cad4
+MD5 (jakarta-tomcat-3.3.1.tar.gz) = a550edf2d9d30f48ee7034f52d860574
diff --git a/www/tomcat41/files/daemonctl.1 b/www/tomcat41/files/daemonctl.1
index 07514a35bcea..c0d332fda7d8 100644
--- a/www/tomcat41/files/daemonctl.1
+++ b/www/tomcat41/files/daemonctl.1
@@ -10,9 +10,9 @@
.Sh DESCRIPTION
The
.Nm
-shell script provides an interface to the %%APP_TITLE%% application server.
+program provides an interface to the %%APP_TITLE%% application server.
.Pp
-The script expects exactly one argument, either
+The program expects exactly one argument, either
.Ar start ,
.Ar restart
or
@@ -23,41 +23,53 @@ ignored.
.It Ar start
Start %%APP_TITLE%%, if it is not already running.
.It Ar restart
-Restart %%APP_TITLE%%. If it is already running, then it will be stopped and then
-started right after that. Otherwise it will just be started up.
+Restart %%APP_TITLE%%. If it is already running, then it will be stopped and
+then started right after that. Otherwise it will just be started up.
.It Ar stop
Stop %%APP_TITLE%%, if it is actually running.
.El
.Sh ERRORS
The following error conditions are detected. They will be checked in the
-specified order. In each case where an error message is printed, the name of
-the script
-.Em ( basename $0 )
-will be prepended.
+specified order. In each case an error message is printed with the name of the
+control program prepended.
.Pp
-If no argument is passed, or if an argument other than
+If no argument is passed, then a simple help message is printed and the
+program exists with error code 0.
+.Pp
+If at least one argument is passed, but it is different from
.Ar start ,
.Ar restart
or
.Ar stop
-is passed as the first argument, then a simple help message is printed and the
-script is exited with error code 64.
+then the help message is printed as well, and the program exits with error
+code 1.
.Pp
-Other than that, the following errors conditions are defined:
+The following errors conditions are defined:
.Bl -tag -width indent
-.It Em %%APP_TITLE%% home directory cannot be found
-Prints an error message and exits the script with error code 2.
-.It Em %%APP_TITLE%% script cannot be found
-Prints an error message and exits the script with error code 3.
-.It Em Java VM cannot be found
-Prints an error message and exits the script with error code 4.
+.It Em Illegal program argument (error code 1)
+.It Em PID file not found (error code 2)
+.It Em PID file too large (error code 3)
+.It Em PID file contains illegal character (error code 4)
+.It Em Kill of process failed (error code 5)
+.It Em %%APP_TITLE%% is already running (error code 6)
+.It Em %%APP_TITLE%% is not running (error code 7)
+.It Em Unable to chdir to the %%APP_TITLE%% home directory (error code 8)
+.It Em Unable to open the stdout log file (error code 9)
+.It Em Unable to open the stderr log file (error code 10)
+.It Em Unable to start %%APP_TITLE%% (error code 11)
.El
.Sh FILES
.Bl -tag -width -indent
-.It Pa %%PREFIX%%/etc/rc.d/%%STARTUP_ORDER%%.jakarta-tomcat.sh
+.It Pa %%PID_FILE%%
+The %%APP_TITLE%% PID file that is used to store the process ID of the
+currently running process in. It is emptied as soon as the server is stopped
+and filled with the process ID when it is started. It should never be writable
+for anyone but
+.Em www ,
+.It Pa %%STARTUP_SCRIPT%%
A script that starts the
.Nm
-script. It start %%APP_TITLE%% at startup time.
+program. It is used to start %%APP_TITLE%% at startup time.
.El
.Sh AUTHORS
.An Ernst de Haan Aq znerd@FreeBSD.org
diff --git a/www/tomcat41/files/daemonctl.c b/www/tomcat41/files/daemonctl.c
new file mode 100644
index 000000000000..39d3f4457355
--- /dev/null
+++ b/www/tomcat41/files/daemonctl.c
@@ -0,0 +1,379 @@
+/*
+ * -*- mode: Fundamental; tab-width: 4; -*-
+ * ex:ts=4
+ *
+ * Daemon control program.
+ *
+ * $FreeBSD: /tmp/pcvs/ports/www/tomcat41/files/Attic/daemonctl.c,v 1.1 2002-03-30 14:51:12 znerd Exp $
+ */
+
+#include <assert.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <syslog.h>
+#include <unistd.h>
+#include <sys/errno.h>
+#include <sys/types.h>
+#include <sys/uio.h>
+
+#define MAX_FILE_SIZE 32
+
+#define ERR_ILLEGAL_ARGUMENT 1
+#define ERR_PID_FILE_NOT_FOUND 2
+#define ERR_PID_FILE_TOO_LARGE 3
+#define ERR_PID_FILE_CONTAINS_ILLEGAL_CHAR 4
+#define ERR_KILL_FAILED 5
+#define ERR_ALREADY_RUNNING 6
+#define ERR_NOT_RUNNING 7
+#define ERR_CHDIR_TO_APP_HOME 8
+#define ERR_STDOUT_LOGFILE_OPEN 9
+#define ERR_STDERR_LOGFILE_OPEN 10
+#define ERR_FORK_FAILED 11
+
+#if defined JAVA_ARGS
+#define JAVA_ARGS_COMMA ,
+#else
+#define JAVA_ARGS
+#define JAVA_ARGS_COMMA
+#endif
+
+#if defined JAR_ARGS
+#define JAR_ARGS_COMMA ,
+#else
+#define JAR_ARGS
+#define JAR_ARGS_COMMA
+#endif
+
+#define private static
+
+private void printUsage(void);
+private int openPIDFile(void);
+private int readPID(int);
+private void writePID(int file, int pid);
+private void start(void);
+private void stop(void);
+private void restart(void);
+
+
+/**
+ * Main function. This function is called when this program is executed.
+ *
+ * @param argc
+ * the number of arguments plus one, so always greater than 0.
+ *
+ * @param argv
+ * the arguments in an array of character pointers, where the last argument
+ * element is followed by a NULL element.
+ */
+int main(int argc, char *argv[]) {
+
+ /* Declare variables, like all other good ANSI C programs do :) */
+ char *argument;
+
+ /* Parse the arguments */
+ if (argc < 2) {
+ printUsage();
+ return 0;
+ }
+
+ argument = argv[1];
+ if (strcmp("start", argument) == 0) {
+ start();
+ } else if (strcmp("stop", argument) == 0) {
+ stop();
+ } else if (strcmp("restart", argument) == 0) {
+ restart();
+ } else {
+ fprintf(stderr, "%%CONTROL_SCRIPT_NAME%%: Illegal argument \"%s\".\n", argument);
+ printUsage();
+ exit(ERR_ILLEGAL_ARGUMENT);
+ }
+
+ return 0;
+}
+
+
+/**
+ * Prints usage information to stdout.
+ */
+void printUsage(void) {
+ printf("Usage: %%CONTROL_SCRIPT_NAME%% [ start | stop | restart ]\n");
+}
+
+
+/**
+ * Attempts to open the PID file. If that file is successfully opened, then
+ * the file handle (an int) will be returned.
+ *
+ * @return
+ * the file handle.
+ */
+int openPIDFile(void) {
+
+ int file;
+
+ /* Attempt to open the PID file */
+ printf(">> Opening PID file (%%PID_FILE%%)...");
+ file = open("%%PID_FILE%%", O_RDWR);
+ if (file < 0) {
+ printf(" [ FAILED ]\n");
+ fprintf(stderr, "%%CONTROL_SCRIPT_NAME%%: Unable to open %%PID_FILE%% for reading and writing: ");
+ perror(NULL);
+ exit(ERR_PID_FILE_NOT_FOUND);
+ }
+ printf(" [ DONE ]\n");
+
+ return file;
+}
+
+
+/**
+ * Reads a PID from the specified file. The file is identified by a file
+ * handle.
+ *
+ * @param file
+ * the file handle.
+ *
+ * @return
+ * the PID, or -1 if the file was empty.
+ */
+int readPID(int file) {
+
+ char *buffer;
+ int hadNewline = 0;
+ unsigned int count;
+ unsigned int i;
+ int pid;
+
+ /* Read the PID file contents */
+ printf(">> Reading PID file...");
+ buffer = (char *) malloc((MAX_FILE_SIZE + 1) * sizeof(char));
+ count = read(file, buffer, MAX_FILE_SIZE + 1);
+ if (count > MAX_FILE_SIZE) {
+ printf(" [ FAILED ]\n");
+ fprintf(stderr, "%%CONTROL_SCRIPT_NAME%%: The file %%PID_FILE%% contains more than %d bytes.\n", MAX_FILE_SIZE);
+ exit(ERR_PID_FILE_TOO_LARGE);
+ }
+
+ /* Convert the bytes to a number */
+ pid = 0;
+ for (i=0; i<count; i++) {
+ char c = buffer[i];
+ if (c >= '0' && c <= '9') {
+ char digit = c - '0';
+ pid *= 10;
+ pid += digit;
+ } else if (i == (count - 1) && c == '\n') {
+ /* XXX: Ignore a newline at the end of the file */
+ hadNewline = 1;
+ } else {
+ printf(" [ FAILED ]\n");
+ fprintf(stderr, "%%CONTROL_SCRIPT_NAME%%: The file %%PID_FILE%% contains an illegal character (%d) at position %d.\n", c, i);
+ exit(ERR_PID_FILE_CONTAINS_ILLEGAL_CHAR);
+ }
+ }
+ printf(" [ DONE ]\n");
+
+ if (count == 0 || (count == 1 && hadNewline == 1)) {
+ return -1;
+ }
+
+ return pid;
+}
+
+
+/**
+ * Writes a process ID to the specified file. The file is identified by a file
+ * handle.
+ *
+ * @param file
+ * the file handle, always greater than 0.
+ *
+ * @param pid
+ * the PID to store, always greater than 0.
+ */
+void writePID(int file, int pid) {
+
+ char *buffer;
+ int nbytes;
+
+ /* Check preconditions */
+ assert(file > 0);
+ assert(pid > 0);
+
+ printf(">> Writing PID file...");
+
+ lseek(file, 0, SEEK_SET);
+ ftruncate(file, 0);
+ nbytes = asprintf(&buffer, "%d\n", pid);
+ write(file, buffer, nbytes);
+ printf(" [ DONE ]\n");
+}
+
+
+/**
+ * Kills the process identified by the specified ID.
+ *
+ * @param pid
+ * the process id, greater than 0.
+ */
+void killProcess(int pid) {
+
+ int result;
+
+ assert(pid > 0);
+
+ printf(">> Killing process %d...", pid);
+ result = kill(pid, SIGTERM);
+ if (result < 0) {
+ printf(" [ FAILED ]\n");
+ fprintf(stderr, "%%CONTROL_SCRIPT_NAME%%: Unable to kill process %d: ", pid);
+ perror(NULL);
+ exit(ERR_KILL_FAILED);
+ }
+
+ printf(" [ DONE ]\n");
+}
+
+
+/**
+ * Starts the daemon.
+ */
+void start(void) {
+
+ int file;
+ int pid;
+ int result;
+ int stdoutLogFile;
+ int stderrLogFile;
+
+ /* Open and read the PID file */
+ file = openPIDFile();
+ pid = readPID(file);
+
+ printf(">> Checking that %%APP_TITLE%% is not already running...");
+ if (pid != -1) {
+
+ /* Check if the process actually exists */
+ result = kill(pid, 0);
+ if (result == 0 || errno != ESRCH) {
+ printf(" [ FAILED ]\n");
+ fprintf(stderr, "%%CONTROL_SCRIPT_NAME%%: %%APP_TITLE%% is already running, PID is %d.\n", pid);
+ exit(ERR_ALREADY_RUNNING);
+ }
+ }
+
+ printf(" [ DONE ]\n");
+
+ /* XXX: printf(">> Checking for Java VM..."); */
+
+ printf(">> Starting %%APP_TITLE%%...");
+
+ /* Change directory */
+ result = chdir("%%APP_HOME%%");
+ if (result < 0) {
+ printf(" [ FAILED ]\n");
+ fprintf(stderr, "%%CONTROL_SCRIPT_NAME%%: Unable to access directory %%APP_HOME%%: ");
+ perror(NULL);
+ exit(ERR_CHDIR_TO_APP_HOME);
+ }
+
+ /* Open the stdout log file */
+ stdoutLogFile = open("%%STDOUT_LOG%%", O_WRONLY);
+ if (stdoutLogFile < 0) {
+ printf(" [ FAILED ]\n");
+ fprintf(stderr, "%%CONTROL_SCRIPT_NAME%%: Unable to open %%STDOUT_LOG%% for writing: ");
+ perror(NULL);
+ exit(ERR_STDOUT_LOGFILE_OPEN);
+ }
+ lseek(stdoutLogFile, 0, SEEK_END);
+
+ /* Open the stderr log file */
+ stderrLogFile = open("%%STDERR_LOG%%", O_WRONLY);
+ if (stderrLogFile < 0) {
+ printf(" [ FAILED ]\n");
+ fprintf(stderr, "%%CONTROL_SCRIPT_NAME%%: Unable to open %%STDERR_LOG%% for writing: ");
+ perror(NULL);
+ exit(ERR_STDERR_LOGFILE_OPEN);
+ }
+ lseek(stderrLogFile, 0, SEEK_END);
+
+ /* Split this process in two */
+ pid = fork();
+ if (pid == -1) {
+ printf(" [ FAILED ]\n");
+ fprintf(stderr, "%%CONTROL_SCRIPT_NAME%%: Unable to fork: ");
+ perror(NULL);
+ exit(ERR_FORK_FAILED);
+ }
+
+ if (pid == 0) {
+
+ /* Redirect stdout to log file */
+ dup2(stdoutLogFile, STDOUT_FILENO);
+
+ /* Redirect stderr to log file */
+ dup2(stderrLogFile, STDERR_FILENO);
+
+ /* TODO: Support redirection of both stdout and stderr to the same
+ file using pipe(2) */
+
+ /* Execute the command */
+ execl("%%JAVA_HOME%%/%%JAVA_CMD%%", "%%JAVA_HOME%%/%%JAVA_CMD%%", "-jar", JAVA_ARGS JAVA_ARGS_COMMA "%%JAR_FILE%%", JAR_ARGS JAR_ARGS_COMMA NULL);
+
+ fprintf(stderr, "%%CONTROL_SCRIPT_NAME%%: Unable to start %%APP_TITLE%% as '%%JAVA_HOME%%/%%JAVA_CMD%% -jar %%JAR_FILE%%' in %%APP_HOME%%: ");
+ perror(NULL);
+ } else {
+ printf(" [ DONE ]\n");
+ writePID(file, pid);
+ }
+}
+
+/**
+ * Stops the daemon.
+ */
+void stop(void) {
+
+ int file;
+ int pid;
+
+ /* Open and read the PID file */
+ file = openPIDFile();
+ pid = readPID(file);
+
+ printf(">> Checking that %%APP_TITLE%% is running...");
+
+ /* If there is a PID, see if the process still exists */
+ if (pid != -1) {
+ int result = kill(pid, 0);
+ if (result != 0 && errno == ESRCH) {
+ ftruncate(file, 0);
+ pid = -1;
+ }
+ }
+
+ /* If there is no running process, produce an error */
+ if (pid == -1) {
+ printf(" [ FAILED ]\n");
+ fprintf(stderr, "%%CONTROL_SCRIPT_NAME%%: %%APP_TITLE%% is currently not running.\n");
+ exit(ERR_NOT_RUNNING);
+ }
+
+ printf(" [ DONE ]\n");
+
+ killProcess(pid);
+
+ printf(">> Clearing PID file...");
+ ftruncate(file, 0);
+ printf(" [ DONE ]\n");
+}
+
+
+void restart(void) {
+ stop();
+ start();
+}
diff --git a/www/tomcat41/files/jakarta-tomcat.sh b/www/tomcat41/files/jakarta-tomcat.sh
index cbd3e16f99b1..b27dea9f7de5 100644
--- a/www/tomcat41/files/jakarta-tomcat.sh
+++ b/www/tomcat41/files/jakarta-tomcat.sh
@@ -1,15 +1,27 @@
#!/bin/sh
+# -*- mode: Fundamental; tab-width: 4; -*-
+# ex:ts=4
+#
+# %%APP_TITLE%% startup script.
+#
+# $FreeBSD$
+#
+
# Set some variables
-USER_NAME=%%USER_NAME%%
MYSELF=`basename $0`
case "$1" in
start)
- su -f -m ${USER_NAME} -c "exec %%CONTROL_SCRIPT%% start" && echo -n ' %%APP_SHORTNAME%%'
+ truncate -s 0 %%PID_FILE%%
+ chown %%USER%%:%%GROUP%% %%PID_FILE%%
+ chmod 600 %%PID_FILE%%
+ su -f -m %%USER%% -c "exec %%CONTROL_SCRIPT%% start > /dev/null" && echo -n ' %%APP_SHORTNAME%%'
;;
stop)
- su -f -m ${USER_NAME} -c "exec %%CONTROL_SCRIPT%% stop" && echo -n ' %%APP_SHORTNAME%%'
+ chown %%USER%%:%%GROUP%% %%PID_FILE%%
+ chmod 600 %%PID_FILE%%
+ su -f -m %%USER%% -c "exec %%CONTROL_SCRIPT%% stop > /dev/null" && echo -n ' %%APP_SHORTNAME%%'
;;
*)
echo ""
diff --git a/www/tomcat41/files/patch-aa b/www/tomcat41/files/patch-aa
deleted file mode 100644
index eb725993cf38..000000000000
--- a/www/tomcat41/files/patch-aa
+++ /dev/null
@@ -1,45 +0,0 @@
---- conf/workers.properties.orig Tue Dec 12 22:36:26 2000
-+++ conf/workers.properties Sun May 20 16:06:33 2001
-@@ -40,20 +40,20 @@
- # installed tomcat. This is where you have your conf, webapps and lib
- # directories.
- #
--workers.tomcat_home=c:\jakarta-tomcat
-+workers.tomcat_home=%%TOMCAT_HOME%%
-
- #
- # workers.java_home should point to your Java installation. Normally
- # you should have a bin and lib directories beneath it.
- #
--workers.java_home=c:\jdk1.2.2
-+workers.java_home=%%JAVA_HOME%%
-
- #
- # You should configure your environment slash... ps=\ on NT and / on UNIX
- # and maybe something different elsewhere.
- #
--ps=\
--# ps=/
-+#ps=\
-+ps=/
-
- #
- #------ ADVANCED MODE ------------------------------------------------
-@@ -166,7 +166,7 @@
- #
- # Javac as available from Java2SE
- #
--worker.inprocess.class_path=$(workers.java_home)$(ps)lib$(ps)tools.jar
-+#worker.inprocess.class_path=$(workers.java_home)$(ps)lib$(ps)tools.jar
-
- #
- # Setting the command line for tomcat
-@@ -182,7 +182,7 @@
- #
- # This is for Java2
- #
--worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)bin$(ps)classic$(ps)jvm.dll
-+#worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)bin$(ps)classic$(ps)jvm.dll
-
- #
- # And this is for jdk1.1.X
diff --git a/www/tomcat41/files/patch-ab b/www/tomcat41/files/patch-ab
deleted file mode 100644
index 9493d0cbee73..000000000000
--- a/www/tomcat41/files/patch-ab
+++ /dev/null
@@ -1,19 +0,0 @@
---- conf/server.xml.orig Tue Jul 17 18:57:46 2001
-+++ conf/server.xml Thu Jan 24 14:32:56 2002
-@@ -68,6 +68,7 @@
- -->
- <Logger name="tc_log"
- verbosityLevel = "INFORMATION"
-+ path="logs/tomcat.log"
- />
-
- <Logger name="servlet_log"
-@@ -223,7 +224,7 @@
- <Parameter name="handler"
- value="org.apache.tomcat.service.http.HttpConnectionHandler"/>
- <Parameter name="port"
-- value="8080"/>
-+ value="%%LISTEN_PORT%%"/>
- </Connector>
-
- <!--
diff --git a/www/tomcat41/files/startup.sh b/www/tomcat41/files/startup.sh
index cbd3e16f99b1..b27dea9f7de5 100644
--- a/www/tomcat41/files/startup.sh
+++ b/www/tomcat41/files/startup.sh
@@ -1,15 +1,27 @@
#!/bin/sh
+# -*- mode: Fundamental; tab-width: 4; -*-
+# ex:ts=4
+#
+# %%APP_TITLE%% startup script.
+#
+# $FreeBSD$
+#
+
# Set some variables
-USER_NAME=%%USER_NAME%%
MYSELF=`basename $0`
case "$1" in
start)
- su -f -m ${USER_NAME} -c "exec %%CONTROL_SCRIPT%% start" && echo -n ' %%APP_SHORTNAME%%'
+ truncate -s 0 %%PID_FILE%%
+ chown %%USER%%:%%GROUP%% %%PID_FILE%%
+ chmod 600 %%PID_FILE%%
+ su -f -m %%USER%% -c "exec %%CONTROL_SCRIPT%% start > /dev/null" && echo -n ' %%APP_SHORTNAME%%'
;;
stop)
- su -f -m ${USER_NAME} -c "exec %%CONTROL_SCRIPT%% stop" && echo -n ' %%APP_SHORTNAME%%'
+ chown %%USER%%:%%GROUP%% %%PID_FILE%%
+ chmod 600 %%PID_FILE%%
+ su -f -m %%USER%% -c "exec %%CONTROL_SCRIPT%% stop > /dev/null" && echo -n ' %%APP_SHORTNAME%%'
;;
*)
echo ""
diff --git a/www/tomcat41/files/tomcatctl b/www/tomcat41/files/tomcatctl
deleted file mode 100644
index 9992f023380b..000000000000
--- a/www/tomcat41/files/tomcatctl
+++ /dev/null
@@ -1,145 +0,0 @@
-#!/bin/sh
-
-# Set some variables
-APP_HOME=%%APP_HOME%%
-STDOUT_LOG=%%STDOUT_LOG%%
-STDERR_LOG=%%STDERR_LOG%%
-JAR_FILE=${APP_HOME}/lib/webserver.jar
-MYSELF=`basename $0`
-
-# Set the CLASSPATH
-unset CLASSPATH
-for i in ${APP_HOME}/lib/* ; do
- if [ "$CLASSPATH" != "" ]; then
- CLASSPATH=${CLASSPATH}:$i
- else
- CLASSPATH=$i
- fi
-done
-
-# Check if the JAVA_HOME directory is defined, otherwise set it to the
-# fallback default
-if [ "${JAVA_HOME}a" = "a" ]; then
- JAVA_HOME=%%JAVA_HOME%%
-fi
-if [ -f ${JAVA_HOME}/lib/tools.jar ] ; then
- CLASSPATH=${CLASSPATH}:${JAVA_HOME}/lib/tools.jar
-fi
-JAVA_CMD=${JAVA_HOME}/bin/java
-
-
-##############################################################################
-# Function that shows an error message
-#
-# This function is called by the 'checks' function
-#
-# Parameters:
-# 1: The message to be displayed.
-
-error() {
- echo -n "%%APP_SHORTNAME%%: ERROR: "
- echo $1
-}
-
-
-##############################################################################
-# Function that performs all checks necessary for starting or stopping the
-# application.
-#
-# This function is called by the 'start' and 'stop' functions
-#
-# This function expects no parameters
-
-checks() {
- # Make sure the application directory does exist
- if [ ! -d ${APP_HOME} ]; then
- error "Unable to find %%APP_TITLE%% home directory at ${APP_HOME}."
- exit 2
- fi
-
- # Make sure the application JAR file exists
- if [ ! -r ${JAR_FILE} ]; then
- error "Unable to find %%APP_TITLE%% JAR file at ${JAR_FILE}."
- exit 3
- fi
-
- # Make sure the Java VM can be found
- if [ ! -x ${JAVA_CMD} ]; then
- error "Unable to find Java VM at ${JAVA_HOME}."
- exit 4
- fi
-}
-
-
-##############################################################################
-# Functions that calls the application with the specified parameter
-#
-# Parameters:
-# 1: The argument to pass to the application (optional)
-
-app() {
- (cd ${APP_HOME} && ${JAVA_CMD} -cp ${CLASSPATH} -Dtomcat.home=${APP_HOME} org.apache.tomcat.startup.Tomcat $1 &) >> ${STDOUT_LOG} 2>> ${STDERR_LOG}
-}
-
-
-##############################################################################
-# Function that starts the application
-#
-# This function is called from the main function
-#
-# This function expects no parameters
-
-start() {
- # Perform the checks
- checks
-
- # Stop the application
- app
-}
-
-
-##############################################################################
-# Function that stops the application
-#
-# This function is called from the main function
-#
-# This function expects no parameters
-
-stop() {
- # Perform the checks
- checks
-
- # Stop the application
- app -stop
-}
-
-
-##############################################################################
-# Main function. This function calls the 'start' and 'stop' functions.
-#
-# Parameters:
-# 1: The argument to this shell script
-
-main() {
- case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- restart)
- stop
- start
- ;;
- *)
- echo "Usage: ${MYSELF} { start | stop | restart }"
- exit 64
- ;;
- esac
-}
-
-
-# Call the main function and exit
-main $1
-exit 0
diff --git a/www/tomcat41/files/tomcatctl.1 b/www/tomcat41/files/tomcatctl.1
index 07514a35bcea..c0d332fda7d8 100644
--- a/www/tomcat41/files/tomcatctl.1
+++ b/www/tomcat41/files/tomcatctl.1
@@ -10,9 +10,9 @@
.Sh DESCRIPTION
The
.Nm
-shell script provides an interface to the %%APP_TITLE%% application server.
+program provides an interface to the %%APP_TITLE%% application server.
.Pp
-The script expects exactly one argument, either
+The program expects exactly one argument, either
.Ar start ,
.Ar restart
or
@@ -23,41 +23,53 @@ ignored.
.It Ar start
Start %%APP_TITLE%%, if it is not already running.
.It Ar restart
-Restart %%APP_TITLE%%. If it is already running, then it will be stopped and then
-started right after that. Otherwise it will just be started up.
+Restart %%APP_TITLE%%. If it is already running, then it will be stopped and
+then started right after that. Otherwise it will just be started up.
.It Ar stop
Stop %%APP_TITLE%%, if it is actually running.
.El
.Sh ERRORS
The following error conditions are detected. They will be checked in the
-specified order. In each case where an error message is printed, the name of
-the script
-.Em ( basename $0 )
-will be prepended.
+specified order. In each case an error message is printed with the name of the
+control program prepended.
.Pp
-If no argument is passed, or if an argument other than
+If no argument is passed, then a simple help message is printed and the
+program exists with error code 0.
+.Pp
+If at least one argument is passed, but it is different from
.Ar start ,
.Ar restart
or
.Ar stop
-is passed as the first argument, then a simple help message is printed and the
-script is exited with error code 64.
+then the help message is printed as well, and the program exits with error
+code 1.
.Pp
-Other than that, the following errors conditions are defined:
+The following errors conditions are defined:
.Bl -tag -width indent
-.It Em %%APP_TITLE%% home directory cannot be found
-Prints an error message and exits the script with error code 2.
-.It Em %%APP_TITLE%% script cannot be found
-Prints an error message and exits the script with error code 3.
-.It Em Java VM cannot be found
-Prints an error message and exits the script with error code 4.
+.It Em Illegal program argument (error code 1)
+.It Em PID file not found (error code 2)
+.It Em PID file too large (error code 3)
+.It Em PID file contains illegal character (error code 4)
+.It Em Kill of process failed (error code 5)
+.It Em %%APP_TITLE%% is already running (error code 6)
+.It Em %%APP_TITLE%% is not running (error code 7)
+.It Em Unable to chdir to the %%APP_TITLE%% home directory (error code 8)
+.It Em Unable to open the stdout log file (error code 9)
+.It Em Unable to open the stderr log file (error code 10)
+.It Em Unable to start %%APP_TITLE%% (error code 11)
.El
.Sh FILES
.Bl -tag -width -indent
-.It Pa %%PREFIX%%/etc/rc.d/%%STARTUP_ORDER%%.jakarta-tomcat.sh
+.It Pa %%PID_FILE%%
+The %%APP_TITLE%% PID file that is used to store the process ID of the
+currently running process in. It is emptied as soon as the server is stopped
+and filled with the process ID when it is started. It should never be writable
+for anyone but
+.Em www ,
+.It Pa %%STARTUP_SCRIPT%%
A script that starts the
.Nm
-script. It start %%APP_TITLE%% at startup time.
+program. It is used to start %%APP_TITLE%% at startup time.
.El
.Sh AUTHORS
.An Ernst de Haan Aq znerd@FreeBSD.org
diff --git a/www/tomcat41/pkg-plist b/www/tomcat41/pkg-plist
index 23a54415cc5e..20b92f60477d 100644
--- a/www/tomcat41/pkg-plist
+++ b/www/tomcat41/pkg-plist
@@ -2,32 +2,31 @@ bin/tomcatctl
etc/rc.d/020.jakarta-tomcat.sh
%%T%%/KEYS
%%T%%/LICENSE
-%%T%%/RELEASE-NOTES
-%%T%%/bin/ant
-%%T%%/bin/antRun
%%T%%/bin/jspc.sh
%%T%%/bin/shutdown.sh
%%T%%/bin/startup.sh
%%T%%/bin/tomcat.sh
-%%T%%/conf/build.xml
-%%T%%/conf/jni_server.xml
-%%T%%/conf/jni_workers.properties
-%%T%%/conf/manifest.servlet
-%%T%%/conf/mod_jk.conf
-%%T%%/conf/obj.conf
+%%T%%/conf/apps-127.0.0.1.xml
+%%T%%/conf/apps-admin.xml
+%%T%%/conf/apps-examples.xml
+%%T%%/conf/jk/mod_jk.conf
+%%T%%/conf/jk/mod_jk.conf-jni
+%%T%%/conf/jk/obj.conf
+%%T%%/conf/jk/uriworkermap.properties
+%%T%%/conf/jk/workers.properties
+%%T%%/conf/jk/wrapper.properties
+%%T%%/conf/jserv/tomcat.conf
+%%T%%/conf/jserv/tomcat.properties
+%%T%%/conf/modules.xml
%%T%%/conf/server.xml
-%%T%%/conf/test-tomcat.xml
-%%T%%/conf/tomcat-users.xml
-%%T%%/conf/tomcat.conf
%%T%%/conf/tomcat.policy
-%%T%%/conf/tomcat.properties
-%%T%%/conf/uriworkermap.properties
-%%T%%/conf/web.dtd
-%%T%%/conf/web.xml
+%%T%%/conf/users/admin-users.xml
+%%T%%/conf/users/example-users.xml
+%%T%%/conf/users/global-users.xml
+%%T%%/conf/users/tomcat-users.xml
%%T%%/conf/workers.properties
-%%T%%/conf/wrapper.properties
%%T%%/doc/AJPv13.html
-%%T%%/doc/JDBCRealm.howto
+%%T%%/doc/JDBCRealm-howto.html
%%T%%/doc/NT-Service-howto.html
%%T%%/doc/Tomcat-Workers-HowTo.html
%%T%%/doc/Tomcat-on-NetWare-HowTo.html
@@ -43,6 +42,7 @@ etc/rc.d/020.jakarta-tomcat.sh
%%T%%/doc/appdev/sample/build.sh
%%T%%/doc/appdev/sample/build.xml
%%T%%/doc/appdev/sample/etc/web.xml
+%%T%%/doc/appdev/sample/lib/README
%%T%%/doc/appdev/sample/src/Hello.java
%%T%%/doc/appdev/sample/web/hello.jsp
%%T%%/doc/appdev/sample/web/images/tomcat.gif
@@ -51,355 +51,135 @@ etc/rc.d/020.jakarta-tomcat.sh
%%T%%/doc/appdev/tomcat.gif
%%T%%/doc/appdev/web.xml.txt
%%T%%/doc/faq
+%%T%%/doc/images/banner.gif
+%%T%%/doc/images/tomcat.gif
%%T%%/doc/in-process-howto.html
%%T%%/doc/index.html
+%%T%%/doc/internal.html
%%T%%/doc/mod_jk-howto.html
+%%T%%/doc/perfNumbers.txt
%%T%%/doc/readme
+%%T%%/doc/readme-3.3.1
+%%T%%/doc/serverxml.html
+%%T%%/doc/style.css
%%T%%/doc/tomcat-apache-howto.html
%%T%%/doc/tomcat-iis-howto.html
-%%T%%/doc/tomcat-localization-howto.html
%%T%%/doc/tomcat-netscape-howto.html
+%%T%%/doc/tomcat-security.html
%%T%%/doc/tomcat-ssl-howto.html
-%%T%%/doc/uguide/images/banner.gif
-%%T%%/doc/uguide/images/tomcat.gif
-%%T%%/doc/uguide/style.css
-%%T%%/doc/uguide/tomcat-security-unix.html
-%%T%%/doc/uguide/tomcat-security.html
-%%T%%/doc/uguide/tomcat_ug.html
-%%T%%/lib/ant.jar
-%%T%%/lib/jasper.jar
-%%T%%/lib/jaxp.jar
-%%T%%/lib/crimson.jar
-%%T%%/lib/servlet.jar
-%%T%%/lib/webserver.jar
-%%T%%/lib/test/Golden/Err.txt
-%%T%%/lib/test/Golden/ForwardWithQuery.txt
-%%T%%/lib/test/Golden/HelloWorld.txt
-%%T%%/lib/test/Golden/Include.txt
-%%T%%/lib/test/Golden/IncludeFile.txt
-%%T%%/lib/test/Golden/Mismatch1.txt
-%%T%%/lib/test/Golden/Mismatch2.txt
-%%T%%/lib/test/Golden/MustFail.txt
-%%T%%/lib/test/Golden/PrintWriterTest.txt
-%%T%%/lib/test/Golden/ServletParam.txt
-%%T%%/lib/test/Golden/SimpleForward.txt
-%%T%%/lib/test/Golden/SimpleInclude.txt
-%%T%%/lib/test/Golden/beanSer.txt
-%%T%%/lib/test/Golden/beanTest.txt
-%%T%%/lib/test/Golden/buffer.txt
-%%T%%/lib/test/Golden/classTest.txt
-%%T%%/lib/test/Golden/image1.gif
-%%T%%/lib/test/Golden/implicitConfig.txt
-%%T%%/lib/test/Golden/implicitContext.txt
-%%T%%/lib/test/Golden/implicitException.txt
-%%T%%/lib/test/Golden/implicitOut.txt
-%%T%%/lib/test/Golden/implicitPage.txt
-%%T%%/lib/test/Golden/implicitPageContext.txt
-%%T%%/lib/test/Golden/implicitRequest.txt
-%%T%%/lib/test/Golden/implicitResponse.txt
-%%T%%/lib/test/Golden/implicitSession.txt
-%%T%%/lib/test/Golden/import.txt
-%%T%%/lib/test/Golden/index.txt
-%%T%%/lib/test/Golden/jsptoservlet.txt
-%%T%%/lib/test/Golden/movedindex.txt
-%%T%%/lib/test/Golden/movedwelcome.txt
-%%T%%/lib/test/Golden/pageImport.txt
-%%T%%/lib/test/Golden/parse.txt
-%%T%%/lib/test/Golden/servletParam1.txt
-%%T%%/lib/test/Golden/servletParam2.txt
-%%T%%/lib/test/Golden/welcome.txt
-%%T%%/src/org/apache/tomcat/facade/HttpServletRequestFacade.java
-%%T%%/src/org/apache/tomcat/facade/package.html
-%%T%%/src/org/apache/tomcat/facade/ServletInputStreamFacade.java
-%%T%%/src/org/apache/tomcat/facade/ServletWriterFacade.java
-%%T%%/src/org/apache/tomcat/facade/ServletOutputStreamFacade.java
-%%T%%/src/org/apache/tomcat/facade/ServletContextFacade.java
-%%T%%/src/org/apache/tomcat/facade/SimpleFacadeManager.java
-%%T%%/src/org/apache/tomcat/facade/HttpServletResponseFacade.java
-%%T%%/src/org/apache/tomcat/facade/SessionContextImpl.java
-%%T%%/src/org/apache/tomcat/facade/ServletConfigImpl.java
-%%T%%/src/org/apache/tomcat/facade/HttpSessionFacade.java
-%%T%%/src/org/apache/tomcat/facade/RequestDispatcherImpl.java
-%%T%%/src/org/apache/tomcat/service/http/HttpConnectionHandler.java
-%%T%%/src/org/apache/tomcat/service/http/HttpRequestAdapter.java
-%%T%%/src/org/apache/tomcat/service/http/HttpResponseAdapter.java
-%%T%%/src/org/apache/tomcat/service/http/package.html
-%%T%%/src/org/apache/tomcat/service/connector/Ajp13ConnectorRequest.java
-%%T%%/src/org/apache/tomcat/service/connector/JNIConnectionHandler.java
-%%T%%/src/org/apache/tomcat/service/connector/package.html
-%%T%%/src/org/apache/tomcat/service/connector/Ajp12ConnectionHandler.java
-%%T%%/src/org/apache/tomcat/service/connector/MsgBuffer.java
-%%T%%/src/org/apache/tomcat/service/connector/Ajp13ConnectionHandler.java
-%%T%%/src/org/apache/tomcat/service/connector/Ajp13ConnectorResponse.java
-%%T%%/src/org/apache/tomcat/service/connector/MsgConnector.java
-%%T%%/src/org/apache/tomcat/service/connector/TcpConnector.java
-%%T%%/src/org/apache/tomcat/service/LocalStrings.properties
-%%T%%/src/org/apache/tomcat/service/SimpleTcpConnector.java
-%%T%%/src/org/apache/tomcat/service/TcpEndpoint.java
-%%T%%/src/org/apache/tomcat/service/package.html
-%%T%%/src/org/apache/tomcat/service/PoolTcpConnector.java
-%%T%%/src/org/apache/tomcat/service/TcpEndpointConnector.java
-%%T%%/src/org/apache/tomcat/service/LocalStrings_fr.properties
-%%T%%/src/org/apache/tomcat/service/TcpConnection.java
-%%T%%/src/org/apache/tomcat/service/SimpleTcpEndpoint.java
-%%T%%/src/org/apache/tomcat/service/LocalStrings_es.properties
-%%T%%/src/org/apache/tomcat/service/PoolTcpEndpoint.java
-%%T%%/src/org/apache/tomcat/service/JNIEndpointConnector.java
-%%T%%/src/org/apache/tomcat/service/TcpConnectionHandler.java
-%%T%%/src/org/apache/tomcat/service/JNIEndpoint.java
-%%T%%/src/org/apache/tomcat/core/ContextInterceptor.java
-%%T%%/src/org/apache/tomcat/core/RequestImpl.java
-%%T%%/src/org/apache/tomcat/core/LocalStrings_es.properties
-%%T%%/src/org/apache/tomcat/core/ContextManager.java
-%%T%%/src/org/apache/tomcat/core/BufferedServletInputStream.java
-%%T%%/src/org/apache/tomcat/core/ResponseImpl.java
-%%T%%/src/org/apache/tomcat/core/BufferedServletOutputStream.java
-%%T%%/src/org/apache/tomcat/core/ServerConnector.java
-%%T%%/src/org/apache/tomcat/core/BaseInterceptor.java
-%%T%%/src/org/apache/tomcat/core/ServletLoader.java
-%%T%%/src/org/apache/tomcat/core/TomcatException.java
-%%T%%/src/org/apache/tomcat/core/Container.java
-%%T%%/src/org/apache/tomcat/core/ServletWrapper.java
-%%T%%/src/org/apache/tomcat/core/Response.java
-%%T%%/src/org/apache/tomcat/core/Context.java
-%%T%%/src/org/apache/tomcat/core/Constants.java
-%%T%%/src/org/apache/tomcat/core/Handler.java
-%%T%%/src/org/apache/tomcat/core/LocalStrings_se.properties
-%%T%%/src/org/apache/tomcat/core/package.html
-%%T%%/src/org/apache/tomcat/core/FacadeManager.java
-%%T%%/src/org/apache/tomcat/core/LocalStrings_fr.properties
-%%T%%/src/org/apache/tomcat/core/RequestInterceptor.java
-%%T%%/src/org/apache/tomcat/core/LocalStrings.properties
-%%T%%/src/org/apache/tomcat/core/Request.java
-%%T%%/src/org/apache/tomcat/context/AutoSetup.java
-%%T%%/src/org/apache/tomcat/context/DefaultCMSetter.java
-%%T%%/src/org/apache/tomcat/context/WebXmlReader.java
-%%T%%/src/org/apache/tomcat/context/LoaderInterceptor.java
-%%T%%/src/org/apache/tomcat/context/LogEvents.java
-%%T%%/src/org/apache/tomcat/context/WorkDirInterceptor.java
-%%T%%/src/org/apache/tomcat/context/LoadOnStartupInterceptor.java
-%%T%%/src/org/apache/tomcat/context/PolicyInterceptor.java
-%%T%%/src/org/apache/tomcat/logging/Logger.java
-%%T%%/src/org/apache/tomcat/logging/LogHelper.java
-%%T%%/src/org/apache/tomcat/logging/TomcatLogger.java
-%%T%%/src/org/apache/tomcat/util/pattern/ImplicationTable.java
-%%T%%/src/org/apache/tomcat/util/pattern/WildcardPattern.java
-%%T%%/src/org/apache/tomcat/util/pattern/Implication.java
-%%T%%/src/org/apache/tomcat/util/pattern/URLPatternMatcher.java
-%%T%%/src/org/apache/tomcat/util/pattern/PatternMatcher.java
-%%T%%/src/org/apache/tomcat/util/xml/XmlAction.java
-%%T%%/src/org/apache/tomcat/util/xml/XmlMapper.java
-%%T%%/src/org/apache/tomcat/util/xml/SaxContext.java
-%%T%%/src/org/apache/tomcat/util/xml/XmlMatch.java
-%%T%%/src/org/apache/tomcat/util/xml/PathMatch.java
-%%T%%/src/org/apache/tomcat/util/compat/SimpleClassLoader.java
-%%T%%/src/org/apache/tomcat/util/compat/Action.java
-%%T%%/src/org/apache/tomcat/util/compat/Jdk11Compat.java
-%%T%%/src/org/apache/tomcat/util/compat/Jdk12Support.java
-%%T%%/src/org/apache/tomcat/util/WARUtil.java
-%%T%%/src/org/apache/tomcat/util/HexUtils.java
-%%T%%/src/org/apache/tomcat/util/RecycleBufferedInputStream.java
-%%T%%/src/org/apache/tomcat/util/MimeMap.java
-%%T%%/src/org/apache/tomcat/util/URLUtil.java
-%%T%%/src/org/apache/tomcat/util/Queue.java
-%%T%%/src/org/apache/tomcat/util/LocaleToCharsetMap.java
-%%T%%/src/org/apache/tomcat/util/FileUtil.java
-%%T%%/src/org/apache/tomcat/util/MessageChars.java
-%%T%%/src/org/apache/tomcat/util/SimpleHashtable.java
-%%T%%/src/org/apache/tomcat/util/DateTool.java
-%%T%%/src/org/apache/tomcat/util/LocalStrings.properties
-%%T%%/src/org/apache/tomcat/util/CookieTools.java
-%%T%%/src/org/apache/tomcat/util/Ascii.java
-%%T%%/src/org/apache/tomcat/util/BufferListener.java
-%%T%%/src/org/apache/tomcat/util/BufferEvent.java
-%%T%%/src/org/apache/tomcat/util/SessionIdGenerator.java
-%%T%%/src/org/apache/tomcat/util/ArrayEnumerator.java
-%%T%%/src/org/apache/tomcat/util/PrefixMapper.java
-%%T%%/src/org/apache/tomcat/util/RequestUtil.java
-%%T%%/src/org/apache/tomcat/util/MimeHeaderField.java
-%%T%%/src/org/apache/tomcat/util/ThreadPool.java
-%%T%%/src/org/apache/tomcat/util/ThreadPoolRunnable.java
-%%T%%/src/org/apache/tomcat/util/LocalStrings_es.properties
-%%T%%/src/org/apache/tomcat/util/BuffTool.java
-%%T%%/src/org/apache/tomcat/util/SecurityTools.java
-%%T%%/src/org/apache/tomcat/util/SimplePrincipal.java
-%%T%%/src/org/apache/tomcat/util/ByteBuffer.java
-%%T%%/src/org/apache/tomcat/util/SimplePool.java
-%%T%%/src/org/apache/tomcat/util/StringManager.java
-%%T%%/src/org/apache/tomcat/util/EmptyEnumeration.java
-%%T%%/src/org/apache/tomcat/util/Reaper.java
-%%T%%/src/org/apache/tomcat/util/MessageBytes.java
-%%T%%/src/org/apache/tomcat/util/SessionUtil.java
-%%T%%/src/org/apache/tomcat/util/MimeHeaders.java
-%%T%%/src/org/apache/tomcat/util/DevNullOutputStream.java
-%%T%%/src/org/apache/tomcat/util/LocalStrings_fr.properties
-%%T%%/src/org/apache/tomcat/util/MessageString.java
-%%T%%/src/org/apache/tomcat/util/package.html
-%%T%%/src/org/apache/tomcat/adapter/HttpAdapter.java
-%%T%%/src/org/apache/tomcat/adapter/AdapterHandler.java
-%%T%%/src/org/apache/tomcat/resources/web.dtd
-%%T%%/src/org/apache/tomcat/resources/LocalStrings_fr.properties
-%%T%%/src/org/apache/tomcat/resources/LocalStrings_es.properties
-%%T%%/src/org/apache/tomcat/resources/LocalStrings.properties
-%%T%%/src/org/apache/tomcat/resources/LocalStrings_en.properties
-%%T%%/src/org/apache/tomcat/request/InvokerInterceptor.java
-%%T%%/src/org/apache/tomcat/request/SimpleMapper1.java
-%%T%%/src/org/apache/tomcat/request/SimpleRealm.java
-%%T%%/src/org/apache/tomcat/request/AccessInterceptor.java
-%%T%%/src/org/apache/tomcat/request/SessionInterceptor.java
-%%T%%/src/org/apache/tomcat/request/JspInterceptor.java
-%%T%%/src/org/apache/tomcat/request/LocalStrings.properties
-%%T%%/src/org/apache/tomcat/request/StaticInterceptor.java
-%%T%%/src/org/apache/tomcat/request/JDBCRealm.java
-%%T%%/src/org/apache/tomcat/request/AccountingInterceptor.java
-%%T%%/src/org/apache/tomcat/request/Jdk12Interceptor.java
-%%T%%/src/org/apache/tomcat/loader/AdaptiveClassLoader.java
-%%T%%/src/org/apache/tomcat/loader/AdaptiveServletLoader.java
-%%T%%/src/org/apache/tomcat/loader/SimpleFileFilter.java
-%%T%%/src/org/apache/tomcat/loader/AdaptiveClassLoader12.java
-%%T%%/src/org/apache/tomcat/loader/ClassRepository.java
-%%T%%/src/org/apache/tomcat/task/StopTomcat.java
-%%T%%/src/org/apache/tomcat/task/ApacheConfig.java
-%%T%%/src/org/apache/tomcat/task/Expand.java
-%%T%%/src/org/apache/tomcat/task/IISConfig.java
-%%T%%/src/org/apache/tomcat/task/NSConfig.java
-%%T%%/src/org/apache/tomcat/task/GTest.java
-%%T%%/src/org/apache/tomcat/net/ServerSocketFactory.java
-%%T%%/src/org/apache/tomcat/net/DefaultServerSocketFactory.java
-%%T%%/src/org/apache/tomcat/net/SSLSocketFactory.java
-%%T%%/src/org/apache/tomcat/session/LocalStrings.properties
-%%T%%/src/org/apache/tomcat/session/StandardSessionInterceptor.java
-%%T%%/src/org/apache/tomcat/session/LocalStrings_es.properties
-%%T%%/src/org/apache/tomcat/session/StandardManager.java
-%%T%%/src/org/apache/tomcat/session/StandardSession.java
-%%T%%/src/org/apache/tomcat/session/SessionSerializer.java
-%%T%%/src/org/apache/tomcat/protocol/war/Handler.java
-%%T%%/src/org/apache/tomcat/protocol/jar/Handler.java
-%%T%%/src/org/apache/tomcat/protocol/WARConnection.java
-%%T%%/src/org/apache/tomcat/protocol/WARManager.java
-%%T%%/src/org/apache/tomcat/startup/Tomcat.java
-%%T%%/src/org/apache/tomcat/startup/HostConfig.java
-%%T%%/src/org/apache/tomcat/startup/EmbededTomcat.java
-%%T%%/src/org/apache/jasper/resources/messages_fr.properties
-%%T%%/src/org/apache/jasper/resources/web-jsptaglib_1_1.dtd
-%%T%%/src/org/apache/jasper/resources/messages.properties
-%%T%%/src/org/apache/jasper/resources/messages_es.properties
-%%T%%/src/org/apache/jasper/resources/web.dtd
-%%T%%/src/org/apache/jasper/servlet/JasperLoader.java
-%%T%%/src/org/apache/jasper/servlet/TomcatServletEngine.java
-%%T%%/src/org/apache/jasper/servlet/JspServlet.java
-%%T%%/src/org/apache/jasper/servlet/ServletEngine.java
-%%T%%/src/org/apache/jasper/servlet/JasperLoader12.java
-%%T%%/src/org/apache/jasper/runtime/JspFactoryImpl.java
-%%T%%/src/org/apache/jasper/runtime/JspRuntimeLibrary.java
-%%T%%/src/org/apache/jasper/runtime/PageContextImpl.java
-%%T%%/src/org/apache/jasper/runtime/JspWriterImpl.java
-%%T%%/src/org/apache/jasper/runtime/BodyContentImpl.java
-%%T%%/src/org/apache/jasper/runtime/HttpJspBase.java
-%%T%%/src/org/apache/jasper/runtime/JspLoader.java
-%%T%%/src/org/apache/jasper/compiler/JspCompiler.java
-%%T%%/src/org/apache/jasper/compiler/BeanRepository.java
-%%T%%/src/org/apache/jasper/compiler/ForwardGenerator.java
-%%T%%/src/org/apache/jasper/compiler/DestroyMethodPhase.java
-%%T%%/src/org/apache/jasper/compiler/IncludeGenerator.java
-%%T%%/src/org/apache/jasper/compiler/TagGeneratorBase.java
-%%T%%/src/org/apache/jasper/compiler/JspParseEventListener.java
-%%T%%/src/org/apache/jasper/compiler/TagLibraryInfoImpl.java
-%%T%%/src/org/apache/jasper/compiler/Mangler.java
-%%T%%/src/org/apache/jasper/compiler/StaticInitializerPhase.java
-%%T%%/src/org/apache/jasper/compiler/CommandLineCompiler.java
-%%T%%/src/org/apache/jasper/compiler/Mark.java
-%%T%%/src/org/apache/jasper/compiler/JikesJavaCompiler.java
-%%T%%/src/org/apache/jasper/compiler/SunJavaCompiler.java
-%%T%%/src/org/apache/jasper/compiler/TagBeginGenerator.java
-%%T%%/src/org/apache/jasper/compiler/ClassName.java
-%%T%%/src/org/apache/jasper/compiler/PluginGenerator.java
-%%T%%/src/org/apache/jasper/compiler/BeanGenerator.java
-%%T%%/src/org/apache/jasper/compiler/DelegatingListener.java
-%%T%%/src/org/apache/jasper/compiler/SetPropertyGenerator.java
-%%T%%/src/org/apache/jasper/compiler/InfoGenerator.java
-%%T%%/src/org/apache/jasper/compiler/CommentGenerator.java
-%%T%%/src/org/apache/jasper/compiler/GetPropertyGenerator.java
-%%T%%/src/org/apache/jasper/compiler/Parser.java
-%%T%%/src/org/apache/jasper/compiler/ScriptletGenerator.java
-%%T%%/src/org/apache/jasper/compiler/FileDeclarationPhase.java
-%%T%%/src/org/apache/jasper/compiler/GeneratorBase.java
-%%T%%/src/org/apache/jasper/compiler/JspUtil.java
-%%T%%/src/org/apache/jasper/compiler/BeanEndGenerator.java
-%%T%%/src/org/apache/jasper/compiler/Generator.java
-%%T%%/src/org/apache/jasper/compiler/ParseException.java
-%%T%%/src/org/apache/jasper/compiler/ExpressionGenerator.java
-%%T%%/src/org/apache/jasper/compiler/JspReader.java
-%%T%%/src/org/apache/jasper/compiler/InitMethodPhase.java
-%%T%%/src/org/apache/jasper/compiler/MappedCharDataGenerator.java
-%%T%%/src/org/apache/jasper/compiler/CompileException.java
-%%T%%/src/org/apache/jasper/compiler/DumbParseEventListener.java
-%%T%%/src/org/apache/jasper/compiler/Compiler.java
-%%T%%/src/org/apache/jasper/compiler/ServletWriter.java
-%%T%%/src/org/apache/jasper/compiler/ClassDeclarationPhase.java
-%%T%%/src/org/apache/jasper/compiler/CoreElement.java
-%%T%%/src/org/apache/jasper/compiler/ParseEventListener.java
-%%T%%/src/org/apache/jasper/compiler/TagEndGenerator.java
-%%T%%/src/org/apache/jasper/compiler/StoredCharDataGenerator.java
-%%T%%/src/org/apache/jasper/compiler/JavaCompiler.java
-%%T%%/src/org/apache/jasper/compiler/TagLibraries.java
-%%T%%/src/org/apache/jasper/compiler/ServiceMethodPhase.java
-%%T%%/src/org/apache/jasper/compiler/TagCache.java
-%%T%%/src/org/apache/jasper/compiler/JakartaCommentGenerator.java
-%%T%%/src/org/apache/jasper/compiler/DeclarationGenerator.java
-%%T%%/src/org/apache/jasper/compiler/CharDataGenerator.java
-%%T%%/src/org/apache/jasper/compiler/BaseJspListener.java
-%%T%%/src/org/apache/jasper/compiler/EscapeUnicodeWriter.java
-%%T%%/src/org/apache/jasper/CommandLineContext.java
-%%T%%/src/org/apache/jasper/EmbededServletOptions.java
-%%T%%/src/org/apache/jasper/JspC.java
-%%T%%/src/org/apache/jasper/JspEngineContext.java
-%%T%%/src/org/apache/jasper/Options.java
-%%T%%/src/org/apache/jasper/Constants.java
-%%T%%/src/org/apache/jasper/JasperException.java
-%%T%%/src/org/apache/jasper/JspCompilationContext.java
+%%T%%/doc/tomcat-ug.html
+%%T%%/lib/apps/README
+%%T%%/lib/common/README
+%%T%%/lib/common/connector_util.jar
+%%T%%/lib/common/core_util.jar
+%%T%%/lib/common/etomcat.jar
+%%T%%/lib/common/jasper-runtime.jar
+%%T%%/lib/common/servlet.jar
+%%T%%/lib/common/tomcat_core.jar
+%%T%%/lib/container/README
+%%T%%/lib/container/crimson.jar
+%%T%%/lib/container/facade22.jar
+%%T%%/lib/container/jasper.jar
+%%T%%/lib/container/tomcat_modules.jar
+%%T%%/lib/container/tomcat_util.jar
+%%T%%/lib/container/xalan.jar
+%%T%%/lib/stop-tomcat.jar
+%%T%%/lib/tmp42807.tmp
+%%T%%/lib/tomcat.jar
+%%T%%/logs/stderr.log
+%%T%%/logs/stdout.log
+%%T%%/native/mod_jk/README
+%%T%%/native/mod_jk/apache1.3/Makefile.freebsd
+%%T%%/native/mod_jk/apache1.3/Makefile.linux
+%%T%%/native/mod_jk/apache1.3/Makefile.nw
+%%T%%/native/mod_jk/apache1.3/README.hpux
+%%T%%/native/mod_jk/apache1.3/README.solaris
+%%T%%/native/mod_jk/apache1.3/build-hpux-cc.sh
+%%T%%/native/mod_jk/apache1.3/build-hpux.sh
+%%T%%/native/mod_jk/apache1.3/build-solaris.sh
+%%T%%/native/mod_jk/apache1.3/build-unix.sh
+%%T%%/native/mod_jk/apache1.3/install-unix.sh
+%%T%%/native/mod_jk/apache1.3/mod_jk.c
+%%T%%/native/mod_jk/apache1.3/mod_jk.dsp
+%%T%%/native/mod_jk/common/jk_ajp12_worker.c
+%%T%%/native/mod_jk/common/jk_ajp12_worker.h
+%%T%%/native/mod_jk/common/jk_ajp13.c
+%%T%%/native/mod_jk/common/jk_ajp13.h
+%%T%%/native/mod_jk/common/jk_ajp13_worker.c
+%%T%%/native/mod_jk/common/jk_ajp13_worker.h
+%%T%%/native/mod_jk/common/jk_connect.c
+%%T%%/native/mod_jk/common/jk_connect.h
+%%T%%/native/mod_jk/common/jk_global.h
+%%T%%/native/mod_jk/common/jk_jni_worker.c
+%%T%%/native/mod_jk/common/jk_jni_worker.h
+%%T%%/native/mod_jk/common/jk_lb_worker.c
+%%T%%/native/mod_jk/common/jk_lb_worker.h
+%%T%%/native/mod_jk/common/jk_logger.h
+%%T%%/native/mod_jk/common/jk_map.c
+%%T%%/native/mod_jk/common/jk_map.h
+%%T%%/native/mod_jk/common/jk_msg_buff.c
+%%T%%/native/mod_jk/common/jk_msg_buff.h
+%%T%%/native/mod_jk/common/jk_mt.h
+%%T%%/native/mod_jk/common/jk_nwmain.c
+%%T%%/native/mod_jk/common/jk_pool.c
+%%T%%/native/mod_jk/common/jk_pool.h
+%%T%%/native/mod_jk/common/jk_service.h
+%%T%%/native/mod_jk/common/jk_sockbuf.c
+%%T%%/native/mod_jk/common/jk_sockbuf.h
+%%T%%/native/mod_jk/common/jk_uri_worker_map.c
+%%T%%/native/mod_jk/common/jk_uri_worker_map.h
+%%T%%/native/mod_jk/common/jk_util.c
+%%T%%/native/mod_jk/common/jk_util.h
+%%T%%/native/mod_jk/common/jk_version.h
+%%T%%/native/mod_jk/common/jk_worker.c
+%%T%%/native/mod_jk/common/jk_worker.h
+%%T%%/native/mod_jk/common/jk_worker_list.h
+%%T%%/native/mod_jk/iis/isapi.def
+%%T%%/native/mod_jk/iis/isapi.dsp
+%%T%%/native/mod_jk/iis/isapi.dsw
+%%T%%/native/mod_jk/iis/jk_isapi_plugin.c
+%%T%%/native/mod_jk/jni/Makefile.nw
+%%T%%/native/mod_jk/jni/Makefile.solaris
+%%T%%/native/mod_jk/jni/jk_jnicb.c
+%%T%%/native/mod_jk/jni/jk_jnicb.exp
+%%T%%/native/mod_jk/jni/jk_jnicb.h
+%%T%%/native/mod_jk/jni/jni_connect.dsp
+%%T%%/native/mod_jk/jni/jni_connect.dsw
+%%T%%/native/mod_jk/netscape/Makefile.nw
+%%T%%/native/mod_jk/netscape/Makefile.solaris
+%%T%%/native/mod_jk/netscape/jk_nsapi_plugin.c
+%%T%%/native/mod_jk/netscape/nsapi.dsp
+%%T%%/native/mod_jk/netscape/nsapi.dsw
+%%T%%/native/mod_jk/nt_service/jk_nt_service.c
+%%T%%/native/mod_jk/nt_service/nt_service.dsp
+%%T%%/native/mod_jserv/Makefile.am
+%%T%%/native/mod_jserv/Makefile.libdir
+%%T%%/native/mod_jserv/Makefile.tmpl
+%%T%%/native/mod_jserv/Makefile.win32
+%%T%%/native/mod_jserv/autochange.c
+%%T%%/native/mod_jserv/jserv.h
+%%T%%/native/mod_jserv/jserv_ajpv11.c
+%%T%%/native/mod_jserv/jserv_ajpv12.c
+%%T%%/native/mod_jserv/jserv_balance.c
+%%T%%/native/mod_jserv/jserv_image.c
+%%T%%/native/mod_jserv/jserv_mmap.c
+%%T%%/native/mod_jserv/jserv_protocols.c
+%%T%%/native/mod_jserv/jserv_status.c
+%%T%%/native/mod_jserv/jserv_utils.c
+%%T%%/native/mod_jserv/jserv_watchdog.c
+%%T%%/native/mod_jserv/jserv_wrapper.c
+%%T%%/native/mod_jserv/jserv_wrapper.h
+%%T%%/native/mod_jserv/jserv_wrapper_unix.c
+%%T%%/native/mod_jserv/jserv_wrapper_win.c
+%%T%%/native/mod_jserv/libjserv.module
+%%T%%/native/mod_jserv/mod_jserv.c
%%T%%/webapps/ROOT.war
%%T%%/webapps/admin.war
%%T%%/webapps/examples.war
-%%T%%/webapps/test.war
-@dirrm %%T%%/webapps
-@dirrm %%T%%/src/org/apache/tomcat/util/xml
-@dirrm %%T%%/src/org/apache/tomcat/util/pattern
-@dirrm %%T%%/src/org/apache/tomcat/util/compat
-@dirrm %%T%%/src/org/apache/tomcat/util
-@dirrm %%T%%/src/org/apache/tomcat/task
-@dirrm %%T%%/src/org/apache/tomcat/startup
-@dirrm %%T%%/src/org/apache/tomcat/session
-@dirrm %%T%%/src/org/apache/tomcat/service/http
-@dirrm %%T%%/src/org/apache/tomcat/service/connector
-@dirrm %%T%%/src/org/apache/tomcat/service
-@dirrm %%T%%/src/org/apache/tomcat/resources
-@dirrm %%T%%/src/org/apache/tomcat/request
-@dirrm %%T%%/src/org/apache/tomcat/protocol/war
-@dirrm %%T%%/src/org/apache/tomcat/protocol/jar
-@dirrm %%T%%/src/org/apache/tomcat/protocol
-@dirrm %%T%%/src/org/apache/tomcat/net
-@dirrm %%T%%/src/org/apache/tomcat/loader
-@dirrm %%T%%/src/org/apache/tomcat/facade
-@dirrm %%T%%/src/org/apache/tomcat/adapter
-@dirrm %%T%%/src/org/apache/tomcat/core
-@dirrm %%T%%/src/org/apache/tomcat/context
-@dirrm %%T%%/src/org/apache/tomcat/logging
-@dirrm %%T%%/src/org/apache/tomcat
-@dirrm %%T%%/src/org/apache/jasper/servlet
-@dirrm %%T%%/src/org/apache/jasper/runtime
-@dirrm %%T%%/src/org/apache/jasper/resources
-@dirrm %%T%%/src/org/apache/jasper/compiler
-@dirrm %%T%%/src/org/apache/jasper
-@dirrm %%T%%/src/org/apache
-@dirrm %%T%%/src/org
-@dirrm %%T%%/src
+man/man1/tomcatctl.1
@dirrm %%T%%/logs
-@dirrm %%T%%/lib/test/Golden
-@dirrm %%T%%/lib/test
-@dirrm %%T%%/lib
-@dirrm %%T%%/doc/uguide/images
-@dirrm %%T%%/doc/uguide
+@dirrm %%T%%/doc/images
+@dirrm %%T%%/doc/appdev/sample/lib
@dirrm %%T%%/doc/appdev/sample/web/images
@dirrm %%T%%/doc/appdev/sample/web
@dirrm %%T%%/doc/appdev/sample/src
@@ -407,6 +187,25 @@ etc/rc.d/020.jakarta-tomcat.sh
@dirrm %%T%%/doc/appdev/sample
@dirrm %%T%%/doc/appdev
@dirrm %%T%%/doc
+@dirrm %%T%%/native/mod_jserv
+@dirrm %%T%%/native/mod_jk/iis
+@dirrm %%T%%/native/mod_jk/netscape
+@dirrm %%T%%/native/mod_jk/apache1.3
+@dirrm %%T%%/native/mod_jk/common
+@dirrm %%T%%/native/mod_jk/jni
+@dirrm %%T%%/native/mod_jk/nt_service
+@dirrm %%T%%/native/mod_jk
+@dirrm %%T%%/native
+@dirrm %%T%%/modules
+@dirrm %%T%%/lib/common
+@dirrm %%T%%/lib/container
+@dirrm %%T%%/lib/apps
+@dirrm %%T%%/lib
+@dirrm %%T%%/webapps
+@dirrm %%T%%/conf/users
+@dirrm %%T%%/conf/jk
+@dirrm %%T%%/conf/jserv
+@dirrm %%T%%/conf/auto
@dirrm %%T%%/conf
@dirrm %%T%%/bin
@dirrm %%T%%