diff --git a/.classpath b/.classpath
index 67408b4..e4d0114 100644
--- a/.classpath
+++ b/.classpath
@@ -27,7 +27,10 @@
-
+
+
+
+
diff --git a/.cvsignore b/.cvsignore
index 30fb81a..67f9b3d 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1,2 +1,3 @@
local-config
working.build.properties
+dicts
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..f3afad1
--- /dev/null
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,23 @@
+#Thu May 12 14:15:25 EDT 2005
+eclipse.preferences.version=1
+encoding//webroot/jsp/displayDefinition.jsf=UTF-8
+encoding//webroot/jsp/displayEncyclopediaArticle.jsf=UTF-8
+encoding//webroot/jsp/displayEntry.jsp=UTF-8
+encoding//webroot/jsp/displayEtymology.jsf=UTF-8
+encoding//webroot/jsp/displayFunction.jsf=UTF-8
+encoding//webroot/jsp/displayKeyword.jsf=UTF-8
+encoding//webroot/jsp/displayMeta.jsf=UTF-8
+encoding//webroot/jsp/displayModelSentence.jsf=UTF-8
+encoding//webroot/jsp/displayNotes.jsf=UTF-8
+encoding//webroot/jsp/displayPassage.jsf=UTF-8
+encoding//webroot/jsp/displayPronunciation.jsf=UTF-8
+encoding//webroot/jsp/displayRegister.jsf=UTF-8
+encoding//webroot/jsp/displayRelatedTerm.jsf=UTF-8
+encoding//webroot/jsp/displaySpelling.jsf=UTF-8
+encoding//webroot/jsp/displaySubdefinition.jsf=UTF-8
+encoding//webroot/jsp/displayTerm.jsf=UTF-8
+encoding//webroot/jsp/displayTransitionalData.jsf=UTF-8
+encoding//webroot/jsp/displayTranslationEquivalent.jsf=UTF-8
+encoding//webroot/jsp/menu.jsp=UTF-8
+encoding//webroot/jsp/metaForm.jsf=UTF-8
+encoding//webroot/login.jsp=UTF-8
diff --git a/src/java/.cvsignore b/src/java/.cvsignore
new file mode 100644
index 0000000..8af1f99
--- /dev/null
+++ b/src/java/.cvsignore
@@ -0,0 +1 @@
+dictionary-importer.properties
diff --git a/src/java/dictionary-importer.properties.sample b/src/java/dictionary-importer.properties.sample
index 71e5c44..da7320e 100644
--- a/src/java/dictionary-importer.properties.sample
+++ b/src/java/dictionary-importer.properties.sample
@@ -1,4 +1,4 @@
# Default localized resources for DictionaryImporter
dictionaryimporter.driverclassname=com.mysql.jdbc.Driver
-dictionaryimporter.url=jdbc:mysql://localhost:3306/lex?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&user=USERNAME&password=PASSWORD
+dictionaryimporter.url=jdbc:mysql://localhost:3306/lex?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&user=root
diff --git a/src/java/log4j.properties b/src/java/log4j.properties
new file mode 100644
index 0000000..2531528
--- /dev/null
+++ b/src/java/log4j.properties
@@ -0,0 +1,18 @@
+### direct log messages to stdout ###
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.Target=System.out
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
+
+### direct messages to file hibernate.log ###
+log4j.appender.file=org.apache.log4j.FileAppender
+log4j.appender.file.File=~/dictionary-hibernate.log
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
+
+### direct messages to file lex.log ###
+log4j.appender.lex-out=org.apache.log4j.FileAppender
+log4j.appender.lex-out.File=~/dictionary.log
+log4j.appender.lex-out.layout=org.apache.log4j.PatternLayout
+log4j.appender.lex-out.layout.ConversionPattern=%d{ABattribute>
+z
\ No newline at end of file
diff --git a/src/java/org/thdl/lex/AuthenticationFilter.java b/src/java/org/thdl/lex/AuthenticationFilter.java
index e316841..2053d98 100644
--- a/src/java/org/thdl/lex/AuthenticationFilter.java
+++ b/src/java/org/thdl/lex/AuthenticationFilter.java
@@ -13,8 +13,6 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
-import org.thdl.users.ThdlUser;
-
/**
* Description of the Class
*
@@ -83,7 +81,7 @@ public class AuthenticationFilter implements Filter {
HttpServletRequest req = (HttpServletRequest) request;
Visit visit = UserSessionManager.getInstance().getVisit(
req.getSession(true));
- ThdlUser user = visit.getUser();
+ LexUser user = visit.getUser();
if (null == user) {
requireLogin(req, (HttpServletResponse) response, req
.getSession(true));
diff --git a/src/java/org/thdl/lex/GuestFilter.java b/src/java/org/thdl/lex/GuestFilter.java
index d428ae9..f826e0b 100644
--- a/src/java/org/thdl/lex/GuestFilter.java
+++ b/src/java/org/thdl/lex/GuestFilter.java
@@ -11,8 +11,6 @@ import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.thdl.users.ThdlUser;
-
/**
* Description of the Class
*
@@ -78,7 +76,7 @@ public class GuestFilter implements Filter {
HttpServletRequest req = (HttpServletRequest) request;
Visit visit = UserSessionManager.getInstance().getVisit(
req.getSession(true));
- ThdlUser user = visit.getUser();
+ LexUser user = visit.getUser();
if (null == user) {
try {
user = new LexUser();
diff --git a/src/java/org/thdl/lex/LexQuery.java b/src/java/org/thdl/lex/LexQuery.java
index 1710f00..1b85580 100644
--- a/src/java/org/thdl/lex/LexQuery.java
+++ b/src/java/org/thdl/lex/LexQuery.java
@@ -1,13 +1,11 @@
package org.thdl.lex;
-import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
import org.thdl.lex.component.ILexComponent;
import org.thdl.lex.component.ITerm;
-import org.thdl.lex.component.TransitionalDataComparator;
/**
* Description of the Class
diff --git a/src/java/org/thdl/lex/LexUser.java b/src/java/org/thdl/lex/LexUser.java
index dbbdf6a..374abd9 100644
--- a/src/java/org/thdl/lex/LexUser.java
+++ b/src/java/org/thdl/lex/LexUser.java
@@ -1,19 +1,54 @@
package org.thdl.lex;
+import org.apache.commons.beanutils.BeanUtils;
+import org.thdl.users.ThdlUser;
+
public class LexUser extends org.thdl.users.ThdlUser {
+
+ public LexUser() {
+ };
+
+ public LexUser(ThdlUser user) throws Exception {
+ BeanUtils.copyProperties(this, user);
+ }
+
public boolean isGuest() {
- boolean bool = false;
- if (hasRole("guest")) {
- bool = true;
- }
- return bool;
+ return checkRole("guest");
+ }
+
+ public boolean isAdministrator() {
+ return checkRole("admin");
+ }
+
+ public boolean isEditor() {
+ return checkRole("editorHi") || checkRole("editorLo");
}
public boolean isDeveloper() {
+ return checkRole("dev");
+ }
+
+ public boolean isProofer() {
+ return checkRole("proofer");
+ }
+
+ public boolean isCanAddTerms() {
+ return isAdministrator() || checkRole("editorHi") || isDeveloper();
+ }
+
+ public boolean isCanEdit() {
+ return isAdministrator() || isDeveloper() || isProofer() || isEditor();
+ }
+
+ private boolean checkRole(String role) {
boolean bool = false;
- if (hasRole("dev")) {
+ if (hasRole(role)) {
bool = true;
}
return bool;
}
+
+ public boolean isFingerprintless() {
+ return isAdministrator() || isProofer();
+ }
}
\ No newline at end of file
diff --git a/src/java/org/thdl/lex/LoginServlet.java b/src/java/org/thdl/lex/LoginServlet.java
index fe3fce9..c61d2f5 100644
--- a/src/java/org/thdl/lex/LoginServlet.java
+++ b/src/java/org/thdl/lex/LoginServlet.java
@@ -20,7 +20,7 @@ import org.thdl.users.ThdlUserRepositoryException;
* @created October 2, 2003
*/
public class LoginServlet extends HttpServlet {
- //attributes
+ // attributes
private String welcomePage;
@@ -28,7 +28,7 @@ public class LoginServlet extends HttpServlet {
private UserSessionManager sessionManager;
- //accessors
+ // accessors
/**
* Sets the welcomePage attribute of the LoginServlet object
*
@@ -85,7 +85,7 @@ public class LoginServlet extends HttpServlet {
}
}
- //helper methods
+ // helper methods
/**
* Description of the Method
*
@@ -99,15 +99,13 @@ public class LoginServlet extends HttpServlet {
setWelcomePage("/action?cmd=menu");
if (getWelcomePage() == null) {
- throw new ServletException(
- "The welcomePage init parameter must be specified.");
+ throw new ServletException("The welcomePage init parameter must be specified.");
}
setLoginPage(config.getInitParameter("loginPage"));
if (getLoginPage() == null) {
- throw new ServletException(
- "The loginPage init parameter must be specified.");
+ throw new ServletException("The loginPage init parameter must be specified.");
}
}
@@ -123,8 +121,7 @@ public class LoginServlet extends HttpServlet {
* Description of Exception
* @since
*/
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException {
+ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException {
String username = request.getParameter(LexConstants.USERNAME_REQ_PARAM);
if (username == null) {
@@ -137,17 +134,15 @@ public class LoginServlet extends HttpServlet {
throw new ServletException("No Password Specified");
}
- ThdlUser thdlUser = null;
try {
- ThdlUser lexUser = new LexUser();
- lexUser.setUsername(username);
- lexUser.setPassword(password);
- lexUser = ThdlUserRepository.getInstance().validate(lexUser,
- "dictionary");
- doLoginSuccess(request, response, lexUser);
+ ThdlUser thdlUser = new ThdlUser();
+ thdlUser.setUsername(username);
+ thdlUser.setPassword(password);
+ thdlUser = ThdlUserRepository.getInstance().validate(thdlUser, "dictionary");
+ doLoginSuccess(request, response, new LexUser(thdlUser));
} catch (ThdlUserRepositoryException ture) {
doLoginFailure(request, response, username);
- //throw new ServletException( ture );
+ // throw new ServletException( ture );
} catch (Exception e) {
throw new ServletException(e);
}
@@ -170,11 +165,8 @@ public class LoginServlet extends HttpServlet {
* Description of Exception
* @since
*/
- private void doLoginSuccess(HttpServletRequest req,
- HttpServletResponse response, ThdlUser user) throws IOException,
- LexRepositoryException, LexComponentException {
- Visit visit = UserSessionManager.getInstance().getVisit(
- req.getSession(true));
+ private void doLoginSuccess(HttpServletRequest req, HttpServletResponse response, LexUser user) throws IOException, LexRepositoryException, LexComponentException {
+ Visit visit = UserSessionManager.getInstance().getVisit(req.getSession(true));
visit.setUser(user);
@@ -182,8 +174,7 @@ public class LoginServlet extends HttpServlet {
visit.setPreferences(preferences);
visit.setDisplayMode("brief");
- String targetPage = UserSessionManager.getInstance()
- .getSessionLoginTarget(req.getSession(true), true);
+ String targetPage = UserSessionManager.getInstance().getSessionLoginTarget(req.getSession(true), true);
if (targetPage == null) {
UserSessionManager.doRedirect(req, response, getWelcomePage());
@@ -206,9 +197,7 @@ public class LoginServlet extends HttpServlet {
* Description of Exception
* @since
*/
- private void doLoginFailure(HttpServletRequest request,
- HttpServletResponse response, String username)
- throws ServletException {
+ private void doLoginFailure(HttpServletRequest request, HttpServletResponse response, String username) throws ServletException {
String loginURL = getLoginPage() + "?retry=true&username=" + username;
try {
@@ -218,4 +207,3 @@ public class LoginServlet extends HttpServlet {
}
}
}
-
diff --git a/src/java/org/thdl/lex/Preferences.java b/src/java/org/thdl/lex/Preferences.java
index b924e2b..c8bb563 100644
--- a/src/java/org/thdl/lex/Preferences.java
+++ b/src/java/org/thdl/lex/Preferences.java
@@ -5,7 +5,6 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import org.thdl.lex.component.LexComponentException;
-import org.thdl.users.ThdlUser;
/**
* Description of the Class
@@ -14,7 +13,7 @@ import org.thdl.users.ThdlUser;
* @created October 6, 2003
*/
public class Preferences {
- //attributes
+ // attributes
private Integer id;
private Integer userId;
@@ -55,7 +54,7 @@ public class Preferences {
private Integer[] dialectSet;
- //accessors
+ // accessors
/**
* Sets the id attribute of the Preferences object
@@ -437,7 +436,7 @@ public class Preferences {
return note;
}
- //helpers
+ // helpers
/**
* Description of the Method
@@ -476,16 +475,11 @@ public class Preferences {
setUseDefaultDialect(bool.booleanValue());
bool = Boolean.valueOf(results.getString(15));
setUseDefaultNote(bool.booleanValue());
- setProjectSubjectSet(LexUtilities
- .convertTokensToIntegerArray(results.getString(16)));
- setSourceSet(LexUtilities.convertTokensToIntegerArray(results
- .getString(17)));
- setLanguageSet(LexUtilities.convertTokensToIntegerArray(results
- .getString(18)));
- setScriptSet(LexUtilities.convertTokensToIntegerArray(results
- .getString(19)));
- setDialectSet(LexUtilities.convertTokensToIntegerArray(results
- .getString(20)));
+ setProjectSubjectSet(LexUtilities.convertTokensToIntegerArray(results.getString(16)));
+ setSourceSet(LexUtilities.convertTokensToIntegerArray(results.getString(17)));
+ setLanguageSet(LexUtilities.convertTokensToIntegerArray(results.getString(18)));
+ setScriptSet(LexUtilities.convertTokensToIntegerArray(results.getString(19)));
+ setDialectSet(LexUtilities.convertTokensToIntegerArray(results.getString(20)));
} else {
insertNew();
}
@@ -503,8 +497,7 @@ public class Preferences {
*/
public void insertNew() throws LexComponentException {
try {
- String sql = "INSERT INTO Preferences ( id, userId ) VALUES ( NULL, "
- + getUserId() + " )";
+ String sql = "INSERT INTO Preferences ( id, userId ) VALUES ( NULL, " + getUserId() + " )";
Integer i = new Integer(LexRepository.getInstance().doUpdate(sql));
setId(i);
} catch (LexRepositoryException lre) {
@@ -520,8 +513,7 @@ public class Preferences {
*/
public void save() throws LexComponentException {
try {
- String sql = "SELECT id FROM Preferences WHERE userId = "
- + getUserId();
+ String sql = "SELECT id FROM Preferences WHERE userId = " + getUserId();
LexRepository lr = LexRepository.getInstance();
Connection con = lr.getDataSource().getConnection();
ResultSet results = con.createStatement().executeQuery(sql);
@@ -560,20 +552,15 @@ public class Preferences {
sqlBuffer.append("', useDefaultNote = '");
sqlBuffer.append(getUseDefaultNote());
sqlBuffer.append("', projectSubjectSet = '");
- sqlBuffer.append(LexUtilities
- .convertIntegerArrayToTokens(getProjectSubjectSet()));
+ sqlBuffer.append(LexUtilities.convertIntegerArrayToTokens(getProjectSubjectSet()));
sqlBuffer.append("', sourceSet = '");
- sqlBuffer.append(LexUtilities
- .convertIntegerArrayToTokens(getSourceSet()));
+ sqlBuffer.append(LexUtilities.convertIntegerArrayToTokens(getSourceSet()));
sqlBuffer.append("', languageSet = '");
- sqlBuffer.append(LexUtilities
- .convertIntegerArrayToTokens(getLanguageSet()));
+ sqlBuffer.append(LexUtilities.convertIntegerArrayToTokens(getLanguageSet()));
sqlBuffer.append("', scriptSet = '");
- sqlBuffer.append(LexUtilities
- .convertIntegerArrayToTokens(getScriptSet()));
+ sqlBuffer.append(LexUtilities.convertIntegerArrayToTokens(getScriptSet()));
sqlBuffer.append("', dialectSet = '");
- sqlBuffer.append(LexUtilities
- .convertIntegerArrayToTokens(getDialectSet()));
+ sqlBuffer.append(LexUtilities.convertIntegerArrayToTokens(getDialectSet()));
sqlBuffer.append("' WHERE id = ");
sqlBuffer.append(getId());
LexRepository.getInstance().doUpdate(sqlBuffer.toString());
@@ -601,7 +588,7 @@ public class Preferences {
}
}
- //constructors
+ // constructors
/**
* Constructor for the Preferences object
*/
@@ -636,8 +623,7 @@ public class Preferences {
* @exception LexComponentException
* Description of the Exception
*/
- public Preferences(ThdlUser user) throws LexRepositoryException,
- LexComponentException {
+ public Preferences(LexUser user) throws LexRepositoryException, LexComponentException {
this();
setUserId(user.getId());
populate();
@@ -649,4 +635,3 @@ public class Preferences {
*/
}
}
-
diff --git a/src/java/org/thdl/lex/Visit.java b/src/java/org/thdl/lex/Visit.java
index 0c96488..ad6f3e9 100644
--- a/src/java/org/thdl/lex/Visit.java
+++ b/src/java/org/thdl/lex/Visit.java
@@ -2,8 +2,6 @@ package org.thdl.lex;
import javax.servlet.http.HttpSession;
-import org.thdl.users.ThdlUser;
-
/**
* Description of the Class
*
@@ -22,7 +20,7 @@ public class Visit {
LexQuery query;
- ThdlUser user;
+ LexUser user;
String displayMode;
@@ -100,7 +98,7 @@ public class Visit {
* @param user
* The new user value
*/
- public void setUser(ThdlUser user) {
+ public void setUser(LexUser user) {
if (user.hasRole("guest")) {
getSession().setMaxInactiveInterval(60 * 5);
} else {
@@ -164,7 +162,7 @@ public class Visit {
*
* @return The user value
*/
- public ThdlUser getUser() {
+ public LexUser getUser() {
return user;
}
@@ -203,7 +201,7 @@ public class Visit {
* @param user
* Description of the Parameter
*/
- public Visit(HttpSession session, ThdlUser user) {
+ public Visit(HttpSession session, LexUser user) {
this(session);
setUser(user);
}
diff --git a/src/java/org/thdl/lex/commands/GetRemoveFormCommand.java b/src/java/org/thdl/lex/commands/GetRemoveFormCommand.java
index cf930ef..7c36a5a 100644
--- a/src/java/org/thdl/lex/commands/GetRemoveFormCommand.java
+++ b/src/java/org/thdl/lex/commands/GetRemoveFormCommand.java
@@ -9,6 +9,7 @@ import org.thdl.lex.LexConstants;
import org.thdl.lex.LexLogger;
import org.thdl.lex.LexQuery;
import org.thdl.lex.LexRepositoryException;
+import org.thdl.lex.LexUser;
import org.thdl.lex.UserSessionManager;
import org.thdl.lex.Visit;
import org.thdl.lex.component.IAnalyticalNote;
@@ -16,7 +17,6 @@ import org.thdl.lex.component.ILexComponent;
import org.thdl.lex.component.ITerm;
import org.thdl.lex.component.LexComponentException;
import org.thdl.lex.component.Translatable;
-import org.thdl.users.ThdlUser;
/**
* Description of the Class
@@ -66,7 +66,7 @@ public class GetRemoveFormCommand extends LexCommand implements Command {
LexQuery query = visit.getQuery();
ITerm term = query.getEntry();
String msg = null;
- ThdlUser user = visit.getUser();
+ LexUser user = visit.getUser();
if (validate(user, component)) {
try {
diff --git a/src/java/org/thdl/lex/commands/GetUpdateFormCommand.java b/src/java/org/thdl/lex/commands/GetUpdateFormCommand.java
index 4e0aab0..7f70a30 100644
--- a/src/java/org/thdl/lex/commands/GetUpdateFormCommand.java
+++ b/src/java/org/thdl/lex/commands/GetUpdateFormCommand.java
@@ -9,6 +9,7 @@ import org.thdl.lex.LexConstants;
import org.thdl.lex.LexLogger;
import org.thdl.lex.LexQuery;
import org.thdl.lex.LexRepositoryException;
+import org.thdl.lex.LexUser;
import org.thdl.lex.UserSessionManager;
import org.thdl.lex.Visit;
import org.thdl.lex.component.IAnalyticalNote;
@@ -16,7 +17,6 @@ import org.thdl.lex.component.ILexComponent;
import org.thdl.lex.component.ITerm;
import org.thdl.lex.component.LexComponentException;
import org.thdl.lex.component.Translatable;
-import org.thdl.users.ThdlUser;
/**
* Description of the Class
@@ -66,7 +66,7 @@ public class GetUpdateFormCommand extends LexCommand implements Command {
LexQuery query = visit.getQuery();
ITerm term = query.getEntry();
String msg = null;
- ThdlUser user = visit.getUser();
+ LexUser user = visit.getUser();
if (validate(user, component)) {
try {
diff --git a/src/java/org/thdl/lex/commands/LexCommand.java b/src/java/org/thdl/lex/commands/LexCommand.java
index df00880..482ffeb 100644
--- a/src/java/org/thdl/lex/commands/LexCommand.java
+++ b/src/java/org/thdl/lex/commands/LexCommand.java
@@ -1,8 +1,8 @@
package org.thdl.lex.commands;
+import org.thdl.lex.LexUser;
import org.thdl.lex.UserSessionManager;
import org.thdl.lex.component.ILexComponent;
-import org.thdl.users.ThdlUser;
/**
* Description of the Class
@@ -11,12 +11,12 @@ import org.thdl.users.ThdlUser;
* @created October 3, 2003
*/
public abstract class LexCommand implements Command {
- //attributes
+ // attributes
private String next;
private UserSessionManager sessionManager;
- //accessors
+ // accessors
/**
* Sets the sessionManager attribute of the LexCommand object
*
@@ -75,19 +75,17 @@ public abstract class LexCommand implements Command {
/*
* public ILexComponent getComponent() { return component; }
*/
- //helpers
- public boolean validate(ThdlUser user, ILexComponent component) {
+ // helpers
+public boolean validate(LexUser user, ILexComponent component) {
boolean valid = false;
Integer creator = component.getMeta().getCreatedBy();
- if (user.getId().equals(creator) || user.hasRole("admin")
- || user.hasRole("dev")) {
+ if (user.getId().equals(creator) || user.isCanEdit()) {
valid = true;
}
return valid;
}
-
- //constructors
+ // constructors
/**
* Constructor for the LexCommand object
@@ -108,4 +106,3 @@ public abstract class LexCommand implements Command {
public LexCommand() {
}
}
-
diff --git a/src/java/org/thdl/lex/commands/RemoveCommand.java b/src/java/org/thdl/lex/commands/RemoveCommand.java
index 2ca5b41..0fb8deb 100644
--- a/src/java/org/thdl/lex/commands/RemoveCommand.java
+++ b/src/java/org/thdl/lex/commands/RemoveCommand.java
@@ -10,6 +10,7 @@ import org.thdl.lex.LexConstants;
import org.thdl.lex.LexLogger;
import org.thdl.lex.LexQuery;
import org.thdl.lex.LexRepositoryException;
+import org.thdl.lex.LexUser;
import org.thdl.lex.UserSessionManager;
import org.thdl.lex.Visit;
import org.thdl.lex.component.AnalyticalNote;
@@ -17,7 +18,6 @@ import org.thdl.lex.component.ILexComponent;
import org.thdl.lex.component.ITerm;
import org.thdl.lex.component.LexComponentException;
import org.thdl.lex.component.Translatable;
-import org.thdl.users.ThdlUser;
/**
* Description of the Class
@@ -74,7 +74,7 @@ public class RemoveCommand extends LexCommand implements Command {
"Could not remove component, user's session has expired");
}
- ThdlUser user = visit.getUser();
+ LexUser user = visit.getUser();
LexQuery query = visit.getQuery();
ITerm term = query.getEntry();
LexComponentRepository.update(term);
diff --git a/src/java/org/thdl/lex/commands/UpdateCommand.java b/src/java/org/thdl/lex/commands/UpdateCommand.java
index 7b340b8..182529e 100644
--- a/src/java/org/thdl/lex/commands/UpdateCommand.java
+++ b/src/java/org/thdl/lex/commands/UpdateCommand.java
@@ -12,6 +12,7 @@ import org.thdl.lex.LexConstants;
import org.thdl.lex.LexLogger;
import org.thdl.lex.LexQuery;
import org.thdl.lex.LexRepositoryException;
+import org.thdl.lex.LexUser;
import org.thdl.lex.UserSessionManager;
import org.thdl.lex.Visit;
import org.thdl.lex.component.AnalyticalNote;
@@ -19,7 +20,6 @@ import org.thdl.lex.component.ILexComponent;
import org.thdl.lex.component.ITerm;
import org.thdl.lex.component.LexComponentException;
import org.thdl.lex.component.Translatable;
-import org.thdl.users.ThdlUser;
/**
* Description of the Class
@@ -50,7 +50,7 @@ public class UpdateCommand extends LexCommand implements Command {
return termMode;
}
- //helper methods
+ // helper methods
/**
* Description of the Method
*
@@ -62,53 +62,43 @@ public class UpdateCommand extends LexCommand implements Command {
* @exception CommandException
* Description of the Exception
*/
- public String execute(HttpServletRequest req, ILexComponent component)
- throws CommandException {
+ public String execute(HttpServletRequest req, ILexComponent component) throws CommandException {
String msg = null;
String next = getNext();
- Visit visit = UserSessionManager.getInstance().getVisit(
- req.getSession(true));
+ Visit visit = UserSessionManager.getInstance().getVisit(req.getSession(true));
DisplayHelper displayHelper = visit.getHelper();
try {
HttpSession ses = req.getSession(false);
if (null == ses) {
- throw new CommandException(
- "Could not update component, user's session has expired");
+ throw new CommandException("Could not update component, user's session has expired");
}
- ThdlUser user = visit.getUser();
+ LexUser user = visit.getUser();
LexQuery query = visit.getQuery();
ITerm term = query.getEntry();
if (CommandToken.isValid(req) && validate(user, component)) {
LexComponentRepository.update(term);
- LexLogger
- .debug("Checking component state from updateCommand BEFORE component assignment");
+ LexLogger.debug("Checking component state from updateCommand BEFORE component assignment");
LexLogger.debugComponent(component);
if (isTermMode()) {
term.populate(req.getParameterMap());
term.getMeta().populate(req.getParameterMap());
component = term;
} else if (component instanceof AnalyticalNote) {
- LexLogger
- .debug("Debugging Component before updating analytical note");
+ LexLogger.debug("Debugging Component before updating analytical note");
LexLogger.debugComponent(component);
- ILexComponent parent = term.findParent(component
- .getParentId());
+ ILexComponent parent = term.findParent(component.getParentId());
List notes = parent.getAnalyticalNotes();
- ILexComponent ilc = (ILexComponent) notes.get(notes
- .indexOf(component));
+ ILexComponent ilc = (ILexComponent) notes.get(notes.indexOf(component));
ilc.populate(component);
- } else if (component instanceof Translatable
- && null != ((Translatable) component)
- .getTranslationOf()) {
+ } else if (component instanceof Translatable && null != ((Translatable) component).getTranslationOf()) {
Translatable translation = (Translatable) component;
Translatable source = null;
try {
- source = (Translatable) translation.getClass()
- .newInstance();
+ source = (Translatable) translation.getClass().newInstance();
} catch (Exception e) {
throw new CommandException(e);
}
@@ -116,8 +106,7 @@ public class UpdateCommand extends LexCommand implements Command {
source.setParentId(translation.getParentId());
source = (Translatable) term.findChild(source);
List translationList = source.getTranslations();
- component = (ILexComponent) translationList
- .get(translationList.indexOf(translation));
+ component = (ILexComponent) translationList.get(translationList.indexOf(translation));
component.populate(req.getParameterMap());
component.getMeta().populate(req.getParameterMap());
} else {
@@ -126,15 +115,17 @@ public class UpdateCommand extends LexCommand implements Command {
ilc.getMeta().populate(req.getParameterMap());
component = ilc;
}
- LexLogger
- .debug("Checking component state from updateCommand AFTER component assignment");
+ LexLogger.debug("Checking component state from updateCommand AFTER component assignment");
LexLogger.debugComponent(component);
Date now = new Date(System.currentTimeMillis());
component.getMeta().setModifiedOn(now);
- component.getMeta().setModifiedBy(user.getId());
term.getMeta().setModifiedOn(now);
- term.getMeta().setModifiedBy(user.getId());
+
+ if (!user.isFingerprintless()) {
+ component.getMeta().setModifiedBy(user.getId());
+ term.getMeta().setModifiedBy(user.getId());
+ }
LexLogger.debugComponent(component);
LexLogger.debugComponent(term);
@@ -143,21 +134,19 @@ public class UpdateCommand extends LexCommand implements Command {
msg = "Successful Update";
visit.setDisplayMode("edit");
} else {
- msg = CommandToken.isValid(req) ? "Unauthorized update attempted"
- : "Invalid reload attempted.";
+ msg = CommandToken.isValid(req) ? "Unauthorized update attempted" : "Invalid reload attempted.";
}
return next;
} catch (LexComponentException e) {
throw new CommandException(e);
} catch (LexRepositoryException e) {
- throw new CommandException("Command had trouble processing "
- + component, e);
+ throw new CommandException("Command had trouble processing " + component, e);
} finally {
req.setAttribute(LexConstants.MESSAGE_REQ_ATTR, msg);
}
}
- //constructors
+ // constructors
/**
* Constructor for the GetFormCommand object
*
@@ -172,4 +161,3 @@ public class UpdateCommand extends LexCommand implements Command {
}
}
-
diff --git a/src/java/org/thdl/lex/component/ITerm.java b/src/java/org/thdl/lex/component/ITerm.java
index ff0208a..c66a808 100644
--- a/src/java/org/thdl/lex/component/ITerm.java
+++ b/src/java/org/thdl/lex/component/ITerm.java
@@ -285,7 +285,7 @@ public interface ITerm extends LexComponentNode {
* @exception LexComponentException
* Description of the Exception
*/
- public ILexComponent findChild(java.util.List list, Integer pk)
+ public ILexComponent findChild(java.util.Iterator list, Integer pk)
throws LexComponentException;
/**
diff --git a/src/java/org/thdl/lex/component/Term.java b/src/java/org/thdl/lex/component/Term.java
index b833178..ed529be 100644
--- a/src/java/org/thdl/lex/component/Term.java
+++ b/src/java/org/thdl/lex/component/Term.java
@@ -1,6 +1,7 @@
package org.thdl.lex.component;
import java.io.Serializable;
+import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
@@ -147,7 +148,7 @@ public class Term extends BaseTerm implements Serializable, LexComponentNode {
public ILexComponent findChild(ILexComponent child)
throws LexComponentException {
List list = findSiblings(child);
- child = findChild(list, child.getMetaId());
+ child = findChild(list.iterator(), child.getMetaId());
return child;
}
@@ -164,8 +165,9 @@ public class Term extends BaseTerm implements Serializable, LexComponentNode {
ILexComponent child = null;
Iterator childMapValues = getChildMap().values().iterator();
while (childMapValues.hasNext() && null == child) {
- List list = (List) childMapValues.next();
- child = findChild(list, pk);
+ Object obj = childMapValues.next();
+ Collection list = (Collection) obj;
+ child = findChild(list.iterator(), pk);
}
if (null != getDefinitions()) {
Iterator definitions = getDefinitions().iterator();
@@ -187,11 +189,11 @@ public class Term extends BaseTerm implements Serializable, LexComponentNode {
* @return Description of the Return Value
*/
- public ILexComponent findChild(List list, Integer pk) {
+ public ILexComponent findChild(Iterator list, Integer pk) {
ILexComponent child = null;
if (list != null) {
- for (Iterator it = list.iterator(); it.hasNext();) {
- ILexComponent lc = (LexComponent) it.next();
+ while (list.hasNext()) {
+ ILexComponent lc = (LexComponent) list.next();
if (lc.getMetaId().equals(pk)) {
child = lc;
break;
diff --git a/src/java/org/thdl/lex/util/DictionaryImporter.java b/src/java/org/thdl/lex/util/DictionaryImporter.java
index 46d79a0..3d2d46f 100644
--- a/src/java/org/thdl/lex/util/DictionaryImporter.java
+++ b/src/java/org/thdl/lex/util/DictionaryImporter.java
@@ -275,7 +275,7 @@ public class DictionaryImporter {
ResultSet set;
int creator = -1;
- stmt = connUsers.prepareStatement("SELECT id FROM thdlusers WHERE firstname LIKE ? AND lastname LIKE ?");
+ stmt = connUsers.prepareStatement("SELECT id FROM ThdlUsers WHERE firstname LIKE ? AND lastname LIKE ?");
stmt.setString(1, "%" + firstName + "%");
stmt.setString(2, "%" + lastName + "%");
set = stmt.executeQuery();
@@ -288,7 +288,7 @@ public class DictionaryImporter {
// if there are more instances of the same user delete them
if (set.next())
{
- stmt = connUsers.prepareStatement("DELETE FROM thdlusers WHERE firstname LIKE ? AND lastname LIKE ? AND id != ?");
+ stmt = connUsers.prepareStatement("DELETE FROM ThdlUsers WHERE firstname LIKE ? AND lastname LIKE ? AND id != ?");
stmt.setString(1, "%" + firstName + "%");
stmt.setString(2, "%" + lastName + "%");
stmt.setInt(3, creator);
@@ -297,7 +297,7 @@ public class DictionaryImporter {
}
else
{
- stmt2 = connUsers.prepareStatement("INSERT INTO thdlusers(firstname, lastname) VALUES (?, ?)");
+ stmt2 = connUsers.prepareStatement("INSERT INTO ThdlUsers(firstname, lastname) VALUES (?, ?)");
stmt2.setString(1, firstName);
stmt2.setString(2, lastName);
stmt2.executeUpdate();
@@ -319,11 +319,11 @@ public class DictionaryImporter {
ResultSet set;
int projectFirst = -1, project = -1;
- stmt = connLex.prepareStatement("SELECT id FROM projectsubjects WHERE projectSubject like ? OR projectSubject like ?");
+ stmt = connLex.prepareStatement("SELECT id FROM ProjectSubjects WHERE projectSubject like ? OR projectSubject like ?");
stmt.setString(1, "%" + projectName + "%");
stmt.setString(2, "%" + shortName + "%");
set = stmt.executeQuery();
- stmt2 = connLex.prepareStatement("DELETE FROM transitionaldata, meta USING transitionaldata, meta WHERE transitionaldata.metaid=meta.metaid AND createdbyprojsub = ?");
+ stmt2 = connLex.prepareStatement("DELETE FROM TransitionalData, Meta USING TransitionalData, Meta WHERE TransitionalData.metaid=Meta.metaid AND createdbyprojsub = ?");
while (set.next())
{
@@ -352,7 +352,7 @@ public class DictionaryImporter {
* */
else
{
- stmt2 = connLex.prepareStatement("UPDATE projectsubjects SET projectSubject = ?, leader = ?, participantList = ? WHERE id = ?");
+ stmt2 = connLex.prepareStatement("UPDATE ProjectSubjects SET projectSubject = ?, leader = ?, participantList = ? WHERE id = ?");
stmt2.setString(1, projectName);
stmt2.setInt(2, creator);
stmt2.setString(3, "");
@@ -361,7 +361,7 @@ public class DictionaryImporter {
if (projectFirst!=project)
{
- stmt2 = connLex.prepareStatement("DELETE FROM projectsubjects WHERE id != ? AND (projectSubject like ? OR projectSubject like ?)");
+ stmt2 = connLex.prepareStatement("DELETE FROM ProjectSubjects WHERE id != ? AND (projectSubject like ? OR projectSubject like ?)");
stmt2.setInt(1, projectFirst);
stmt2.setString(2, "%" + projectName + "%");
stmt2.setString(3, "%" + shortName + "%");
@@ -378,7 +378,7 @@ public class DictionaryImporter {
ResultSet set;
int label=-1;
- stmt = connLex.prepareStatement("SELECT id FROM transitionaldatalabels WHERE transitionaldatalabel like ? OR transitionaldatalabel like ?");
+ stmt = connLex.prepareStatement("SELECT id FROM TransitionalDataLabels WHERE transitionaldatalabel like ? OR transitionaldatalabel like ?");
stmt.setString(1, "%" + shortName + "%");
stmt.setString(2, "%" + longName + "%");
set = stmt.executeQuery();
@@ -388,13 +388,13 @@ public class DictionaryImporter {
label = set.getInt(1);
if (set.next())
{
- stmt2 = connLex.prepareStatement("DELETE FROM transitionaldatalabels WHERE id != ? AND (transitionaldatalabel like ? OR transitionaldatalabel like ?)");
+ stmt2 = connLex.prepareStatement("DELETE FROM TransitionalDataLabels WHERE id != ? AND (transitionaldatalabel like ? OR transitionaldatalabel like ?)");
stmt2.setInt(1, label);
stmt2.setString(2, "%" + shortName + "%");
stmt2.setString(3, "%" + longName + "%");
stmt2.executeUpdate();
}
- stmt2 = connLex.prepareStatement("UPDATE transitionaldatalabels SET priority = ?, transitionaldatalabelshort = ?, transitionaldatalabel = ? WHERE id = ?");
+ stmt2 = connLex.prepareStatement("UPDATE TransitionalDataLabels SET priority = ?, transitionaldatalabelshort = ?, transitionaldatalabel = ? WHERE id = ?");
stmt2.setInt(1, priority);
stmt2.setString(2, shortName);
stmt2.setString(3, longName);
@@ -403,7 +403,7 @@ public class DictionaryImporter {
}
else
{
- stmt2 = connLex.prepareStatement("INSERT INTO transitionaldatalabels(priority, transitionaldatalabel, transitionaldatalabelshort) VALUES (?, ?, ?)");
+ stmt2 = connLex.prepareStatement("INSERT INTO TransitionalDataLabels(priority, transitionaldatalabel, transitionaldatalabelshort) VALUES (?, ?, ?)");
stmt2.setInt(1, priority);
stmt2.setString(2, longName);
stmt2.setString(3, shortName);
diff --git a/tomcat/LICENSE b/tomcat/LICENSE
new file mode 100644
index 0000000..261eeb9
--- /dev/null
+++ b/tomcat/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/tomcat/NOTICE b/tomcat/NOTICE
new file mode 100644
index 0000000..4275fb8
--- /dev/null
+++ b/tomcat/NOTICE
@@ -0,0 +1,18 @@
+This product includes software developed by
+The Apache Software Foundation (http://www.apache.org/).
+
+Java Management Extensions (JMX) support is provided by
+the MX4J package, which is open source software. The
+original software and related information is available
+at http://mx4j.sourceforge.net.
+
+The Windows Installer is built with the Nullsoft
+Scriptable Install Sysem (NSIS), which is
+open source software. The original software and
+related information is available at
+http://nsis.sourceforge.net.
+
+Java compilation software for JSP pages is provided by Eclipse,
+which is open source software. The orginal software and
+related infomation is available at
+http://www.eclipse.org.
diff --git a/tomcat/RELEASE-NOTES b/tomcat/RELEASE-NOTES
new file mode 100644
index 0000000..0882ab5
--- /dev/null
+++ b/tomcat/RELEASE-NOTES
@@ -0,0 +1,174 @@
+
+
+ Apache Tomcat Version @VERSION@
+ Release Notes
+
+
+$Id: RELEASE-NOTES,v 1.3 2005/05/17 16:51:14 aranganath Exp $
+
+
+=============================
+KNOWN ISSUES IN THIS RELEASE:
+=============================
+
+* Dependency Changes
+* JNI Based Applications
+* Bundled APIs
+* Web application reloading and static fields in shared libraries
+* Tomcat on Linux
+* Enabling SSI and CGI Support
+* Security manager URLs
+* Symlinking static resources
+* Enabling invoker servlet
+* Viewing the Tomcat Change Log
+* When all else fails
+
+
+===================
+Dependency Changes:
+===================
+Tomcat 5.5 is designed to run on J2SE 5.0 and later, and requires
+configuration to run on J2SE 1.4. Make sure to read the "RUNNING.txt"
+file in this directory if you are using J2SE 1.4.
+
+In addition, Tomcat 5.5 uses the Eclipse JDT Java compiler for compiling
+JSP pages. This means you no longer need to have the complete
+Java Development Kit (JDK) to run Tomcat, but a Java Runtime Environment
+(JRE) is sufficient. The Eclipse JDT Java compiler is bundled with the
+binary Tomcat distributions. Tomcat can also be configured to use the
+compiler from the JDK to compile JSPs, or any other Java compiler supported
+by Apache Ant.
+
+
+=======================
+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.
+
+
+=============
+Bundled APIs:
+=============
+A standard installation of Tomcat 5.5 makes all of the following APIs available
+for use by web applications (by placing them in "common/lib" or "shared/lib"):
+* commons-el.jar (Commons Expression Language 1.0)
+* commons-logging-api.jar (Commons Logging API 1.0.x)
+* jasper-compiler.jar (Jasper 2 Compiler)
+* jasper-compiler-jdt.jar (Eclipse JDT Java compiler)
+* jasper-runtime.jar (Jasper 2 Runtime)
+* jsp-api.jar (JSP 2.0 API)
+* naming-common.jar (JNDI Context implementation)
+* naming-factory.jar (JNDI object factories for J2EE ENC support)
+* naming-factory-dbcp.jar (DataSource implementation based on commons-dbcp)
+* naming-resources.jar (JNDI DirContext implementations)
+* servlet-api.jar (Servlet 2.4 API)
+
+Installing the compatibility package will add the following to the list, which are
+needed when running on J2SE 1.4:
+* jmx.jar (Java Management Extensions API 1.2 or later)
+* xercesImpl.jar (Xerces XML Parser, version 2.6.2 or later)
+
+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.
+
+To override the XML parser implementation or interfaces, use the endorsed
+mechanism of the JVM. The default configuration defines JARs located in
+"common/endorsed" as endorsed.
+
+
+================================================================
+Web application reloading and static fields in shared libraries:
+================================================================
+Some shared libraries (many are part of the JDK) keep references to objects
+instantiated by the web application. To avoid class loading related problems
+(ClassCastExceptions, messages indicating that the classloader
+is stopped, etc.), the shared libraries state should be reinitialized.
+
+Something which might help is to avoid putting classes which would be
+referenced by a shared static field in the web application classloader,
+and putting them in the shared classloader instead (JARs should be put in the
+"lib" folder, and classes should be put in the "classes" folder).
+
+
+================
+Tomcat on Linux:
+================
+GLIBC 2.2 / Linux 2.4 users should define an environment variable:
+export LD_ASSUME_KERNEL=2.2.5
+
+Redhat Linux 9.0 users should use the following setting to avoid
+stability problems:
+export LD_ASSUME_KERNEL=2.4.1
+
+
+=============================
+Enabling SSI and CGI Support:
+=============================
+Because of the security risks associated with CGI and SSI available
+to web applications, these features are disabled by default.
+
+To enable and configure CGI support, please see the cgi-howto.html page.
+
+To enable and configue SSI support, please see the ssi-howto.html page.
+
+
+======================
+Security manager URLs:
+======================
+In order to grant security permissions to JARs located inside the
+web application repository, use URLs of of the following format
+in your policy file:
+
+file:${catalina.home}/webapps/examples/WEB-INF/lib/driver.jar
+
+
+============================
+Symlinking static resources:
+============================
+By default, Unix symlinks will not work when used in a web application to link
+resources located outside the web application root directory.
+
+This behavior is optional, and the "allowLinking" flag may be used to disable
+the check.
+
+
+=========================
+Enabling invoker servlet:
+=========================
+Starting with Tomcat 4.1.12, the invoker servlet is no longer available by
+default in all webapps. Enabling it for all webapps is possible by editing
+$CATALINA_HOME/conf/web.xml to uncomment the "/servlet/*" servlet-mapping
+definition.
+
+Using the invoker servlet in a production environment is not recommended and
+is unsupported. More details are available on the Tomcat FAQ at
+http://jakarta.apache.org/tomcat/faq/misc.html#invoker.
+
+
+==============================
+Viewing the Tomcat Change Log:
+==============================
+See changelog.html in this directory.
+
+
+====================
+When all else fails:
+====================
+See the FAQ
+http://jakarta.apache.org/tomcat/faq/
diff --git a/tomcat/RUNNING.txt b/tomcat/RUNNING.txt
new file mode 100644
index 0000000..ebcb274
--- /dev/null
+++ b/tomcat/RUNNING.txt
@@ -0,0 +1,182 @@
+$Id: RUNNING.txt,v 1.3 2005/05/17 16:51:14 aranganath Exp $
+
+ ============================================
+ Running The Tomcat 5.5 Servlet/JSP Container
+ ============================================
+
+Out of the box, Tomcat 5.5 requires the Java 2 Standard Edition Runtime
+Environment (JRE) version 5.0 or later. However, you can also run Tomcat
+5.5 on earlier versions of the JRE, as detailed below.
+
+=============================
+Running With JRE 5.0 Or Later
+=============================
+
+(1) Download and Install the J2SE Runtime Environment (JRE)
+
+(1.1) Download the Java 2 Standard Edition Runtime Environment (JRE),
+ release version 5.0 or later, from http://java.sun.com/j2se.
+
+(1.2) Install the JRE according to the instructions included with the
+ release.
+
+(1.3) Set an environment variable named JAVA_HOME to the pathname of
+ the directory into which you installed the JRE, e.g. c:\j2sdk5.0
+ or /usr/local/java/j2sdk5.0.
+
+
+(2) Download and Install the Tomcat Binary Distribution
+
+NOTE: As an alternative to downloading a binary distribution, you can create
+your own from the Tomcat source repository, as described in "BUILDING.txt".
+If you do this, the value to use for "${catalina.home}" will be the "dist"
+subdirectory of your source distribution.
+
+(2.1) Download a binary distribution of Tomcat from:
+
+ http://jakarta.apache.org/site/binindex.cgi
+
+(2.2) Unpack the binary distribution into a convenient location so that the
+ distribution resides in its own directory (conventionally named
+ "jakarta-tomcat-5"). For the purposes of the remainder of this document,
+ the symbolic name "$CATALINA_HOME" is used to refer to the full
+ pathname of the release directory.
+
+
+(3) Start Up Tomcat
+
+(3.1) Tomcat can be started by executing the following commands:
+
+ $CATALINA_HOME\bin\startup.bat (Windows)
+
+ $CATALINA_HOME/bin/startup.sh (Unix)
+
+(3.2) After startup, the default web applications included with Tomcat will be
+ available by visiting:
+
+ http://localhost:8080/
+
+(3.3) Further information about configuring and running Tomcat can be found in
+ the documentation included here, as well as on the Tomcat web site:
+
+ http://jakarta.apache.org/tomcat/
+
+
+(4) Shut Down Tomcat
+
+(4.1) Tomcat can be shut down by executing the following command:
+
+ $CATALINA_HOME\bin\shutdown (Windows)
+
+ $CATALINA_HOME/bin/shutdown.sh (Unix)
+
+
+
+===========================================
+Running Tomcat With J2SE Version 1.4 or 1.3
+===========================================
+
+(1) Obtain the compat package:
+
+(1.1) Download the compat package from the binary download site:
+ http://jakarta.apache.org/site/binindex.cgi
+
+ * Or build this package yourself from the source code: see
+ "BUILDING.txt" in this directory.
+
+(2) Unzip the package in $CATALINA_HOME. It will place the XML
+ parser APIs and Xerces implementation in the common/endorsed
+ directory, and the JMX API jar (jmx.jar from Sun) in the bin
+ directory.
+
+(3) Follow the same directions for starting and stopping the
+ server as if you were using J2SE 5.0.
+
+
+====================================================
+Advanced Configuration - Multiple Tomcat Instances
+====================================================
+
+In many circumstances, it is desirable to have a single copy of a Tomcat
+binary distribution shared among multiple users on the same server. To make
+this possible, you can pass a "-Dcatalina.base=$CATALINA_BASE" argument when
+executing the startup command (see (2)). In this
+"-Dcatalina.base=$CATALINA_BASE" argument, replace $CATALINA_BASE with the
+directory that contains the files for your 'personal' Tomcat instance.
+
+When you use this "-Dcatalina.base=$CATALINA_BASE" argument, Tomcat will
+calculate all relative references for files in the following directories based
+on the value of $CATALINA_BASE instead of $CATALINA_HOME:
+
+* conf - Server configuration files (including server.xml)
+
+* logs - Log and output files
+
+* shared - For classes and resources that must be shared across all web
+ applications
+
+* webapps - Automatically loaded web applications
+
+* work - Temporary working directories for web applications
+
+* temp - Directory used by the JVM for temporary files (java.io.tmpdir)
+
+If you do not pass the "-Dcatalina.base=$CATALINA_BASE" argument to the
+startup command, $CATALINA_BASE will default to the same value as $CATALINA_HOME,
+ which means that the same directory is used for all relative path resolutions.
+
+The administration and manager web applications, which are defined in the
+$CATALINA_BASE/conf/Catalina/localhost/admin.xml
+and
+$CATALINA_BASE/conf/Catalina/localhost/manager.xml files, will
+not run in that configuration, unless either:
+- The path specified in the docBase attribute of the Context element is made
+ absolute, and replaced respectively by $CATALINA_HOME/server/webapps/admin
+ and $CATALINA_HOME/server/webapps/manager
+- Both web applications are copied or moved to $CATALINA_BASE,
+ and the path specified in the docBase attribute of the Context
+ element is modified appropriately.
+- Both web applications are disabled by removing
+ $CATALINA_BASE/conf/Catalina/localhost/admin.xml
+ and
+ $CATALINA_BASE/conf/Catalina/localhost/manager.xml.
+
+
+================
+Troubleshooting
+================
+
+There are only really 3 things likely to go wrong during the stand-alone
+Tomcat install:
+
+(1) The most common hiccup is when another web server (or any process for that
+ matter) has laid claim to port 8080. This is the default HTTP port that
+ Tomcat attempts to bind to at startup. To change this, open the file:
+
+ $CATALINA_HOME/conf/server.xml
+
+ and search for '8080'. Change it to a port that isn't in use, and is
+ greater than 1024, as ports less than or equal to 1024 require superuser
+ access to bind under UNIX.
+
+ Restart Tomcat and you're in business. Be sure that you replace the "8080"
+ in the URL you're using to access Tomcat. For example, if you change the
+ port to 1977, you would request the URL http://localhost:1977/ in your browser.
+
+(2) An "out of environment space" error when running the batch files in
+ Windows 95, 98, or ME operating systems.
+
+ Right-click on the STARTUP.BAT and SHUTDOWN.BAT files. Click on
+ "Properties", then on the "Memory" tab. For the "Initial environment" field,
+ enter in something like 4096.
+
+ After you click apply, Windows will create shortcuts which you can use
+ to start and stop the container.
+
+(3) The 'localhost' machine isn't found. This could happen if you're behind a
+ proxy. If that's the case, make sure the proxy configuration for your
+ browser knows that you shouldn't be going through the proxy to access the
+ "localhost".
+
+ In Netscape, this is under Edit/Preferences -> Advanced/Proxies, and in
+ Internet Explorer, Tools -> Internet Options -> Connections -> LAN Settings.
diff --git a/tomcat/bin/bootstrap.jar b/tomcat/bin/bootstrap.jar
new file mode 100644
index 0000000..2124844
Binary files /dev/null and b/tomcat/bin/bootstrap.jar differ
diff --git a/tomcat/bin/catalina.bat b/tomcat/bin/catalina.bat
new file mode 100644
index 0000000..9152a9b
--- /dev/null
+++ b/tomcat/bin/catalina.bat
@@ -0,0 +1,196 @@
+@echo off
+if "%OS%" == "Windows_NT" setlocal
+rem ---------------------------------------------------------------------------
+rem Start/Stop Script for the CATALINA Server
+rem
+rem Environment Variable Prequisites
+rem
+rem CATALINA_HOME May point at your Catalina "build" directory.
+rem
+rem CATALINA_BASE (Optional) Base directory for resolving dynamic portions
+rem of a Catalina installation. If not present, resolves to
+rem the same directory that CATALINA_HOME points to.
+rem
+rem CATALINA_OPTS (Optional) Java runtime options used when the "start",
+rem "stop", or "run" command is executed.
+rem
+rem CATALINA_TMPDIR (Optional) Directory path location of temporary directory
+rem the JVM should use (java.io.tmpdir). Defaults to
+rem %CATALINA_BASE%\temp.
+rem
+rem JAVA_HOME Must point at your Java Development Kit installation.
+rem
+rem JAVA_OPTS (Optional) Java runtime options used when the "start",
+rem "stop", or "run" command is executed.
+rem
+rem JSSE_HOME (Optional) May point at your Java Secure Sockets Extension
+rem (JSSE) installation, whose JAR files will be added to the
+rem system class path used to start Tomcat.
+rem
+rem JPDA_TRANSPORT (Optional) JPDA transport used when the "jpda start"
+rem command is executed. The default is "dt_shmem".
+rem
+rem JPDA_ADDRESS (Optional) Java runtime options used when the "jpda start"
+rem command is executed. The default is "jdbconn".
+rem
+rem $Id: catalina.bat,v 1.3 2005/05/17 16:50:43 aranganath Exp $
+rem ---------------------------------------------------------------------------
+
+rem Guess CATALINA_HOME if not defined
+set CURRENT_DIR=%cd%
+if not "%CATALINA_HOME%" == "" goto gotHome
+set CATALINA_HOME=%CURRENT_DIR%
+if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
+cd ..
+set CATALINA_HOME=%cd%
+cd %CURRENT_DIR%
+:gotHome
+if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
+echo The CATALINA_HOME environment variable is not defined correctly
+echo This environment variable is needed to run this program
+goto end
+:okHome
+
+rem Get standard environment variables
+if exist "%CATALINA_HOME%\bin\setenv.bat" call "%CATALINA_HOME%\bin\setenv.bat"
+
+rem Get standard Java environment variables
+if exist "%CATALINA_HOME%\bin\setclasspath.bat" goto okSetclasspath
+echo Cannot find %CATALINA_HOME%\bin\setclasspath.bat
+echo This file is needed to run this program
+goto end
+:okSetclasspath
+set BASEDIR=%CATALINA_HOME%
+call "%CATALINA_HOME%\bin\setclasspath.bat"
+
+rem Add on extra jar files to CLASSPATH
+if "%JSSE_HOME%" == "" goto noJsse
+set CLASSPATH=%CLASSPATH%;%JSSE_HOME%\lib\jcert.jar;%JSSE_HOME%\lib\jnet.jar;%JSSE_HOME%\lib\jsse.jar
+:noJsse
+set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\bin\bootstrap.jar
+
+if not "%CATALINA_BASE%" == "" goto gotBase
+set CATALINA_BASE=%CATALINA_HOME%
+:gotBase
+
+if not "%CATALINA_TMPDIR%" == "" goto gotTmpdir
+set CATALINA_TMPDIR=%CATALINA_BASE%\temp
+:gotTmpdir
+
+if not exist "%CATALINA_HOME%\bin\tomcat-juli.jar" goto noJuli
+set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
+:noJuli
+
+rem ----- Execute The Requested Command ---------------------------------------
+
+echo Using CATALINA_BASE: %CATALINA_BASE%
+echo Using CATALINA_HOME: %CATALINA_HOME%
+echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR%
+echo Using JAVA_HOME: %JAVA_HOME%
+
+set _EXECJAVA=%_RUNJAVA%
+set MAINCLASS=org.apache.catalina.startup.Bootstrap
+set ACTION=start
+set SECURITY_POLICY_FILE=
+set DEBUG_OPTS=
+set JPDA=
+
+if not ""%1"" == ""jpda"" goto noJpda
+set JPDA=jpda
+if not "%JPDA_TRANSPORT%" == "" goto gotJpdaTransport
+set JPDA_TRANSPORT=dt_shmem
+:gotJpdaTransport
+if not "%JPDA_ADDRESS%" == "" goto gotJpdaAddress
+set JPDA_ADDRESS=jdbconn
+:gotJpdaAddress
+shift
+:noJpda
+
+if ""%1"" == ""debug"" goto doDebug
+if ""%1"" == ""run"" goto doRun
+if ""%1"" == ""start"" goto doStart
+if ""%1"" == ""stop"" goto doStop
+if ""%1"" == ""version"" goto doVersion
+
+echo Usage: catalina ( commands ... )
+echo commands:
+echo debug Start Catalina in a debugger
+echo debug -security Debug Catalina with a security manager
+echo jpda start Start Catalina under JPDA debugger
+echo run Start Catalina in the current window
+echo run -security Start in the current window with security manager
+echo start Start Catalina in a separate window
+echo start -security Start in a separate window with security manager
+echo stop Stop Catalina
+echo version What version of tomcat are you running?
+goto end
+
+:doDebug
+shift
+set _EXECJAVA=%_RUNJDB%
+set DEBUG_OPTS=-sourcepath "%CATALINA_HOME%\..\..\jakarta-tomcat-catalina\catalina\src\share"
+if not ""%1"" == ""-security"" goto execCmd
+shift
+echo Using Security Manager
+set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy
+goto execCmd
+
+:doRun
+shift
+if not ""%1"" == ""-security"" goto execCmd
+shift
+echo Using Security Manager
+set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy
+goto execCmd
+
+:doStart
+shift
+if not "%OS%" == "Windows_NT" goto noTitle
+set _EXECJAVA=start "Tomcat" %_RUNJAVA%
+goto gotTitle
+:noTitle
+set _EXECJAVA=start %_RUNJAVA%
+:gotTitle
+if not ""%1"" == ""-security"" goto execCmd
+shift
+echo Using Security Manager
+set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy
+goto execCmd
+
+:doStop
+shift
+set ACTION=stop
+goto execCmd
+
+:doVersion
+%_EXECJAVA% -classpath "%CATALINA_HOME%\server\lib\catalina.jar" org.apache.catalina.util.ServerInfo
+goto end
+
+
+:execCmd
+rem Get remaining unshifted command line arguments and save them in the
+set CMD_LINE_ARGS=
+:setArgs
+if ""%1""=="""" goto doneSetArgs
+set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
+shift
+goto setArgs
+:doneSetArgs
+
+rem Execute Java with the applicable properties
+if not "%JPDA%" == "" goto doJpda
+if not "%SECURITY_POLICY_FILE%" == "" goto doSecurity
+%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
+goto end
+:doSecurity
+%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
+goto end
+:doJpda
+if not "%SECURITY_POLICY_FILE%" == "" goto doSecurityJpda
+%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% -Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=n %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
+goto end
+:doSecurityJpda
+%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% -Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=n %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
+goto end
+
+:end
diff --git a/tomcat/bin/catalina.sh b/tomcat/bin/catalina.sh
new file mode 100644
index 0000000..ef2bc9d
--- /dev/null
+++ b/tomcat/bin/catalina.sh
@@ -0,0 +1,310 @@
+#!/bin/sh
+# -----------------------------------------------------------------------------
+# Start/Stop Script for the CATALINA Server
+#
+# Environment Variable Prequisites
+#
+# CATALINA_HOME May point at your Catalina "build" directory.
+#
+# CATALINA_BASE (Optional) Base directory for resolving dynamic portions
+# of a Catalina installation. If not present, resolves to
+# the same directory that CATALINA_HOME points to.
+#
+# CATALINA_OPTS (Optional) Java runtime options used when the "start",
+# "stop", or "run" command is executed.
+#
+# CATALINA_TMPDIR (Optional) Directory path location of temporary directory
+# the JVM should use (java.io.tmpdir). Defaults to
+# $CATALINA_BASE/temp.
+#
+# JAVA_HOME Must point at your Java Development Kit installation.
+# Required to run the with the "debug" or "javac" argument.
+#
+# JRE_HOME Must point at your Java Development Kit installation.
+# Defaults to JAVA_HOME if empty.
+#
+# JAVA_OPTS (Optional) Java runtime options used when the "start",
+# "stop", or "run" command is executed.
+#
+# JPDA_TRANSPORT (Optional) JPDA transport used when the "jpda start"
+# command is executed. The default is "dt_socket".
+#
+# JPDA_ADDRESS (Optional) Java runtime options used when the "jpda start"
+# command is executed. The default is 8000.
+#
+# JSSE_HOME (Optional) May point at your Java Secure Sockets Extension
+# (JSSE) installation, whose JAR files will be added to the
+# system class path used to start Tomcat.
+#
+# CATALINA_PID (Optional) Path of the file which should contains the pid
+# of catalina startup java process, when start (fork) is used
+#
+# $Id: catalina.sh,v 1.3 2005/05/17 16:50:44 aranganath Exp $
+# -----------------------------------------------------------------------------
+
+# OS specific support. $var _must_ be set to either true or false.
+cygwin=false
+os400=false
+case "`uname`" in
+CYGWIN*) cygwin=true;;
+OS400*) os400=true;;
+esac
+
+# resolve links - $0 may be a softlink
+PRG="$0"
+
+while [ -h "$PRG" ]; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '.*/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`/"$link"
+ fi
+done
+
+# Get standard environment variables
+PRGDIR=`dirname "$PRG"`
+
+# Only set CATALINA_HOME if not already set
+[ -z "$CATALINA_HOME" ] && CATALINA_HOME=`cd "$PRGDIR/.." ; pwd`
+
+if [ -r "$CATALINA_HOME"/bin/setenv.sh ]; then
+ . "$CATALINA_HOME"/bin/setenv.sh
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin; then
+ [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+ [ -n "$JRE_HOME" ] && JRE_HOME=`cygpath --unix "$JRE_HOME"`
+ [ -n "$CATALINA_HOME" ] && CATALINA_HOME=`cygpath --unix "$CATALINA_HOME"`
+ [ -n "$CATALINA_BASE" ] && CATALINA_BASE=`cygpath --unix "$CATALINA_BASE"`
+ [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+ [ -n "$JSSE_HOME" ] && JSSE_HOME=`cygpath --absolute --unix "$JSSE_HOME"`
+fi
+
+# For OS400
+if $os400; then
+ # Set job priority to standard for interactive (interactive - 6) by using
+ # the interactive priority - 6, the helper threads that respond to requests
+ # will be running at the same priority as interactive jobs.
+ COMMAND='chgjob job('$JOBNAME') runpty(6)'
+ system $COMMAND
+
+ # Enable multi threading
+ export QIBM_MULTI_THREADED=Y
+fi
+
+# Get standard Java environment variables
+if $os400; then
+ # -r will Only work on the os400 if the files are:
+ # 1. owned by the user
+ # 2. owned by the PRIMARY group of the user
+ # this will not work if the user belongs in secondary groups
+ BASEDIR="$CATALINA_HOME"
+ . "$CATALINA_HOME"/bin/setclasspath.sh
+else
+ if [ -r "$CATALINA_HOME"/bin/setclasspath.sh ]; then
+ BASEDIR="$CATALINA_HOME"
+ . "$CATALINA_HOME"/bin/setclasspath.sh
+ else
+ echo "Cannot find $CATALINA_HOME/bin/setclasspath.sh"
+ echo "This file is needed to run this program"
+ exit 1
+ fi
+fi
+
+# Set juli LogManager if it is present
+if [ -r "$CATALINA_HOME"/bin/tomcat-juli.jar ]; then
+ JAVA_OPTS="$JAVA_OPTS "-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
+fi
+
+# Add on extra jar files to CLASSPATH
+if [ -n "$JSSE_HOME" ]; then
+ CLASSPATH="$CLASSPATH":"$JSSE_HOME"/lib/jcert.jar:"$JSSE_HOME"/lib/jnet.jar:"$JSSE_HOME"/lib/jsse.jar
+fi
+CLASSPATH="$CLASSPATH":"$CATALINA_HOME"/bin/bootstrap.jar:"$CATALINA_HOME"/bin/commons-logging-api.jar
+
+if [ -z "$CATALINA_BASE" ] ; then
+ CATALINA_BASE="$CATALINA_HOME"
+fi
+
+if [ -z "$CATALINA_TMPDIR" ] ; then
+ # Define the java.io.tmpdir to use for Catalina
+ CATALINA_TMPDIR="$CATALINA_BASE"/temp
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+ JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"`
+ JRE_HOME=`cygpath --absolute --windows "$JRE_HOME"`
+ CATALINA_HOME=`cygpath --absolute --windows "$CATALINA_HOME"`
+ CATALINA_BASE=`cygpath --absolute --windows "$CATALINA_BASE"`
+ CATALINA_TMPDIR=`cygpath --absolute --windows "$CATALINA_TMPDIR"`
+ CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+ [ -n "$JSSE_HOME" ] && JSSE_HOME=`cygpath --absolute --windows "$JSSE_HOME"`
+ JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"`
+fi
+
+# ----- Execute The Requested Command -----------------------------------------
+
+echo "Using CATALINA_BASE: $CATALINA_BASE"
+echo "Using CATALINA_HOME: $CATALINA_HOME"
+echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"
+if [ "$1" = "debug" -o "$1" = "javac" ] ; then
+ echo "Using JAVA_HOME: $JAVA_HOME"
+else
+ echo "Using JRE_HOME: $JRE_HOME"
+fi
+
+if [ "$1" = "jpda" ] ; then
+ if [ -z "$JPDA_TRANSPORT" ]; then
+ JPDA_TRANSPORT="dt_socket"
+ fi
+ if [ -z "$JPDA_ADDRESS" ]; then
+ JPDA_ADDRESS="8000"
+ fi
+ if [ -z "$JPDA_OPTS" ]; then
+ JPDA_OPTS="-Xdebug -Xrunjdwp:transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=n"
+ fi
+ CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS"
+ shift
+fi
+
+if [ "$1" = "debug" ] ; then
+ if $os400; then
+ echo "Debug command not available on OS400"
+ exit 1
+ else
+ shift
+ if [ "$1" = "-security" ] ; then
+ echo "Using Security Manager"
+ shift
+ exec "$_RUNJDB" $JAVA_OPTS $CATALINA_OPTS \
+ -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+ -sourcepath "$CATALINA_HOME"/../../jakarta-tomcat-catalina/catalina/src/share \
+ -Djava.security.manager \
+ -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \
+ -Dcatalina.base="$CATALINA_BASE" \
+ -Dcatalina.home="$CATALINA_HOME" \
+ -Djava.io.tmpdir="$CATALINA_TMPDIR" \
+ org.apache.catalina.startup.Bootstrap "$@" start
+ else
+ exec "$_RUNJDB" $JAVA_OPTS $CATALINA_OPTS \
+ -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+ -sourcepath "$CATALINA_HOME"/../../jakarta-tomcat-catalina/catalina/src/share \
+ -Dcatalina.base="$CATALINA_BASE" \
+ -Dcatalina.home="$CATALINA_HOME" \
+ -Djava.io.tmpdir="$CATALINA_TMPDIR" \
+ org.apache.catalina.startup.Bootstrap "$@" start
+ fi
+ fi
+
+elif [ "$1" = "run" ]; then
+
+ shift
+ if [ "$1" = "-security" ] ; then
+ echo "Using Security Manager"
+ shift
+ exec "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \
+ -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+ -Djava.security.manager \
+ -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \
+ -Dcatalina.base="$CATALINA_BASE" \
+ -Dcatalina.home="$CATALINA_HOME" \
+ -Djava.io.tmpdir="$CATALINA_TMPDIR" \
+ org.apache.catalina.startup.Bootstrap "$@" start
+ else
+ exec "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \
+ -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+ -Dcatalina.base="$CATALINA_BASE" \
+ -Dcatalina.home="$CATALINA_HOME" \
+ -Djava.io.tmpdir="$CATALINA_TMPDIR" \
+ org.apache.catalina.startup.Bootstrap "$@" start
+ fi
+
+elif [ "$1" = "start" ] ; then
+
+ shift
+ touch "$CATALINA_BASE"/logs/catalina.out
+ if [ "$1" = "-security" ] ; then
+ echo "Using Security Manager"
+ shift
+ "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \
+ -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+ -Djava.security.manager \
+ -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy \
+ -Dcatalina.base="$CATALINA_BASE" \
+ -Dcatalina.home="$CATALINA_HOME" \
+ -Djava.io.tmpdir="$CATALINA_TMPDIR" \
+ org.apache.catalina.startup.Bootstrap "$@" start \
+ >> "$CATALINA_BASE"/logs/catalina.out 2>&1 &
+
+ if [ ! -z "$CATALINA_PID" ]; then
+ echo $! > $CATALINA_PID
+ fi
+ else
+ "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \
+ -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+ -Dcatalina.base="$CATALINA_BASE" \
+ -Dcatalina.home="$CATALINA_HOME" \
+ -Djava.io.tmpdir="$CATALINA_TMPDIR" \
+ org.apache.catalina.startup.Bootstrap "$@" start \
+ >> "$CATALINA_BASE"/logs/catalina.out 2>&1 &
+
+ if [ ! -z "$CATALINA_PID" ]; then
+ echo $! > $CATALINA_PID
+ fi
+ fi
+
+elif [ "$1" = "stop" ] ; then
+
+ shift
+ FORCE=0
+ if [ "$1" = "-force" ]; then
+ shift
+ FORCE=1
+ fi
+
+ "$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \
+ -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+ -Dcatalina.base="$CATALINA_BASE" \
+ -Dcatalina.home="$CATALINA_HOME" \
+ -Djava.io.tmpdir="$CATALINA_TMPDIR" \
+ org.apache.catalina.startup.Bootstrap "$@" stop
+
+ if [ $FORCE -eq 1 ]; then
+ if [ ! -z "$CATALINA_PID" ]; then
+ echo "Killing: `cat $CATALINA_PID`"
+ kill -9 `cat $CATALINA_PID`
+ fi
+ fi
+
+elif [ "$1" = "version" ] ; then
+
+ "$_RUNJAVA" \
+ -classpath "$CATALINA_HOME/server/lib/catalina.jar" \
+ org.apache.catalina.util.ServerInfo
+
+else
+
+ echo "Usage: catalina.sh ( commands ... )"
+ echo "commands:"
+ if $os400; then
+ echo " debug Start Catalina in a debugger (not available on OS400)"
+ echo " debug -security Debug Catalina with a security manager (not available on OS400)"
+ else
+ echo " debug Start Catalina in a debugger"
+ echo " debug -security Debug Catalina with a security manager"
+ fi
+ echo " jpda start Start Catalina under JPDA debugger"
+ echo " run Start Catalina in the current window"
+ echo " run -security Start in the current window with security manager"
+ echo " start Start Catalina in a separate window"
+ echo " start -security Start in a separate window with security manager"
+ echo " stop Stop Catalina"
+ echo " stop -force Stop Catalina (followed by kill -KILL)"
+ echo " version What version of tomcat are you running?"
+ exit 1
+
+fi
diff --git a/tomcat/bin/commons-daemon.jar b/tomcat/bin/commons-daemon.jar
new file mode 100644
index 0000000..4e4fcd4
Binary files /dev/null and b/tomcat/bin/commons-daemon.jar differ
diff --git a/tomcat/bin/commons-logging-api.jar b/tomcat/bin/commons-logging-api.jar
new file mode 100644
index 0000000..ade9a13
Binary files /dev/null and b/tomcat/bin/commons-logging-api.jar differ
diff --git a/tomcat/bin/cpappend.bat b/tomcat/bin/cpappend.bat
new file mode 100644
index 0000000..415be25
--- /dev/null
+++ b/tomcat/bin/cpappend.bat
@@ -0,0 +1,19 @@
+rem ---------------------------------------------------------------------------
+rem Append to CLASSPATH
+rem
+rem $Id: cpappend.bat,v 1.3 2005/05/17 16:50:45 aranganath Exp $
+rem ---------------------------------------------------------------------------
+
+rem Process the first argument
+if ""%1"" == """" goto end
+set CLASSPATH=%CLASSPATH%;%1
+shift
+
+rem Process the remaining arguments
+:setArgs
+if ""%1"" == """" goto doneSetArgs
+set CLASSPATH=%CLASSPATH% %1
+shift
+goto setArgs
+:doneSetArgs
+:end
diff --git a/tomcat/bin/digest.bat b/tomcat/bin/digest.bat
new file mode 100644
index 0000000..a6e449a
--- /dev/null
+++ b/tomcat/bin/digest.bat
@@ -0,0 +1,41 @@
+@echo off
+if "%OS%" == "Windows_NT" setlocal
+rem ---------------------------------------------------------------------------
+rem Script to digest password using the algorithm specified
+rem
+rem $Id: digest.bat,v 1.3 2005/05/17 16:50:44 aranganath Exp $
+rem ---------------------------------------------------------------------------
+
+rem Guess CATALINA_HOME if not defined
+if not "%CATALINA_HOME%" == "" goto gotHome
+set CATALINA_HOME=.
+if exist "%CATALINA_HOME%\bin\tool-wrapper.bat" goto okHome
+set CATALINA_HOME=..
+:gotHome
+if exist "%CATALINA_HOME%\bin\tool-wrapper.bat" goto okHome
+echo The CATALINA_HOME environment variable is not defined correctly
+echo This environment variable is needed to run this program
+goto end
+:okHome
+
+set EXECUTABLE=%CATALINA_HOME%\bin\tool-wrapper.bat
+
+rem Check that target executable exists
+if exist "%EXECUTABLE%" goto okExec
+echo Cannot find %EXECUTABLE%
+echo This file is needed to run this program
+goto end
+:okExec
+
+rem Get remaining unshifted command line arguments and save them in the
+set CMD_LINE_ARGS=
+:setArgs
+if ""%1""=="""" goto doneSetArgs
+set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
+shift
+goto setArgs
+:doneSetArgs
+
+call "%EXECUTABLE%" -server org.apache.catalina.realm.RealmBase %CMD_LINE_ARGS%
+
+:end
diff --git a/tomcat/bin/digest.sh b/tomcat/bin/digest.sh
new file mode 100644
index 0000000..8eab113
--- /dev/null
+++ b/tomcat/bin/digest.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+# -----------------------------------------------------------------------------
+# Script to digest password using the algorithm specified
+#
+# $Id: digest.sh,v 1.3 2005/05/17 16:50:45 aranganath Exp $
+# -----------------------------------------------------------------------------
+
+# resolve links - $0 may be a softlink
+PRG="$0"
+
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '.*/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`/"$link"
+ fi
+done
+
+PRGDIR=`dirname "$PRG"`
+EXECUTABLE=tool-wrapper.sh
+
+# Check that target executable exists
+if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then
+ echo "Cannot find $PRGDIR/$EXECUTABLE"
+ echo "This file is needed to run this program"
+ exit 1
+fi
+
+exec "$PRGDIR"/"$EXECUTABLE" -server org.apache.catalina.realm.RealmBase "$@"
diff --git a/tomcat/bin/jmx.jar b/tomcat/bin/jmx.jar
new file mode 100644
index 0000000..e5dafc1
Binary files /dev/null and b/tomcat/bin/jmx.jar differ
diff --git a/tomcat/bin/jsvc.tar.gz b/tomcat/bin/jsvc.tar.gz
new file mode 100644
index 0000000..b58f145
Binary files /dev/null and b/tomcat/bin/jsvc.tar.gz differ
diff --git a/tomcat/bin/service.bat b/tomcat/bin/service.bat
new file mode 100644
index 0000000..17dfc23
--- /dev/null
+++ b/tomcat/bin/service.bat
@@ -0,0 +1,111 @@
+@echo off
+if "%OS%" == "Windows_NT" setlocal
+rem ---------------------------------------------------------------------------
+rem NT Service Install/Uninstall script
+rem
+rem Options
+rem install Install the service using Tomcat5 as service name.
+rem Service is installed using default settings.
+rem remove Remove the service from the System.
+rem
+rem name (optional) If the second argument is present it is considered
+rem to be new service name
+rem
+rem $Id: service.bat,v 1.3 2005/05/17 16:50:44 aranganath Exp $
+rem ---------------------------------------------------------------------------
+
+rem Guess CATALINA_HOME if not defined
+set CURRENT_DIR=%cd%
+if not "%CATALINA_HOME%" == "" goto gotHome
+set CATALINA_HOME=%cd%
+if exist "%CATALINA_HOME%\bin\tomcat5.exe" goto okHome
+rem CD to the upper dir
+cd ..
+set CATALINA_HOME=%cd%
+:gotHome
+if exist "%CATALINA_HOME%\bin\tomcat5.exe" goto okHome
+echo The tomcat.exe was not found...
+echo The CATALINA_HOME environment variable is not defined correctly.
+echo This environment variable is needed to run this program
+goto end
+rem Make sure prerequisite environment variables are set
+if not "%JAVA_HOME%" == "" goto okHome
+echo The JAVA_HOME environment variable is not defined
+echo This environment variable is needed to run this program
+goto end
+:okHome
+if not "%CATALINA_BASE%" == "" goto gotBase
+set CATALINA_BASE=%CATALINA_HOME%
+:gotBase
+
+set EXECUTABLE=%CATALINA_HOME%\bin\tomcat5.exe
+
+rem Set default Service name
+set SERVICE_NAME=Tomcat5
+set PR_DISPLAYNAME=Apache Tomcat
+
+if "%1" == "" goto displayUsage
+if "%2" == "" goto setServiceName
+set SERVICE_NAME=%2
+set PR_DISPLAYNAME=Apache Tomcat %2
+:setServiceName
+if %1 == install goto doInstall
+if %1 == remove goto doRemove
+if %1 == uninstall goto doRemove
+echo Unknown parameter "%1"
+:displayUsage
+echo
+echo Usage: service.bat install/remove [service_name]
+goto end
+
+:doRemove
+rem Remove the service
+"%EXECUTABLE%" //DS//%SERVICE_NAME%
+echo The service '%SERVICE_NAME%' has been removed
+goto end
+
+:doInstall
+rem Install the service
+echo Installing the service '%SERVICE_NAME%' ...
+echo Using CATALINA_HOME: %CATALINA_HOME%
+echo Using JAVA_HOME: %JAVA_HOME%
+
+rem Use the environment variables as an exaple
+rem Each command line option is prefixed with PR_
+
+set PR_DESCRIPTION=Apache Tomcat Server - http://jakarta.apache.org/tomcat
+set PR_INSTALL=%EXECUTABLE%
+set PR_LOGPATH=%CATALINA_HOME%\logs
+set PR_CLASSPATH=%CATALINA_HOME%\bin\bootstrap.jar
+rem Set the server jvm from JAVA_HOME
+set PR_JVM=%JAVA_HOME%\jre\bin\server\jvm.dll
+if exist "%PR_JVM%" goto foundJvm
+rem Set the client jvm from JAVA_HOME
+set PR_JVM=%JAVA_HOME%\jre\bin\client\jvm.dll
+if exist "%PR_JVM%" goto foundJvm
+set PR_JVM=auto
+:foundJvm
+echo Using JVM: %PR_JVM%
+"%EXECUTABLE%" //IS//%SERVICE_NAME% --StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap --StartParams start --StopParams stop
+if not errorlevel 1 goto installed
+echo Failed installing '%SERVICE_NAME%' service
+goto end
+:installed
+rem Clear the environment variables. They are not needed any more.
+set PR_DISPLAYNAME=
+set PR_DESCRIPTION=
+set PR_INSTALL=
+set PR_LOGPATH=
+set PR_CLASSPATH=
+set PR_JVM=
+rem Set extra parameters
+"%EXECUTABLE%" //US//%SERVICE_NAME% --JvmOptions "-Dcatalina.base=%CATALINA_BASE%;-Dcatalina.home=%CATALINA_HOME%;-Djava.endorsed.dirs=%CATALINA_HOME%\common\endorsed" --StartMode jvm --StopMode jvm
+rem More extra parameters
+set PR_LOGPATH=%CATALINA_HOME%\logs
+set PR_STDOUTPUT=auto
+set PR_STDERROR=auto
+"%EXECUTABLE%" //US//%SERVICE_NAME% ++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp" --JvmMs 128 --JvmMx 256
+echo The service '%SERVICE_NAME%' has been installed.
+
+:end
+cd %CURRENT_DIR%
diff --git a/tomcat/bin/setclasspath.bat b/tomcat/bin/setclasspath.bat
new file mode 100644
index 0000000..3bb9a93
--- /dev/null
+++ b/tomcat/bin/setclasspath.bat
@@ -0,0 +1,57 @@
+rem ---------------------------------------------------------------------------
+rem Set CLASSPATH and Java options
+rem
+rem $Id: setclasspath.bat,v 1.3 2005/05/17 16:50:45 aranganath Exp $
+rem ---------------------------------------------------------------------------
+
+rem Make sure prerequisite environment variables are set
+if not "%JAVA_HOME%" == "" goto gotJavaHome
+echo The JAVA_HOME environment variable is not defined
+echo This environment variable is needed to run this program
+goto exit
+:gotJavaHome
+if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome
+if not exist "%JAVA_HOME%\bin\javaw.exe" goto noJavaHome
+if not exist "%JAVA_HOME%\bin\jdb.exe" goto noJavaHome
+if not exist "%JAVA_HOME%\bin\javac.exe" goto noJavaHome
+goto okJavaHome
+:noJavaHome
+echo The JAVA_HOME environment variable is not defined correctly
+echo This environment variable is needed to run this program
+echo NB: JAVA_HOME should point to a JDK not a JRE
+goto exit
+:okJavaHome
+
+if not "%BASEDIR%" == "" goto gotBasedir
+echo The BASEDIR environment variable is not defined
+echo This environment variable is needed to run this program
+goto exit
+:gotBasedir
+if exist "%BASEDIR%\bin\setclasspath.bat" goto okBasedir
+echo The BASEDIR environment variable is not defined correctly
+echo This environment variable is needed to run this program
+goto exit
+:okBasedir
+
+rem Set the default -Djava.endorsed.dirs argument
+set JAVA_ENDORSED_DIRS=%BASEDIR%\common\endorsed
+
+rem Set standard CLASSPATH
+rem Note that there are no quotes as we do not want to introduce random
+rem quotes into the CLASSPATH
+set CLASSPATH=%JAVA_HOME%\lib\tools.jar
+
+rem Set standard command for invoking Java.
+rem Note that NT requires a window name argument when using start.
+rem Also note the quoting as JAVA_HOME may contain spaces.
+set _RUNJAVA="%JAVA_HOME%\bin\java"
+set _RUNJAVAW="%JAVA_HOME%\bin\javaw"
+set _RUNJDB="%JAVA_HOME%\bin\jdb"
+set _RUNJAVAC="%JAVA_HOME%\bin\javac"
+
+goto end
+
+:exit
+exit /b 1
+
+:end
diff --git a/tomcat/bin/setclasspath.sh b/tomcat/bin/setclasspath.sh
new file mode 100644
index 0000000..2d5da34
--- /dev/null
+++ b/tomcat/bin/setclasspath.sh
@@ -0,0 +1,85 @@
+# -----------------------------------------------------------------------------
+# Set CLASSPATH and Java options
+#
+# $Id: setclasspath.sh,v 1.3 2005/05/17 16:50:43 aranganath Exp $
+# -----------------------------------------------------------------------------
+
+# First clear out the user classpath
+CLASSPATH=
+
+# Make sure prerequisite environment variables are set
+if [ -z "$JAVA_HOME" -a -z "$JRE_HOME" ]; then
+ echo "Neither the JAVA_HOME nor the JRE_HOME environment variable is defined"
+ echo "At least one of these environment variable is needed to run this program"
+ exit 1
+fi
+if [ -z "$JAVA_HOME" -a "$1" = "debug" ]; then
+ echo "JAVA_HOME should point to a JDK in order to run in debug mode."
+ exit 1
+fi
+if [ -z "$JRE_HOME" ]; then
+ JRE_HOME="$JAVA_HOME"
+fi
+
+# If we're running under jdb, we need a full jdk.
+if [ "$1" = "debug" -o "$1" = "javac" ] ; then
+ if [ "$os400" = "true" ]; then
+ if [ ! -x "$JAVA_HOME"/bin/java -o ! -x "$JAVA_HOME"/bin/javac ]; then
+ echo "The JAVA_HOME environment variable is not defined correctly"
+ echo "This environment variable is needed to run this program"
+ echo "NB: JAVA_HOME should point to a JDK not a JRE"
+ exit 1
+ fi
+ else
+ if [ ! -x "$JAVA_HOME"/bin/java -o ! -x "$JAVA_HOME"/bin/jdb -o ! -x "$JAVA_HOME"/bin/javac ]; then
+ echo "The JAVA_HOME environment variable is not defined correctly"
+ echo "This environment variable is needed to run this program"
+ echo "NB: JAVA_HOME should point to a JDK not a JRE"
+ exit 1
+ fi
+ fi
+fi
+if [ -z "$BASEDIR" ]; then
+ echo "The BASEDIR environment variable is not defined"
+ echo "This environment variable is needed to run this program"
+ exit 1
+fi
+if [ ! -x "$BASEDIR"/bin/setclasspath.sh ]; then
+ if $os400; then
+ # -x will Only work on the os400 if the files are:
+ # 1. owned by the user
+ # 2. owned by the PRIMARY group of the user
+ # this will not work if the user belongs in secondary groups
+ eval
+ else
+ echo "The BASEDIR environment variable is not defined correctly"
+ echo "This environment variable is needed to run this program"
+ exit 1
+ fi
+fi
+
+# Set the default -Djava.endorsed.dirs argument
+JAVA_ENDORSED_DIRS="$BASEDIR"/common/endorsed
+
+# Set standard CLASSPATH
+if [ "$1" = "debug" -o "$1" = "javac" ] ; then
+ CLASSPATH="$JAVA_HOME"/lib/tools.jar
+fi
+
+# OSX hack to CLASSPATH
+JIKESPATH=
+if [ `uname -s` = "Darwin" ]; then
+ OSXHACK="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Classes"
+ if [ -d "$OSXHACK" ]; then
+ for i in "$OSXHACK"/*.jar; do
+ JIKESPATH="$JIKESPATH":"$i"
+ done
+ fi
+fi
+
+# Set standard commands for invoking Java.
+ _RUNJAVA="$JRE_HOME"/bin/java
+if [ "$os400" != "true" ]; then
+ _RUNJDB="$JAVA_HOME"/bin/jdb
+fi
+_RUNJAVAC="$JAVA_HOME"/bin/javac
diff --git a/tomcat/bin/shutdown.bat b/tomcat/bin/shutdown.bat
new file mode 100644
index 0000000..b965729
--- /dev/null
+++ b/tomcat/bin/shutdown.bat
@@ -0,0 +1,44 @@
+@echo off
+if "%OS%" == "Windows_NT" setlocal
+rem ---------------------------------------------------------------------------
+rem Stop script for the CATALINA Server
+rem
+rem $Id: shutdown.bat,v 1.3 2005/05/17 16:50:43 aranganath Exp $
+rem ---------------------------------------------------------------------------
+
+rem Guess CATALINA_HOME if not defined
+set CURRENT_DIR=%cd%
+if not "%CATALINA_HOME%" == "" goto gotHome
+set CATALINA_HOME=%CURRENT_DIR%
+if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
+cd ..
+set CATALINA_HOME=%cd%
+cd %CURRENT_DIR%
+:gotHome
+if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
+echo The CATALINA_HOME environment variable is not defined correctly
+echo This environment variable is needed to run this program
+goto end
+:okHome
+
+set EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat
+
+rem Check that target executable exists
+if exist "%EXECUTABLE%" goto okExec
+echo Cannot find %EXECUTABLE%
+echo This file is needed to run this program
+goto end
+:okExec
+
+rem Get remaining unshifted command line arguments and save them in the
+set CMD_LINE_ARGS=
+:setArgs
+if ""%1""=="""" goto doneSetArgs
+set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
+shift
+goto setArgs
+:doneSetArgs
+
+call "%EXECUTABLE%" stop %CMD_LINE_ARGS%
+
+:end
diff --git a/tomcat/bin/shutdown.sh b/tomcat/bin/shutdown.sh
new file mode 100644
index 0000000..8995889
--- /dev/null
+++ b/tomcat/bin/shutdown.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+# -----------------------------------------------------------------------------
+# Stop script for the CATALINA Server
+#
+# $Id: shutdown.sh,v 1.3 2005/05/17 16:50:43 aranganath Exp $
+# -----------------------------------------------------------------------------
+
+# resolve links - $0 may be a softlink
+PRG="$0"
+
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '.*/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`/"$link"
+ fi
+done
+
+PRGDIR=`dirname "$PRG"`
+EXECUTABLE=catalina.sh
+
+# Check that target executable exists
+if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then
+ echo "Cannot find $PRGDIR/$EXECUTABLE"
+ echo "This file is needed to run this program"
+ exit 1
+fi
+
+exec "$PRGDIR"/"$EXECUTABLE" stop "$@"
diff --git a/tomcat/bin/startup.bat b/tomcat/bin/startup.bat
new file mode 100644
index 0000000..3ae6cd8
--- /dev/null
+++ b/tomcat/bin/startup.bat
@@ -0,0 +1,44 @@
+@echo off
+if "%OS%" == "Windows_NT" setlocal
+rem ---------------------------------------------------------------------------
+rem Start script for the CATALINA Server
+rem
+rem $Id: startup.bat,v 1.3 2005/05/17 16:50:45 aranganath Exp $
+rem ---------------------------------------------------------------------------
+
+rem Guess CATALINA_HOME if not defined
+set CURRENT_DIR=%cd%
+if not "%CATALINA_HOME%" == "" goto gotHome
+set CATALINA_HOME=%CURRENT_DIR%
+if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
+cd ..
+set CATALINA_HOME=%cd%
+cd %CURRENT_DIR%
+:gotHome
+if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
+echo The CATALINA_HOME environment variable is not defined correctly
+echo This environment variable is needed to run this program
+goto end
+:okHome
+
+set EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat
+
+rem Check that target executable exists
+if exist "%EXECUTABLE%" goto okExec
+echo Cannot find %EXECUTABLE%
+echo This file is needed to run this program
+goto end
+:okExec
+
+rem Get remaining unshifted command line arguments and save them in the
+set CMD_LINE_ARGS=
+:setArgs
+if ""%1""=="""" goto doneSetArgs
+set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
+shift
+goto setArgs
+:doneSetArgs
+
+call "%EXECUTABLE%" start %CMD_LINE_ARGS%
+
+:end
diff --git a/tomcat/bin/startup.sh b/tomcat/bin/startup.sh
new file mode 100644
index 0000000..eb79a60
--- /dev/null
+++ b/tomcat/bin/startup.sh
@@ -0,0 +1,46 @@
+#!/bin/sh
+# -----------------------------------------------------------------------------
+# Start Script for the CATALINA Server
+#
+# $Id: startup.sh,v 1.3 2005/05/17 16:50:45 aranganath Exp $
+# -----------------------------------------------------------------------------
+
+# Better OS/400 detection: see Bugzilla 31132
+os400=false
+case "`uname`" in
+CYGWIN*) cygwin=true;;
+OS400*) os400=true;;
+esac
+
+# resolve links - $0 may be a softlink
+PRG="$0"
+
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '.*/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`/"$link"
+ fi
+done
+
+PRGDIR=`dirname "$PRG"`
+EXECUTABLE=catalina.sh
+
+# Check that target executable exists
+if $os400; then
+ # -x will Only work on the os400 if the files are:
+ # 1. owned by the user
+ # 2. owned by the PRIMARY group of the user
+ # this will not work if the user belongs in secondary groups
+ eval
+else
+ if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then
+ echo "Cannot find $PRGDIR/$EXECUTABLE"
+ echo "This file is needed to run this program"
+ exit 1
+ fi
+fi
+
+exec "$PRGDIR"/"$EXECUTABLE" start "$@"
diff --git a/tomcat/bin/tomcat-juli.jar b/tomcat/bin/tomcat-juli.jar
new file mode 100644
index 0000000..a957806
Binary files /dev/null and b/tomcat/bin/tomcat-juli.jar differ
diff --git a/tomcat/bin/tool-wrapper.bat b/tomcat/bin/tool-wrapper.bat
new file mode 100644
index 0000000..1495bef
--- /dev/null
+++ b/tomcat/bin/tool-wrapper.bat
@@ -0,0 +1,59 @@
+@echo off
+if "%OS%" == "Windows_NT" setlocal
+rem ---------------------------------------------------------------------------
+rem Wrapper script for command line tools
+rem
+rem Environment Variable Prequisites
+rem
+rem CATALINA_HOME May point at your Catalina "build" directory.
+rem
+rem TOOL_OPTS (Optional) Java runtime options used when the "start",
+rem "stop", or "run" command is executed.
+rem
+rem JAVA_HOME Must point at your Java Development Kit installation.
+rem
+rem JAVA_OPTS (Optional) Java runtime options used when the "start",
+rem "stop", or "run" command is executed.
+rem
+rem $Id: tool-wrapper.bat,v 1.3 2005/05/17 16:50:43 aranganath Exp $
+rem ---------------------------------------------------------------------------
+
+rem Guess CATALINA_HOME if not defined
+if not "%CATALINA_HOME%" == "" goto gotHome
+set CATALINA_HOME=.
+if exist "%CATALINA_HOME%\bin\tool-wrapper.bat" goto okHome
+set CATALINA_HOME=..
+:gotHome
+if exist "%CATALINA_HOME%\bin\tool-wrapper.bat" goto okHome
+echo The CATALINA_HOME environment variable is not defined correctly
+echo This environment variable is needed to run this program
+goto end
+:okHome
+
+rem Get standard environment variables
+if exist "%CATALINA_HOME%\bin\setenv.bat" call "%CATALINA_HOME%\bin\setenv.bat"
+
+rem Get standard Java environment variables
+if exist "%CATALINA_HOME%\bin\setclasspath.bat" goto okSetclasspath
+echo Cannot find %CATALINA_HOME%\bin\setclasspath.bat
+echo This file is needed to run this program
+goto end
+:okSetclasspath
+set BASEDIR=%CATALINA_HOME%
+call "%CATALINA_HOME%\bin\setclasspath.bat"
+
+rem Add on extra jar files to CLASSPATH
+set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\bin\bootstrap.jar;"%BASEDIR%"\common\lib\jmx.jar;"%BASEDIR%"\common\lib\servlet-api.jar
+
+rem Get remaining unshifted command line arguments and save them in the
+set CMD_LINE_ARGS=
+:setArgs
+if ""%1""=="""" goto doneSetArgs
+set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
+shift
+goto setArgs
+:doneSetArgs
+
+%_RUNJAVA% %JAVA_OPTS% %TOOL_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.home="%CATALINA_HOME%" org.apache.catalina.startup.Tool %CMD_LINE_ARGS%
+
+:end
diff --git a/tomcat/bin/tool-wrapper.sh b/tomcat/bin/tool-wrapper.sh
new file mode 100644
index 0000000..91b2602
--- /dev/null
+++ b/tomcat/bin/tool-wrapper.sh
@@ -0,0 +1,78 @@
+#!/bin/sh
+# -----------------------------------------------------------------------------
+# Wrapper script for command line tools
+#
+# Environment Variable Prequisites
+#
+# CATALINA_HOME May point at your Catalina "build" directory.
+#
+# TOOL_OPTS (Optional) Java runtime options used when the "start",
+# "stop", or "run" command is executed.
+#
+# JAVA_HOME Must point at your Java Development Kit installation.
+#
+# JAVA_OPTS (Optional) Java runtime options used when the "start",
+# "stop", or "run" command is executed.
+#
+# $Id: tool-wrapper.sh,v 1.3 2005/05/17 16:50:45 aranganath Exp $
+# -----------------------------------------------------------------------------
+
+# OS specific support. $var _must_ be set to either true or false.
+cygwin=false
+case "`uname`" in
+CYGWIN*) cygwin=true;;
+esac
+
+# resolve links - $0 may be a softlink
+PRG="$0"
+
+while [ -h "$PRG" ]; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '.*/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`/"$link"
+ fi
+done
+
+# Get standard environment variables
+PRGDIR=`dirname "$PRG"`
+CATALINA_HOME=`cd "$PRGDIR/.." ; pwd`
+if [ -r "$CATALINA_HOME"/bin/setenv.sh ]; then
+ . "$CATALINA_HOME"/bin/setenv.sh
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin; then
+ [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+ [ -n "$CATALINA_HOME" ] && CATALINA_HOME=`cygpath --unix "$CATALINA_HOME"`
+ [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# Get standard Java environment variables
+if [ -r "$CATALINA_HOME"/bin/setclasspath.sh ]; then
+ BASEDIR="$CATALINA_HOME"
+ . "$CATALINA_HOME"/bin/setclasspath.sh
+else
+ echo "Cannot find $CATALINA_HOME/bin/setclasspath.sh"
+ echo "This file is needed to run this program"
+ exit 1
+fi
+
+# Add on extra jar files to CLASSPATH
+CLASSPATH="$CLASSPATH":"$CATALINA_HOME"/bin/bootstrap.jar:"$BASEDIR"/common/lib/jmx.jar:"$BASEDIR"/common/lib/servlet-api.jar
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+ JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+ CATALINA_HOME=`cygpath --path --windows "$CATALINA_HOME"`
+ CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+fi
+
+# ----- Execute The Requested Command -----------------------------------------
+
+exec "$_RUNJAVA" $JAVA_OPTS $TOOL_OPTS \
+ -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" \
+ -Dcatalina.home="$CATALINA_HOME" \
+ org.apache.catalina.startup.Tool "$@"
diff --git a/tomcat/bin/version.bat b/tomcat/bin/version.bat
new file mode 100644
index 0000000..294fd17
--- /dev/null
+++ b/tomcat/bin/version.bat
@@ -0,0 +1,44 @@
+@echo off
+if "%OS%" == "Windows_NT" setlocal
+rem ---------------------------------------------------------------------------
+rem Version script for the CATALINA Server
+rem
+rem $Id: version.bat,v 1.3 2005/05/17 16:50:43 aranganath Exp $
+rem ---------------------------------------------------------------------------
+
+rem Guess CATALINA_HOME if not defined
+set CURRENT_DIR=%cd%
+if not "%CATALINA_HOME%" == "" goto gotHome
+set CATALINA_HOME=%CURRENT_DIR%
+if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
+cd ..
+set CATALINA_HOME=%cd%
+cd %CURRENT_DIR%
+:gotHome
+if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
+echo The CATALINA_HOME environment variable is not defined correctly
+echo This environment variable is needed to run this program
+goto end
+:okHome
+
+set EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat
+
+rem Check that target executable exists
+if exist "%EXECUTABLE%" goto okExec
+echo Cannot find %EXECUTABLE%
+echo This file is needed to run this program
+goto end
+:okExec
+
+rem Get remaining unshifted command line arguments and save them in the
+set CMD_LINE_ARGS=
+:setArgs
+if ""%1""=="""" goto doneSetArgs
+set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
+shift
+goto setArgs
+:doneSetArgs
+
+call "%EXECUTABLE%" version %CMD_LINE_ARGS%
+
+:end
diff --git a/tomcat/bin/version.sh b/tomcat/bin/version.sh
new file mode 100644
index 0000000..57d7e6f
--- /dev/null
+++ b/tomcat/bin/version.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+# -----------------------------------------------------------------------------
+# Version Script for the CATALINA Server
+#
+# $Id: version.sh,v 1.3 2005/05/17 16:50:43 aranganath Exp $
+# -----------------------------------------------------------------------------
+
+# resolve links - $0 may be a softlink
+PRG="$0"
+
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '.*/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`/"$link"
+ fi
+done
+
+PRGDIR=`dirname "$PRG"`
+EXECUTABLE=catalina.sh
+
+# Check that target executable exists
+if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then
+ echo "Cannot find $PRGDIR/$EXECUTABLE"
+ echo "This file is needed to run this program"
+ exit 1
+fi
+
+exec "$PRGDIR"/"$EXECUTABLE" version "$@"
diff --git a/tomcat/common/classes/logging.properties b/tomcat/common/classes/logging.properties
new file mode 100644
index 0000000..75bffc0
--- /dev/null
+++ b/tomcat/common/classes/logging.properties
@@ -0,0 +1,55 @@
+handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4admin.org.apache.juli.FileHandler, 5host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+
+.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
+
+############################################################
+# Handler specific properties.
+# Describes specific configuration info for Handlers.
+############################################################
+
+1catalina.org.apache.juli.FileHandler.level = FINE
+1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+1catalina.org.apache.juli.FileHandler.prefix = catalina.
+
+2localhost.org.apache.juli.FileHandler.level = FINE
+2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+2localhost.org.apache.juli.FileHandler.prefix = localhost.
+
+3manager.org.apache.juli.FileHandler.level = FINE
+3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+3manager.org.apache.juli.FileHandler.prefix = manager.
+
+4admin.org.apache.juli.FileHandler.level = FINE
+4admin.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+4admin.org.apache.juli.FileHandler.prefix = admin.
+
+5host-manager.org.apache.juli.FileHandler.level = FINE
+5host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
+5host-manager.org.apache.juli.FileHandler.prefix = host-manager.
+
+java.util.logging.ConsoleHandler.level = FINE
+java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
+
+
+############################################################
+# Facility specific properties.
+# Provides extra control for each logger.
+############################################################
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/admin].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/admin].handlers = 4admin.org.apache.juli.FileHandler
+
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
+org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 5host-manager.org.apache.juli.FileHandler
+
+# For example, set the com.xyz.foo logger to only log SEVERE
+# messages:
+#org.apache.catalina.startup.ContextConfig.level = FINE
+#org.apache.catalina.startup.HostConfig.level = FINE
+#org.apache.catalina.session.ManagerBase.level = FINE
diff --git a/tomcat/common/endorsed/xercesImpl.jar b/tomcat/common/endorsed/xercesImpl.jar
new file mode 100644
index 0000000..f0fb0e8
Binary files /dev/null and b/tomcat/common/endorsed/xercesImpl.jar differ
diff --git a/tomcat/common/endorsed/xml-apis.jar b/tomcat/common/endorsed/xml-apis.jar
new file mode 100644
index 0000000..2dd8377
Binary files /dev/null and b/tomcat/common/endorsed/xml-apis.jar differ
diff --git a/tomcat/common/i18n/tomcat-i18n-en.jar b/tomcat/common/i18n/tomcat-i18n-en.jar
new file mode 100644
index 0000000..7be3fb3
Binary files /dev/null and b/tomcat/common/i18n/tomcat-i18n-en.jar differ
diff --git a/tomcat/common/i18n/tomcat-i18n-es.jar b/tomcat/common/i18n/tomcat-i18n-es.jar
new file mode 100644
index 0000000..603fd17
Binary files /dev/null and b/tomcat/common/i18n/tomcat-i18n-es.jar differ
diff --git a/tomcat/common/i18n/tomcat-i18n-fr.jar b/tomcat/common/i18n/tomcat-i18n-fr.jar
new file mode 100644
index 0000000..50ac641
Binary files /dev/null and b/tomcat/common/i18n/tomcat-i18n-fr.jar differ
diff --git a/tomcat/common/i18n/tomcat-i18n-ja.jar b/tomcat/common/i18n/tomcat-i18n-ja.jar
new file mode 100644
index 0000000..5f0b2d0
Binary files /dev/null and b/tomcat/common/i18n/tomcat-i18n-ja.jar differ
diff --git a/tomcat/common/lib/commons-el.jar b/tomcat/common/lib/commons-el.jar
new file mode 100644
index 0000000..608ed79
Binary files /dev/null and b/tomcat/common/lib/commons-el.jar differ
diff --git a/tomcat/common/lib/jasper-compiler-jdt.jar b/tomcat/common/lib/jasper-compiler-jdt.jar
new file mode 100644
index 0000000..590badb
Binary files /dev/null and b/tomcat/common/lib/jasper-compiler-jdt.jar differ
diff --git a/tomcat/common/lib/jasper-compiler.jar b/tomcat/common/lib/jasper-compiler.jar
new file mode 100644
index 0000000..41785f0
Binary files /dev/null and b/tomcat/common/lib/jasper-compiler.jar differ
diff --git a/tomcat/common/lib/jasper-runtime.jar b/tomcat/common/lib/jasper-runtime.jar
new file mode 100644
index 0000000..0a6ad37
Binary files /dev/null and b/tomcat/common/lib/jasper-runtime.jar differ
diff --git a/tomcat/common/lib/jsp-api.jar b/tomcat/common/lib/jsp-api.jar
new file mode 100644
index 0000000..3d0c81f
Binary files /dev/null and b/tomcat/common/lib/jsp-api.jar differ
diff --git a/tomcat/common/lib/naming-factory-dbcp.jar b/tomcat/common/lib/naming-factory-dbcp.jar
new file mode 100644
index 0000000..6942f9d
Binary files /dev/null and b/tomcat/common/lib/naming-factory-dbcp.jar differ
diff --git a/tomcat/common/lib/naming-factory.jar b/tomcat/common/lib/naming-factory.jar
new file mode 100644
index 0000000..1ca79ed
Binary files /dev/null and b/tomcat/common/lib/naming-factory.jar differ
diff --git a/tomcat/common/lib/naming-resources.jar b/tomcat/common/lib/naming-resources.jar
new file mode 100644
index 0000000..0df4223
Binary files /dev/null and b/tomcat/common/lib/naming-resources.jar differ
diff --git a/tomcat/common/lib/servlet-api.jar b/tomcat/common/lib/servlet-api.jar
new file mode 100644
index 0000000..dd326d3
Binary files /dev/null and b/tomcat/common/lib/servlet-api.jar differ
diff --git a/tomcat/conf/Catalina/localhost/admin.xml b/tomcat/conf/Catalina/localhost/admin.xml
new file mode 100644
index 0000000..53d9d8c
--- /dev/null
+++ b/tomcat/conf/Catalina/localhost/admin.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
diff --git a/tomcat/conf/Catalina/localhost/host-manager.xml b/tomcat/conf/Catalina/localhost/host-manager.xml
new file mode 100644
index 0000000..1f30b6e
--- /dev/null
+++ b/tomcat/conf/Catalina/localhost/host-manager.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
diff --git a/tomcat/conf/Catalina/localhost/lex.xml b/tomcat/conf/Catalina/localhost/lex.xml
new file mode 100644
index 0000000..6300229
--- /dev/null
+++ b/tomcat/conf/Catalina/localhost/lex.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/tomcat/conf/Catalina/localhost/manager.xml b/tomcat/conf/Catalina/localhost/manager.xml
new file mode 100644
index 0000000..2c4923c
--- /dev/null
+++ b/tomcat/conf/Catalina/localhost/manager.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
diff --git a/tomcat/conf/catalina.policy b/tomcat/conf/catalina.policy
new file mode 100644
index 0000000..509b109
--- /dev/null
+++ b/tomcat/conf/catalina.policy
@@ -0,0 +1,172 @@
+// ============================================================================
+// catalina.corepolicy - Security Policy Permissions for Tomcat 5
+//
+// This file contains a default set of security policies to be enforced (by the
+// JVM) when Catalina is executed with the "-security" option. In addition
+// to the permissions granted here, the following additional permissions are
+// granted to the codebase specific to each web application:
+//
+// * Read access to the document root directory
+//
+// $Id: catalina.policy,v 1.3 2005/05/17 16:50:45 aranganath Exp $
+// ============================================================================
+
+
+// ========== SYSTEM CODE PERMISSIONS =========================================
+
+
+// These permissions apply to javac
+grant codeBase "file:${java.home}/lib/-" {
+ permission java.security.AllPermission;
+};
+
+// These permissions apply to all shared system extensions
+grant codeBase "file:${java.home}/jre/lib/ext/-" {
+ permission java.security.AllPermission;
+};
+
+// These permissions apply to javac when ${java.home] points at $JAVA_HOME/jre
+grant codeBase "file:${java.home}/../lib/-" {
+ permission java.security.AllPermission;
+};
+
+// These permissions apply to all shared system extensions when
+// ${java.home} points at $JAVA_HOME/jre
+grant codeBase "file:${java.home}/lib/ext/-" {
+ permission java.security.AllPermission;
+};
+
+
+// ========== CATALINA CODE PERMISSIONS =======================================
+
+
+// These permissions apply to the launcher code
+grant codeBase "file:${catalina.home}/bin/commons-launcher.jar" {
+ permission java.security.AllPermission;
+};
+
+// These permissions apply to the daemon code
+grant codeBase "file:${catalina.home}/bin/commons-daemon.jar" {
+ permission java.security.AllPermission;
+};
+
+// These permissions apply to the commons-logging API
+grant codeBase "file:${catalina.home}/bin/commons-logging-api.jar" {
+ permission java.security.AllPermission;
+};
+
+// These permissions apply to the server startup code
+grant codeBase "file:${catalina.home}/bin/bootstrap.jar" {
+ permission java.security.AllPermission;
+};
+
+// These permissions apply to the JMX server
+grant codeBase "file:${catalina.home}/bin/jmx.jar" {
+ permission java.security.AllPermission;
+};
+
+// These permissions apply to JULI
+grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
+ permission java.security.AllPermission;
+};
+
+// These permissions apply to the servlet API classes
+// and those that are shared across all class loaders
+// located in the "common" directory
+grant codeBase "file:${catalina.home}/common/-" {
+ permission java.security.AllPermission;
+};
+
+// These permissions apply to the container's core code, plus any additional
+// libraries installed in the "server" directory
+grant codeBase "file:${catalina.home}/server/-" {
+ permission java.security.AllPermission;
+};
+
+// The permissions granted to the balancer WEB-INF/classes directory
+grant codeBase "file:${catalina.home}/webapps/balancer/WEB-INF/classes/-" {
+ permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.util.digester";
+ permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.util.digester.*";
+};
+// ========== WEB APPLICATION PERMISSIONS =====================================
+
+
+// These permissions are granted by default to all web applications
+// In addition, a web application will be given a read FilePermission
+// and JndiPermission for all files and directories in its document root.
+grant {
+ // Required for JNDI lookup of named JDBC DataSource's and
+ // javamail named MimePart DataSource used to send mail
+ permission java.util.PropertyPermission "java.home", "read";
+ permission java.util.PropertyPermission "java.naming.*", "read";
+ permission java.util.PropertyPermission "javax.sql.*", "read";
+
+ // OS Specific properties to allow read access
+ permission java.util.PropertyPermission "os.name", "read";
+ permission java.util.PropertyPermission "os.version", "read";
+ permission java.util.PropertyPermission "os.arch", "read";
+ permission java.util.PropertyPermission "file.separator", "read";
+ permission java.util.PropertyPermission "path.separator", "read";
+ permission java.util.PropertyPermission "line.separator", "read";
+
+ // JVM properties to allow read access
+ permission java.util.PropertyPermission "java.version", "read";
+ permission java.util.PropertyPermission "java.vendor", "read";
+ permission java.util.PropertyPermission "java.vendor.url", "read";
+ permission java.util.PropertyPermission "java.class.version", "read";
+ permission java.util.PropertyPermission "java.specification.version", "read";
+ permission java.util.PropertyPermission "java.specification.vendor", "read";
+ permission java.util.PropertyPermission "java.specification.name", "read";
+
+ permission java.util.PropertyPermission "java.vm.specification.version", "read";
+ permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
+ permission java.util.PropertyPermission "java.vm.specification.name", "read";
+ permission java.util.PropertyPermission "java.vm.version", "read";
+ permission java.util.PropertyPermission "java.vm.vendor", "read";
+ permission java.util.PropertyPermission "java.vm.name", "read";
+
+ // Required for OpenJMX
+ permission java.lang.RuntimePermission "getAttribute";
+
+ // Allow read of JAXP compliant XML parser debug
+ permission java.util.PropertyPermission "jaxp.debug", "read";
+
+ // Precompiled JSPs need access to this package.
+ permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime";
+ permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime.*";
+
+};
+
+
+// You can assign additional permissions to particular web applications by
+// adding additional "grant" entries here, based on the code base for that
+// application, /WEB-INF/classes/, or /WEB-INF/lib/ jar files.
+//
+// Different permissions can be granted to JSP pages, classes loaded from
+// the /WEB-INF/classes/ directory, all jar files in the /WEB-INF/lib/
+// directory, or even to individual jar files in the /WEB-INF/lib/ directory.
+//
+// For instance, assume that the standard "examples" application
+// included a JDBC driver that needed to establish a network connection to the
+// corresponding database and used the scrape taglib to get the weather from
+// the NOAA web server. You might create a "grant" entries like this:
+//
+// The permissions granted to the context root directory apply to JSP pages.
+// grant codeBase "file:${catalina.home}/webapps/examples/-" {
+// permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect";
+// permission java.net.SocketPermission "*.noaa.gov:80", "connect";
+// };
+//
+// The permissions granted to the context WEB-INF/classes directory
+// grant codeBase "file:${catalina.home}/webapps/examples/WEB-INF/classes/-" {
+// };
+//
+// The permission granted to your JDBC driver
+// grant codeBase "jar:file:${catalina.home}/webapps/examples/WEB-INF/lib/driver.jar!/-" {
+// permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect";
+// };
+// The permission granted to the scrape taglib
+// grant codeBase "jar:file:${catalina.home}/webapps/examples/WEB-INF/lib/scrape.jar!/-" {
+// permission java.net.SocketPermission "*.noaa.gov:80", "connect";
+// };
+
diff --git a/tomcat/conf/catalina.properties b/tomcat/conf/catalina.properties
new file mode 100644
index 0000000..86334d2
--- /dev/null
+++ b/tomcat/conf/catalina.properties
@@ -0,0 +1,64 @@
+#
+# List of comma-separated packages that start with or equal this string
+# will cause a security exception to be thrown when
+# passed to checkPackageAccess unless the
+# corresponding RuntimePermission ("accessClassInPackage."+package) has
+# been granted.
+package.access=sun.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.,sun.beans.
+#
+# List of comma-separated packages that start with or equal this string
+# will cause a security exception to be thrown when
+# passed to checkPackageDefinition unless the
+# corresponding RuntimePermission ("defineClassInPackage."+package) has
+# been granted.
+#
+# by default, no packages are restricted for definition, and none of
+# the class loaders supplied with the JDK call checkPackageDefinition.
+#
+package.definition=sun.,java.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.
+
+#
+#
+# List of comma-separated paths defining the contents of the "common"
+# classloader. Prefixes should be used to define what is the repository type.
+# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute.
+# If left as blank,the JVM system loader will be used as Catalina's "common"
+# loader.
+# Examples:
+# "foo": Add this folder as a class repository
+# "foo/*.jar": Add all the JARs of the specified folder as class
+# repositories
+# "foo/bar.jar": Add bar.jar as a class repository
+common.loader=${catalina.home}/common/classes,${catalina.home}/common/i18n/*.jar,${catalina.home}/common/endorsed/*.jar,${catalina.home}/common/lib/*.jar
+
+#
+# List of comma-separated paths defining the contents of the "server"
+# classloader. Prefixes should be used to define what is the repository type.
+# Path may be relative to the CATALINA_HOME or CATALINA_BASE path or absolute.
+# If left as blank, the "common" loader will be used as Catalina's "server"
+# loader.
+# Examples:
+# "foo": Add this folder as a class repository
+# "foo/*.jar": Add all the JARs of the specified folder as class
+# repositories
+# "foo/bar.jar": Add bar.jar as a class repository
+server.loader=${catalina.home}/server/classes,${catalina.home}/server/lib/*.jar
+
+#
+# List of comma-separated paths defining the contents of the "shared"
+# classloader. Prefixes should be used to define what is the repository type.
+# Path may be relative to the CATALINA_BASE path or absolute. If left as blank,
+# the "common" loader will be used as Catalina's "shared" loader.
+# Examples:
+# "foo": Add this folder as a class repository
+# "foo/*.jar": Add all the JARs of the specified folder as class
+# repositories
+# "foo/bar.jar": Add bar.jar as a class repository
+shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar
+
+#
+# String cache configuration.
+tomcat.util.buf.StringCache.byte.enabled=true
+#tomcat.util.buf.StringCache.char.enabled=true
+#tomcat.util.buf.StringCache.trainThreshold=500000
+#tomcat.util.buf.StringCache.cacheSize=5000
diff --git a/tomcat/conf/context.xml b/tomcat/conf/context.xml
new file mode 100644
index 0000000..d77b900
--- /dev/null
+++ b/tomcat/conf/context.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ WEB-INF/web.xml
+
+
+
+
+
diff --git a/tomcat/conf/jk2.manifest b/tomcat/conf/jk2.manifest
new file mode 100644
index 0000000..986d7b8
--- /dev/null
+++ b/tomcat/conf/jk2.manifest
@@ -0,0 +1,2 @@
+Main-Class: org.apache.jk.apr.TomcatStarter
+Class-Path: ../lib/tomcat.jar log4j.jar log4j-core.jar ../lib/common/log4j.jar ../lib/common/log4j-core.jar ../lib/common/classes ../lib/common/commons-logging.jar bootstrap.jar ../server/lib/commons-logging.jar ../server/lib/jmx.jar jmx.jar commons-logging-api.jar
diff --git a/tomcat/conf/jk2.properties b/tomcat/conf/jk2.properties
new file mode 100644
index 0000000..093bae8
--- /dev/null
+++ b/tomcat/conf/jk2.properties
@@ -0,0 +1,26 @@
+## THIS FILE MAY BE OVERRIDEN AT RUNTIME. MAKE SURE TOMCAT IS STOPED
+## WHEN YOU EDIT THE FILE.
+
+## COMMENTS WILL BE _LOST_
+
+## DOCUMENTATION OF THE FORMAT IN JkMain javadoc.
+
+# Set the desired handler list
+# handler.list=apr,request,channelJni
+#
+# Override the default port for the socketChannel
+# channelSocket.port=8019
+# Default:
+# channelUnix.file=${jkHome}/work/jk2.socket
+# Just to check if the the config is working
+# shm.file=${jkHome}/work/jk2.shm
+
+# In order to enable jni use any channelJni directive
+# channelJni.disabled = 0
+# And one of the following directives:
+
+# apr.jniModeSo=/opt/apache2/modules/mod_jk2.so
+
+# If set to inprocess the mod_jk2 will Register natives itself
+# This will enable the starting of the Tomcat from mod_jk2
+# apr.jniModeSo=inprocess
diff --git a/tomcat/conf/jkconf.ant.xml b/tomcat/conf/jkconf.ant.xml
new file mode 100644
index 0000000..245cf98
--- /dev/null
+++ b/tomcat/conf/jkconf.ant.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tomcat/conf/jkconfig.manifest b/tomcat/conf/jkconfig.manifest
new file mode 100644
index 0000000..3ba1f2e
--- /dev/null
+++ b/tomcat/conf/jkconfig.manifest
@@ -0,0 +1,2 @@
+Main-Class: org.apache.jk.config.WebXml2Jk
+Class-Path: tomcat-jk2.jar commons-logging.jar crimson.jar xercesImpl.jar xmlApis.jar tomcat-util.jar log4j.jar log4j-core.jar
diff --git a/tomcat/conf/server-minimal.xml b/tomcat/conf/server-minimal.xml
new file mode 100644
index 0000000..7b542b6
--- /dev/null
+++ b/tomcat/conf/server-minimal.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tomcat/conf/server.xml b/tomcat/conf/server.xml
new file mode 100644
index 0000000..5acccbd
--- /dev/null
+++ b/tomcat/conf/server.xml
@@ -0,0 +1,378 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tomcat/conf/shm.manifest b/tomcat/conf/shm.manifest
new file mode 100644
index 0000000..0505c08
--- /dev/null
+++ b/tomcat/conf/shm.manifest
@@ -0,0 +1,2 @@
+Main-Class: org.apache.jk.common.Shm
+Class-Path: tomcat-jk2.jar commons-logging.jar tomcat-util.jar log4j.jar log4j-core.jar
diff --git a/tomcat/conf/tomcat-jk2.manifest b/tomcat/conf/tomcat-jk2.manifest
new file mode 100644
index 0000000..acfef4a
--- /dev/null
+++ b/tomcat/conf/tomcat-jk2.manifest
@@ -0,0 +1,7 @@
+Manifest-version: 1.0
+Extension-Name: org.apache.jk
+Specification-Vendor: Apache Software Foundation
+Specification-Version: 2.0
+Implementation-Vendor-Id: org.apache
+Implementation-Vendor: Apache Software Foundation
+Implementation-Version: 2.1
diff --git a/tomcat/conf/tomcat-users.xml b/tomcat/conf/tomcat-users.xml
new file mode 100644
index 0000000..bfc3e61
--- /dev/null
+++ b/tomcat/conf/tomcat-users.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/tomcat/conf/uriworkermap.properties b/tomcat/conf/uriworkermap.properties
new file mode 100644
index 0000000..c65445b
--- /dev/null
+++ b/tomcat/conf/uriworkermap.properties
@@ -0,0 +1,13 @@
+# uriworkermap.properties - IIS
+#
+# This file provides sample mappings for example ajp13w
+# worker defined in workermap.properties.minimal
+# The general sytax for this file is:
+# [URL]=[Worker name]
+
+/servlet-examples/*=ajp13w
+
+# Optionally filter out all .jpeg files inside that context
+# For no mapping the url has to start with exclamation (!)
+
+!/servlet-examples/*.jpeg=ajp13w
diff --git a/tomcat/conf/web.xml b/tomcat/conf/web.xml
new file mode 100644
index 0000000..6b14b3b
--- /dev/null
+++ b/tomcat/conf/web.xml
@@ -0,0 +1,979 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ default
+ org.apache.catalina.servlets.DefaultServlet
+
+ debug
+ 0
+
+
+ listings
+ true
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ jsp
+ org.apache.jasper.servlet.JspServlet
+
+ fork
+ false
+
+
+ xpoweredBy
+ false
+
+ 3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ default
+ /
+
+
+
+
+
+
+
+ jsp
+ *.jsp
+
+
+
+ jsp
+ *.jspx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 30
+
+
+
+
+
+
+
+
+
+
+
+ abs
+ audio/x-mpeg
+
+
+ ai
+ application/postscript
+
+
+ aif
+ audio/x-aiff
+
+
+ aifc
+ audio/x-aiff
+
+
+ aiff
+ audio/x-aiff
+
+
+ aim
+ application/x-aim
+
+
+ art
+ image/x-jg
+
+
+ asf
+ video/x-ms-asf
+
+
+ asx
+ video/x-ms-asf
+
+
+ au
+ audio/basic
+
+
+ avi
+ video/x-msvideo
+
+
+ avx
+ video/x-rad-screenplay
+
+
+ bcpio
+ application/x-bcpio
+
+
+ bin
+ application/octet-stream
+
+
+ bmp
+ image/bmp
+
+
+ body
+ text/html
+
+
+ cdf
+ application/x-cdf
+
+
+ cer
+ application/x-x509-ca-cert
+
+
+ class
+ application/java
+
+
+ cpio
+ application/x-cpio
+
+
+ csh
+ application/x-csh
+
+
+ css
+ text/css
+
+
+ dib
+ image/bmp
+
+
+ doc
+ application/msword
+
+
+ dtd
+ application/xml-dtd
+
+
+ dv
+ video/x-dv
+
+
+ dvi
+ application/x-dvi
+
+
+ eps
+ application/postscript
+
+
+ etx
+ text/x-setext
+
+
+ exe
+ application/octet-stream
+
+
+ gif
+ image/gif
+
+
+ gtar
+ application/x-gtar
+
+
+ gz
+ application/x-gzip
+
+
+ hdf
+ application/x-hdf
+
+
+ hqx
+ application/mac-binhex40
+
+
+ htc
+ text/x-component
+
+
+ htm
+ text/html
+
+
+ html
+ text/html
+
+
+ hqx
+ application/mac-binhex40
+
+
+ ief
+ image/ief
+
+
+ jad
+ text/vnd.sun.j2me.app-descriptor
+
+
+ jar
+ application/java-archive
+
+
+ java
+ text/plain
+
+
+ jnlp
+ application/x-java-jnlp-file
+
+
+ jpe
+ image/jpeg
+
+
+ jpeg
+ image/jpeg
+
+
+ jpg
+ image/jpeg
+
+
+ js
+ text/javascript
+
+
+ jsf
+ text/plain
+
+
+ jspf
+ text/plain
+
+
+ kar
+ audio/x-midi
+
+
+ latex
+ application/x-latex
+
+
+ m3u
+ audio/x-mpegurl
+
+
+ mac
+ image/x-macpaint
+
+
+ man
+ application/x-troff-man
+
+
+ mathml
+ application/mathml+xml
+
+
+ me
+ application/x-troff-me
+
+
+ mid
+ audio/x-midi
+
+
+ midi
+ audio/x-midi
+
+
+ mif
+ application/x-mif
+
+
+ mov
+ video/quicktime
+
+
+ movie
+ video/x-sgi-movie
+
+
+ mp1
+ audio/x-mpeg
+
+
+ mp2
+ audio/x-mpeg
+
+
+ mp3
+ audio/x-mpeg
+
+
+ mpa
+ audio/x-mpeg
+
+
+ mpe
+ video/mpeg
+
+
+ mpeg
+ video/mpeg
+
+
+ mpega
+ audio/x-mpeg
+
+
+ mpg
+ video/mpeg
+
+
+ mpv2
+ video/mpeg2
+
+
+ ms
+ application/x-wais-source
+
+
+ nc
+ application/x-netcdf
+
+
+ oda
+ application/oda
+
+
+ ogg
+ application/ogg
+
+
+ pbm
+ image/x-portable-bitmap
+
+
+ pct
+ image/pict
+
+
+ pdf
+ application/pdf
+
+
+ pgm
+ image/x-portable-graymap
+
+
+ pic
+ image/pict
+
+
+ pict
+ image/pict
+
+
+ pls
+ audio/x-scpls
+
+
+ png
+ image/png
+
+
+ pnm
+ image/x-portable-anymap
+
+
+ pnt
+ image/x-macpaint
+
+
+ ppm
+ image/x-portable-pixmap
+
+
+ ppt
+ application/powerpoint
+
+
+ ps
+ application/postscript
+
+
+ psd
+ image/x-photoshop
+
+
+ qt
+ video/quicktime
+
+
+ qti
+ image/x-quicktime
+
+
+ qtif
+ image/x-quicktime
+
+
+ ras
+ image/x-cmu-raster
+
+
+ rdf
+ application/rdf+xml
+
+
+ rgb
+ image/x-rgb
+
+
+ rm
+ application/vnd.rn-realmedia
+
+
+ roff
+ application/x-troff
+
+
+ rtf
+ application/rtf
+
+
+ rtx
+ text/richtext
+
+
+ sh
+ application/x-sh
+
+
+ shar
+ application/x-shar
+
+
+ smf
+ audio/x-midi
+
+
+ sit
+ application/x-stuffit
+
+
+ snd
+ audio/basic
+
+
+ src
+ application/x-wais-source
+
+
+ sv4cpio
+ application/x-sv4cpio
+
+
+ sv4crc
+ application/x-sv4crc
+
+
+ svg
+ image/svg+xml
+
+
+ swf
+ application/x-shockwave-flash
+
+
+ t
+ application/x-troff
+
+
+ tar
+ application/x-tar
+
+
+ tcl
+ application/x-tcl
+
+
+ tex
+ application/x-tex
+
+
+ texi
+ application/x-texinfo
+
+
+ texinfo
+ application/x-texinfo
+
+
+ tif
+ image/tiff
+
+
+ tiff
+ image/tiff
+
+
+ tr
+ application/x-troff
+
+
+ tsv
+ text/tab-separated-values
+
+
+ txt
+ text/plain
+
+
+ ulw
+ audio/basic
+
+
+ ustar
+ application/x-ustar
+
+
+ vxml
+ application/voicexml+xml
+
+
+ xbm
+ image/x-xbitmap
+
+
+ xht
+ application/xhtml+xml
+
+
+ xhtml
+ application/xhtml+xml
+
+
+ xml
+ application/xml
+
+
+ xpm
+ image/x-xpixmap
+
+
+ xsl
+ application/xml
+
+
+ xslt
+ application/xslt+xml
+
+
+ xul
+ application/vnd.mozilla.xul+xml
+
+
+ xwd
+ image/x-xwindowdump
+
+
+ wav
+ audio/x-wav
+
+
+ svg
+ image/svg
+
+
+ svgz
+ image/svg
+
+
+ vsd
+ application/x-visio
+
+
+
+ wbmp
+ image/vnd.wap.wbmp
+
+
+
+ wml
+ text/vnd.wap.wml
+
+
+
+ wmlc
+ application/vnd.wap.wmlc
+
+
+
+ wmls
+ text/vnd.wap.wmlscript
+
+
+
+ wmlscriptc
+ application/vnd.wap.wmlscriptc
+
+
+ wrl
+ x-world/x-vrml
+
+
+ Z
+ application/x-compress
+
+
+ z
+ application/x-compress
+
+
+ zip
+ application/zip
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ index.html
+ index.htm
+ index.jsp
+
+
+
diff --git a/tomcat/conf/workers.properties b/tomcat/conf/workers.properties
new file mode 100644
index 0000000..50d8855
--- /dev/null
+++ b/tomcat/conf/workers.properties
@@ -0,0 +1,206 @@
+# workers.properties -
+#
+# This file provides jk derived plugins with the needed information to
+# connect to the different tomcat workers. Note that the distributed
+# version of this file requires modification before it is usable by a
+# plugin.
+#
+# As a general note, the characters $( and ) are used internally to define
+# macros. Do not use them in your own configuration!!!
+#
+# Whenever you see a set of lines such as:
+# x=value
+# y=$(x)\something
+#
+# the final value for y will be value\something
+#
+# Normaly all you will need to do is un-comment and modify the first three
+# properties, i.e. workers.tomcat_home, workers.java_home and ps.
+# Most of the configuration is derived from these.
+#
+# When you are done updating workers.tomcat_home, workers.java_home and ps
+# you should have 3 workers configured:
+#
+# - An ajp12 worker that connects to localhost:8007
+# - An ajp13 worker that connects to localhost:8009
+# - A jni inprocess worker.
+# - A load balancer worker
+#
+# However by default the plugins will only use the ajp12 worker. To have
+# the plugins use other workers you should modify the worker.list property.
+#
+#
+
+# OPTIONS ( very important for jni mode )
+
+#
+# workers.tomcat_home should point to the location where you
+# installed tomcat. This is where you have your conf, webapps and lib
+# directories.
+#
+workers.tomcat_home=/var/tomcat3
+
+#
+# workers.java_home should point to your Java installation. Normally
+# you should have a bin and lib directories beneath it.
+#
+workers.java_home=/opt/IBMJava2-13
+
+#
+# You should configure your environment slash... ps=\ on NT and / on UNIX
+# and maybe something different elsewhere.
+#
+ps=/
+
+#
+#------ ADVANCED MODE ------------------------------------------------
+#---------------------------------------------------------------------
+#
+
+#
+#------ DEFAULT worket list ------------------------------------------
+#---------------------------------------------------------------------
+#
+#
+# The workers that your plugins should create and work with
+#
+# Add 'inprocess' if you want JNI connector
+worker.list=ajp12, ajp13
+# , inprocess
+
+
+#
+#------ DEFAULT ajp12 WORKER DEFINITION ------------------------------
+#---------------------------------------------------------------------
+#
+
+#
+# Defining a worker named ajp12 and of type ajp12
+# Note that the name and the type do not have to match.
+#
+worker.ajp12.port=8007
+worker.ajp12.host=localhost
+worker.ajp12.type=ajp12
+#
+# Specifies the load balance factor when used with
+# a load balancing worker.
+# Note:
+# ----> lbfactor must be > 0
+# ----> Low lbfactor means less work done by the worker.
+worker.ajp12.lbfactor=1
+
+#
+#------ DEFAULT ajp13 WORKER DEFINITION ------------------------------
+#---------------------------------------------------------------------
+#
+
+#
+# Defining a worker named ajp13 and of type ajp13
+# Note that the name and the type do not have to match.
+#
+worker.ajp13.port=8009
+worker.ajp13.host=localhost
+worker.ajp13.type=ajp13
+#
+# Specifies the load balance factor when used with
+# a load balancing worker.
+# Note:
+# ----> lbfactor must be > 0
+# ----> Low lbfactor means less work done by the worker.
+worker.ajp13.lbfactor=1
+
+#
+# Specify the size of the open connection cache.
+#worker.ajp13.cachesize
+
+#
+#------ DEFAULT LOAD BALANCER WORKER DEFINITION ----------------------
+#---------------------------------------------------------------------
+#
+
+#
+# The loadbalancer (type lb) workers perform wighted round-robin
+# load balancing with sticky sessions.
+# Note:
+# ----> If a worker dies, the load balancer will check its state
+# once in a while. Until then all work is redirected to peer
+# workers.
+worker.loadbalancer.type=lb
+worker.loadbalancer.balanced_workers=ajp12, ajp13
+
+
+#
+#------ DEFAULT JNI WORKER DEFINITION---------------------------------
+#---------------------------------------------------------------------
+#
+
+#
+# Defining a worker named inprocess and of type jni
+# Note that the name and the type do not have to match.
+#
+worker.inprocess.type=jni
+
+#
+#------ CLASSPATH DEFINITION -----------------------------------------
+#---------------------------------------------------------------------
+#
+
+#
+# Additional class path components.
+#
+worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)tomcat.jar
+
+#
+# Setting the command line for tomcat.
+# Note: The cmd_line string may not contain spaces.
+#
+worker.inprocess.cmd_line=start
+
+# Not needed, but can be customized.
+#worker.inprocess.cmd_line=-config
+#worker.inprocess.cmd_line=$(workers.tomcat_home)$(ps)conf$(ps)server.xml
+#worker.inprocess.cmd_line=-home
+#worker.inprocess.cmd_line=$(workers.tomcat_home)
+
+#
+# The JVM that we are about to use
+#
+# This is for Java2
+#
+# Windows
+worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)bin$(ps)classic$(ps)jvm.dll
+# IBM JDK1.3
+#worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)bin$(ps)classic$(ps)libjvm.so
+# Unix - Sun VM or blackdown
+#worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)lib$(ps)i386$(ps)classic$(ps)libjvm.so
+
+#
+# And this is for jdk1.1.X
+#
+#worker.inprocess.jvm_lib=$(workers.java_home)$(ps)bin$(ps)javai.dll
+
+
+#
+# Setting the place for the stdout and stderr of tomcat
+#
+worker.inprocess.stdout=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stdout
+worker.inprocess.stderr=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stderr
+
+#
+# Setting the tomcat.home Java property
+#
+#worker.inprocess.sysprops=tomcat.home=$(workers.tomcat_home)
+
+#
+# Java system properties
+#
+# worker.inprocess.sysprops=java.compiler=NONE
+# worker.inprocess.sysprops=myprop=mypropvalue
+
+#
+# Additional path components.
+#
+# worker.inprocess.ld_path=d:$(ps)SQLLIB$(ps)bin
+#
+
+
diff --git a/tomcat/conf/workers.properties.minimal b/tomcat/conf/workers.properties.minimal
new file mode 100644
index 0000000..e3b5942
--- /dev/null
+++ b/tomcat/conf/workers.properties.minimal
@@ -0,0 +1,17 @@
+# workers.properties.minimal -
+#
+# This file provides minimal jk configuration properties needed to
+# connect to Tomcat.
+#
+# The workers that jk should create and work with
+#
+worker.list=ajp13w
+
+
+#
+# Defining a worker named ajp13w and of type ajp13
+# Note that the name and the type do not have to match.
+#
+worker.ajp13w.type=ajp13
+worker.ajp13w.host=localhost
+worker.ajp13w.port=8009
diff --git a/tomcat/conf/workers2.properties b/tomcat/conf/workers2.properties
new file mode 100644
index 0000000..778118f
--- /dev/null
+++ b/tomcat/conf/workers2.properties
@@ -0,0 +1,132 @@
+[logger]
+level=DEBUG
+
+[config:]
+file=${serverRoot}/conf/workers2.properties
+debug=0
+debugEnv=0
+
+[uriMap:]
+info=Maps the requests. Options: debug
+debug=0
+
+# Alternate file logger
+#[logger.file:0]
+#level=DEBUG
+#file=${serverRoot}/logs/jk2.log
+
+[shm:]
+info=Scoreboard. Required for reconfiguration and status with multiprocess servers
+file=${serverRoot}/logs/jk2.shm
+size=1000000
+debug=0
+disabled=0
+
+[workerEnv:]
+info=Global server options
+timing=1
+debug=0
+# Default Native Logger (apache2 or win32 )
+# can be overriden to a file logger, useful
+# when tracing win32 related issues
+#logger=logger.file:0
+
+[lb:lb]
+info=Default load balancer.
+debug=0
+
+[lb:lb_1]
+info=A second load balancer.
+debug=0
+
+[channel.socket:localhost:8009]
+info=Ajp13 forwarding over socket
+debug=0
+tomcatId=localhost:8009
+
+[channel.socket:localhost:8019]
+info=A second tomcat instance.
+debug=0
+tomcatId=localhost:8019
+lb_factor=1
+#group=lb
+group:lb:lb
+#group=lb_1
+group:lb:lb_1
+disabled=0
+
+[channel.un:/opt/33/work/jk2.socket]
+info=A second channel connecting to localhost:8019 via unix socket
+tomcatId=localhost:8019
+lb_factor=1
+debug=0
+
+[channel.jni:jni]
+info=The jni channel, used if tomcat is started inprocess
+
+[status:]
+info=Status worker, displays runtime informations
+
+[vm:]
+info=Parameters used to load a JVM in the server process
+#JVM=C:\jdk\jre\bin\hotspot\jvm.dll
+classpath=${TOMCAT_HOME}/bin/tomcat-jni.jar
+classpath=${TOMCAT_HOME}/server/lib/commons-logging.jar
+OPT=-Dtomcat.home=${TOMCAT_HOME}
+OPT=-Dcatalina.home=${TOMCAT_HOME}
+OPT=-Xmx128M
+#OPT=-Djava.compiler=NONE
+disabled=1
+
+[worker.jni:onStartup]
+info=Command to be executed by the VM on startup. This one will start tomcat.
+class=org/apache/jk/apr/TomcatStarter
+ARG=start
+# For Tomcat 5 use the 'stard' for startup argument
+# ARG=stard
+disabled=1
+stdout=${serverRoot}/logs/stdout.log
+stderr=${serverRoot}/logs/stderr.log
+
+[worker.jni:onShutdown]
+info=Command to be executed by the VM on shutdown. This one will stop tomcat.
+class=org/apache/jk/apr/TomcatStarter
+ARG=stop
+disabled=1
+
+[uri:/jkstatus/*]
+info=Display status information and checks the config file for changes.
+group=status:
+
+[uri:127.0.0.1:8003]
+info=Example virtual host. Make sure myVirtualHost is in /etc/hosts to test it
+alias=myVirtualHost:8003
+
+[uri:127.0.0.1:8003/ex]
+info=Example webapp in the virtual host. It'll go to lb_1 ( i.e. localhost:8019 )
+context=/ex
+group=lb_1
+
+[uri:/examples]
+info=Example webapp in the default context.
+context=/examples
+debug=0
+
+[uri:/examples1/*]
+info=A second webapp, this time going to the second tomcat only.
+group=lb_1
+debug=0
+
+[uri:/examples/servlet/*]
+info=Prefix mapping
+
+[uri:/examples/*.jsp]
+info=Extension mapping
+
+[uri:/examples/*]
+info=Map the whole webapp
+
+[uri:/examples/servlet/HelloW]
+info=Example with debug enabled.
+debug=10
+
diff --git a/tomcat/conf/workers2.properties.minimal b/tomcat/conf/workers2.properties.minimal
new file mode 100644
index 0000000..41a0ba6
--- /dev/null
+++ b/tomcat/conf/workers2.properties.minimal
@@ -0,0 +1,55 @@
+#
+# This is the minimal JK2 connector configuration file.
+#
+
+[logger]
+info=Native logger
+level=ERROR
+
+[config:]
+file=${serverRoot}/conf/workers2.properties
+debug=0
+debugEnv=0
+
+[uriMap:]
+info=Maps the requests.
+debug=0
+
+[shm:]
+info=Scoreboard. Required for reconfiguration and status with multiprocess servers
+file=anonymous
+debug=0
+
+[workerEnv:]
+info=Global server options
+timing=0
+debug=0
+
+[lb:lb]
+info=Default load balancer.
+debug=0
+
+[channel.socket:localhost:8009]
+info=Ajp13 forwarding over socket
+debug=0
+tomcatId=localhost:8009
+
+[uri:/admin]
+info=Tomcat HTML based administration web application.
+debug=0
+
+[uri:/manager]
+info=A scriptable management web application for the Tomcat Web Server.
+debug=0
+
+[uri:/jsp-examples]
+info=JSP 2.0 Examples.
+debug=0
+
+[uri:/servlets-examples]
+info=Servlet 2.4 Examples.
+debug=0
+
+[uri:/*.jsp]
+info=JSP Extension mapping.
+debug=0
diff --git a/tomcat/logs/.cvsignore b/tomcat/logs/.cvsignore
new file mode 100644
index 0000000..073f461
--- /dev/null
+++ b/tomcat/logs/.cvsignore
@@ -0,0 +1,2 @@
+*.log
+*.out
diff --git a/tomcat/logs/access/.cvsignore b/tomcat/logs/access/.cvsignore
new file mode 100644
index 0000000..2211df6
--- /dev/null
+++ b/tomcat/logs/access/.cvsignore
@@ -0,0 +1 @@
+*.txt
diff --git a/tomcat/server/lib/catalina-ant.jar b/tomcat/server/lib/catalina-ant.jar
new file mode 100644
index 0000000..79c4bc2
Binary files /dev/null and b/tomcat/server/lib/catalina-ant.jar differ
diff --git a/tomcat/server/lib/catalina-cluster.jar b/tomcat/server/lib/catalina-cluster.jar
new file mode 100644
index 0000000..a24efb1
Binary files /dev/null and b/tomcat/server/lib/catalina-cluster.jar differ
diff --git a/tomcat/server/lib/catalina-optional.jar b/tomcat/server/lib/catalina-optional.jar
new file mode 100644
index 0000000..6a0b068
Binary files /dev/null and b/tomcat/server/lib/catalina-optional.jar differ
diff --git a/tomcat/server/lib/catalina-storeconfig.jar b/tomcat/server/lib/catalina-storeconfig.jar
new file mode 100644
index 0000000..5be1df2
Binary files /dev/null and b/tomcat/server/lib/catalina-storeconfig.jar differ
diff --git a/tomcat/server/lib/catalina.jar b/tomcat/server/lib/catalina.jar
new file mode 100644
index 0000000..a3b30d8
Binary files /dev/null and b/tomcat/server/lib/catalina.jar differ
diff --git a/tomcat/server/lib/commons-modeler.jar b/tomcat/server/lib/commons-modeler.jar
new file mode 100644
index 0000000..e098598
Binary files /dev/null and b/tomcat/server/lib/commons-modeler.jar differ
diff --git a/tomcat/server/lib/servlets-cgi.renametojar b/tomcat/server/lib/servlets-cgi.renametojar
new file mode 100644
index 0000000..5d84feb
Binary files /dev/null and b/tomcat/server/lib/servlets-cgi.renametojar differ
diff --git a/tomcat/server/lib/servlets-default.jar b/tomcat/server/lib/servlets-default.jar
new file mode 100644
index 0000000..c70ceba
Binary files /dev/null and b/tomcat/server/lib/servlets-default.jar differ
diff --git a/tomcat/server/lib/servlets-invoker.jar b/tomcat/server/lib/servlets-invoker.jar
new file mode 100644
index 0000000..a342176
Binary files /dev/null and b/tomcat/server/lib/servlets-invoker.jar differ
diff --git a/tomcat/server/lib/servlets-ssi.renametojar b/tomcat/server/lib/servlets-ssi.renametojar
new file mode 100644
index 0000000..5f6522d
Binary files /dev/null and b/tomcat/server/lib/servlets-ssi.renametojar differ
diff --git a/tomcat/server/lib/servlets-webdav.jar b/tomcat/server/lib/servlets-webdav.jar
new file mode 100644
index 0000000..b7bdb21
Binary files /dev/null and b/tomcat/server/lib/servlets-webdav.jar differ
diff --git a/tomcat/server/lib/tomcat-ajp.jar b/tomcat/server/lib/tomcat-ajp.jar
new file mode 100644
index 0000000..dc1c145
Binary files /dev/null and b/tomcat/server/lib/tomcat-ajp.jar differ
diff --git a/tomcat/server/lib/tomcat-coyote.jar b/tomcat/server/lib/tomcat-coyote.jar
new file mode 100644
index 0000000..e870d5e
Binary files /dev/null and b/tomcat/server/lib/tomcat-coyote.jar differ
diff --git a/tomcat/server/lib/tomcat-http.jar b/tomcat/server/lib/tomcat-http.jar
new file mode 100644
index 0000000..9b8ce6c
Binary files /dev/null and b/tomcat/server/lib/tomcat-http.jar differ
diff --git a/tomcat/server/lib/tomcat-util.jar b/tomcat/server/lib/tomcat-util.jar
new file mode 100644
index 0000000..217de20
Binary files /dev/null and b/tomcat/server/lib/tomcat-util.jar differ
diff --git a/tomcat/server/webapps/admin/WEB-INF/controls.tld b/tomcat/server/webapps/admin/WEB-INF/controls.tld
new file mode 100644
index 0000000..d77dbfc
--- /dev/null
+++ b/tomcat/server/webapps/admin/WEB-INF/controls.tld
@@ -0,0 +1,419 @@
+
+
+
+
+
+ 1.0
+ 1.2
+ controls
+
+ JSP tag library containing custom GUI controls used in the
+ Tomcat Administrative Application.
+
+
+
+
+
+
+ table
+ org.apache.webapp.admin.TableTag
+ JSP
+
+ Render a "table" object, which is rendered as an HTML
+ "table" element.
+
+ NOTE: The only valid nested content for this tag is
+ "row" tags from this library. Anything else will cause
+ the rendered HTML to be invalid.
+
+ NOTE: To be usable, this tag must be nested inside an
+ HTML <form> element.
+
+
+
+ columns
+ false
+ true
+
+ (Integer) number of columns that the table contains. If
+ not specified, only two columns will be visible.
+
+
+
+
+ tableStyle
+ false
+ true
+
+ The CSS style class to be applied to the entire rendered output
+ of the instant table. If not specified, no overall
+ style class is applied.
+
+
+
+
+ lineStyle
+ false
+ true
+
+ The CSS style for the lines between rows.
+
+
+
+
+
+
+
+ row
+ org.apache.webapp.admin.RowTag
+ JSP
+
+ Define a single "instant table row" option for the surrounding "table"
+ tag. It is not valid to use this tag *except* when nested inside an
+ "table" tag.
+
+ NOTE: This tag can nest only "label" and "data" tags.
+
+
+
+ header
+ false
+ true
+
+ (Boolean) variable set to "true" or "yes" if this row is
+ the header row.
+
+
+
+
+ labelStyle
+ false
+ true
+
+ The style for the label table data element.
+
+
+
+
+ dataStyle
+ false
+ true
+
+ The style for the value of the table data element.
+
+
+
+
+ styleId
+ false
+ true
+
+ The styleId for the label table data element.
+
+
+
+
+
+
+
+ label
+ org.apache.webapp.admin.LabelTag
+ JSP
+
+ Render a "label" object, which is rendered as a label in the row of
+ an HTML "table" element.
+
+ NOTE: To be usable, this tag must be nested inside a "row" tag.
+
+
+
+
+
+ data
+ org.apache.webapp.admin.DataTag
+ JSP
+
+ Render a "data" object, which is rendered as a label in the row of
+ an HTML "table" element.
+
+ NOTE: To be usable, this tag must be nested inside a "row" tag.
+
+
+
+
+
+
+
+ actions
+ org.apache.webapp.admin.ActionsTag
+ JSP
+
+ Render an "instant actions" object, which is rendered as an HTML
+ "select" element, where the selection of a particular element from
+ the list immediately causes a JavaScript function to be executed
+ (with the available elements specified by "action" tag instances
+ nested within the body of the "actions" tag).
+
+ NOTE: The only valid nested content for this tag is
+ "action" tags from this library. Anything else will cause
+ the rendered HTML to be invalid.
+
+ NOTE: To be usable, this tag must be nested inside an
+ HTML <form> element.
+
+
+
+ size
+ false
+ true
+
+ (Integer) number of rows that will be visible to the user. If
+ not specified, only one row will be visible.
+
+
+
+
+ style
+ false
+ true
+
+ The CSS style class to be applied to the entire rendered output
+ of the instant actions control. If not specified, no overall
+ style class is applied.
+
+
+
+
+ label
+ false
+ true
+
+ HTML Label tag generation.
+
+
+
+
+
+
+
+ action
+ org.apache.webapp.admin.ActionTag
+ JSP
+
+ Define a single "instant action" option for the surrounding "actions"
+ tag. It is not valid to use this tag *except* when nested inside an
+ "actions" tag.
+
+ NOTE: The body content of this tag (which should be suitably
+ localized, if required by your application) is used as the
+ user-visible label for this action.
+
+
+
+ selected
+ false
+ true
+
+ (Boolean) variable set to "true" or "yes" if this action should
+ already be selected when the "instant actions" element is
+ initially displayed.
+
+
+
+
+ disabled
+ false
+ true
+
+ (Boolean) variable set to "true" or "yes" if the selection
+ for this action should be disabled.
+
+
+
+
+ url
+ false
+ true
+
+ The URL to which the current frame or window will be transferred
+ if the "onchange" event handler of this "instant actions" element
+ is triggered, and this is the currently selected action. If no
+ URL is specified, no action will be taken (useful for "(None)"
+ options and dividers).
+
+ If this URL starts with a slash, it will be assumed to be
+ context-relative, and will be prefixed with the context path
+ of this request. Otherwise, it will be used unmodified.
+
+ NOTE: This URL will be passed through URL rewriting so that it
+ will maintain session identity even in environments were cookies
+ are not being used.
+
+
+
+
+
+
+
+
+
+
+ tree
+ org.apache.webapp.admin.TreeControlTag
+ empty
+
+ Render a "tree" control, based on the current state of a data object
+ of type org.apache.webapp.admin.TreeControl, which is identified
+ by the name specified in the "tree" attribute, in the JSP scope
+ specified by the "scope" attribute.
+
+
+
+ action
+ false
+ true
+
+ Hyperlink to which expand/contract actions should be sent,
+ with a string "${node}" marking where the node name of the
+ affected node should be included (which will usually be as
+ the value of a request parameter).
+
+
+
+
+ images
+ false
+ true
+
+ Name of a directory containing the images for our icons,
+ relative to the page including this tag. If not specified,
+ defaults to "images".
+
+
+
+
+ scope
+ false
+ true
+
+ The JSP scope within which the "tree" attribute is to be found
+ (page, request, session, or application). If not specified, the
+ "tree" attribute will be searched for in any scope.
+
+
+
+
+ style
+ false
+ true
+
+ The CSS style class to be applied to the entire rendered output
+ of the tree control. If not specified, no overall style class
+ is applied.
+
+
+
+
+ styleSelected
+ false
+ true
+
+ The CSS style class to be applied to the text of any node that
+ is currently selected. If not specified, no style class will be
+ applied to the text of the selected node.
+
+
+
+
+ styleUnselected
+ false
+ true
+
+ The CSS style class to be applied to the text of any node that
+ is *not* currently selected. If not specified, no style class will
+ be applied to the text of non-selected nodes.
+
+
+
+
+ tree
+ false
+ true
+
+ Name of the attribute (in the scope specified by the "scope"
+ attribute, if any) under which an object of type
+ org.apache.webapp.admin.TreeControl is stored. This object
+ represents the entire current state of the tree, including
+ a representation of the hierarchical representation of the
+ nodes, plus the current expanded/ or contracted state of
+ non-leaf nodes.
+
+
+
+
+
+
+
+
+
+ attribute
+ org.apache.webapp.admin.AttributeTag
+ empty
+
+ Look up an attribute on a JMX MBean, specified by an object name
+ specified by the "name" (and optional "property" and "scope")
+ attributes, and render it to the current JSP writer. The object name
+ identified by these attributes can be either a java.lang.String version
+ of the name, or a javax.management.ObjectName instance.
+
+
+
+ attribute
+ true
+ true
+
+ Name of the attribute of the JMX MBean whose value is to be
+ retrieved and written to the current JSP writer.
+
+
+
+
+ name
+ true
+ true
+
+ Name of a bean, optionally in some scope identified by the "scope"
+ attribute. If the "property" attribute is not specified, this bean
+ must by a String or an ObjectName. Otherwise, this bean must have
+ a property getter for the property named by "property", which will
+ return the String or ObjectName.
+
+
+
+
+ property
+ false
+ true
+
+ Name of a bean property, on the bean identified by the "name"
+ (and optional "scope") attributes, that is either a String or an
+ ObjectName of the JMX MBean whose attribute is to be retrieved.
+
+
+
+
+ scope
+ false
+ true
+
+ Name of the scope ("page", "request", "session", or "application")
+ in which the bean identified by the "name" attribute is to be found.
+ If not specified, all scopes will be searched in ascending order.
+
+
+
+
+
+
diff --git a/tomcat/server/webapps/admin/WEB-INF/lib/catalina-admin.jar b/tomcat/server/webapps/admin/WEB-INF/lib/catalina-admin.jar
new file mode 100644
index 0000000..1ce4d39
Binary files /dev/null and b/tomcat/server/webapps/admin/WEB-INF/lib/catalina-admin.jar differ
diff --git a/tomcat/server/webapps/admin/WEB-INF/lib/commons-beanutils.jar b/tomcat/server/webapps/admin/WEB-INF/lib/commons-beanutils.jar
new file mode 100644
index 0000000..b1b89c9
Binary files /dev/null and b/tomcat/server/webapps/admin/WEB-INF/lib/commons-beanutils.jar differ
diff --git a/tomcat/server/webapps/admin/WEB-INF/lib/commons-collections.jar b/tomcat/server/webapps/admin/WEB-INF/lib/commons-collections.jar
new file mode 100644
index 0000000..41e230f
Binary files /dev/null and b/tomcat/server/webapps/admin/WEB-INF/lib/commons-collections.jar differ
diff --git a/tomcat/server/webapps/admin/WEB-INF/lib/commons-digester.jar b/tomcat/server/webapps/admin/WEB-INF/lib/commons-digester.jar
new file mode 100644
index 0000000..9765493
Binary files /dev/null and b/tomcat/server/webapps/admin/WEB-INF/lib/commons-digester.jar differ
diff --git a/tomcat/server/webapps/admin/WEB-INF/lib/struts.jar b/tomcat/server/webapps/admin/WEB-INF/lib/struts.jar
new file mode 100644
index 0000000..e85e1f9
Binary files /dev/null and b/tomcat/server/webapps/admin/WEB-INF/lib/struts.jar differ
diff --git a/tomcat/server/webapps/admin/WEB-INF/struts-config.xml b/tomcat/server/webapps/admin/WEB-INF/struts-config.xml
new file mode 100644
index 0000000..c3da0c0
--- /dev/null
+++ b/tomcat/server/webapps/admin/WEB-INF/struts-config.xml
@@ -0,0 +1,970 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tomcat/server/webapps/admin/WEB-INF/web.xml b/tomcat/server/webapps/admin/WEB-INF/web.xml
new file mode 100644
index 0000000..d5c7c7b
--- /dev/null
+++ b/tomcat/server/webapps/admin/WEB-INF/web.xml
@@ -0,0 +1,772 @@
+
+
+
+ Tomcat Administration Application
+
+ Tomcat HTML based administration web application.
+
+
+
+
+
+ Set Character Encoding
+ org.apache.webapp.admin.filters.SetCharacterEncodingFilter
+
+ encoding
+ UTF8
+
+
+
+
+
+
+ Set Character Encoding
+ /*
+
+
+
+
+ action
+
+ org.apache.webapp.admin.ApplicationServlet
+
+
+
+ config
+ /WEB-INF/struts-config.xml
+
+
+
+ detail
+ 0
+
+
+
+
+ validate
+ false
+
+
+
+
+ treebuilders
+
+ org.apache.webapp.admin.TomcatTreeBuilder,
+ org.apache.webapp.admin.resources.ResourcesTreeBuilder,
+ org.apache.webapp.admin.users.UsersTreeBuilder
+
+
+
+ domain
+ Catalina
+
+
+
+
+
+
+
+ admin.banner_jsp
+ admin.banner_jsp
+
+
+
+ admin.blank_jsp
+ admin.blank_jsp
+
+
+
+ admin.buttons_jsp
+ admin.buttons_jsp
+
+
+
+ admin.dumpRegistry_jsp
+ admin.dumpRegistry_jsp
+
+
+
+ admin.dumpServer_jsp
+ admin.dumpServer_jsp
+
+
+
+ admin.error_jsp
+ admin.error_jsp
+
+
+
+ admin.footer_jsp
+ admin.footer_jsp
+
+
+
+ admin.frameset_jsp
+ admin.frameset_jsp
+
+
+
+ admin.header_jsp
+ admin.header_jsp
+
+
+
+ admin.index_jsp
+ admin.index_jsp
+
+
+
+ admin.login_jsp
+ admin.login_jsp
+
+
+
+ admin.saved_jsp
+ admin.saved_jsp
+
+
+
+ admin.savefail_jsp
+ admin.savefail_jsp
+
+
+
+ admin.tree_002dcontrol_002dtest_jsp
+ admin.tree_002dcontrol_002dtest_jsp
+
+
+
+ admin.valve.accessLogValve_jsp
+ admin.valve.accessLogValve_jsp
+
+
+
+ admin.valve.remoteAddrValve_jsp
+ admin.valve.remoteAddrValve_jsp
+
+
+
+ admin.valve.remoteHostValve_jsp
+ admin.valve.remoteHostValve_jsp
+
+
+
+ admin.valve.requestDumperValve_jsp
+ admin.valve.requestDumperValve_jsp
+
+
+
+ admin.valve.singleSignOnValve_jsp
+ admin.valve.singleSignOnValve_jsp
+
+
+
+ admin.valve.valves_jsp
+ admin.valve.valves_jsp
+
+
+
+ admin.users.deleteGroups_jsp
+ admin.users.deleteGroups_jsp
+
+
+
+ admin.users.deleteRoles_jsp
+ admin.users.deleteRoles_jsp
+
+
+
+ admin.users.deleteUsers_jsp
+ admin.users.deleteUsers_jsp
+
+
+
+ admin.users.footer_jsp
+ admin.users.footer_jsp
+
+
+
+ admin.users.group_jsp
+ admin.users.group_jsp
+
+
+
+ admin.users.header_jsp
+ admin.users.header_jsp
+
+
+
+ admin.users.listGroups_jsp
+ admin.users.listGroups_jsp
+
+
+
+ admin.users.listRoles_jsp
+ admin.users.listRoles_jsp
+
+
+
+ admin.users.listUsers_jsp
+ admin.users.listUsers_jsp
+
+
+
+ admin.users.role_jsp
+ admin.users.role_jsp
+
+
+
+ admin.users.user_jsp
+ admin.users.user_jsp
+
+
+
+ admin.service.service_jsp
+ admin.service.service_jsp
+
+
+
+ admin.service.services_jsp
+ admin.service.services_jsp
+
+
+
+ admin.server.server_jsp
+ admin.server.server_jsp
+
+
+
+ admin.resources.dataSource_jsp
+ admin.resources.dataSource_jsp
+
+
+
+ admin.resources.deleteDataSources_jsp
+ admin.resources.deleteDataSources_jsp
+
+
+
+ admin.resources.deleteEnvEntries_jsp
+ admin.resources.deleteEnvEntries_jsp
+
+
+
+ admin.resources.deleteMailSessions_jsp
+ admin.resources.deleteMailSessions_jsp
+
+
+
+ admin.resources.deleteResourceLinks_jsp
+ admin.resources.deleteResourceLinks_jsp
+
+
+
+ admin.resources.deleteUserDatabases_jsp
+ admin.resources.deleteUserDatabases_jsp
+
+
+
+ admin.resources.envEntry_jsp
+ admin.resources.envEntry_jsp
+
+
+
+ admin.resources.listDataSources_jsp
+ admin.resources.listDataSources_jsp
+
+
+
+ admin.resources.listEnvEntries_jsp
+ admin.resources.listEnvEntries_jsp
+
+
+
+ admin.resources.listMailSessions_jsp
+ admin.resources.listMailSessions_jsp
+
+
+
+ admin.resources.listResourceLinks_jsp
+ admin.resources.listResourceLinks_jsp
+
+
+
+ admin.resources.listUserDatabases_jsp
+ admin.resources.listUserDatabases_jsp
+
+
+
+ admin.resources.mailSession_jsp
+ admin.resources.mailSession_jsp
+
+
+
+ admin.resources.resourceLink_jsp
+ admin.resources.resourceLink_jsp
+
+
+
+ admin.resources.userDatabase_jsp
+ admin.resources.userDatabase_jsp
+
+
+
+ admin.realm.dataSourceRealm_jsp
+ admin.realm.dataSourceRealm_jsp
+
+
+
+ admin.realm.jdbcRealm_jsp
+ admin.realm.jdbcRealm_jsp
+
+
+
+ admin.realm.jndiRealm_jsp
+ admin.realm.jndiRealm_jsp
+
+
+
+ admin.realm.memoryRealm_jsp
+ admin.realm.memoryRealm_jsp
+
+
+
+ admin.realm.realms_jsp
+ admin.realm.realms_jsp
+
+
+
+ admin.realm.userDatabaseRealm_jsp
+ admin.realm.userDatabaseRealm_jsp
+
+
+
+ admin.host.alias_jsp
+ admin.host.alias_jsp
+
+
+
+ admin.host.aliases_jsp
+ admin.host.aliases_jsp
+
+
+
+ admin.host.host_jsp
+ admin.host.host_jsp
+
+
+
+ admin.host.hosts_jsp
+ admin.host.hosts_jsp
+
+
+
+ admin.context.context_jsp
+ admin.context.context_jsp
+
+
+
+ admin.context.contexts_jsp
+ admin.context.contexts_jsp
+
+
+
+ admin.connector.connector_jsp
+ admin.connector.connector_jsp
+
+
+
+ admin.connector.connectors_jsp
+ admin.connector.connectors_jsp
+
+
+
+ admin.banner_jsp
+ /banner.jsp
+
+
+
+ admin.blank_jsp
+ /blank.jsp
+
+
+
+ admin.buttons_jsp
+ /buttons.jsp
+
+
+
+ admin.dumpRegistry_jsp
+ /dumpRegistry.jsp
+
+
+
+ admin.dumpServer_jsp
+ /dumpServer.jsp
+
+
+
+ admin.error_jsp
+ /error.jsp
+
+
+
+ admin.footer_jsp
+ /footer.jsp
+
+
+
+ admin.frameset_jsp
+ /frameset.jsp
+
+
+
+ admin.header_jsp
+ /header.jsp
+
+
+
+ admin.index_jsp
+ /index.jsp
+
+
+
+ admin.login_jsp
+ /login.jsp
+
+
+
+ admin.saved_jsp
+ /saved.jsp
+
+
+
+ admin.savefail_jsp
+ /savefail.jsp
+
+
+
+ admin.tree_002dcontrol_002dtest_jsp
+ /tree-control-test.jsp
+
+
+
+ admin.valve.accessLogValve_jsp
+ /valve/accessLogValve.jsp
+
+
+
+ admin.valve.remoteAddrValve_jsp
+ /valve/remoteAddrValve.jsp
+
+
+
+ admin.valve.remoteHostValve_jsp
+ /valve/remoteHostValve.jsp
+
+
+
+ admin.valve.requestDumperValve_jsp
+ /valve/requestDumperValve.jsp
+
+
+
+ admin.valve.singleSignOnValve_jsp
+ /valve/singleSignOnValve.jsp
+
+
+
+ admin.valve.valves_jsp
+ /valve/valves.jsp
+
+
+
+ admin.users.deleteGroups_jsp
+ /users/deleteGroups.jsp
+
+
+
+ admin.users.deleteRoles_jsp
+ /users/deleteRoles.jsp
+
+
+
+ admin.users.deleteUsers_jsp
+ /users/deleteUsers.jsp
+
+
+
+ admin.users.footer_jsp
+ /users/footer.jsp
+
+
+
+ admin.users.group_jsp
+ /users/group.jsp
+
+
+
+ admin.users.header_jsp
+ /users/header.jsp
+
+
+
+ admin.users.listGroups_jsp
+ /users/listGroups.jsp
+
+
+
+ admin.users.listRoles_jsp
+ /users/listRoles.jsp
+
+
+
+ admin.users.listUsers_jsp
+ /users/listUsers.jsp
+
+
+
+ admin.users.role_jsp
+ /users/role.jsp
+
+
+
+ admin.users.user_jsp
+ /users/user.jsp
+
+
+
+ admin.service.service_jsp
+ /service/service.jsp
+
+
+
+ admin.service.services_jsp
+ /service/services.jsp
+
+
+
+ admin.server.server_jsp
+ /server/server.jsp
+
+
+
+ admin.resources.dataSource_jsp
+ /resources/dataSource.jsp
+
+
+
+ admin.resources.deleteDataSources_jsp
+ /resources/deleteDataSources.jsp
+
+
+
+ admin.resources.deleteEnvEntries_jsp
+ /resources/deleteEnvEntries.jsp
+
+
+
+ admin.resources.deleteMailSessions_jsp
+ /resources/deleteMailSessions.jsp
+
+
+
+ admin.resources.deleteResourceLinks_jsp
+ /resources/deleteResourceLinks.jsp
+
+
+
+ admin.resources.deleteUserDatabases_jsp
+ /resources/deleteUserDatabases.jsp
+
+
+
+ admin.resources.envEntry_jsp
+ /resources/envEntry.jsp
+
+
+
+ admin.resources.listDataSources_jsp
+ /resources/listDataSources.jsp
+
+
+
+ admin.resources.listEnvEntries_jsp
+ /resources/listEnvEntries.jsp
+
+
+
+ admin.resources.listMailSessions_jsp
+ /resources/listMailSessions.jsp
+
+
+
+ admin.resources.listResourceLinks_jsp
+ /resources/listResourceLinks.jsp
+
+
+
+ admin.resources.listUserDatabases_jsp
+ /resources/listUserDatabases.jsp
+
+
+
+ admin.resources.mailSession_jsp
+ /resources/mailSession.jsp
+
+
+
+ admin.resources.resourceLink_jsp
+ /resources/resourceLink.jsp
+
+
+
+ admin.resources.userDatabase_jsp
+ /resources/userDatabase.jsp
+
+
+
+ admin.realm.dataSourceRealm_jsp
+ /realm/dataSourceRealm.jsp
+
+
+
+ admin.realm.jdbcRealm_jsp
+ /realm/jdbcRealm.jsp
+
+
+
+ admin.realm.jndiRealm_jsp
+ /realm/jndiRealm.jsp
+
+
+
+ admin.realm.memoryRealm_jsp
+ /realm/memoryRealm.jsp
+
+
+
+ admin.realm.realms_jsp
+ /realm/realms.jsp
+
+
+
+ admin.realm.userDatabaseRealm_jsp
+ /realm/userDatabaseRealm.jsp
+
+
+
+ admin.host.alias_jsp
+ /host/alias.jsp
+
+
+
+ admin.host.aliases_jsp
+ /host/aliases.jsp
+
+
+
+ admin.host.host_jsp
+ /host/host.jsp
+
+
+
+ admin.host.hosts_jsp
+ /host/hosts.jsp
+
+
+
+ admin.context.context_jsp
+ /context/context.jsp
+
+
+
+ admin.context.contexts_jsp
+ /context/contexts.jsp
+
+
+
+ admin.connector.connector_jsp
+ /connector/connector.jsp
+
+
+
+ admin.connector.connectors_jsp
+ /connector/connectors.jsp
+
+
+
+
+
+ action
+ *.do
+
+
+
+
+ Tomcat Server Configuration Security Constraint
+
+ Protected Area
+
+ *.jsp
+ *.do
+ *.html
+
+
+
+ admin
+
+
+
+
+
+ FORM
+ Tomcat Server Configuration Form-Based Authentication Area
+
+ /login.jsp
+ /error.jsp
+
+
+
+
+
+
+ The role that is required to log in to the Administration Application
+
+ admin
+
+
+
diff --git a/tomcat/server/webapps/admin/admin.css b/tomcat/server/webapps/admin/admin.css
new file mode 100644
index 0000000..d6c8dba
--- /dev/null
+++ b/tomcat/server/webapps/admin/admin.css
@@ -0,0 +1,95 @@
+.masthead-title-text {
+ color: #FFFFFF;
+ margin: 3px 5px 5px 3px;
+ font-size: large;
+ font-family: Arial, Verdana,Helvetica, Sans-Serif;
+}
+
+.page-title-text {
+ color: #FFFFFF;
+ font-weight: bold;
+ margin: 3px 5px 5px 3px;
+ font-size: normal;
+ font-family: Arial, Verdana, Helvetica, Sans-Serif;
+}
+
+.table-title-text {
+ color: #000000;
+ font-weight: bold;
+ margin: 3px 5px 5px 4px;
+ font-family: Arial, Verdana, Helvetica, Sans-Serif;
+}
+
+.table-header-text {
+ color: #FFFFFF;
+ font-weight: normal;
+ margin: 3px 5px 1px 15px;
+ font-family: Arial, Verdana,Helvetica, Sans-Serif;
+}
+
+.table-label-text {
+ color: #000000;
+ margin: 3px 5px 3px 15px;
+ font-family: Arial, Verdana, Helvetica, Sans-Serif;
+}
+
+.table-normal-text {
+ color: #000000;
+ margin: 3px 5px 3px 15px;
+ font-family: "Times New Roman", Times, serif;
+}
+
+.back-table {
+ background-color: #9999CC;
+ margin: 0px 5px 3px 5px;
+ font-family: Verdana, Arial, Helvetica, Sans-Serif;
+}
+
+.front-table {
+ background-color: #FFFFFF;
+ font-family: Arial, Verdana, Helvetica, Sans-Serif;
+}
+
+.page-title-row {
+ background-color: #7171A5;
+ text-align: right;
+ font-family: Arial, Verdana, Helvetica, Sans-Serif;
+}
+
+.header-row {
+ background-color: #9999CC;
+ text-align: center;
+ font-family: Arial, Verdana, Helvetica, Sans-Serif;
+}
+
+.sort-row {
+ background-color: #CECEFF;
+ text-align: center;
+ font-family: Arial, Verdana, Helvetica, Sans-Serif;
+}
+
+.line-row {
+ background-color: #CCCCCC;
+ font-family: Arial, Verdana, Helvetica, Sans-Serif;
+}
+
+.button {
+ background-color: #CCCCFF;
+ font-family: Arial, Verdana, Helvetica, Sans-Serif;
+}
+
+a.button-link-text:visited, a.button-link-text:link, a.button-link-text:active {
+ color: #000000;
+ background-color: #CCCCFF;
+ font-weight: bold;
+ font-family: Arial, Verdana, Geneva, Helvetica, Sans-Serif;
+ text-decoration: none;
+}
+
+a.button-link-text:hover {
+ color: #000000;
+ background-color: #CCCCFF;
+ font-weight: bold;
+ font-family: Arial, Verdana, Geneva, Helvetica, Sans-Serif;
+ text-decoration: underline;
+}
diff --git a/tomcat/server/webapps/admin/admin.xml b/tomcat/server/webapps/admin/admin.xml
new file mode 100644
index 0000000..42ebd2b
--- /dev/null
+++ b/tomcat/server/webapps/admin/admin.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
diff --git a/tomcat/server/webapps/admin/images/BlueTile.gif b/tomcat/server/webapps/admin/images/BlueTile.gif
new file mode 100644
index 0000000..dacdfc1
Binary files /dev/null and b/tomcat/server/webapps/admin/images/BlueTile.gif differ
diff --git a/tomcat/server/webapps/admin/images/Connector.gif b/tomcat/server/webapps/admin/images/Connector.gif
new file mode 100644
index 0000000..00b31cc
Binary files /dev/null and b/tomcat/server/webapps/admin/images/Connector.gif differ
diff --git a/tomcat/server/webapps/admin/images/Context.gif b/tomcat/server/webapps/admin/images/Context.gif
new file mode 100644
index 0000000..332356b
Binary files /dev/null and b/tomcat/server/webapps/admin/images/Context.gif differ
diff --git a/tomcat/server/webapps/admin/images/Datasource.gif b/tomcat/server/webapps/admin/images/Datasource.gif
new file mode 100644
index 0000000..20d6751
Binary files /dev/null and b/tomcat/server/webapps/admin/images/Datasource.gif differ
diff --git a/tomcat/server/webapps/admin/images/DefaultContext.gif b/tomcat/server/webapps/admin/images/DefaultContext.gif
new file mode 100644
index 0000000..4ae60ff
Binary files /dev/null and b/tomcat/server/webapps/admin/images/DefaultContext.gif differ
diff --git a/tomcat/server/webapps/admin/images/EnvironmentEntries.gif b/tomcat/server/webapps/admin/images/EnvironmentEntries.gif
new file mode 100644
index 0000000..01c4b0d
Binary files /dev/null and b/tomcat/server/webapps/admin/images/EnvironmentEntries.gif differ
diff --git a/tomcat/server/webapps/admin/images/Groups.gif b/tomcat/server/webapps/admin/images/Groups.gif
new file mode 100644
index 0000000..d6a489e
Binary files /dev/null and b/tomcat/server/webapps/admin/images/Groups.gif differ
diff --git a/tomcat/server/webapps/admin/images/Host.gif b/tomcat/server/webapps/admin/images/Host.gif
new file mode 100644
index 0000000..ab27301
Binary files /dev/null and b/tomcat/server/webapps/admin/images/Host.gif differ
diff --git a/tomcat/server/webapps/admin/images/Logger.gif b/tomcat/server/webapps/admin/images/Logger.gif
new file mode 100644
index 0000000..ee15fe4
Binary files /dev/null and b/tomcat/server/webapps/admin/images/Logger.gif differ
diff --git a/tomcat/server/webapps/admin/images/Login.jpg b/tomcat/server/webapps/admin/images/Login.jpg
new file mode 100644
index 0000000..60bdabd
Binary files /dev/null and b/tomcat/server/webapps/admin/images/Login.jpg differ
diff --git a/tomcat/server/webapps/admin/images/LoginBackgroundTile.gif b/tomcat/server/webapps/admin/images/LoginBackgroundTile.gif
new file mode 100644
index 0000000..62f91f3
Binary files /dev/null and b/tomcat/server/webapps/admin/images/LoginBackgroundTile.gif differ
diff --git a/tomcat/server/webapps/admin/images/Mailsession.gif b/tomcat/server/webapps/admin/images/Mailsession.gif
new file mode 100644
index 0000000..5c8a1bf
Binary files /dev/null and b/tomcat/server/webapps/admin/images/Mailsession.gif differ
diff --git a/tomcat/server/webapps/admin/images/PaperTexture.gif b/tomcat/server/webapps/admin/images/PaperTexture.gif
new file mode 100644
index 0000000..0d24833
Binary files /dev/null and b/tomcat/server/webapps/admin/images/PaperTexture.gif differ
diff --git a/tomcat/server/webapps/admin/images/Realm.gif b/tomcat/server/webapps/admin/images/Realm.gif
new file mode 100644
index 0000000..49684d6
Binary files /dev/null and b/tomcat/server/webapps/admin/images/Realm.gif differ
diff --git a/tomcat/server/webapps/admin/images/ResourceLink.gif b/tomcat/server/webapps/admin/images/ResourceLink.gif
new file mode 100644
index 0000000..51463f8
Binary files /dev/null and b/tomcat/server/webapps/admin/images/ResourceLink.gif differ
diff --git a/tomcat/server/webapps/admin/images/Roles.gif b/tomcat/server/webapps/admin/images/Roles.gif
new file mode 100644
index 0000000..3990969
Binary files /dev/null and b/tomcat/server/webapps/admin/images/Roles.gif differ
diff --git a/tomcat/server/webapps/admin/images/Server.gif b/tomcat/server/webapps/admin/images/Server.gif
new file mode 100644
index 0000000..dbe2f2f
Binary files /dev/null and b/tomcat/server/webapps/admin/images/Server.gif differ
diff --git a/tomcat/server/webapps/admin/images/Service.gif b/tomcat/server/webapps/admin/images/Service.gif
new file mode 100644
index 0000000..657cd3a
Binary files /dev/null and b/tomcat/server/webapps/admin/images/Service.gif differ
diff --git a/tomcat/server/webapps/admin/images/Thumbs.db b/tomcat/server/webapps/admin/images/Thumbs.db
new file mode 100644
index 0000000..078d27b
Binary files /dev/null and b/tomcat/server/webapps/admin/images/Thumbs.db differ
diff --git a/tomcat/server/webapps/admin/images/TomcatBanner.jpg b/tomcat/server/webapps/admin/images/TomcatBanner.jpg
new file mode 100644
index 0000000..b31ce1b
Binary files /dev/null and b/tomcat/server/webapps/admin/images/TomcatBanner.jpg differ
diff --git a/tomcat/server/webapps/admin/images/Users.gif b/tomcat/server/webapps/admin/images/Users.gif
new file mode 100644
index 0000000..b0dafcf
Binary files /dev/null and b/tomcat/server/webapps/admin/images/Users.gif differ
diff --git a/tomcat/server/webapps/admin/images/Valve.gif b/tomcat/server/webapps/admin/images/Valve.gif
new file mode 100644
index 0000000..cf2a68c
Binary files /dev/null and b/tomcat/server/webapps/admin/images/Valve.gif differ
diff --git a/tomcat/server/webapps/admin/images/folder_16_pad.gif b/tomcat/server/webapps/admin/images/folder_16_pad.gif
new file mode 100644
index 0000000..67702a1
Binary files /dev/null and b/tomcat/server/webapps/admin/images/folder_16_pad.gif differ
diff --git a/tomcat/server/webapps/admin/images/handledownlast.gif b/tomcat/server/webapps/admin/images/handledownlast.gif
new file mode 100644
index 0000000..7badb68
Binary files /dev/null and b/tomcat/server/webapps/admin/images/handledownlast.gif differ
diff --git a/tomcat/server/webapps/admin/images/handledownmiddle.gif b/tomcat/server/webapps/admin/images/handledownmiddle.gif
new file mode 100644
index 0000000..5b3cfed
Binary files /dev/null and b/tomcat/server/webapps/admin/images/handledownmiddle.gif differ
diff --git a/tomcat/server/webapps/admin/images/handlerightlast.gif b/tomcat/server/webapps/admin/images/handlerightlast.gif
new file mode 100644
index 0000000..e9d0a92
Binary files /dev/null and b/tomcat/server/webapps/admin/images/handlerightlast.gif differ
diff --git a/tomcat/server/webapps/admin/images/handlerightmiddle.gif b/tomcat/server/webapps/admin/images/handlerightmiddle.gif
new file mode 100644
index 0000000..02eff2b
Binary files /dev/null and b/tomcat/server/webapps/admin/images/handlerightmiddle.gif differ
diff --git a/tomcat/server/webapps/admin/images/linelastnode.gif b/tomcat/server/webapps/admin/images/linelastnode.gif
new file mode 100644
index 0000000..e0ff2f0
Binary files /dev/null and b/tomcat/server/webapps/admin/images/linelastnode.gif differ
diff --git a/tomcat/server/webapps/admin/images/linemiddlenode.gif b/tomcat/server/webapps/admin/images/linemiddlenode.gif
new file mode 100644
index 0000000..009f29b
Binary files /dev/null and b/tomcat/server/webapps/admin/images/linemiddlenode.gif differ
diff --git a/tomcat/server/webapps/admin/images/linevertical.gif b/tomcat/server/webapps/admin/images/linevertical.gif
new file mode 100644
index 0000000..fdec15b
Binary files /dev/null and b/tomcat/server/webapps/admin/images/linevertical.gif differ
diff --git a/tomcat/server/webapps/admin/tree-control-test.css b/tomcat/server/webapps/admin/tree-control-test.css
new file mode 100644
index 0000000..9cf2ac3
--- /dev/null
+++ b/tomcat/server/webapps/admin/tree-control-test.css
@@ -0,0 +1,19 @@
+.tree-control {
+ font-family: arial, verdana, geneva, helvetica, sans-serif;
+ font-size: 80%;
+ line-height: 1.0;
+}
+
+.tree-control-selected {
+ color: black;
+ font-weight: bold;
+ text-decoration: none;
+}
+
+.tree-control-unselected {
+ color: black;
+ font-style: normal;
+ font-weight: normal;
+ text-decoration: none;
+}
+
diff --git a/tomcat/server/webapps/host-manager/WEB-INF/lib/catalina-host-manager.jar b/tomcat/server/webapps/host-manager/WEB-INF/lib/catalina-host-manager.jar
new file mode 100644
index 0000000..489637e
Binary files /dev/null and b/tomcat/server/webapps/host-manager/WEB-INF/lib/catalina-host-manager.jar differ
diff --git a/tomcat/server/webapps/host-manager/WEB-INF/web.xml b/tomcat/server/webapps/host-manager/WEB-INF/web.xml
new file mode 100644
index 0000000..4072d8f
--- /dev/null
+++ b/tomcat/server/webapps/host-manager/WEB-INF/web.xml
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+ Tomcat Manager Application
+
+ A scriptable management web application for the Tomcat Web Server;
+ Manager lets you view, load/unload/etc particular web applications.
+
+
+
+
+ HostManager
+ org.apache.catalina.hostmanager.HostManagerServlet
+
+ debug
+ 2
+
+
+
+ HTMLHostManager
+ org.apache.catalina.hostmanager.HTMLHostManagerServlet
+
+ debug
+ 2
+
+
+
+
+
+ HostManager
+ /list
+
+
+ HostManager
+ /add
+
+
+ HostManager
+ /remove
+
+
+ HostManager
+ /start
+
+
+ HostManager
+ /stop
+
+
+ HTMLHostManager
+ /html/*
+
+
+
+
+
+ HTMLHostManager and HostManager commands
+ /html/*
+ /list
+ /add
+ /remove
+ /start
+ /stop
+
+
+
+ admin
+
+
+
+
+
+ BASIC
+ Tomcat Host Manager Application
+
+
+
+
+
+ The role that is required to log in to the Manager Application
+
+ admin
+
+
+
diff --git a/tomcat/server/webapps/host-manager/host-manager.xml b/tomcat/server/webapps/host-manager/host-manager.xml
new file mode 100644
index 0000000..8558c7d
--- /dev/null
+++ b/tomcat/server/webapps/host-manager/host-manager.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
diff --git a/tomcat/server/webapps/host-manager/images/add.gif b/tomcat/server/webapps/host-manager/images/add.gif
new file mode 100644
index 0000000..0774d07
Binary files /dev/null and b/tomcat/server/webapps/host-manager/images/add.gif differ
diff --git a/tomcat/server/webapps/host-manager/images/code.gif b/tomcat/server/webapps/host-manager/images/code.gif
new file mode 100644
index 0000000..d27307b
Binary files /dev/null and b/tomcat/server/webapps/host-manager/images/code.gif differ
diff --git a/tomcat/server/webapps/host-manager/images/design.gif b/tomcat/server/webapps/host-manager/images/design.gif
new file mode 100644
index 0000000..f5db0a9
Binary files /dev/null and b/tomcat/server/webapps/host-manager/images/design.gif differ
diff --git a/tomcat/server/webapps/host-manager/images/docs.gif b/tomcat/server/webapps/host-manager/images/docs.gif
new file mode 100644
index 0000000..d64a4a1
Binary files /dev/null and b/tomcat/server/webapps/host-manager/images/docs.gif differ
diff --git a/tomcat/server/webapps/host-manager/images/fix.gif b/tomcat/server/webapps/host-manager/images/fix.gif
new file mode 100644
index 0000000..d59ad64
Binary files /dev/null and b/tomcat/server/webapps/host-manager/images/fix.gif differ
diff --git a/tomcat/server/webapps/host-manager/images/jakarta-logo.gif b/tomcat/server/webapps/host-manager/images/jakarta-logo.gif
new file mode 100644
index 0000000..049cf82
Binary files /dev/null and b/tomcat/server/webapps/host-manager/images/jakarta-logo.gif differ
diff --git a/tomcat/server/webapps/host-manager/images/tomcat.gif b/tomcat/server/webapps/host-manager/images/tomcat.gif
new file mode 100644
index 0000000..6175673
Binary files /dev/null and b/tomcat/server/webapps/host-manager/images/tomcat.gif differ
diff --git a/tomcat/server/webapps/host-manager/images/update.gif b/tomcat/server/webapps/host-manager/images/update.gif
new file mode 100644
index 0000000..31e22ab
Binary files /dev/null and b/tomcat/server/webapps/host-manager/images/update.gif differ
diff --git a/tomcat/server/webapps/host-manager/images/void.gif b/tomcat/server/webapps/host-manager/images/void.gif
new file mode 100644
index 0000000..e565824
Binary files /dev/null and b/tomcat/server/webapps/host-manager/images/void.gif differ
diff --git a/tomcat/server/webapps/host-manager/manager.xml b/tomcat/server/webapps/host-manager/manager.xml
new file mode 100644
index 0000000..aef5c6e
--- /dev/null
+++ b/tomcat/server/webapps/host-manager/manager.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
diff --git a/tomcat/server/webapps/manager/WEB-INF/lib/catalina-manager.jar b/tomcat/server/webapps/manager/WEB-INF/lib/catalina-manager.jar
new file mode 100644
index 0000000..636826c
Binary files /dev/null and b/tomcat/server/webapps/manager/WEB-INF/lib/catalina-manager.jar differ
diff --git a/tomcat/server/webapps/manager/WEB-INF/lib/commons-fileupload-1.0.jar b/tomcat/server/webapps/manager/WEB-INF/lib/commons-fileupload-1.0.jar
new file mode 100644
index 0000000..1ca4a9c
Binary files /dev/null and b/tomcat/server/webapps/manager/WEB-INF/lib/commons-fileupload-1.0.jar differ
diff --git a/tomcat/server/webapps/manager/WEB-INF/web.xml b/tomcat/server/webapps/manager/WEB-INF/web.xml
new file mode 100644
index 0000000..5a9b8ae
--- /dev/null
+++ b/tomcat/server/webapps/manager/WEB-INF/web.xml
@@ -0,0 +1,186 @@
+
+
+
+
+
+ Tomcat Manager Application
+
+ A scriptable management web application for the Tomcat Web Server;
+ Manager lets you view, load/unload/etc particular web applications.
+
+
+
+
+ Manager
+ org.apache.catalina.manager.ManagerServlet
+
+ debug
+ 2
+
+
+
+ HTMLManager
+ org.apache.catalina.manager.HTMLManagerServlet
+
+ debug
+ 2
+
+
+
+ Status
+ org.apache.catalina.manager.StatusManagerServlet
+
+ debug
+ 0
+
+
+
+
+ JMXProxy
+ org.apache.catalina.manager.JMXProxyServlet
+
+
+
+
+ Manager
+ /list
+
+
+ Manager
+ /sessions
+
+
+ Manager
+ /start
+
+
+ Manager
+ /stop
+
+
+ Manager
+ /install
+
+
+ Manager
+ /remove
+
+
+ Manager
+ /deploy
+
+
+ Manager
+ /undeploy
+
+
+ Manager
+ /reload
+
+
+ Manager
+ /save
+
+
+ Manager
+ /serverinfo
+
+
+ Manager
+ /roles
+
+
+ Manager
+ /resources
+
+
+ Status
+ /status/*
+
+
+ JMXProxy
+ /jmxproxy/*
+
+
+ HTMLManager
+ /html/*
+
+
+
+
+
+ Link to the UserDatabase instance from which we request lists of
+ defined role names. Typically, this will be connected to the global
+ user database with a ResourceLink element in server.xml or the context
+ configuration file for the Manager web application.
+
+ users
+
+ org.apache.catalina.UserDatabase
+
+
+
+
+
+
+ HTMLManger and Manager command
+ /jmxproxy/*
+ /html/*
+ /list
+ /sessions
+ /start
+ /stop
+ /install
+ /remove
+ /deploy
+ /undeploy
+ /reload
+ /save
+ /serverinfo
+ /status/*
+ /roles
+ /resources
+
+
+
+ manager
+
+
+
+
+
+ BASIC
+ Tomcat Manager Application
+
+
+
+
+
+ The role that is required to log in to the Manager Application
+
+ manager
+
+
+
diff --git a/tomcat/server/webapps/manager/html-manager-howto.html b/tomcat/server/webapps/manager/html-manager-howto.html
new file mode 100644
index 0000000..dc53380
--- /dev/null
+++ b/tomcat/server/webapps/manager/html-manager-howto.html
@@ -0,0 +1,518 @@
+
The Apache Jakarta Tomcat 5.5 Servlet/JSP Container - Tomcat Web Application Manager How To
The Apache Jakarta Tomcat 5.5 Servlet/JSP Container
In many production environments it is very useful to have the capability
+to manage your web applications without having to shut down and restart
+Tomcat. This document is for the HTML web interface to the web application
+manager.
+
+
The interface is divided into five sections:
+
+
Message - Displays success and failure messages.
+
Manager - General manager operations like list and
+ help.
+
Applications - List of web applications and
+ commands.
+
Deploy - Deploying web applications.
+
Server Information - Information about the Tomcat
+ server.
+Displays information about the success or failure of the last web application
+manager command you performed. If it succeeded OK is displayed
+and may be followed by a success message. If it failed FAIL
+is displayed followed by an error message. Common failure messages are
+documented below for each command. The complete list of failure messages for
+each command can be found in the manager web
+application documentation.
+
The Applications section lists information about all the installed web
+applications and provides links for managing them. For each web application
+the following is displayed:
+
+
Path - The web applicaton context path.
+
Display Name - The display name for the web application
+ if it has one configured in its "web.xml" file.
+
Running - Whether the web application is running and
+ available (true), or not running and unavailable (false).
+
Sessions - The number of active sessions for remote
+ users of this web application. The number of sessions is a link which
+ when submitted displays more details about session usage by the web
+ application in the Message box.
+
Commands - Lists all commands which can be performed on
+ the web application. Only those commands which can be performed will be
+ listed as a link which can be submitted. No commands can be performed on
+ the manager web application itself. The following commands can be
+ performed:
+
+
Start - Start a web application which had been
+ stopped.
+
Stop - Stop a web application which is currently
+ running and make it unavailable.
+
Reload - Reload the web application so that new
+ ".jar" files in /WEB-INF/lib/ or new classes in
+ /WEB-INF/classes/ can be used.
+
Undeploy - Stop and then remove this web
+ application from the server.
Signal a stopped application to restart, and make itself available again.
+Stopping and starting is useful, for example, if the database required by
+your application becomes temporarily unavailable. It is usually better to
+stop the web application that relies on this database rather than letting
+users continuously encounter database exceptions.
+
+
If this command succeeds, you will see a Message like this:
+
+OK - Started application at context path /examples
+
+
+
Otherwise, the Message will start with FAIL and include an
+error message. Possible causes for problems include:
+
+
Encountered exception
+
+
An exception was encountered trying to start the web application.
+ Check the Tomcat 5 logs for the details.
+
+
Invalid context path was specified
+
+
The context path must start with a slash character, unless you are
+ referencing the ROOT web application -- in which case the context path
+ must be a zero-length string.
+
+
No context exists for path /foo
+
+
There is no deployed application on the context path
+ that you specified.
Signal an existing application to make itself unavailable, but leave it
+deployed. Any request that comes in while an application is
+stopped will see an HTTP error 404, and this application will show as
+"stopped" on a list applications command.
+
+
If this command succeeds, you will see a Message like this:
+
+OK - Stopped application at context path /examples
+
+
+
Otherwise, the Message will start with FAIL and include an
+error message. Possible causes for problems include:
+
+
Encountered exception
+
+
An exception was encountered trying to stop the web application.
+ Check the Tomcat 5 logs for the details.
+
+
Invalid context path was specified
+
+
The context path must start with a slash character, unless you are
+ referencing the ROOT web application -- in which case the context path
+ must be a zero-length string.
+
+
No context exists for path /foo
+
+
There is no deployed application on the context path
+ that you specified.
Signal an existing application to shut itself down and reload. This can
+be useful when the web application context is not reloadable and you have
+updated classes or property files in the /WEB-INF/classes
+directory or when you have added or updated jar files in the
+/WEB-INF/lib directory.
+
+
NOTE: The /WEB-INF/web.xml
+web application configuration file is not checked on a reload;
+the previous web.xml configuration is used.
+If you have made changes to your web.xml file you must stop
+then start the web application.
+
+
+
If this command succeeds, you will see a Message like this:
+
+OK - Reloaded application at context path /examples
+
+
+
Otherwise, the Message will start with FAIL and include an
+error message. Possible causes for problems include:
+
+
Encountered exception
+
+
An exception was encountered trying to restart the web application.
+ Check the Tomcat 5 logs for the details.
+
+
Invalid context path was specified
+
+
The context path must start with a slash character, unless you are
+ referencing the ROOT web application -- in which case the context path
+ must be a zero-length string.
+
+
No context exists for path /foo
+
+
There is no deployed application on the context path
+ that you specified.
+
+
No context path was specified
+
+ The path parameter is required.
+
+
Reload not supported on WAR deployed at path /foo
+
+ Currently, application reloading (to pick up changes to the classes or
+ web.xml file) is not supported when a web application is
+ installed directly from a WAR file, which happens when the host is
+ configured to not unpack WAR files. As it only works when the web
+ application is installed from an unpacked directory, if you are using
+ a WAR file, you should undeploy and then deploy
+ the application again to pick up your changes.
+
WARNING - This command will delete the
+contents of the web application directory and/or ".war" file if it exists within
+the appBase directory (typically "webapps") for this virtual host
+. The web application temporary work directory is also deleted. If
+you simply want to take an application out of service, you should use the
+/stop command instead.
+
+
Signal an existing application to gracefully shut itself down, and then
+remove it from Tomcat (which also makes this context path available for
+reuse later). This command is the logical opposite of the
+/deploy Ant command, and the related deploy features available
+in the HTML manager.
+
+
If this command succeeds, you will see a Message like this:
+
+OK - Undeployed application at context path /examples
+
+
+
Otherwise, the Message will start with FAIL and include an
+error message. Possible causes for problems include:
+
+
Encountered exception
+
+
An exception was encountered trying to undeploy the web application.
+ Check the Tomcat logs for the details.
+
+
Invalid context path was specified
+
+
The context path must start with a slash character, unless you are
+ referencing the ROOT web application -- in which case the context path
+ must be a zero-length string.
+
+
No context exists for path /foo
+
+
There is no deployed application on the context path
+ that you specified.
Web applications can be deployed using files or directories located
+on the Tomcat server or you can upload a web application archive (WAR)
+file to the server.
+
+
To install an application, fill in the appropriate fields for the type
+of install you want to do and then submit it using the Install
+button.
Deploy and start a new web application, attached to the specified Context
+Path: (which must not be in use by any other web application).
+This command is the logical opposite of the Undeploy command.
+
+
There are a number of different ways the deploy command can be used.
+
+
Deploy a Directory or WAR by URL
+
+
Install a web application directory or ".war" file located on the Tomcat
+server. If no Context Path is specified, the directory name or the
+war file name without the ".war" extension is used as the path. The
+WAR or Directory URL specifies a URL (including the file:
+scheme) for either a directory or a web application archive (WAR) file. The
+supported syntax for a URL referring to a WAR file is described on the Javadocs
+page for the java.net.JarURLConnection class. Use only URLs that
+refer to the entire WAR file.
+
+
In this example the web application located in the directory
+C:\path\to\foo on the Tomcat server (running on Windows)
+is deployed as the web application context named /footoo.
+
+Context Path: /footoo
+WAR or Directory URL: file:C:/path/to/foo
+
+
+
+
In this example the ".war" file /path/to/bar.war on the
+Tomcat server (running on Unix) is deployed as the web application
+context named /bar. Notice that there is no path
+parameter so the context path defaults to the name of the web application
+archive file without the ".war" extension.
+
+WAR or Directory URL: jar:file:/path/to/bar.war!/
+
+
+
+
Deploy a Directory or War from the Host appBase
+
+
Install a web application directory or ".war" file located in your Host
+appBase directory. If no Context Path is specified the directory name
+or the war file name without the ".war" extension is used as the path.
+
+
In this example the web application located in a subdirectory named
+foo in the Host appBase directory of the Tomcat server is
+deployed as the web application context named /foo. Notice
+that there is no path parameter so the context path defaults
+to the name of the web application directory.
+
+WAR or Directory URL: foo
+
+
+
+
In this example the ".war" file bar.war located in your
+Host appBase directory on the Tomcat server is deployed as the web
+application context named /bartoo.
+
+Context Path: /bartoo
+WAR or Directory URL: bar.war
+
+
+
+
Deploy using a Context configuration ".xml" file
+
+
If the Host deployXML flag is set to true, you can install a web
+application using a Context configuration ".xml" file and an optional
+".war" file or web application directory. The Context Path
+is not used when installing a web application using a context ".xml"
+configuration file.
+
+
A Context configuration ".xml" file can contain valid XML for a
+web application Context just as if it were configured in your
+Tomcat server.xml configuration file. Here is an
+example for Tomcat running on Windows:
+
+<Context path="/foobar" docBase="C:\path\to\application\foobar"
+ debug="0">
+
+ <!-- Link to the user database we will get roles from -->
+ <ResourceLink name="users" global="UserDatabase"
+ type="org.apache.catalina.UserDatabase"/>
+
+</Context>
+
+
+
+
Use of the WAR or Directory URL is optional. When used
+to select a web application ".war" file or directory it overrides any
+docBase configured in the context configuration ".xml" file.
+
+
Here is an example of installing an application using a Context
+configuration ".xml" file for Tomcat running on Windows.
+
Here is an example of installing an application using a Context
+configuration ".xml" file and a web application ".war" file located
+on the server (Tomcat running on Unix).
+
Upload a WAR file from your local system and install it into the
+appBase for your Host. The name of the WAR file without the ".war"
+extension is used as the context path name.
+
+
Use the Browse button to select a WAR file to upload to the
+server from your local desktop system.
+
+
The .WAR file may include Tomcat specific deployment configuration, by
+including a Context configuration XML file in
+/META-INF/context.xml.
+
+
Upload of a WAR file could fail for the following reasons:
+
+
File uploaded must be a .war
+
+
The upload install will only accept files which have the filename
+ extension of ".war".
+
+
War file already exists on server
+
+
If a war file of the same name already exists in your Host's
+ appBase the upload will fail. Either undeploy the existing war file
+ from your Host's appBase or upload the new war file using a different
+ name.
+
+
File upload failed, no file
+
+
The file upload failed, no file was received by the server.
+
+
Install Upload Failed, Exception:
+
+
The war file upload or install failed with a Java Exception.
+ The exception message will be listed.
If the Host is configured with unpackWARs=true and you install a war
+file, the war will be unpacked into a directory in your Host appBase
+directory.
+
+
If the application war or directory is deployed in your Host appBase
+directory and either the Host is configured with autoDeploy=true or
+liveDeploy=true, the Context path must match the directory name or
+war file name without the ".war" extension.
+
+
For security when untrusted users can manage web applications, the
+Host deployXML flag can be set to false. This prevents untrusted users
+from installing web applications using a configuration XML file and
+also prevents them from installing application directories or ".war"
+files located outside of their Host appBase.
If deployment and startup is successful, you will receive a Message
+like this:
+
+OK - Deployed application at context path /foo
+
+
+
Otherwise, the Message will start with FAIL and include an
+error message. Possible causes for problems include:
+
+
Application already exists at path /foo
+
+
The context paths for all currently running web applications must be
+ unique. Therefore, you must either undeploy the existing web
+ application using this context path, or choose a different context path
+ for the new one.
+
+
Document base does not exist or is not a readable directory
+
+
The URL specified by the WAR or Directory URL: field must
+ identify a directory on this server that contains the "unpacked" version
+ of a web application, or the absolute URL of a web application archive
+ (WAR) file that contains this application. Correct the value entered for
+ the WAR or Directory URL: field.
+
+
Encountered exception
+
+
An exception was encountered trying to start the new web application.
+ Check the Tomcat 5 logs for the details, but likely explanations include
+ problems parsing your /WEB-INF/web.xml file, or missing
+ classes encountered when initializing application event listeners and
+ filters.
+
+
Invalid application URL was specified
+
+
The URL for the WAR or Directory URL: field that you specified
+ was not valid. Such URLs must start with file:, and URLs
+ for a WAR file must end in ".war".
+
+
Invalid context path was specified
+
+
The context path must start with a slash character, unless you are
+ referencing the ROOT web application -- in which case the context path
+ must be a "/" string.
+
+
Context path must match the directory or WAR file name:
+
+ If the application war or directory is deployed in your Host appBase
+ directory and either the Host is configured with autoDeploy=true or
+ liveDeploy=true, the Context path must match the directory name or
+ war file name without the ".war" extension.
+
+
Only web applications in the Host web application directory can
+ be deployed
+
+ If the Host deployXML flag is set to false this error will happen
+ if an attempt is made to install a web application directory or
+ ".war" file outside of the Host appBase directory.
+
This section displays information about Tomcat, the operating system of
+the server Tomcat is hosted on, and the Java Virtual Machine Tomcat is
+running in.
+Deploy A New Application Remotely
+Deploy A New Application from a Local Path
+
+List Currently Deployed Applications
+Reload An Existing Application
+List OS and JVM Properties
+
+List Available Global JNDI Resources
+List Available Security Roles
+Session Statistics
+Start an Existing Application
+Stop an Existing Application
+
+Undeploy an Existing Application
+
+
+Executing Manager Commands With Ant
+
+Using the JMX Proxy Servlet
+
+What is JMX Proxy Servlet?
+Query command
+Set command
+
In many production environments, it is very useful to have the capability
+to deploy a new web application, or undeploy an existing one, without having
+to shut down and restart the entire container. In addition, you can request
+an existing application to reload itself, even if you have not declared it
+to be reloadable in the Tomcat 5 server
+configuration file.
+
+
To support these capabilities, Tomcat 5 includes a web application
+(installed by default on context path /manager) that supports
+the following functions:
+
+
Deploy a new web application, on a specified context path, from
+ the uploaded contents of a WAR file.
+
Deploy a new web application, on a specified context path, from the
+ server file system.
+
List the currently deployed web applications, as well as the
+ sessions that are currently active for those web apps.
+
Reload an existing web application, to reflect changes in the
+ contents of /WEB-INF/classes or /WEB-INF/lib.
+
+
List the OS and JVM property values.
+
List the available global JNDI resources, for use in deployment
+ tools that are preparing <ResourceLink> elements
+ nested in a <Context> deployment description.
+
List the available security roles defined in the user database.
+
Start a stopped application (thus making it available again).
+
Stop an existing application (so that it becomes unavailable), but
+ do not undeploy it.
+
Undeploy a deployed web application and delete its document base
+ directory (unless it was deployed from file system).
+
+
+
There are two ways to configure the Manager web application
+Context:
+
+
Install the manager.xml context configuration file
+ in the $CATALINA_HOME/conf/[enginename]/[hostname] folder.
+
+
Configure the Manager Context within the
+ Host configuration in your Tomcat server.xml
+ configuration. Here is an example:
+
If you have Tomcat configured to support multiple virtual hosts
+(websites) you would need to configure a Manager for each.
+
+
There are three ways to use the Manager web application.
+
+
As an application with a user interface you use in your browser.
+Here is an example URL where you can replace localhost with
+your website host name: http://localhost/manager/html/ .
+
A minimal version using HTTP requests only which is suitable for use
+by scripts setup by system administrators. Commands are given as part of the
+request URI, and responses are in the form of simple text that can be easily
+parsed and processed. See
+Supported Manager Commands for more information.
+
A convenient set of task definitions for the Ant
+(version 1.4 or later) build tool. See
+Executing Manager Commands
+With Ant for more information.
+
+
+
+
Future versions of Tomcat 5 will include administrative functionality that
+is presented in (at least) the following forms:
+
+
As web services, so that Tomcat administration can be easily integrated
+ into remote and/or non-Java mnagement environments.
+
As a web application with a nice user interface (built on top of the
+ web services processing layer) for easy Tomcat administration via a
+ web browser.
The description below uses the variable name $CATALINA_HOME
+ to refer to the directory into which you have installed Tomcat 5,
+ and is the base directory against which most relative paths are
+ resolved. However, if you have configured Tomcat 5 for multiple
+ instances by setting a CATALINA_BASE directory, you should use
+ $CATALINA_BASE instead of $CATALINA_HOME for each of these
+ references.
+
+
+
It would be quite unsafe to ship Tomcat with default settings that allowed
+anyone on the Internet to execute the Manager application on your server.
+Therefore, the Manager application is shipped with the requirement that anyone
+who attempts to use it must authenticate themselves, using a username and
+password that have the role manager associated with them.
+Further, there is no username in the default users file
+($CATALINA_HOME/conf/tomcat-users.xml) that is assigned this
+role. Therefore, access to the Manager application is completely disabled
+by default.
+
+
To enable access to the Manager web application, you must either create
+a new username/password combination and associate the role name
+manager with it, or add the manager role
+to some existing username/password combination. Exactly where this is done
+depends on which Realm implementation you are using:
+
+
MemoryRealm - If you have not customized your
+ $CATALINA_HOME/conf/server.xml to select a different one,
+ Tomcat 5 defaults to an XML-format file stored at
+ $CATALINA_HOME/conf/tomcat-users.xml, which can be
+ edited with any text editor. This file contains an XML
+ <user> for each individual user, which might
+ look something like this:
+
+ which defines the username and password used by this individual to
+ log on, and the role names he or she is associated with. You can
+ add the manager role to the comma-delimited
+ roles attribute for one or more existing users, and/or
+ create new users with that assigned role.
+
JDBCRealm - Your user and role information is stored in
+ a database accessed via JDBC. Add the manager role
+ to one or more existing users, and/or create one or more new users
+ with this role assigned, following the standard procedures for your
+ environment.
+
JNDIRealm - Your user and role information is stored in
+ a directory server accessed via LDAP. Add the manager
+ role to one or more existing users, and/or create one or more new users
+ with this role assigned, following the standard procedures for your
+ environment.
+
+
+
The first time you attempt to issue one of the Manager commands
+described in the next section, you will be challenged to log on using
+BASIC authentication. The username and password you enter do not matter,
+as long as they identify a valid user in the users database who possesses
+the role manager.
+
+
In addition to the password restrictions the manager web application
+could be restricted by the remote IP address or host by adding a
+RemoteAddrValve or RemoteHostValve. Here is
+an example of restricting access to the localhost by IP address:
+
where {host} and {port} represent the hostname
+and port number on which Tomcat is running, {command}
+represents the Manager command you wish to execute, and
+{parameters} represents the query parameters
+that are specific to that command. In the illustrations below, customize
+the host and port appropriately for your installation.
+
+
Most commands accept one or more of the following query parameters:
+
+
path - The context path (including the leading slash)
+ of the web application you are dealing with. To select the ROOT web
+ application, specify "/". NOTE -
+ It is not possible to perform administrative commands on the
+ Manager application itself.
+
war - URL of a web application archive (WAR) file,
+ pathname of a directory which contains the web application, or a
+ Context configuration ".xml" file. You can use URLs in any of the
+ following formats:
+
+
file:/absolute/path/to/a/directory - The absolute
+ path of a directory that contains the unpacked version of a web
+ application. This directory will be attached to the context path
+ you specify without any changes.
+
file:/absolute/path/to/a/webapp.war - The absolute
+ path of a web application archive (WAR) file. This is valid
+ only for the /deploy command, and is
+ the only acceptable format to that command.
+
jar:file:/absolute/path/to/a/warfile.war!/ - The
+ URL to a local web application archive (WAR) file. You can use any
+ syntax that is valid for the JarURLConnection class
+ for reference to an entire JAR file.
+
file:/absolute/path/to/a/context.xml - The
+ absolute path of a web application Context configuration ".xml"
+ file which contains the Context configuration element.
+
directory - The directory name for the web
+ applciation context in the Host's application base directory.
+
webapp.war - The name of a web application war file
+ located in the Host's application base directory.
+
+
+
+
Each command will return a response in text/plain format
+(i.e. plain ASCII with no HTML markup), making it easy for both humans and
+programs to read). The first line of the response wil begin with either
+OK or FAIL, indicating whether the requested
+command was successful or not. In the case of failure, the rest of the first
+line will contain a description of the problem that was encountered. Some
+commands include additional lines of information as described below.
+
+
Internationalization Note - The Manager application looks up
+its message strings in resource bundles, so it is possible that the strings
+have been translated for your platform. The examples below show the English
+version of the messages.
+
+
+
WARNING: the legacy commands /install and
+/remove are deprecated.
+They are presently equivalent to /deploy and /undeploy,
+but could be removed in a future release.
Upload the web application archive (WAR) file that is specified as the
+request data in this HTTP PUT request, install it into the appBase
+directory of our corresponding virtual host, and start it on the context path
+specified by the path request parameter. If no path
+is specified the directory name or the war file name without the .war extension
+is used as the path. The application can
+later be undeployed (and the corresponding application directory removed)
+by use of the /undeploy.
+
+
The .WAR file may include Tomcat specific deployment configuration, by
+including a Context configuration XML file in
+/META-INF/context.xml.
+
+
URL parameters include:
+
+
update: When set to true, any existing update will be
+ undeployed first. The default value is set to false.
+
tag: Specifying a tag name, this allows associating the
+ deployed webapp with a version number. The application version can
+ be later redeployed when needed using only the tag.
+
+
+
+
NOTE - This command is the logical
+opposite of the /undeploy command.
+
+
If installation and startup is successful, you will receive a response
+like this:
+
+OK - Deployed application at context path /foo
+
+
+
Otherwise, the response will start with FAIL and include an
+error message. Possible causes for problems include:
+
+
Application already exists at path /foo
+
+
The context paths for all currently running web applications must be
+ unique. Therefore, you must undeploy the existing web
+ application using this context path, or choose a different context path
+ for the new one. The update parameter may be specified as
+ a parameter on the URL, with a value of true to avoid this
+ error. In that case, an undeploy will be performed on an existing
+ application before performing the deployment.
+
+
Encountered exception
+
+
An exception was encountered trying to start the new web application.
+ Check the Tomcat 5 logs for the details, but likely explanations include
+ problems parsing your /WEB-INF/web.xml file, or missing
+ classes encountered when initializing application event listeners and
+ filters.
+
+
Invalid context path was specified
+
+
The context path must start with a slash character. To reference the
+ ROOT web application use "/".
Deploy and start a new web application, attached to the specified context
+path (which must not be in use by any other web application).
+This command is the logical opposite of the /undeploy command.
+
+
There are a number of different ways the deploy command can be used.
+
+
Deploy a version of a previously deployed webapp
+
+
This can be used to deploy a previous version of a web application, which
+has been deployed using the tag attribute. Note that the work
+directory for the manager webapp will contain the previously deployed WARs;
+removing it would make the deployment fail.
+
Deploy a web application directory or ".war" file located on the Tomcat
+server. If no path is specified, the directory name or the war file
+name without the ".war" extension is used as the path. The war
+parameter specifies a URL (including the file: scheme) for either
+a directory or a web application archive (WAR) file. The supported syntax for
+a URL referring to a WAR file is described on the Javadocs page for the
+java.net.JarURLConnection class. Use only URLs that refer to
+the entire WAR file.
+
+
In this example the web application located in the directory
+/path/to/foo on the Tomcat server is deployed as the
+web application context named /footoo.
+
In this example the ".war" file /path/to/bar.war on the
+Tomcat server is deployed as the web application context named
+/bar. Notice that there is no path parameter
+so the context path defaults to the name of the web application archive
+file without the ".war" extension.
+
Deploy a web application directory or ".war" file located in your Host
+appBase directory. If no path is specified the directory name
+or the war file name without the ".war" extension is used as the path.
+
+
In this example the web application located in a sub directory named
+foo in the Host appBase directory of the Tomcat server is
+deployed as the web application context named /foo. Notice
+that there is no path parameter so the context path defaults
+to the name of the web application directory.
+
+http://localhost:8080/manager/deploy?war=foo
+
+
+
+
In this example the ".war" file bar.war located in your
+Host appBase directory on the Tomcat server is deployed as the web
+application context named /bartoo.
+
If the Host deployXML flag is set to true you can deploy a web
+application using a Context configuration ".xml" file and an optional
+".war" file or web application directory. The context path
+is not used when deploying a web application using a context ".xml"
+configuration file.
+
+
A Context configuration ".xml" file can contain valid XML for a
+web application Context just as if it were configured in your
+Tomcat server.xml configuration file. Here is an
+example:
+
+<Context path="/foobar" docBase="/path/to/application/foobar"
+ debug="0">
+
+ <!-- Link to the user database we will get roles from -->
+ <ResourceLink name="users" global="UserDatabase"
+ type="org.apache.catalina.UserDatabase"/>
+
+</Context>
+
+
+
+
When the optional war parameter is set to the URL
+for a web application ".war" file or directory it overrides any
+docBase configured in the context configuration ".xml" file.
+
+
Here is an example of deploying an application using a Context
+configuration ".xml" file.
+
If the Host is configured with unpackWARs=true and you deploy a war
+file, the war will be unpacked into a directory in your Host appBase
+directory.
+
+
If the application war or directory is installed in your Host appBase
+directory and either the Host is configured with autoDeploy=true or
+liveDeploy=true, the Context path must match the directory name or
+war file name without the ".war" extension.
+
+
For security when untrusted users can manage web applications, the
+Host deployXML flag can be set to false. This prevents untrusted users
+from deploying web applications using a configuration XML file and
+also prevents them from deploying application directories or ".war"
+files located outside of their Host appBase.
+
+
+
Deploy Response
+
+
If installation and startup is successful, you will receive a response
+like this:
+
+OK - Deployed application at context path /foo
+
+
+
Otherwise, the response will start with FAIL and include an
+error message. Possible causes for problems include:
+
+
Application already exists at path /foo
+
+
The context paths for all currently running web applications must be
+ unique. Therefore, you must undeploy the existing web
+ application using this context path, or choose a different context path
+ for the new one. The update parameter may be specified as
+ a parameter on the URL, with a value of true to avoid this
+ error. In that case, an undeploy will be performed on an existing
+ application before performing the deployment.
+
+
Document base does not exist or is not a readable directory
+
+
The URL specified by the war parameter must identify a
+ directory on this server that contains the "unpacked" version of a
+ web application, or the absolute URL of a web application archive (WAR)
+ file that contains this application. Correct the value specified by
+ the war parameter.
+
+
Encountered exception
+
+
An exception was encountered trying to start the new web application.
+ Check the Tomcat 5 logs for the details, but likely explanations include
+ problems parsing your /WEB-INF/web.xml file, or missing
+ classes encountered when initializing application event listeners and
+ filters.
+
+
Invalid application URL was specified
+
+
The URL for the directory or web application that you specified
+ was not valid. Such URLs must start with file:, and URLs
+ for a WAR file must end in ".war".
+
+
Invalid context path was specified
+
+
The context path must start with a slash character. To reference the
+ ROOT web application use "/".
+
+
Context path must match the directory or WAR file name:
+
+ If the application war or directory is installed in your Host appBase
+ directory and either the Host is configured with autoDeploy=true or
+ liveDeploy=true, the Context path must match the directory name or
+ war file name without the ".war" extension.
+
+
Only web applications in the Host web application directory can
+ be installed
+
+ If the Host deployXML flag is set to false this error will happen
+ if an attempt is made to deploy a web application directory or
+ ".war" file outside of the Host appBase directory.
+
List the context paths, current status (running or
+stopped), and number of active sessions for all currently
+deployed web applications. A typical response immediately
+after starting Tomcat might look like this:
Signal an existing application to shut itself down and reload. This can
+be useful when the web application context is not reloadable and you have
+updated classes or property files in the /WEB-INF/classes
+directory or when you have added or updated jar files in the
+/WEB-INF/lib directory.
+
+
NOTE: The /WEB-INF/web.xml
+web application configuration file is not reread on a reload.
+If you have made changes to your web.xml file you must stop
+then start the web application.
+
+
+
If this command succeeds, you will see a response like this:
+
+OK - Reloaded application at context path /examples
+
+
+
Otherwise, the response will start with FAIL and include an
+error message. Possible causes for problems include:
+
+
Encountered exception
+
+
An exception was encountered trying to restart the web application.
+ Check the Tomcat 5 logs for the details.
+
+
Invalid context path was specified
+
+
The context path must start with a slash character. To reference the
+ ROOT web application use "/".
+
+
No context exists for path /foo
+
+
There is no deployed application on the context path
+ that you specified.
+
+
No context path was specified
+
+ The path parameter is required.
+
+
Reload not supported on WAR deployed at path /foo
+
+ Currently, application reloading (to pick up changes to the classes or
+ web.xml file) is not supported when a web application is
+ deployed directly from a WAR file. It only works when the web application
+ is deployed from an unpacked directory. If you are using a WAR file,
+ you should undeploy and then deploy or
+ deploy with the update parameter the
+ application again to pick up your changes.
+
List the global JNDI resources that are available for use in resource
+links for context configuration files. If you specify the type
+request parameter, the value must be the fully qualified Java class name of
+the resource type you are interested in (for example, you would specify
+javax.sql.DataSource to acquire the names of all available
+JDBC data sources). If you do not specify the type request
+parameter, resources of all types will be returned.
+
+
Depending on whether the type request parameter is specfied
+or not, the first line of a normal response will be:
+
+ OK - Listed global resources of all types
+
+
or
+
+ OK - Listed global resources of type xxxxx
+
+
followed by one line for each resource. Each line is composed of fields
+delimited by colon characters (":"), as follows:
+
+
Global Resource Name - The name of this global JNDI resource,
+ which would be used in the global attribute of a
+ <ResourceLink> element.
+
Global Resource Type - The fully qualified Java class name of
+ this global JNDI resource.
+
+
+
If an error occurs, the response will start with FAIL and
+include an error message. Possible causes for problems include:
+
+
Encountered exception
+
+
An exception was encountered trying to enumerate the global JNDI
+ resources. Check the Tomcat 5 logs for the details.
+
+
No global JNDI resources are available
+
+
The Tomcat server you are running has been configured without
+ global JNDI resources.
List the security role names (and corresponding descriptions) that are
+available in the org.apache.catalina.UserDatabase resource that
+is linked to the users resource reference in the web.xml file
+for the Manager web application. This would typically be used, for example,
+by a deployment tool that wanted to create
+<security-role-ref> elements to map security role names
+used in a web application to the role names actually defined within the
+container.
+
+
By default, the users resource reference is pointed at the
+global UserDatabase resource. If you choose to utilize a
+different user database per virtual host, you should modify the
+<ResourceLink> element in the default
+manager.xml context configuration file to point at the global
+user database resource for this virtual host.
+
+
When this command is executed, the first line of the response will be:
+
+ OK - Listed security roles
+
+
followed by one line for each security role. Each line is composed of
+fields delimited by colon characters (":") as follows:
+
+
Security Role Name - A security role name that is known to Tomcat
+ in the user database.
+
Description - Description of this security role (useful in
+ creating user interfaces for selecting roles.
+
+
+
If an error occurs, the response will start with FAIL and
+include an error message. Possible causes for problems include:
+
+
Cannot resolve user database reference - A JNDI error prevented
+ the successful lookup of the org.apache.catalina.UserDatabase
+ resource. Check the Tomcat log files for a stack trace associated with
+ this error.
+
No user database is available - You have not configured a resource
+ reference for the users resource that points at an
+ appropriate user database instance. Check your manager.xml
+ file and ensure that you have created an appropriate
+ <ResourceLink> or
+ <ResourceParams> element for this resource.
Display the default session timeout for a web application, and the
+number of currently active sessions that fall within ten-minute ranges of
+their actual timeout times. For example, after restarting Tomcat and then
+executing one of the JSP samples in the /examples web app,
+you might get something like this:
+
+OK - Session information for application at context path /examples
+Default maximum session inactive interval 30 minutes
+30 - <40 minutes:1 sessions
+
Signal a stopped application to restart, and make itself available again.
+Stopping and starting is useful, for example, if the database required by
+your application becomes temporarily unavailable. It is usually better to
+stop the web application that relies on this database rather than letting
+users continuously encounter database exceptions.
+
+
If this command succeeds, you will see a response like this:
+
+OK - Started application at context path /examples
+
+
+
Otherwise, the response will start with FAIL and include an
+error message. Possible causes for problems include:
+
+
Encountered exception
+
+
An exception was encountered trying to start the web application.
+ Check the Tomcat 5 logs for the details.
+
+
Invalid context path was specified
+
+
The context path must start with a slash character. To reference the
+ ROOT web application use "/".
+
+
No context exists for path /foo
+
+
There is no deployed application on the context path
+ that you specified.
Signal an existing application to make itself unavailable, but leave it
+deployed. Any request that comes in while an application is
+stopped will see an HTTP error 404, and this application will show as
+"stopped" on a list applications command.
+
+
If this command succeeds, you will see a response like this:
+
+OK - Stopped application at context path /examples
+
+
+
Otherwise, the response will start with FAIL and include an
+error message. Possible causes for problems include:
+
+
Encountered exception
+
+
An exception was encountered trying to stop the web application.
+ Check the Tomcat 5 logs for the details.
+
+
Invalid context path was specified
+
+
The context path must start with a slash character. To reference the
+ ROOT web application use "/".
+
+
No context exists for path /foo
+
+
There is no deployed application on the context path
+ that you specified.
WARNING - This command will delete any web
+application artifacts that exist within appBase directory
+(typically "webapps") for this virtual host.
+This will delete the the application .WAR, if present,
+the application directory resulting either from a deploy in unpacked form
+or from .WAR expansion as well as the XML Context definition from
+$CATALINA_HOME/conf/[enginename]/[hostname]/ directory.
+If you simply want to take an application
+out of service, you should use the /stop command instead.
+
+
Signal an existing application to gracefully shut itself down, and
+remove it from Tomcat (which also makes this context path available for
+reuse later). In addition, the document root directory is removed, if it
+exists in the appBase directory (typically "webapps") for
+this virtual host. This command is the logical opposite of the
+/deploy command.
+
+
If this command succeeds, you will see a response like this:
+
+OK - Undeployed application at context path /examples
+
+
+
Otherwise, the response will start with FAIL and include an
+error message. Possible causes for problems include:
+
+
Encountered exception
+
+
An exception was encountered trying to undeploy the web application.
+ Check the Tomcat 5 logs for the details.
+
+
Invalid context path was specified
+
+
The context path must start with a slash character. To reference the
+ ROOT web application use "/".
+
+
No context exists for path /foo
+
+
There is no deployed application on the context path
+ that you specified.
In addition to the ability to execute Manager commands via HTTP requests,
+as documented above, Tomcat 5 includes a convenient set of Task definitions
+for the Ant (version 1.4 or later) build tool. In order to use these
+commands, you must perform the following setup operations:
+
+
Download the binary distribution of Ant from
+ http://ant.apache.org.
+ You must use version 1.4 or later.
+
Install the Ant distribution in a convenient directory (called
+ ANT_HOME in the remainder of these instructions).
+
Copy the file server/lib/catalina-ant.jar from your Tomcat 5
+ installation into Ant's library directory ($ANT_HOME/lib).
+
+
Add the $ANT_HOME/bin directory to your PATH
+ environment variable.
+
Configure at least one username/password combination in your Tomcat
+ user database that includes the manager role.
+
+
+
To use custom tasks within Ant, you must declare them first with a
+<taskdef> element. Therefore, your build.xml
+file might look something like this:
+
+
+
+<project name="My Application" default="compile" basedir=".">
+
+ <!-- Configure the directory into which the web application is built -->
+ <property name="build" value="${basedir}/build"/>
+
+ <!-- Configure the context path for this application -->
+ <property name="path" value="/myapp"/>
+
+ <!-- Configure properties to access the Manager application -->
+ <property name="url" value="http://localhost:8080/manager"/>
+ <property name="username" value="myusername"/>
+ <property name="password" value="mypassword"/>
+
+ <!-- Configure the custom Ant tasks for the Manager application -->
+ <taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask"/>
+ <taskdef name="list" classname="org.apache.catalina.ant.ListTask"/>
+ <taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask"/>
+ <taskdef name="resources" classname="org.apache.catalina.ant.ResourcesTask"/>
+ <taskdef name="roles" classname="org.apache.catalina.ant.RolesTask"/>
+ <taskdef name="start" classname="org.apache.catalina.ant.StartTask"/>
+ <taskdef name="stop" classname="org.apache.catalina.ant.StopTask"/>
+ <taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask"/>
+
+ <!-- Executable Targets -->
+ <target name="compile" description="Compile web application">
+ <!-- ... construct web application in ${build} subdirectory, and
+ generated a ${path}.war ... -->
+ </target>
+
+ <target name="deploy" description="Install web application"
+ depends="compile">
+ <deploy url="${url}" username="${username}" password="${password}"
+ path="${path}" war="${build}${path}.war"/>
+ </target>
+
+ <target name="reload" description="Reload web application"
+ depends="compile">
+ <reload url="${url}" username="${username}" password="${password}"
+ path="${path}"/>
+ </target>
+
+ <target name="undeploy" description="Remove web application">
+ <undeploy url="${url}" username="${username}" password="${password}"
+ path="${path}"/>
+ </target>
+
+</project>
+
+
+
+
Now, you can execute commands like ant deploy to deploy the
+application to a running instance of Tomcat, or ant reload to
+tell Tomcat to reload it. Note also that most of the interesting values in
+this build.xml file are defined as replaceable properties, so
+you can override their values from the command line. For example, you might
+consider it a security risk to include the real manager password in your
+build.xml file's source code. To avoid this, omit the password
+property, and specify it from the command line:
Using Ant version 1.6.2 or later,
+the Catalina tasks offer the option to capture their output in
+properties or external files. They support directly the following subset of the
+<redirector> type attributes:
+
+
+
+
+
+
Attribute
+
Description
+
Required
+
+
+
output
+
Name of a file to which to write the output. If
+the error stream is not also redirected to a file or property, it will
+appear in this output.
+
No
+
+
+
error
+
The file to which the standard error of the
+command should be redirected.
+
No
+
+
+
logError
+
This attribute is used when you wish to see
+error output in Ant's log and you are redirecting output to a
+file/property. The error output will not be included in the output
+file/property. If you redirect error with the error or errorProperty
+attributes, this will have no effect.
+
No
+
+
+
append
+
Whether output and error files should be
+appended to or overwritten. Defaults to false.
+
No
+
+
+
createemptyfiles
+
Whether output and error files should be created
+even when empty. Defaults to true.
+
No
+
+
+
outputproperty
+
The name of a property in which the output of
+the command should be stored. Unless the error stream is redirected to
+a separate file or stream, this property will include the error output.
+
No
+
+
+
errorproperty
+
The name of a property in which the standard
+error of the command should be stored.
+
No
+
+
+
+
+
A couple of additional attributes can also be specified:
+
+
+
+
+
Attribute
+
Description
+
Required
+
+
+
alwaysLog
+
This attribute is used when you wish to see the
+output you are capturing, appearing also in the Ant's log. It must not be
+used unless you are capturing task output.
+Defaults to false.
+This attribute will be supported directly by <redirector>
+in Ant 1.6.3
+
No
+
+
+
failonerror
+
This attribute is used when you wish to avoid that
+any manager command processing error terminates the ant execution. Defaults to true.
+It must be set to false, if you want to capture error output,
+otherwise execution will terminate before anything can be captured.
+
+This attribute acts only on manager command execution,
+any wrong or missing command attribute will still cause Ant execution termination.
+
+
No
+
+
+
+
+
They also support the embedded <redirector> element
+in which you can specify
+its full set of attributes, but input, inputstring and
+inputencoding that, even if accepted, are not used because they have
+no meaning in this context.
+Refer to ant manual for details on
+<redirector> element attributes.
+
+
+
+Here is a sample build file extract that shows how this output redirection support
+can be used:
+
WARNING: even if it doesn't make many sense, and is always a bad idea,
+calling a Catalina task more than once,
+badly set Ant tasks depends chains may cause that a task be called
+more than once in the same Ant run, even if not intended to. A bit of caution should be exercised when you are
+capturing output from that task, because this could lead to something unexpected:
+
+
when capturing in a property you will find in it only the output from the first call, because
+Ant properties are immutable and once set they cannot be changed,
+
+
when capturing in a file, each run will overwrite it and you will find in it only the last call
+output, unless you are using the append="true" attribute, in which case you will
+see the output of each task call appended to the file.
+
+ The JMX Proxy Servlet is a lightweight proxy to get and set the
+ tomcat internals. (Or any class that has been exposed via an MBean)
+ Its usage is not very user friendly but the UI is
+ extremely help for integrating command line scripts for monitoring
+ and changing the internals of tomcat. You can do two things with the proxy:
+ get information and set information. For you to really understand the
+ JMX Proxy Servlet, you should have a general understanding of JMX.
+ If you don't know what JMX is, then prepare to be confused.
+
+ Where STUFF is the JMX query you wish to perform. For example,
+ here are some queries you might wish to run:
+
+
+ qry=*%3Atype%3DRequestProcessor%2C* -->
+ type=RequestProcessor which will locate all
+ workers which can process requests and report
+ their state.
+
+
+ qry=*%3Aj2eeType=Servlet%2c* -->
+ j2eeType=Servlet which return all loaded servlets.
+
+
+ qry=Catalina%3Atype%3DEnvironment%2Cresourcetype%3DGlobal%2Cname%3DsimpleValue -->
+ Catalina:type=Environment,resourcetype=Global,name=simpleValue
+ which look for a specific MBean by the given name.
+
+
+ You'll need to experiment with this to really understand its capabilites.
+ If you provide no qry parameter, then all of the MBeans will
+ be displayed. We really recommend looking at the tomcat source code and
+ understand the JMX spec to get a better understanding of all the queries
+ you may run.
+
+ So you need to provide 3 request parameters:
+
+
set: The full bean name
+
att: The attribute you wish to alter
+
val: The new value
+
+ If all goes ok, then it will say OK, otherwise an error message will be
+ shown. For example, lets say we wish to turn up debugging on the fly for the
+ ErrorReportValve. The following will set debugging to 10.
+
+
+
+
diff --git a/tomcat/webapps/ROOT/RELEASE-NOTES.txt b/tomcat/webapps/ROOT/RELEASE-NOTES.txt
new file mode 100644
index 0000000..f304b68
--- /dev/null
+++ b/tomcat/webapps/ROOT/RELEASE-NOTES.txt
@@ -0,0 +1,174 @@
+
+
+ Apache Tomcat Version 5.5.9
+ Release Notes
+
+
+$Id: RELEASE-NOTES.txt,v 1.1 2005/05/17 16:51:16 aranganath Exp $
+
+
+=============================
+KNOWN ISSUES IN THIS RELEASE:
+=============================
+
+* Dependency Changes
+* JNI Based Applications
+* Bundled APIs
+* Web application reloading and static fields in shared libraries
+* Tomcat on Linux
+* Enabling SSI and CGI Support
+* Security manager URLs
+* Symlinking static resources
+* Enabling invoker servlet
+* Viewing the Tomcat Change Log
+* When all else fails
+
+
+===================
+Dependency Changes:
+===================
+Tomcat 5.5 is designed to run on J2SE 5.0 and later, and requires
+configuration to run on J2SE 1.4. Make sure to read the "RUNNING.txt"
+file in this directory if you are using J2SE 1.4.
+
+In addition, Tomcat 5.5 uses the Eclipse JDT Java compiler for compiling
+JSP pages. This means you no longer need to have the complete
+Java Development Kit (JDK) to run Tomcat, but a Java Runtime Environment
+(JRE) is sufficient. The Eclipse JDT Java compiler is bundled with the
+binary Tomcat distributions. Tomcat can also be configured to use the
+compiler from the JDK to compile JSPs, or any other Java compiler supported
+by Apache Ant.
+
+
+=======================
+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.
+
+
+=============
+Bundled APIs:
+=============
+A standard installation of Tomcat 5.5 makes all of the following APIs available
+for use by web applications (by placing them in "common/lib" or "shared/lib"):
+* commons-el.jar (Commons Expression Language 1.0)
+* commons-logging-api.jar (Commons Logging API 1.0.x)
+* jasper-compiler.jar (Jasper 2 Compiler)
+* jasper-compiler-jdt.jar (Eclipse JDT Java compiler)
+* jasper-runtime.jar (Jasper 2 Runtime)
+* jsp-api.jar (JSP 2.0 API)
+* naming-common.jar (JNDI Context implementation)
+* naming-factory.jar (JNDI object factories for J2EE ENC support)
+* naming-factory-dbcp.jar (DataSource implementation based on commons-dbcp)
+* naming-resources.jar (JNDI DirContext implementations)
+* servlet-api.jar (Servlet 2.4 API)
+
+Installing the compatibility package will add the following to the list, which are
+needed when running on J2SE 1.4:
+* jmx.jar (Java Management Extensions API 1.2 or later)
+* xercesImpl.jar (Xerces XML Parser, version 2.6.2 or later)
+
+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.
+
+To override the XML parser implementation or interfaces, use the endorsed
+mechanism of the JVM. The default configuration defines JARs located in
+"common/endorsed" as endorsed.
+
+
+================================================================
+Web application reloading and static fields in shared libraries:
+================================================================
+Some shared libraries (many are part of the JDK) keep references to objects
+instantiated by the web application. To avoid class loading related problems
+(ClassCastExceptions, messages indicating that the classloader
+is stopped, etc.), the shared libraries state should be reinitialized.
+
+Something which might help is to avoid putting classes which would be
+referenced by a shared static field in the web application classloader,
+and putting them in the shared classloader instead (JARs should be put in the
+"lib" folder, and classes should be put in the "classes" folder).
+
+
+================
+Tomcat on Linux:
+================
+GLIBC 2.2 / Linux 2.4 users should define an environment variable:
+export LD_ASSUME_KERNEL=2.2.5
+
+Redhat Linux 9.0 users should use the following setting to avoid
+stability problems:
+export LD_ASSUME_KERNEL=2.4.1
+
+
+=============================
+Enabling SSI and CGI Support:
+=============================
+Because of the security risks associated with CGI and SSI available
+to web applications, these features are disabled by default.
+
+To enable and configure CGI support, please see the cgi-howto.html page.
+
+To enable and configue SSI support, please see the ssi-howto.html page.
+
+
+======================
+Security manager URLs:
+======================
+In order to grant security permissions to JARs located inside the
+web application repository, use URLs of of the following format
+in your policy file:
+
+file:${catalina.home}/webapps/examples/WEB-INF/lib/driver.jar
+
+
+============================
+Symlinking static resources:
+============================
+By default, Unix symlinks will not work when used in a web application to link
+resources located outside the web application root directory.
+
+This behavior is optional, and the "allowLinking" flag may be used to disable
+the check.
+
+
+=========================
+Enabling invoker servlet:
+=========================
+Starting with Tomcat 4.1.12, the invoker servlet is no longer available by
+default in all webapps. Enabling it for all webapps is possible by editing
+$CATALINA_HOME/conf/web.xml to uncomment the "/servlet/*" servlet-mapping
+definition.
+
+Using the invoker servlet in a production environment is not recommended and
+is unsupported. More details are available on the Tomcat FAQ at
+http://jakarta.apache.org/tomcat/faq/misc.html#invoker.
+
+
+==============================
+Viewing the Tomcat Change Log:
+==============================
+See changelog.html in this directory.
+
+
+====================
+When all else fails:
+====================
+See the FAQ
+http://jakarta.apache.org/tomcat/faq/
diff --git a/tomcat/webapps/ROOT/WEB-INF/lib/catalina-root.jar b/tomcat/webapps/ROOT/WEB-INF/lib/catalina-root.jar
new file mode 100644
index 0000000..a8818d7
Binary files /dev/null and b/tomcat/webapps/ROOT/WEB-INF/lib/catalina-root.jar differ
diff --git a/tomcat/webapps/ROOT/WEB-INF/web.xml b/tomcat/webapps/ROOT/WEB-INF/web.xml
new file mode 100644
index 0000000..30614de
--- /dev/null
+++ b/tomcat/webapps/ROOT/WEB-INF/web.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+ Welcome to Tomcat
+
+ Welcome to Tomcat
+
+
+
+
+
+ org.apache.jsp.index_jsp
+ org.apache.jsp.index_jsp
+
+
+
+ org.apache.jsp.index_jsp
+ /index.jsp
+
+
+
+
+
diff --git a/tomcat/webapps/ROOT/admin/index.html b/tomcat/webapps/ROOT/admin/index.html
new file mode 100644
index 0000000..6dcab2d
--- /dev/null
+++ b/tomcat/webapps/ROOT/admin/index.html
@@ -0,0 +1,14 @@
+
+
+
+
+ Administration
+
+
+
+
+Tomcat's administration web application is no longer installed by default. Download and install
+the "admin" package to use it.
+
+
+
diff --git a/tomcat/webapps/ROOT/index.jsp b/tomcat/webapps/ROOT/index.jsp
new file mode 100644
index 0000000..8a2df4e
--- /dev/null
+++ b/tomcat/webapps/ROOT/index.jsp
@@ -0,0 +1,192 @@
+
+<%@ page session="false" %>
+
+
+
+ <%= application.getServerInfo() %>
+
+
+
+
+
+
+
If you're seeing this page via a web browser, it means you've setup Tomcat successfully. Congratulations!
+
+
As you may have guessed by now, this is the default Tomcat home page. It can be found on the local filesystem at:
+
+
$CATALINA_HOME/webapps/ROOT/index.jsp
+
+
+
+
where "$CATALINA_HOME" is the root of the Tomcat installation directory. If you're seeing this page, and you don't think you should be, then either you're either a user who has arrived at new installation of Tomcat, or you're an administrator who hasn't got his/her setup quite right. Providing the latter is the case, please refer to the Tomcat Documentation for more detailed setup and administration information than is found in the INSTALL file.
+
+
NOTE: This page is precompiled. If you change it, this page will not change since
+ it was compiled into a servlet at build time.
+ (See $CATALINA_HOME/webapps/ROOT/WEB-INF/web.xml as to how it was mapped.)
+
+
+
NOTE: For security reasons, using the administration webapp
+ is restricted to users with role "admin". The manager webapp
+ is restricted to users with role "manager".
+ Users are defined in $CATALINA_HOME/conf/tomcat-users.xml.
+
+
Included with this release are a host of sample Servlets and JSPs (with associated source code), extensive documentation (including the Servlet 2.4 and JSP 2.0 API JavaDoc), and an introductory guide to developing web applications.
+
+
Tomcat mailing lists are available at the Jakarta project web site:
+
+
+
diff --git a/tomcat/webapps/ROOT/jakarta-banner.gif b/tomcat/webapps/ROOT/jakarta-banner.gif
new file mode 100644
index 0000000..049cf82
Binary files /dev/null and b/tomcat/webapps/ROOT/jakarta-banner.gif differ
diff --git a/tomcat/webapps/ROOT/tomcat-power.gif b/tomcat/webapps/ROOT/tomcat-power.gif
new file mode 100644
index 0000000..c1a7404
Binary files /dev/null and b/tomcat/webapps/ROOT/tomcat-power.gif differ
diff --git a/tomcat/webapps/ROOT/tomcat.gif b/tomcat/webapps/ROOT/tomcat.gif
new file mode 100644
index 0000000..6175673
Binary files /dev/null and b/tomcat/webapps/ROOT/tomcat.gif differ
diff --git a/tomcat/webapps/balancer/META-INF/context.xml b/tomcat/webapps/balancer/META-INF/context.xml
new file mode 100644
index 0000000..b87b724
--- /dev/null
+++ b/tomcat/webapps/balancer/META-INF/context.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/tomcat/webapps/balancer/WEB-INF/config/rules.xml b/tomcat/webapps/balancer/WEB-INF/config/rules.xml
new file mode 100644
index 0000000..8faaeea
--- /dev/null
+++ b/tomcat/webapps/balancer/WEB-INF/config/rules.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tomcat/webapps/balancer/WEB-INF/lib/catalina-balancer.jar b/tomcat/webapps/balancer/WEB-INF/lib/catalina-balancer.jar
new file mode 100644
index 0000000..e302fc5
Binary files /dev/null and b/tomcat/webapps/balancer/WEB-INF/lib/catalina-balancer.jar differ
diff --git a/tomcat/webapps/balancer/WEB-INF/web.xml b/tomcat/webapps/balancer/WEB-INF/web.xml
new file mode 100644
index 0000000..66c4086
--- /dev/null
+++ b/tomcat/webapps/balancer/WEB-INF/web.xml
@@ -0,0 +1,27 @@
+
+
+
+ Tomcat Simple Load Balancer Example App
+
+ Tomcat Simple Load Balancer Example App
+
+
+
+
+ BalancerFilter
+ org.apache.webapp.balancer.BalancerFilter
+
+ configUrl
+ /WEB-INF/config/rules.xml
+
+
+
+
+
+ BalancerFilter
+ /*
+
+
\ No newline at end of file
diff --git a/tomcat/webapps/webdav/WEB-INF/web.xml b/tomcat/webapps/webdav/WEB-INF/web.xml
new file mode 100644
index 0000000..a9488ef
--- /dev/null
+++ b/tomcat/webapps/webdav/WEB-INF/web.xml
@@ -0,0 +1,90 @@
+
+
+
+
+
+ Webdav Content Management
+
+ Webdav Content Management
+
+
+
+ webdav
+ org.apache.catalina.servlets.WebdavServlet
+
+ debug
+ 0
+
+
+ listings
+ true
+
+
+
+
+
+
+
+
+
+ webdav
+ /*
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tomcat/webapps/webdav/index.html b/tomcat/webapps/webdav/index.html
new file mode 100644
index 0000000..6b2dbf4
--- /dev/null
+++ b/tomcat/webapps/webdav/index.html
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+Tomcat WebDAV support
+
+
+Tomcat
+
+WebDAV support
+
This is the home page for the webdav context. This page is located at:
+
+
+$TOMCAT_HOME/webapps/webdav/index.html
+
+
+
Tomcat includes built-in support for WebDAV level 2, which enables
+remote authoring of the website. You can test these capabilities using a WebDAV
+client like MS WebFolders (included with IE 4.0 and up), MS Office 2000, DAV
+Explorer (others are listed on the webpages linked below), and point to the
+/webdav path of the server.
+
+
This test context is DAV enabled, but has been set up in read-only mode for
+safety reasons. It can be put in read-write mode by editing the web
+application descriptor file (WEB-INF/web.xml).
+
+
To add remote authoring to your web application, you need to make the following
+changes:
+
+
Add the webDAV servlet to your web application. See the web application
+deployment descriptor for an example. Don't forget to make it read/write.
+
Add a servlet mapping for the webDAV servlet with a url pattern of "/webdav/*"
+to your web.xml.
+
Add an appropriate security constraint to prevent unauthorised changes to your
+web application.
+
You can then edit your web application using a webDAV client using a url
+like http://host:port/webapp/webdav
+
+
+
Working WebDAV clients include :
+
+
Adobe GoLive 5.0 (and other WebDAV-enabled Adobe products, like
+ Photoshop)
\n");
+ out.write("You have reached the Error page. \n");
+ out.write("This page indicates that Lex has caught an exception that it does not know how to deal with. \n");
+ out.write("The message appears below. \n");
+ out.write("Return to the home page.