costin 00/12/29 12:31:36 Modified: src/share/org/apache/tomcat/core BaseInterceptor.java Container.java Context.java ContextManager.java Handler.java OutputBuffer.java Request.java Response.java src/share/org/apache/tomcat/modules/config ServerXmlInterceptor.java Log: Explicit imports in core. There are few more dependencies that should be removed ( and moved to the facade, as high-level constructs - Principal, etc ). Next step is to do the same thing in util, and remove ( move out ) all utils that are no longer used. The place for "general utils" is in a "jpr" ( i.e. java-APR )-like project, and even the curently-used utils shouldn't be part of tomcat ( in the same way as Apache2.0 makes a clear difference and uses 2 CVS trees - one for the general-code and one for the library ) Revision Changes Path 1.35 +0 -6 jakarta-tomcat/src/share/org/apache/tomcat/core/BaseInterceptor.java Index: BaseInterceptor.java =================================================================== RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/BaseInterceptor.java,v retrieving revision 1.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- BaseInterceptor.java 2000/12/28 21:03:17 1.34 +++ BaseInterceptor.java 2000/12/29 20:31:26 1.35 @@ -60,13 +60,7 @@ package org.apache.tomcat.core; -import org.apache.tomcat.core.*; -import org.apache.tomcat.util.*; import org.apache.tomcat.util.log.*; -import java.io.*; -import java.net.*; -import java.util.*; -import java.lang.reflect.*; /** Implement "Chain of Responsiblity" pattern ( == hooks ). * 1.43 +2 -4 jakarta-tomcat/src/share/org/apache/tomcat/core/Container.java Index: Container.java =================================================================== RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/Container.java,v retrieving revision 1.42 retrieving revision 1.43 diff -u -r1.42 -r1.43 --- Container.java 2000/12/28 07:14:44 1.42 +++ Container.java 2000/12/29 20:31:27 1.43 @@ -59,11 +59,9 @@ package org.apache.tomcat.core; -import org.apache.tomcat.util.*; import org.apache.tomcat.util.hooks.*; -import java.io.*; -import java.net.*; -import java.util.*; +import java.util.Hashtable; +import java.util.Enumeration; // XXX better names: Location, URLPattern, 1.131 +9 -6 jakarta-tomcat/src/share/org/apache/tomcat/core/Context.java Index: Context.java =================================================================== RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/Context.java,v retrieving revision 1.130 retrieving revision 1.131 diff -u -r1.130 -r1.131 --- Context.java 2000/12/26 23:13:55 1.130 +++ Context.java 2000/12/29 20:31:27 1.131 @@ -61,13 +61,16 @@ package org.apache.tomcat.core; import org.apache.tomcat.util.depend.*; -import org.apache.tomcat.util.*; -import java.security.*; -import java.lang.reflect.*; +import org.apache.tomcat.util.MimeMap; import org.apache.tomcat.util.log.*; -import java.io.*; -import java.net.*; -import java.util.*; + +import java.io.File; +import java.net.FileNameMap; +import java.net.URL; + +import java.util.Hashtable; +import java.util.Vector; +import java.util.Enumeration; /** 1.162 +5 -4 jakarta-tomcat/src/share/org/apache/tomcat/core/ContextManager.java Index: ContextManager.java =================================================================== RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/ContextManager.java,v retrieving revision 1.161 retrieving revision 1.162 diff -u -r1.161 -r1.162 --- ContextManager.java 2000/12/28 21:03:17 1.161 +++ ContextManager.java 2000/12/29 20:31:27 1.162 @@ -59,11 +59,12 @@ package org.apache.tomcat.core; -import org.apache.tomcat.util.*; import org.apache.tomcat.util.log.*; -import java.io.*; -import java.net.*; -import java.util.*; + +import java.util.Hashtable; +import java.util.Vector; +import java.util.Enumeration; + /** ContextManager is the entry point and "controler" of the servlet execution. 1.34 +1 -4 jakarta-tomcat/src/share/org/apache/tomcat/core/Handler.java Index: Handler.java =================================================================== RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/Handler.java,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- Handler.java 2000/12/20 15:25:51 1.33 +++ Handler.java 2000/12/29 20:31:28 1.34 @@ -58,12 +58,9 @@ */ package org.apache.tomcat.core; -import org.apache.tomcat.util.*; +import org.apache.tomcat.util.Counters; import org.apache.tomcat.util.log.*; import org.apache.tomcat.util.collections.EmptyEnumeration; -import java.io.*; -import java.net.*; -import java.util.*; /** * The class that will generate the actual response or response fragment. 1.10 +7 -2 jakarta-tomcat/src/share/org/apache/tomcat/core/OutputBuffer.java Index: OutputBuffer.java =================================================================== RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/OutputBuffer.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- OutputBuffer.java 2000/11/16 16:59:18 1.9 +++ OutputBuffer.java 2000/12/29 20:31:28 1.10 @@ -58,8 +58,13 @@ */ package org.apache.tomcat.core; -import java.io.*; -import java.util.*; +import java.io.Writer; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.io.IOException; +import java.io.UnsupportedEncodingException; + +import java.util.Hashtable; /** * The buffer used by tomcat response. It allows writting chars and 1.84 +13 -6 jakarta-tomcat/src/share/org/apache/tomcat/core/Request.java Index: Request.java =================================================================== RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/Request.java,v retrieving revision 1.83 retrieving revision 1.84 diff -u -r1.83 -r1.84 --- Request.java 2000/12/28 01:57:40 1.83 +++ Request.java 2000/12/29 20:31:29 1.84 @@ -60,15 +60,22 @@ package org.apache.tomcat.core; -import org.apache.tomcat.util.*; +import org.apache.tomcat.util.MimeHeaders; +import org.apache.tomcat.util.Counters; +import org.apache.tomcat.util.SimplePrincipal; +import org.apache.tomcat.util.MessageBytes; + +// XXX +import org.apache.tomcat.helper.RequestUtil; + import org.apache.tomcat.util.http.*; -import org.apache.tomcat.helper.*; + import org.apache.tomcat.session.ServerSession; + +import java.security.Principal; import java.io.IOException; -import java.io.*; -import java.net.*; -import java.security.*; -import java.util.*; +import java.util.Enumeration; +import java.util.Hashtable; /** * 1.45 +8 -5 jakarta-tomcat/src/share/org/apache/tomcat/core/Response.java Index: Response.java =================================================================== RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/Response.java,v retrieving revision 1.44 retrieving revision 1.45 diff -u -r1.44 -r1.45 --- Response.java 2000/12/26 23:35:33 1.44 +++ Response.java 2000/12/29 20:31:29 1.45 @@ -60,11 +60,14 @@ package org.apache.tomcat.core; -import java.io.*; -import java.net.*; -import java.util.*; -import org.apache.tomcat.util.*; -import org.apache.tomcat.helper.*; +import java.io.IOException; +import java.util.Locale; + +import org.apache.tomcat.util.StringManager; +import org.apache.tomcat.util.MimeHeaders; + +// XXX +import org.apache.tomcat.helper.RequestUtil; /** * 1.3 +211 -1 jakarta-tomcat/src/share/org/apache/tomcat/modules/config/ServerXmlInterceptor.java Index: ServerXmlInterceptor.java =================================================================== RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/modules/config/ServerXmlInterceptor.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ServerXmlInterceptor.java 2000/12/29 01:34:41 1.2 +++ ServerXmlInterceptor.java 2000/12/29 20:31:34 1.3 @@ -65,7 +65,6 @@ import java.util.*; import java.net.*; import org.apache.tomcat.util.*; -import org.apache.tomcat.helper.*; import org.apache.tomcat.util.xml.*; import org.apache.tomcat.core.*; import org.apache.tomcat.modules.server.*; @@ -152,5 +151,216 @@ public void setHome( String h ) { System.getProperties().put("tomcat.home", h); + } +} +/** + * Helper for reading server.xml + * + * @author Costin + */ +class ServerXmlHelper { + private static StringManager sm = + StringManager.getManager("org.apache.tomcat.resources"); + + public static final String[] MODULE_PKGS={ + "org.apache.tomcat.modules.session.", + "org.apache.tomcat.modules.server.", + "org.apache.tomcat.modules.config.", + "org.apache.tomcat.modules.security.", + "org.apache.tomcat.request.", // OLD + "org.apache.tomcat.context." // OLD + }; + + + public ServerXmlHelper() { + } + + // Set the mappings + public void setHelper( XmlMapper xh ) { + xh.addRule( "ContextManager", xh.setProperties() ); + + setInterceptorRules( xh ); + setContextRules( xh ); + setVHostRules( xh ); + } + + public static void setInterceptorRules( XmlMapper xh ) { + xh.addRule( "ContextManager/ContextInterceptor", + xh.objectCreate(null, "className", MODULE_PKGS)); + xh.addRule( "ContextManager/ContextInterceptor", + xh.setProperties() ); + xh.addRule( "ContextManager/ContextInterceptor", + xh.setParent("setContextManager") ); + xh.addRule( "ContextManager/ContextInterceptor", + xh.addChild( "addInterceptor", + "org.apache.tomcat.core.BaseInterceptor")); + + xh.addRule( "ContextManager/RequestInterceptor", + xh.objectCreate(null, "className", MODULE_PKGS)); + xh.addRule( "ContextManager/RequestInterceptor", + xh.setProperties() ); + xh.addRule( "ContextManager/RequestInterceptor", + xh.setParent("setContextManager") ); + xh.addRule( "ContextManager/RequestInterceptor", + xh.addChild( "addInterceptor", + "org.apache.tomcat.core.BaseInterceptor")); + } + + public static void setContextRules( XmlMapper xh ) { + // Default host + xh.addRule( "Context", + xh.objectCreate("org.apache.tomcat.core.Context")); + xh.addRule( "Context", + xh.setProperties() ); + xh.addRule( "Context", + xh.setParent("setContextManager") ); + + xh.addRule( "Context", new XmlAction() { + public void end( SaxContext ctx) throws Exception { + Context tcCtx=(Context)ctx.currentObject(); + String host=(String)ctx.getVariable("current_host"); + + if( host!=null && ! "DEFAULT".equals( host )) + tcCtx.setHost( host ); + } + }); + + xh.addRule( "Context", + xh.addChild("addContext", + "org.apache.tomcat.core.Context") ); + + // Configure context interceptors + xh.addRule( "Context/Interceptor", + xh.objectCreate(null, "className", MODULE_PKGS)); + xh.addRule( "Context/Interceptor", + xh.setProperties() ); + xh.addRule( "Context/Interceptor", + xh.setParent("setContext") ); + xh.addRule( "Context/Interceptor", + xh.addChild( "addInterceptor", + "org.apache.tomcat.core.BaseInterceptor")); + // Old style + xh.addRule( "Context/RequestInterceptor", + xh.objectCreate(null, "className", MODULE_PKGS)); + xh.addRule( "Context/RequestInterceptor", + xh.setProperties() ); + xh.addRule( "Context/RequestInterceptor", + xh.setParent("setContext") ); + xh.addRule( "Context/RequestInterceptor", + xh.addChild( "addInterceptor", + "org.apache.tomcat.core.BaseInterceptor")); + } + + // Virtual host support. + public static void setVHostRules( XmlMapper xh ) { + xh.addRule( "Host", xh.setVariable( "current_host", "name")); + xh.addRule( "Host", xh.setProperties()); + } + + public void setConnectorHelper( XmlMapper xh ) { + xh.addRule( "ContextManager/Connector", + xh.objectCreate(null, "className", MODULE_PKGS)); + xh.addRule( "ContextManager/Connector", + xh.setParent( "setContextManager", + "org.apache.tomcat.core.ContextManager") ); + xh.addRule( "ContextManager/Connector", + xh.addChild( "addInterceptor", + "org.apache.tomcat.core.BaseInterceptor")); + + xh.addRule( "ContextManager/Connector/Parameter", + xh.methodSetter("setProperty",2) ); + xh.addRule( "ContextManager/Connector/Parameter", + xh.methodParam(0, "name") ); + xh.addRule( "ContextManager/Connector/Parameter", + xh.methodParam(1, "value") ); + } + + + /** Setup loggers when reading the configuration file - this will be + * called only when starting tomcat as deamon, all other modes will + * output to stderr + * *** [I don't think that's true any more -Alex] + */ + public void setLogHelper( XmlMapper xh ) { + setLogRules( xh ); + } + + public static void setLogRules( XmlMapper xh ) { + xh.addRule("Server/Logger", + xh.objectCreate("org.apache.tomcat.util.log.QueueLogger")); + xh.addRule("Server/Logger", xh.setProperties()); + xh.addRule("Server/Logger", + xh.addChild("addLogger", + "org.apache.tomcat.util.log.Logger") ); + + xh.addRule("Context/Logger", + xh.objectCreate("org.apache.tomcat.util.log.QueueLogger")); + xh.addRule("Context/Logger", xh.setProperties()); + xh.addRule("Context/Logger", + xh.addChild("setLogger", + "org.apache.tomcat.util.log.Logger") ); + + xh.addRule("Context/ServletLogger", + xh.objectCreate("org.apache.tomcat.util.log.QueueLogger")); + xh.addRule("Context/ServletLogger", xh.setProperties()); + xh.addRule("Context/ServletLogger", + xh.addChild("setServletLogger", + "org.apache.tomcat.util.log.Logger") ); + + + } + + /** + * Return the configuration file we are processing. If the + * <code>-config filename</code> command line argument is not + * used, the default configuration filename will be loaded from + * the TOMCAT_HOME directory. + * + * If a relative config file is used, it will be relative to the current + * working directory. + * + * @param cm The ContextManager we are configuring + **/ + public String getTomcatInstall() { + // Use the "tomcat.home" property to resolve the default filename + String tchome = System.getProperty("tomcat.home"); + if (tchome == null) { + System.out.println(sm.getString("tomcat.nohome")); + tchome = "."; + // Assume current working directory + } + return tchome; + } + + public Vector getUserConfigFiles(File master) { + File dir = new File(master.getParent()); + String[] names = dir.list( new ConfigFilter(master) ); + Vector v = new Vector(names.length); + for (int i=0; i<names.length; ++i) { + File found = new File(dir, names[i]); + v.addElement(found); + } + return v; + } + + class ConfigFilter implements FilenameFilter { + String start; + String end; + public ConfigFilter(File master) { + String name = master.getName(); + int dot = name.indexOf("."); + if (dot==-1) return; + start = name.substring(0,dot) + "-"; + end = name.substring(dot); + } + public boolean accept(File dir, String name) { + if (start == null || end == null) return false; + if (name.startsWith(start) && + name.endsWith(end)) + { + return true; + } + return false; + } } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]