[prev in list] [next in list] [prev in thread] [next in thread] 

List:       tomcat-dev
Subject:    cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/modules/config ServerXmlInterceptor.java
From:       costin () locus ! apache ! org
Date:       2000-12-29 20:31:36
[Download RAW message or body]

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: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, email: tomcat-dev-help@jakarta.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic