cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java
markt 2004/09/06 11:51:37 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java Log: Fix for part of bug 20758. Stop Digesters retaining reference to context. Revision ChangesPath 1.71 +5 -1 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.70 retrieving revision 1.71 diff -u -r1.70 -r1.71 --- ContextConfig.java26 Aug 2004 21:41:12 - 1.70 +++ ContextConfig.java6 Sep 2004 18:51:37 - 1.71 @@ -218,6 +218,7 @@ webDigester.clear(); webDigester.push(context); webDigester.parse(is); +webDigester.push(null); } catch (SAXParseException e) { log(sm.getString(contextConfig.applicationParse), e); log(sm.getString(contextConfig.applicationPosition, @@ -484,6 +485,7 @@ webDigester.clear(); webDigester.push(context); webDigester.parse(is); +webDigester.push(null); } catch (SAXParseException e) { log(sm.getString(contextConfig.defaultParse), e); log(sm.getString(contextConfig.defaultPosition, @@ -924,6 +926,8 @@ tldDigester.clear(); tldDigester.push(context); tldDigester.parse(resourceStream); +tldDigester.push(null); + } } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[www #45310] cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java
Greetings. (This is an automated response. There is no need to reply.) Your message regarding: cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java has been received and assigned a request number of 45310. In order help us track the progress of this request, we ask that you include the string [www #45310] in the subject line of any further mail about this particular request. For example: Subject: [www #45310] cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java LocalStrings.properties
markt 2004/06/21 15:16:50 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java LocalStrings.properties Log: Fix 18650. Provide a better message in the log if the temp directory is missing Remove unused imports identified by Eclipse Revision ChangesPath 1.69 +14 -19 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.68 retrieving revision 1.69 diff -u -r1.68 -r1.69 --- ContextConfig.java3 Mar 2004 21:49:55 - 1.68 +++ ContextConfig.java21 Jun 2004 22:16:50 - 1.69 @@ -70,19 +70,14 @@ import java.io.FileNotFoundException; import java.io.InputStream; import java.io.IOException; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; import java.net.JarURLConnection; -import java.net.MalformedURLException; import java.net.URL; -import java.util.ArrayList; import java.util.Enumeration; import java.util.HashSet; import java.util.Iterator; import java.util.MissingResourceException; import java.util.ResourceBundle; import java.util.Set; -import java.util.Stack; import java.util.jar.JarEntry; import java.util.jar.JarFile; import javax.naming.NamingException; @@ -95,9 +90,7 @@ import org.apache.catalina.Connector; import org.apache.catalina.Container; import org.apache.catalina.Context; -import org.apache.catalina.DefaultContext; import org.apache.catalina.Engine; -import org.apache.catalina.Globals; import org.apache.catalina.Host; import org.apache.catalina.Lifecycle; import org.apache.catalina.LifecycleEvent; @@ -109,20 +102,12 @@ import org.apache.catalina.Wrapper; import org.apache.catalina.core.ContainerBase; import org.apache.catalina.core.StandardContext; -import org.apache.catalina.deploy.ApplicationParameter; -import org.apache.catalina.deploy.ContextEjb; -import org.apache.catalina.deploy.ContextEnvironment; -import org.apache.catalina.deploy.ContextLocalEjb; -import org.apache.catalina.deploy.ContextResource; -import org.apache.catalina.deploy.ContextResourceLink; import org.apache.catalina.deploy.ErrorPage; import org.apache.catalina.deploy.FilterDef; import org.apache.catalina.deploy.FilterMap; import org.apache.catalina.deploy.LoginConfig; import org.apache.catalina.deploy.SecurityConstraint; -import org.apache.catalina.loader.Extension; import org.apache.catalina.util.StringManager; -import org.apache.catalina.valves.ValveBase; import org.apache.commons.digester.Digester; import org.xml.sax.InputSource; import org.xml.sax.SAXParseException; @@ -926,6 +911,16 @@ } // FIXME - Closing the JAR file messes up the class loader??? //jarFile.close(); +} catch (IOException ioe) { +File tmp = new File(System.getProperty(java.io.tmpdir)); +if (!tmp.canWrite()) { +throw new ServletException +(sm.getString(contextConfig.noTempDir), ioe); +} else { +throw new ServletException +(sm.getString(contextConfig.tldJarIOException, + resourcePath), ioe); +} } catch (Exception e) { if (name == null) { throw new ServletException 1.17 +2 -0 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/LocalStrings.properties Index: LocalStrings.properties === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/LocalStrings.properties,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- LocalStrings.properties 10 Jan 2003 15:52:18 - 1.16 +++ LocalStrings.properties 21 Jun 2004 22:16:50 - 1.17 @@ -17,6 +17,7 @@ contextConfig.defaultParse=Parse error in default web.xml contextConfig.defaultPosition=Occurred at line {0} column {1} contextConfig.missingRealm=No Realm has been configured to authenticate against +contextConfig.noTempDir=Required temporary directory $CATALINA_BASE/temp is missing contextConfig.role.auth=WARNING: Security role name {0} used in an auth-constraint without being defined in a security-role contextConfig.role.link=WARNING: Security role name {0} used in a role-link without being defined in a security-role contextConfig.role.runas=WARNING: Security role name {0} used in a run-as without being defined in a security-role @@ -24,6 +25,7 @@
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java
markt 2004/03/03 13:49:55 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java Log: Fix bug 19852. - Don't remove application parameters on stop (only the parameters specified in web.xml would get added back). Revision ChangesPath 1.68 +7 -6 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.67 retrieving revision 1.68 diff -u -r1.67 -r1.68 --- ContextConfig.java29 Oct 2002 04:17:25 - 1.67 +++ ContextConfig.java3 Mar 2004 21:49:55 - 1.68 @@ -708,13 +708,14 @@ } // Removing application parameters +/* ApplicationParameter[] applicationParameters = context.findApplicationParameters(); for (i = 0; i applicationParameters.length; i++) { context.removeApplicationParameter (applicationParameters[i].getName()); } - +*/ // Removing security constraints SecurityConstraint[] securityConstraints = context.findConstraints(); for (i = 0; i securityConstraints.length; i++) { @@ -780,7 +781,7 @@ for (i = 0; i parameters.length; i++) { context.removeParameter(parameters[i]); } - + // Removing resource env refs /* String[] resourceEnvRefs = context.findResourceEnvRefs(); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java
billbarker2002/10/28 20:17:25 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java Log: The previous version was failing badly, at least with FileDirContext. I can't see that the new version could create any problems with any context, so Here goes. Revision ChangesPath 1.67 +5 -5 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.66 retrieving revision 1.67 diff -u -r1.66 -r1.67 --- ContextConfig.java23 Jun 2002 20:35:30 - 1.66 +++ ContextConfig.java29 Oct 2002 04:17:25 - 1.67 -1052,7 +1052,7 // FIXME - Servlet 2.3 DTD implies that the location MUST be // a context-relative path starting with '/'? if (!resourcePath.startsWith(/)) { -resourcePath = /WEB-INF/web.xml/../ + resourcePath; +resourcePath = /WEB-INF/ + resourcePath; } if (debug = 3) { log( Adding path ' + resourcePath + -- To unsubscribe, e-mail: mailto:tomcat-dev-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-dev-help;jakarta.apache.org
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java
remm2002/06/23 13:35:30 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java Log: - Don't remove resources on stop (only the resources specified in web.xml would get added back). Revision ChangesPath 1.66 +16 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.65 retrieving revision 1.66 diff -u -r1.65 -r1.66 --- ContextConfig.java16 May 2002 21:08:26 - 1.65 +++ ContextConfig.java23 Jun 2002 20:35:30 - 1.66 @@ -722,16 +722,20 @@ } // Removing Ejbs +/* ContextEjb[] contextEjbs = context.findEjbs(); for (i = 0; i contextEjbs.length; i++) { context.removeEjb(contextEjbs[i].getName()); } +*/ // Removing environments +/* ContextEnvironment[] contextEnvironments = context.findEnvironments(); for (i = 0; i contextEnvironments.length; i++) { context.removeEnvironment(contextEnvironments[i].getName()); } +*/ // Removing errors pages ErrorPage[] errorPages = context.findErrorPages(); @@ -758,10 +762,12 @@ } // Removing local ejbs +/* ContextLocalEjb[] contextLocalEjbs = context.findLocalEjbs(); for (i = 0; i contextLocalEjbs.length; i++) { context.removeLocalEjb(contextLocalEjbs[i].getName()); } +*/ // Removing Mime mappings String[] mimeMappings = context.findMimeMappings(); @@ -776,23 +782,29 @@ } // Removing resource env refs +/* String[] resourceEnvRefs = context.findResourceEnvRefs(); for (i = 0; i resourceEnvRefs.length; i++) { context.removeResourceEnvRef(resourceEnvRefs[i]); } +*/ // Removing resource links +/* ContextResourceLink[] contextResourceLinks = context.findResourceLinks(); for (i = 0; i contextResourceLinks.length; i++) { context.removeResourceLink(contextResourceLinks[i].getName()); } +*/ // Removing resources +/* ContextResource[] contextResources = context.findResources(); for (i = 0; i contextResources.length; i++) { context.removeResource(contextResources[i].getName()); } +*/ // Removing sercurity role String[] securityRoles = context.findSecurityRoles(); -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java
remm02/05/16 14:08:26 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java Log: - When running in embedded mode, the service was always null, causing a NPE. In that case, the CertificatesValve will always be added. Revision ChangesPath 1.65 +14 -9 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.64 retrieving revision 1.65 diff -u -r1.64 -r1.65 --- ContextConfig.java12 May 2002 04:06:19 - 1.64 +++ ContextConfig.java16 May 2002 21:08:26 - 1.65 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.64 2002/05/12 04:06:19 glenn Exp $ - * $Revision: 1.64 $ - * $Date: 2002/05/12 04:06:19 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.65 2002/05/16 21:08:26 remm Exp $ + * $Revision: 1.65 $ + * $Date: 2002/05/16 21:08:26 $ * * * @@ -133,7 +133,7 @@ * of that Context, and the associated defined servlets. * * @author Craig R. McClanahan - * @version $Revision: 1.64 $ $Date: 2002/05/12 04:06:19 $ + * @version $Revision: 1.65 $ $Date: 2002/05/16 21:08:26 $ */ public final class ContextConfig @@ -412,11 +412,16 @@ } if (container instanceof Engine) { Service service = ((Engine)container).getService(); -Connector [] connectors = service.findConnectors(); -for (int i = 0; i connectors.length; i++) { -secure = connectors[i].getSecure(); -if (secure) { -break; +// The service can be null when Tomcat is run in embedded mode +if (service == null) { +secure = true; +} else { +Connector [] connectors = service.findConnectors(); +for (int i = 0; i connectors.length; i++) { +secure = connectors[i].getSecure(); +if (secure) { +break; +} } } } -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java
glenn 02/05/11 21:04:27 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java Log: Only add the CertificatesValve if this Context is using a Connector where secure=true. Slight performance improvement for non SSL Hosts. Revision ChangesPath 1.63 +35 -7 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.62 retrieving revision 1.63 diff -u -r1.62 -r1.63 --- ContextConfig.java22 Apr 2002 19:04:01 - 1.62 +++ ContextConfig.java12 May 2002 04:04:27 - 1.63 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.62 2002/04/22 19:04:01 craigmcc Exp $ - * $Revision: 1.62 $ - * $Date: 2002/04/22 19:04:01 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.63 2002/05/12 04:04:27 glenn Exp $ + * $Revision: 1.63 $ + * $Date: 2002/05/12 04:04:27 $ * * * @@ -92,21 +92,22 @@ import javax.servlet.ServletContext; import javax.servlet.ServletException; import org.apache.catalina.Authenticator; +import org.apache.catalina.Connector; import org.apache.catalina.Container; import org.apache.catalina.Context; import org.apache.catalina.DefaultContext; +import org.apache.catalina.Engine; import org.apache.catalina.Globals; +import org.apache.catalina.Host; import org.apache.catalina.Lifecycle; import org.apache.catalina.LifecycleEvent; import org.apache.catalina.LifecycleListener; import org.apache.catalina.Logger; import org.apache.catalina.Pipeline; +import org.apache.catalina.Service; import org.apache.catalina.Valve; import org.apache.catalina.Wrapper; import org.apache.catalina.core.ContainerBase; -import org.apache.catalina.Engine; -import org.apache.catalina.Host; -import org.apache.catalina.core.ContainerBase; import org.apache.catalina.core.StandardContext; import org.apache.catalina.deploy.ApplicationParameter; import org.apache.catalina.deploy.ContextEjb; @@ -132,7 +133,7 @@ * of that Context, and the associated defined servlets. * * @author Craig R. McClanahan - * @version $Revision: 1.62 $ $Date: 2002/04/22 19:04:01 $ + * @version $Revision: 1.63 $ $Date: 2002/05/12 04:04:27 $ */ public final class ContextConfig @@ -397,9 +398,36 @@ * Create and deploy a Valve to expose the SSL certificates presented * by this client, if any. If we cannot instantiate such a Valve * (because the JSSE classes are not available), silently continue. + * This is only instantiated for those Contexts being served by + * a Connector with secure set to true. */ private void certificatesConfig() { +// Only install this valve if there is a Connector installed +// which has secure set to true. +boolean secure = false; +Container container = context.getParent(); +if (container instanceof Host) { +System.out.println(certificatesConfig found Host); +container = container.getParent(); +} +if (container instanceof Engine) { +System.out.println(certificatesConfig found Engine); +Service service = ((Engine)container).getService(); +Connector [] connectors = service.findConnectors(); +for (int i = 0; i connectors.length; i++) { +System.out.println(certificatesConfig found Connector); +secure = connectors[i].getSecure(); +if (secure) { +break; +} +} +} + +if (!secure) { +return; +} +System.out.println(certificatesConfig add CertificatesValve); // Validate that the JSSE classes are present try { Class clazz = this.getClass().getClassLoader().loadClass -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java
glenn 02/05/11 21:06:19 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java Log: Remove some debug prints Revision ChangesPath 1.64 +5 -9 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.63 retrieving revision 1.64 diff -u -r1.63 -r1.64 --- ContextConfig.java12 May 2002 04:04:27 - 1.63 +++ ContextConfig.java12 May 2002 04:06:19 - 1.64 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.63 2002/05/12 04:04:27 glenn Exp $ - * $Revision: 1.63 $ - * $Date: 2002/05/12 04:04:27 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.64 2002/05/12 04:06:19 glenn Exp $ + * $Revision: 1.64 $ + * $Date: 2002/05/12 04:06:19 $ * * * @@ -133,7 +133,7 @@ * of that Context, and the associated defined servlets. * * @author Craig R. McClanahan - * @version $Revision: 1.63 $ $Date: 2002/05/12 04:04:27 $ + * @version $Revision: 1.64 $ $Date: 2002/05/12 04:06:19 $ */ public final class ContextConfig @@ -408,26 +408,22 @@ boolean secure = false; Container container = context.getParent(); if (container instanceof Host) { -System.out.println(certificatesConfig found Host); container = container.getParent(); } if (container instanceof Engine) { -System.out.println(certificatesConfig found Engine); Service service = ((Engine)container).getService(); Connector [] connectors = service.findConnectors(); for (int i = 0; i connectors.length; i++) { -System.out.println(certificatesConfig found Connector); secure = connectors[i].getSecure(); if (secure) { break; } } } - if (!secure) { return; } -System.out.println(certificatesConfig add CertificatesValve); + // Validate that the JSSE classes are present try { Class clazz = this.getClass().getClassLoader().loadClass -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java HostConfig.java LocalStrings.properties
craigmcc02/03/14 15:58:36 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java HostConfig.java LocalStrings.properties Log: Refactor the TLD scanning code in ContextConfig to improve clarity, avoid redundant parsing of the same TLD, and some wasted effort trying to parse a JAR as an XML document (and vice versa) in the old code. Currently, the jarFile.close() statement to close a JAR file after scanning is still commented out (as it was before). Closing the JAR file here seems to mess up the WebappClassLoader (which has already included this JAR file in its repository of available URLs) by causing Zip File Is Closed exceptions when it attempts to load classes from that JAR. In HostConfig, the only change was to close the JAR in a finally block when expanding a WAR, even if an exception has occurred. Revision ChangesPath 1.60 +221 -130 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.59 retrieving revision 1.60 diff -u -r1.59 -r1.60 --- ContextConfig.java5 Mar 2002 01:53:11 - 1.59 +++ ContextConfig.java14 Mar 2002 23:58:35 - 1.60 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.59 2002/03/05 01:53:11 craigmcc Exp $ - * $Revision: 1.59 $ - * $Date: 2002/03/05 01:53:11 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.60 2002/03/14 23:58:35 craigmcc Exp $ + * $Revision: 1.60 $ + * $Date: 2002/03/14 23:58:35 $ * * * @@ -77,16 +77,20 @@ import java.net.URL; import java.util.ArrayList; import java.util.Enumeration; +import java.util.HashSet; +import java.util.Iterator; import java.util.MissingResourceException; import java.util.ResourceBundle; +import java.util.Set; import java.util.Stack; import java.util.jar.JarEntry; import java.util.jar.JarFile; -import javax.servlet.ServletContext; import javax.naming.NamingException; import javax.naming.NameClassPair; import javax.naming.NamingEnumeration; import javax.naming.directory.DirContext; +import javax.servlet.ServletContext; +import javax.servlet.ServletException; import org.apache.catalina.Authenticator; import org.apache.catalina.Container; import org.apache.catalina.Context; @@ -127,7 +131,7 @@ * of that Context, and the associated defined servlets. * * @author Craig R. McClanahan - * @version $Revision: 1.59 $ $Date: 2002/03/05 01:53:11 $ + * @version $Revision: 1.60 $ $Date: 2002/03/14 23:58:35 $ */ public final class ContextConfig @@ -591,8 +595,14 @@ applicationConfig(); // Scan tag library descriptor files for additional listener classes -if (ok) -tldConfig(); +if (ok) { +try { +tldScan(); +} catch (Exception e) { +log(e.getMessage(), e); +ok = false; +} +} // Configure a certificates exposer valve, if required if (ok) @@ -781,76 +791,24 @@ /** - * Scan the tag library descriptors of all tag libraries we can find, and - * register any application descriptor classes that are found there. + * Scan for and configure all tag library descriptors found in this + * web application. + * + * @exception Exception if a fatal input/output or parsing error occurs */ -private void tldConfig() { - -// Acquire a Digester to use for parsing -synchronized (tldDigester) { - -// First, scan tag libraries declared in our deployment descriptor -if (debug = 1) -log(Scanning web.xml tag libraries); -ArrayList resourcePaths = new ArrayList(); // Already done TLDs -String taglibs[] = context.findTaglibs(); -for (int i = 0; i taglibs.length; i++) { - -// Calculate the resource path of the next tag library to check -String resourcePath = context.findTaglib(taglibs[i]); -if (!resourcePath.startsWith(/)) -resourcePath = /WEB-INF/web.xml/../ + resourcePath; -if (debug = 2) -log( URI=' + taglibs[i] + ', ResourcePath=' + -resourcePath + '); -if
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java
craigmcc02/03/04 17:53:12 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java Log: Fix a race condition that could cause problems if two contexts are being started simultaneously. The start() method was already synchronized, but this only helps you deal with two attempts to start the *same* app at the same time. The underlying Digester instance would still be incorrectly shared. The symptom was parsing failures on one or both web.xml files -- this would happen rarely during a normal startup when you have lots of virtual hosts, but more often when you hammer on the manager webapp deploying and undeploying applications. Revision ChangesPath 1.59 +129 -134 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.58 retrieving revision 1.59 diff -u -r1.58 -r1.59 --- ContextConfig.java20 Feb 2002 03:18:19 - 1.58 +++ ContextConfig.java5 Mar 2002 01:53:11 - 1.59 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.58 2002/02/20 03:18:19 remm Exp $ - * $Revision: 1.58 $ - * $Date: 2002/02/20 03:18:19 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.59 2002/03/05 01:53:11 craigmcc Exp $ + * $Revision: 1.59 $ + * $Date: 2002/03/05 01:53:11 $ * * * @@ -127,7 +127,7 @@ * of that Context, and the associated defined servlets. * * @author Craig R. McClanahan - * @version $Revision: 1.58 $ $Date: 2002/02/20 03:18:19 $ + * @version $Revision: 1.59 $ $Date: 2002/03/05 01:53:11 $ */ public final class ContextConfig @@ -174,14 +174,14 @@ * The codeDigester/code we will use to process tag library * descriptor files. */ -private static Digester tldDigester = null; +private static Digester tldDigester = createTldDigester(); /** * The codeDigester/code we will use to process web application * deployment descriptor files. */ -private static Digester webDigester = null; +private static Digester webDigester = createWebDigester(); // - Properties @@ -261,29 +261,30 @@ } // Process the application web.xml file -try { -Digester digester = createWebDigester(); -digester.setDebug(getDebug()); -synchronized (digester) { -if (context instanceof StandardContext) -((StandardContext) context).setReplaceWelcomeFiles(true); -digester.push(context); -digester.parse(stream); -} -} catch (SAXParseException e) { -log(sm.getString(contextConfig.applicationParse), e); -log(sm.getString(contextConfig.applicationPosition, - + e.getLineNumber(), - + e.getColumnNumber())); -ok = false; -} catch (Exception e) { -log(sm.getString(contextConfig.applicationParse), e); -ok = false; -} finally { +synchronized (webDigester) { try { -stream.close(); -} catch (IOException e) { -log(sm.getString(contextConfig.applicationClose), e); +webDigester.setDebug(getDebug()); +if (context instanceof StandardContext) { +((StandardContext) context).setReplaceWelcomeFiles(true); +} +webDigester.clear(); +webDigester.push(context); +webDigester.parse(stream); +} catch (SAXParseException e) { +log(sm.getString(contextConfig.applicationParse), e); +log(sm.getString(contextConfig.applicationPosition, + + e.getLineNumber(), + + e.getColumnNumber())); +ok = false; +} catch (Exception e) { +log(sm.getString(contextConfig.applicationParse), e); +ok = false; +} finally { +try { +stream.close(); +} catch (IOException e) { +log(sm.getString(contextConfig.applicationClose), e); +} } } @@ -431,22 +432,18
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java
craigmcc02/02/19 14:16:00 Modified:catalina/src/share/org/apache/catalina/mbeans MBeanUtils.java ServerLifecycleListener.java catalina/src/share/org/apache/catalina/startup ContextConfig.java Log: Correct the mechanism by which MBean names were generated for Valves. The previous algorithm did not support repeated generation of the same name for the same Valve instance, which manifested itself as failure to find the appropriate MBeans at shutdown time (so that shutdown could complete). Fix a couple of places in ContextConfig where new valves were being added, but the appropriate event listener notifications were not getting sent. This causes some Valve MBeans to not get created at startup time. PR: 4639432 Revision ChangesPath 1.27 +13 -30 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java Index: MBeanUtils.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- MBeanUtils.java 19 Feb 2002 02:15:27 - 1.26 +++ MBeanUtils.java 19 Feb 2002 22:16:00 - 1.27 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java,v 1.26 2002/02/19 02:15:27 craigmcc Exp $ - * $Revision: 1.26 $ - * $Date: 2002/02/19 02:15:27 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java,v 1.27 2002/02/19 22:16:00 craigmcc Exp $ + * $Revision: 1.27 $ + * $Date: 2002/02/19 22:16:00 $ * * * @@ -109,7 +109,7 @@ * * @author Craig R. McClanahan * @author Amy Roh - * @version $Revision: 1.26 $ $Date: 2002/02/19 02:15:27 $ + * @version $Revision: 1.27 $ $Date: 2002/02/19 22:16:00 $ */ public class MBeanUtils { @@ -159,14 +159,6 @@ private static MBeanServer mserver = createServer(); -/** - * The sequence number for Valve - */ -private static int contextValveSequence = 0; -private static int hostValveSequence = 0; -private static int engineValveSequence = 0; - - // - Static Methods @@ -1172,21 +1164,15 @@ if (container instanceof Engine) { Service service = ((Engine)container).getService(); -Integer sequenceInt = new Integer(engineValveSequence); -String sequenceStr = sequenceInt.toString(); name = new ObjectName(domain + :type=Valve,sequence= + -sequenceStr + ,service= + -service.getName()); -engineValveSequence++; + valve.hashCode() + ,service= + + service.getName()); } else if (container instanceof Host) { Service service = ((Engine)container.getParent()).getService(); -Integer sequenceInt = new Integer(hostValveSequence); -String sequenceStr = sequenceInt.toString(); name = new ObjectName(domain + :type=Valve,sequence= + -sequenceStr + ,host= + -container.getName() + ,service= + -service.getName()); -hostValveSequence++; + valve.hashCode() + ,host= + + container.getName() + ,service= + + service.getName()); } else if (container instanceof Context) { String path = ((Context)container).getPath(); if (path.length() 1) { @@ -1194,14 +1180,11 @@ } Host host = (Host) container.getParent(); Service service = ((Engine) host.getParent()).getService(); -Integer sequenceInt = new Integer(contextValveSequence); -String sequenceStr = sequenceInt.toString(); name = new ObjectName(domain + :type=Valve,sequence= + -sequenceStr + ,path= + -path + ,host= + -host.getName() + ,service= + -service.getName()); -contextValveSequence++; + valve.hashCode() + ,path= + + path + ,host= + + host.getName() + ,service= + + service.getName()); } return (name); 1.20
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java
remm02/02/19 19:18:19 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java Log: - Fix bug 6090. WEB-INF will now be scanned for TLD files containing listeners. Revision ChangesPath 1.58 +27 -12 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.57 retrieving revision 1.58 diff -u -r1.57 -r1.58 --- ContextConfig.java19 Feb 2002 22:16:00 - 1.57 +++ ContextConfig.java20 Feb 2002 03:18:19 - 1.58 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.57 2002/02/19 22:16:00 craigmcc Exp $ - * $Revision: 1.57 $ - * $Date: 2002/02/19 22:16:00 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.58 2002/02/20 03:18:19 remm Exp $ + * $Revision: 1.58 $ + * $Date: 2002/02/20 03:18:19 $ * * * @@ -127,7 +127,7 @@ * of that Context, and the associated defined servlets. * * @author Craig R. McClanahan - * @version $Revision: 1.57 $ $Date: 2002/02/19 22:16:00 $ + * @version $Revision: 1.58 $ $Date: 2002/02/20 03:18:19 $ */ public final class ContextConfig @@ -823,27 +823,42 @@ } -// Second, scan tag libraries defined in JAR files -// FIXME - Yet another dependence on files +DirContext resources = context.getResources(); + +// Second, scan tag libraries defined in tld files in /WEB-INF +if (debug = 1) +log(Scanning TLD files in /WEB-INF); +String webinfName = /WEB-INF; +// Looking up directory /WEB-INF in the context +try { +NamingEnumeration enum = resources.list(webinfName); +while (enum.hasMoreElements()) { +NameClassPair ncPair = (NameClassPair) enum.nextElement(); +String filename = webinfName + / + ncPair.getName(); +if (!filename.endsWith(.tld)) +continue; +tldConfigTld(filename, digester); +} +} catch (NamingException e) { +// Silent catch: it's valid that no /WEB-INF directory exists +} + +// Third, scan tag libraries defined in JAR files if (debug = 1) log(Scanning library JAR files); -DirContext resources = context.getResources(); String libName = /WEB-INF/lib; -DirContext libDir = null; // Looking up directory /WEB-INF/lib in the context try { NamingEnumeration enum = resources.list(libName); while (enum.hasMoreElements()) { -NameClassPair ncPair = -(NameClassPair) enum.nextElement(); +NameClassPair ncPair = (NameClassPair) enum.nextElement(); String filename = libName + / + ncPair.getName(); if (!filename.endsWith(.jar)) continue; tldConfigJar(filename, digester); } } catch (NamingException e) { -// Silent catch: it's valid that no /WEB-INF/lib directory -//exists +// Silent catch: it's valid that no /WEB-INF/lib directory exists } } -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java
craigmcc01/07/28 21:34:17 Modified:catalina/src/share/org/apache/catalina Context.java catalina/src/share/org/apache/catalina/core StandardContext.java StandardHost.java catalina/src/share/org/apache/catalina/startup ContextConfig.java Log: Correct handling of web application startup so that parsing errors in the web.xml file cause the application to be marked unavailable. Previously, the application was started anyway, which could cause security issues (for example, confidential information might be visible because of an incorrect security constraint definition that was therefore not installed at all). PR: Bugzilla #2870 Submitted by: Remy Maucherat [EMAIL PROTECTED] Revision ChangesPath 1.17 +20 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/Context.java Index: Context.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/Context.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- Context.java 2001/04/05 19:30:39 1.16 +++ Context.java 2001/07/29 04:34:17 1.17 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/Context.java,v 1.16 2001/04/05 19:30:39 craigmcc Exp $ - * $Revision: 1.16 $ - * $Date: 2001/04/05 19:30:39 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/Context.java,v 1.17 2001/07/29 04:34:17 craigmcc Exp $ + * $Revision: 1.17 $ + * $Date: 2001/07/29 04:34:17 $ * * * @@ -96,7 +96,7 @@ * p * * @author Craig R. McClanahan - * @version $Revision: 1.16 $ $Date: 2001/04/05 19:30:39 $ + * @version $Revision: 1.17 $ $Date: 2001/07/29 04:34:17 $ */ public interface Context extends Container { @@ -152,6 +152,22 @@ * @param mapper The new mapper */ public void setCharsetMapper(CharsetMapper mapper); + + +/** + * Return the correctly configured flag for this Context. + */ +public boolean getConfigured(); + + +/** + * Set the correctly configured flag for this Context. This can be + * set to false by startup listeners that detect a fatal configuration + * error to avoid the application from being made available. + * + * @param configured The new correctly configured flag + */ +public void setConfigured(boolean configured); /** 1.73 +49 -8 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java Index: StandardContext.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v retrieving revision 1.72 retrieving revision 1.73 diff -u -r1.72 -r1.73 --- StandardContext.java 2001/07/26 00:15:58 1.72 +++ StandardContext.java 2001/07/29 04:34:17 1.73 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v 1.72 2001/07/26 00:15:58 remm Exp $ - * $Revision: 1.72 $ - * $Date: 2001/07/26 00:15:58 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/StandardContext.java,v 1.73 2001/07/29 04:34:17 craigmcc Exp $ + * $Revision: 1.73 $ + * $Date: 2001/07/29 04:34:17 $ * * * @@ -142,7 +142,7 @@ * * @author Craig R. McClanahan * @author Remy Maucherat - * @version $Revision: 1.72 $ $Date: 2001/07/26 00:15:58 $ + * @version $Revision: 1.73 $ $Date: 2001/07/29 04:34:17 $ */ public class StandardContext @@ -208,6 +208,12 @@ /** + * The correctly configured flag for this Context. + */ +private boolean configured = false; + + +/** * The security constraints for this web application. */ private SecurityConstraint constraints[] = new SecurityConstraint[0]; @@ -626,6 +632,34 @@ /** + * Return the correctly configured flag for this Context. + */ +public boolean getConfigured() { + +return (this.configured); + +} + + +/** + * Set the correctly configured flag for this Context. This can be + * set to false by startup listeners that detect a fatal configuration + * error to avoid the application from being made available. + * + * @param configured The new correctly configured flag + */ +public void setConfigured(boolean configured) { + +boolean oldConfigured = this.configured;
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java
remm01/06/18 19:20:32 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java Log: - Stopping and starting any of the Catalina components is broken at the moment, because the component is not reinitialized. - This fixes the problem (at least partially) for a Context. - I think this code should be moved to the container itself. I suggest adding either a new Container.recycle() method or a new Lifecycle.recycle() method. Revision ChangesPath 1.47 +148 -5 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.46 retrieving revision 1.47 diff -u -r1.46 -r1.47 --- ContextConfig.java2001/05/31 03:56:11 1.46 +++ ContextConfig.java2001/06/19 02:20:32 1.47 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.46 2001/05/31 03:56:11 remm Exp $ - * $Revision: 1.46 $ - * $Date: 2001/05/31 03:56:11 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.47 2001/06/19 02:20:32 remm Exp $ + * $Revision: 1.47 $ + * $Date: 2001/06/19 02:20:32 $ * * * @@ -106,6 +106,14 @@ import org.apache.catalina.core.StandardContext; import org.apache.catalina.deploy.LoginConfig; import org.apache.catalina.deploy.SecurityConstraint; +import org.apache.catalina.deploy.ApplicationParameter; +import org.apache.catalina.deploy.ContextEjb; +import org.apache.catalina.deploy.ContextEnvironment; +import org.apache.catalina.deploy.ErrorPage; +import org.apache.catalina.deploy.FilterDef; +import org.apache.catalina.deploy.FilterMap; +import org.apache.catalina.deploy.ContextLocalEjb; +import org.apache.catalina.deploy.ContextResource; import org.apache.catalina.loader.Extension; import org.apache.catalina.util.StringManager; import org.apache.catalina.util.xml.SaxContext; @@ -120,7 +128,7 @@ * of that Context, and the associated defined servlets. * * @author Craig R. McClanahan - * @version $Revision: 1.46 $ $Date: 2001/05/31 03:56:11 $ + * @version $Revision: 1.47 $ $Date: 2001/06/19 02:20:32 $ */ public final class ContextConfig @@ -859,10 +867,145 @@ /** * Process a stop event for this Context. */ -private void stop() { +private synchronized void stop() { if (debug 0) log(sm.getString(contextConfig.stop)); + +int i; + +// Removing children +Container[] children = context.findChildren(); +for (i = 0; i children.length; i++) { +context.removeChild(children[i]); +} + +// FIXME : remove mappers ? + +// Removing application listeners +String[] applicationListeners = context.findApplicationListeners(); +for (i = 0; i applicationListeners.length; i++) { +context.removeApplicationListener(applicationListeners[i]); +} + +// Removing application parameters +ApplicationParameter[] applicationParameters = +context.findApplicationParameters(); +for (i = 0; i applicationParameters.length; i++) { +context.removeApplicationParameter +(applicationParameters[i].getName()); +} + +// Removing security constraints +SecurityConstraint[] securityConstraints = context.findConstraints(); +for (i = 0; i securityConstraints.length; i++) { +context.removeConstraint(securityConstraints[i]); +} + +// Removing Ejbs +ContextEjb[] contextEjbs = context.findEjbs(); +for (i = 0; i contextEjbs.length; i++) { +context.removeEjb(contextEjbs[i].getName()); +} + +// Removing environments +ContextEnvironment[] contextEnvironments = context.findEnvironments(); +for (i = 0; i contextEnvironments.length; i++) { +context.removeEnvironment(contextEnvironments[i].getName()); +} + +// Removing errors pages +ErrorPage[] errorPages = context.findErrorPages(); +for (i = 0; i errorPages.length; i++) { +context.removeErrorPage(errorPages[i]); +} + +// Removing filter defs +FilterDef[] filterDefs = context.findFilterDefs(); +for (i = 0; i filterDefs.length; i++) { +context.removeFilterDef(filterDefs[i]); +} + +// Removing filter maps +
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java
remm01/05/30 20:56:16 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java Log: - Remove useless thread bind / unbind (which are now all done in StandardContext). Revision ChangesPath 1.46 +4 -10 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.45 retrieving revision 1.46 diff -u -r1.45 -r1.46 --- ContextConfig.java2001/05/08 21:22:36 1.45 +++ ContextConfig.java2001/05/31 03:56:11 1.46 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.45 2001/05/08 21:22:36 craigmcc Exp $ - * $Revision: 1.45 $ - * $Date: 2001/05/08 21:22:36 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.46 2001/05/31 03:56:11 remm Exp $ + * $Revision: 1.46 $ + * $Date: 2001/05/31 03:56:11 $ * * * @@ -87,7 +87,6 @@ import javax.naming.NameClassPair; import javax.naming.NamingEnumeration; import javax.naming.directory.DirContext; -import org.apache.naming.resources.DirContextURLStreamHandler; import org.apache.catalina.Authenticator; import org.apache.catalina.Container; import org.apache.catalina.Context; @@ -121,7 +120,7 @@ * of that Context, and the associated defined servlets. * * @author Craig R. McClanahan - * @version $Revision: 1.45 $ $Date: 2001/05/08 21:22:36 $ + * @version $Revision: 1.46 $ $Date: 2001/05/31 03:56:11 $ */ public final class ContextConfig @@ -818,7 +817,6 @@ XmlMapper mapper = createWebMapper(); defaultConfig(mapper); applicationConfig(mapper); -//DirContextURLStreamHandlerFactory.bind(context.getResources()); // Scan tag library descriptor files for additional listener classes if (ok) @@ -855,8 +853,6 @@ context.setAvailable(false); } -//DirContextURLStreamHandlerFactory.unbind(); - } @@ -950,12 +946,10 @@ URL url = context.getServletContext().getResource(resourcePath); if (url == null) return (false); -DirContextURLStreamHandler.bind(context.getResources()); url = new URL(jar: + url.toString() + !/); JarURLConnection conn = (JarURLConnection) url.openConnection(); jarFile = conn.getJarFile(); -DirContextURLStreamHandler.unbind(); boolean found = false; Enumeration entries = jarFile.entries(); while (entries.hasMoreElements()) {
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java
glenn 01/02/25 19:53:13 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java Log: Implement DefaultContext in server.xml config Revision ChangesPath 1.41 +21 -5 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.40 retrieving revision 1.41 diff -u -r1.40 -r1.41 --- ContextConfig.java2001/01/24 19:23:09 1.40 +++ ContextConfig.java2001/02/26 03:53:12 1.41 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.40 2001/01/24 19:23:09 remm Exp $ - * $Revision: 1.40 $ - * $Date: 2001/01/24 19:23:09 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.41 2001/02/26 03:53:12 glenn Exp $ + * $Revision: 1.41 $ + * $Date: 2001/02/26 03:53:12 $ * * * @@ -89,6 +89,7 @@ import javax.naming.directory.DirContext; import org.apache.naming.resources.DirContextURLStreamHandler; import org.apache.catalina.Authenticator; +import org.apache.catalina.Container; import org.apache.catalina.Context; import org.apache.catalina.Globals; import org.apache.catalina.Lifecycle; @@ -99,7 +100,10 @@ import org.apache.catalina.Valve; import org.apache.catalina.Wrapper; import org.apache.catalina.core.ContainerBase; -import org.apache.catalina.deploy.ErrorPage; +import org.apache.catalina.Engine; +import org.apache.catalina.Host; +import org.apache.catalina.core.DefaultContext; +import org.apache.catalina.core.StandardContext; import org.apache.catalina.deploy.LoginConfig; import org.apache.catalina.deploy.SecurityConstraint; import org.apache.catalina.loader.Extension; @@ -116,7 +120,7 @@ * of that Context, and the associated defined servlets. * * @author Craig R. McClanahan - * @version $Revision: 1.40 $ $Date: 2001/01/24 19:23:09 $ + * @version $Revision: 1.41 $ $Date: 2001/02/26 03:53:12 $ */ public final class ContextConfig @@ -771,6 +775,18 @@ if (debug 0) log(sm.getString("contextConfig.start")); ok = true; + + // Set properties based on DefaultContext + Container container = context.getParent(); + if( !context.getOverride() ) { + if( container instanceof Host ) { + ((Host)container).importDefaultContext(context); + container = container.getParent(); + } + if( container instanceof Engine ) { + ((Engine)container).importDefaultContext(context); + } + } // Process the default and application web.xml files XmlMapper mapper = createWebMapper(); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java
remm01/01/24 11:23:12 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java Log: - Replace some FS spcific code with access through a directory context. - I ran Watchdog 4 again, and everything was still running fine. Since Watchdog is supposed to use that code (it's loading a TLD file from a JAR), I assume it's working fine. Revision ChangesPath 1.40 +24 -25 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.39 retrieving revision 1.40 diff -u -r1.39 -r1.40 --- ContextConfig.java2001/01/24 02:35:00 1.39 +++ ContextConfig.java2001/01/24 19:23:09 1.40 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.39 2001/01/24 02:35:00 remm Exp $ - * $Revision: 1.39 $ - * $Date: 2001/01/24 02:35:00 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.40 2001/01/24 19:23:09 remm Exp $ + * $Revision: 1.40 $ + * $Date: 2001/01/24 19:23:09 $ * * * @@ -83,6 +83,10 @@ import java.util.jar.JarEntry; import java.util.jar.JarFile; import javax.servlet.ServletContext; +import javax.naming.NamingException; +import javax.naming.NameClassPair; +import javax.naming.NamingEnumeration; +import javax.naming.directory.DirContext; import org.apache.naming.resources.DirContextURLStreamHandler; import org.apache.catalina.Authenticator; import org.apache.catalina.Context; @@ -112,7 +116,7 @@ * of that Context, and the associated defined servlets. * * @author Craig R. McClanahan - * @version $Revision: 1.39 $ $Date: 2001/01/24 02:35:00 $ + * @version $Revision: 1.40 $ $Date: 2001/01/24 19:23:09 $ */ public final class ContextConfig @@ -861,29 +865,24 @@ // FIXME - Yet another dependence on files if (debug = 1) log("Scanning library JAR files"); - ServletContext servletContext = context.getServletContext(); -URL libURL = null; +DirContext resources = context.getResources(); +String libName = "/WEB-INF/lib"; +DirContext libDir = null; +// Looking up directory /WEB-INF/lib in the context try { -libURL = servletContext.getResource("/WEB-INF/lib"); -} catch (MalformedURLException e) { -; +NamingEnumeration enum = resources.list(libName); +while (enum.hasMoreElements()) { +NameClassPair ncPair = +(NameClassPair) enum.nextElement(); +String filename = libName + "/" + ncPair.getName(); +if (!filename.endsWith(".jar")) +continue; +tldConfigJar(filename, mapper); +} +} catch (NamingException e) { +// Silent catch: it's valid that no /WEB-INF/lib directory +//exists } - - if ((libURL != null) "file".equals(libURL.getProtocol())) { - File libFile = new File(libURL.getFile()); - if (libFile.exists() libFile.canRead() - libFile.isDirectory()) { - String filenames[] = libFile.list(); - for (int i = 0; i filenames.length; i++) { - if (!filenames[i].endsWith(".jar")) - continue; -String resourcePath = "/WEB-INF/lib/" + filenames[i]; -if (debug = 2) -log(" Trying '" + resourcePath + "'"); -tldConfigJar("/WEB-INF/lib/" + filenames[i], mapper); - } - } - } } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java
glenn 01/01/23 14:02:38 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java Log: Implement SecurityManager Revision ChangesPath 1.38 +4 -124 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.37 retrieving revision 1.38 diff -u -r1.37 -r1.38 --- ContextConfig.java2001/01/23 05:05:51 1.37 +++ ContextConfig.java2001/01/23 22:02:36 1.38 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.37 2001/01/23 05:05:51 remm Exp $ - * $Revision: 1.37 $ - * $Date: 2001/01/23 05:05:51 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.38 2001/01/23 22:02:36 glenn Exp $ + * $Revision: 1.38 $ + * $Date: 2001/01/23 22:02:36 $ * * * @@ -68,7 +68,6 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; -import java.io.FilePermission; import java.io.InputStream; import java.io.IOException; import java.lang.reflect.InvocationTargetException; @@ -76,12 +75,6 @@ import java.net.JarURLConnection; import java.net.MalformedURLException; import java.net.URL; -import java.security.CodeSource; -import java.security.Permission; -import java.security.Permissions; -import java.security.PermissionCollection; -import java.security.Policy; -import java.security.ProtectionDomain; import java.util.ArrayList; import java.util.Enumeration; import java.util.MissingResourceException; @@ -118,7 +111,7 @@ * of that Context, and the associated defined servlets. * * @author Craig R. McClanahan - * @version $Revision: 1.37 $ $Date: 2001/01/23 05:05:51 $ + * @version $Revision: 1.38 $ $Date: 2001/01/23 22:02:36 $ */ public final class ContextConfig @@ -766,116 +759,6 @@ /** - * Configure permissions for this web application if we are running - * under the control of a security manager. - */ -private void permissionsConfig() { - -// Has a security manager been installed? -SecurityManager securityManager = System.getSecurityManager(); -if (securityManager == null) -return; - -// Refresh the standard policy permissions -if (debug = 1) -log("Retrieving global policy permissions"); -Policy policy = Policy.getPolicy(); -policy.refresh(); - -// Accumulate the common permissions we will add to all code sources -if (debug = 1) -log("Building common permissions to add"); -ServletContext servletContext = context.getServletContext(); -Permissions commonPerms = new Permissions(); -URL baseURL = null; -try { -baseURL = servletContext.getResource("/"); -if (debug = 1) -log(" baseURL=" + baseURL.toString()); -} catch (MalformedURLException e) { -log("permissionsConfig.baseURL", e); -} -String baseFile = baseURL.toString(); -if (baseFile.startsWith("file://")) // FIXME - file dependency -baseFile = baseFile.substring(7); -else if (baseFile.startsWith("file:")) -baseFile = baseFile.substring(5); -if (baseFile.endsWith("/")) -baseFile += "-"; -else -baseFile += "/-"; -commonPerms.add(new FilePermission(baseFile, "read")); -File workDir = (File) -context.getServletContext().getAttribute(Globals.WORK_DIR_ATTR); -try { -commonPerms.add(new FilePermission(workDir.getCanonicalPath() + - "/-", - "read,write,delete")); -} catch (IOException e) { -log("permissionsConfig.filePerm", e); -} -if (debug = 1) -log(" commonPerms=" + commonPerms.toString()); - -// Build a CodeSource representing our document root code base -if (debug = 1) -log("Building document root code source"); -URL docURL = null; -try { -docURL = servletContext.getResource("/WEB-INF"); -if (debug = 1) -log(" docURL=" + docURL.toString()); -} catch (MalformedURLException e) { -log("permissionsConfig.docURL", e); -} -
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java
remm01/01/23 18:35:00 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java Log: - Add bind / unbind calls during init to allow resolving of nested JAR URLs. - JAR file scanning in /WEB-INF/lib folder needs an update. Revision ChangesPath 1.39 +12 -6 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.38 retrieving revision 1.39 diff -u -r1.38 -r1.39 --- ContextConfig.java2001/01/23 22:02:36 1.38 +++ ContextConfig.java2001/01/24 02:35:00 1.39 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.38 2001/01/23 22:02:36 glenn Exp $ - * $Revision: 1.38 $ - * $Date: 2001/01/23 22:02:36 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.39 2001/01/24 02:35:00 remm Exp $ + * $Revision: 1.39 $ + * $Date: 2001/01/24 02:35:00 $ * * * @@ -83,6 +83,7 @@ import java.util.jar.JarEntry; import java.util.jar.JarFile; import javax.servlet.ServletContext; +import org.apache.naming.resources.DirContextURLStreamHandler; import org.apache.catalina.Authenticator; import org.apache.catalina.Context; import org.apache.catalina.Globals; @@ -111,7 +112,7 @@ * of that Context, and the associated defined servlets. * * @author Craig R. McClanahan - * @version $Revision: 1.38 $ $Date: 2001/01/23 22:02:36 $ + * @version $Revision: 1.39 $ $Date: 2001/01/24 02:35:00 $ */ public final class ContextConfig @@ -761,7 +762,7 @@ /** * Process a "start" event for this Context. */ -private void start() { +private synchronized void start() { if (debug 0) log(sm.getString("contextConfig.start")); @@ -771,6 +772,7 @@ XmlMapper mapper = createWebMapper(); defaultConfig(mapper); applicationConfig(mapper); +//DirContextURLStreamHandlerFactory.bind(context.getResources()); // Scan tag library descriptor files for additional listener classes if (ok) @@ -802,6 +804,8 @@ context.setAvailable(false); } +//DirContextURLStreamHandlerFactory.unbind(); + } @@ -900,10 +904,12 @@ URL url = context.getServletContext().getResource(resourcePath); if (url == null) return (false); +DirContextURLStreamHandler.bind(context.getResources()); url = new URL("jar:" + url.toString() + "!/"); JarURLConnection conn = (JarURLConnection) url.openConnection(); jarFile = conn.getJarFile(); +DirContextURLStreamHandler.unbind(); boolean found = false; Enumeration entries = jarFile.entries(); while (entries.hasMoreElements()) { @@ -942,7 +948,7 @@ } return (false); } - + } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java
craigmcc01/01/22 18:52:01 Modified:catalina/src/share/org/apache/catalina/startup ContextConfig.java Log: Third of four commits for the Valve API change. Changes reflect the fact that the Context implementation delegates to a Pipeline implementation, rather than implementing Pipeline directly. Revision ChangesPath 1.36 +36 -29 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.35 retrieving revision 1.36 diff -u -r1.35 -r1.36 --- ContextConfig.java2000/12/22 00:37:52 1.35 +++ ContextConfig.java2001/01/23 02:52:00 1.36 @@ -1,13 +1,13 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.35 2000/12/22 00:37:52 craigmcc Exp $ - * $Revision: 1.35 $ - * $Date: 2000/12/22 00:37:52 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.36 2001/01/23 02:52:00 craigmcc Exp $ + * $Revision: 1.36 $ + * $Date: 2001/01/23 02:52:00 $ * * * * The Apache Software License, Version 1.1 * - * Copyright (c) 1999 The Apache Software Foundation. All rights + * Copyright (c) 1999-2001 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without @@ -118,7 +118,7 @@ * of that Context, and the associated defined servlets. * * @author Craig R. McClanahan - * @version $Revision: 1.35 $ $Date: 2000/12/22 00:37:52 $ + * @version $Revision: 1.36 $ $Date: 2001/01/23 02:52:00 $ */ public final class ContextConfig @@ -278,21 +278,18 @@ // Has an authenticator been configured already? if (context instanceof Authenticator) return; - if (context instanceof ContainerBase) { - Valve basic = ((ContainerBase) context).getBasic(); - if ((basic != null) (basic instanceof Authenticator)) - return; - } - if (context instanceof Pipeline) { - Valve valve = ((Pipeline) context).findValves(); - while (valve != null) { - if (valve instanceof Authenticator) - return; - if (valve instanceof ValveBase) - valve = ((ValveBase) valve).getNext(); - else - valve = null; - } +if (context instanceof ContainerBase) { +Pipeline pipeline = ((ContainerBase) context).getPipeline(); +if (pipeline != null) { +Valve basic = pipeline.getBasic(); +if ((basic != null) (basic instanceof Authenticator)) +return; +Valve valves[] = pipeline.getValves(); +for (int i = 0; i valves.length; i++) { +if (valves[i] instanceof Authenticator) +return; +} +} } else { return; // Cannot install a Valve even if it would be needed } @@ -336,9 +333,14 @@ try { Class authenticatorClass = Class.forName(authenticatorName); authenticator = (Valve) authenticatorClass.newInstance(); - ((Pipeline) context).addValve(authenticator); - log(sm.getString("contextConfig.authenticatorConfigured", - loginConfig.getAuthMethod())); +if (context instanceof ContainerBase) { +Pipeline pipeline = ((ContainerBase) context).getPipeline(); +if (pipeline != null) { +pipeline.addValve(authenticator); +log(sm.getString("contextConfig.authenticatorConfigured", + loginConfig.getAuthMethod())); +} +} } catch (Throwable t) { log(sm.getString("contextConfig.authenticatorInstantiate", authenticatorName), t); @@ -377,8 +379,14 @@ // Add this Valve to our Pipeline try { -((Pipeline) context).addValve(certificates); -log(sm.getString("contextConfig.certificatesConfig.added")); +if (context instanceof ContainerBase) { +Pipeline pipeline = ((ContainerBase) context).getPipeline(); +if (pipeline != null) { +pipeline.addValve(certificates); +log(sm.getString +("contextConfig.certificatesConfig.added")); +}
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup ContextConfig.java HostConfig.java
craigmcc00/12/21 16:37:52 Modified:catalina/src/share/org/apache/catalina/loader StandardLoader.java catalina/src/share/org/apache/catalina/startup ContextConfig.java HostConfig.java Log: Second (and last) round of changes from File.getAbsolutePath() to File.getCanonicalPath(). With these changes, the following assertions can be made: * The URLClassLoader for a web application will never be handed a "file:" URL that is not normalized. * The document root directory for a web application will always be normalized. * The URL returned by ServletContext.getResource() will always be normalized. This should clean up the cases where URLClassLoader on some platforms does not deal nicely with unnormalized repositories, and causes classes (or resources) to mysteriously not load, or not load from the correct place. Submitted by: Stuart Roebuck [EMAIL PROTECTED] Revision ChangesPath 1.13 +12 -9 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardLoader.java Index: StandardLoader.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardLoader.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- StandardLoader.java 2000/12/14 22:32:16 1.12 +++ StandardLoader.java 2000/12/22 00:37:50 1.13 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardLoader.java,v 1.12 2000/12/14 22:32:16 craigmcc Exp $ - * $Revision: 1.12 $ - * $Date: 2000/12/14 22:32:16 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardLoader.java,v 1.13 2000/12/22 00:37:50 craigmcc Exp $ + * $Revision: 1.13 $ + * $Date: 2000/12/22 00:37:50 $ * * * @@ -101,7 +101,7 @@ * is not present, the system class loader will be used instead. * * @author Craig R. McClanahan - * @version $Revision: 1.12 $ $Date: 2000/12/14 22:32:16 $ + * @version $Revision: 1.13 $ $Date: 2000/12/22 00:37:50 $ */ public final class StandardLoader @@ -191,7 +191,6 @@ * codeReloader/code interface. */ private String loaderClass = -// "org.apache.catalina.loader.FileClassLoader"; "org.apache.catalina.loader.StandardClassLoader"; @@ -875,10 +874,14 @@ if (!filenames[i].endsWith(".jar")) continue; File jarFile = new File(libFile, filenames[i]); - if (debug 0) - log(" Adding '" + "file: " + -jarFile.getAbsolutePath() + "'"); -addRepository("file:" + jarFile.getAbsolutePath()); +try { +if (debug 0) +log(" Adding '" + "file: " + +jarFile.getCanonicalPath() + "'"); +addRepository("file:" + jarFile.getCanonicalPath()); +} catch (IOException e) { +log(jarFile.getAbsolutePath(), e); +} } } } 1.35 +18 -10 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java Index: ContextConfig.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v retrieving revision 1.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- ContextConfig.java2000/12/01 19:25:31 1.34 +++ ContextConfig.java2000/12/22 00:37:52 1.35 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.34 2000/12/01 19:25:31 craigmcc Exp $ - * $Revision: 1.34 $ - * $Date: 2000/12/01 19:25:31 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/ContextConfig.java,v 1.35 2000/12/22 00:37:52 craigmcc Exp $ + * $Revision: 1.35 $ + * $Date: 2000/12/22 00:37:52 $ * * * @@ -118,7 +118,7 @@ * of that Context, and the associated defined servlets. * * @author Craig R. McClanahan - * @version $Revision: 1.34 $ $Date: 2000/12/01 19:25:31 $ + * @version $Revision: 1.35 $ $Date: 2000/12/22 00:37:52 $ */ public final class ContextConfig @@ -678,10 +678,13 @@ File.separator + Constants.DefaultWebXml); FileInputStream stream = null; try { -