You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by co...@locus.apache.org on 2000/02/12 04:38:51 UTC

cvs commit: jakarta-tomcat/src/share/org/apache/tomcat/request BaseInterceptor.java

costin      00/02/11 19:38:51

  Modified:    src/j2ee/org/apache/tomcat/context WarWebXmlInterceptor.java
                        WebXmlInterceptor.java
               src/j2ee/org/apache/tomcat/core InterceptorAdapter.java
               src/j2ee/org/apache/tomcat/shell Startup.java
               src/share/org/apache/tomcat/context AutoSetup.java
                        DefaultCMSetter.java LoadOnStartupInterceptor.java
                        WebXmlReader.java WorkDirInterceptor.java
               src/share/org/apache/tomcat/core Context.java
                        ContextInterceptor.java ContextManager.java
                        RequestInterceptor.java ServletWrapper.java
  Added:       src/share/org/apache/tomcat/core BaseInterceptor.java
  Removed:     src/share/org/apache/tomcat/context
                        BaseContextInterceptor.java
               src/share/org/apache/tomcat/request BaseInterceptor.java
  Log:
  Interface change for ContextInterceptor: all methods are void instead of int,
  and throw TomcatException.
  
  RequestInterceptor still return int and doesn't throw Exceptions.
  1. performance - exception is expensive.
  2. request interceptors are supposed to be fast and do minimal operations,
  3. It's hard to define what is Exception - for example "request is not
  authorized" is a normal HTTP state, and happen the first time you access
  a protected resource - it can't generate an exception. Wrong method or
  strange URI are also normal HTTP cases, not exceptions.
  
  Revision  Changes    Path
  1.2       +3 -4      jakarta-tomcat/src/j2ee/org/apache/tomcat/context/WarWebXmlInterceptor.java
  
  Index: WarWebXmlInterceptor.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/j2ee/org/apache/tomcat/context/WarWebXmlInterceptor.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WarWebXmlInterceptor.java	2000/02/11 00:22:24	1.1
  +++ WarWebXmlInterceptor.java	2000/02/12 03:38:48	1.2
  @@ -77,15 +77,15 @@
    *
    * @author costin@dnt.ro
    */
  -public class WarWebXmlInterceptor extends BaseContextInterceptor implements ContextInterceptor {
  +public class WarWebXmlInterceptor extends BaseInterceptor implements ContextInterceptor {
       private static StringManager sm =StringManager.getManager("org.apache.tomcat.core");
       
       public WarWebXmlInterceptor() {
       }
   	
  -    public int contextInit(Context ctx) {
  +    public void contextInit(Context ctx) {
   	if (! ctx.getDocumentBase().getProtocol().equalsIgnoreCase("war")) {
  -	    return 0;
  +	    return ;
   	}
   	
   	// process base configuration
  @@ -112,6 +112,5 @@
   	    String msg = sm.getString("context.getConfig.e",
   				      ctx.getPath() + " " + ctx.getDocBase() );
   	}
  -	return 0;
       }
   }
  
  
  
  1.2       +2 -3      jakarta-tomcat/src/j2ee/org/apache/tomcat/context/WebXmlInterceptor.java
  
  Index: WebXmlInterceptor.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/j2ee/org/apache/tomcat/context/WebXmlInterceptor.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WebXmlInterceptor.java	2000/02/11 00:22:24	1.1
  +++ WebXmlInterceptor.java	2000/02/12 03:38:48	1.2
  @@ -75,13 +75,13 @@
    *
    * @author costin@dnt.ro
    */
  -public class WebXmlInterceptor extends BaseContextInterceptor  implements ContextInterceptor {
  +public class WebXmlInterceptor extends BaseInterceptor  implements ContextInterceptor {
       private static StringManager sm =StringManager.getManager("org.apache.tomcat.core");
       
       public WebXmlInterceptor() {
       }
   	
  -    public int contextInit(Context ctx) {
  +    public void contextInit(Context ctx) {
   	//	System.out.println("Context(" + ctx.getPath() + "): " + ctx.getDocBase());
   	    
   	// process base configuration
  @@ -98,7 +98,6 @@
   	    System.out.println(msg);
   	    e.printStackTrace();
   	}
  -	return 0;
       }
       
   }
  
  
  
  1.2       +18 -14    jakarta-tomcat/src/j2ee/org/apache/tomcat/core/InterceptorAdapter.java
  
  Index: InterceptorAdapter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/j2ee/org/apache/tomcat/core/InterceptorAdapter.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- InterceptorAdapter.java	2000/02/11 00:22:25	1.1
  +++ InterceptorAdapter.java	2000/02/12 03:38:48	1.2
  @@ -126,34 +126,36 @@
       
   }
   
  -class InitInterceptorAdapter extends BaseContextInterceptor implements ContextInterceptor {
  +class InitInterceptorAdapter extends BaseInterceptor implements ContextInterceptor {
       LifecycleInterceptor interceptor;
       
       InitInterceptorAdapter( LifecycleInterceptor interceptor) {
   	this.interceptor=interceptor;
       }
   
  -    public int preServletInit(Context ctx, ServletWrapper sw ) {
  +    public void preServletInit(Context ctx, ServletWrapper sw )
  +	throws TomcatException
  +    {
   	try {
   	    interceptor.preInvoke( ctx, sw.getServlet());
  -	    return 0;
   	} catch( InterceptorException ex ) {
  -	    return -1; // map exceptions to error codes
  +	    throw new TomcatException( ex );
   	}
       }
   
  -    public int postServletInit(Context ctx, ServletWrapper sw ) {
  +    public void postServletInit(Context ctx, ServletWrapper sw )
  +    	throws TomcatException
  +    {
   	try {
   	    interceptor.postInvoke( ctx, sw.getServlet());
  -	    return 0;
   	} catch( InterceptorException ex ) {
  -	    return -1; // map exceptions to error codes
  +	    throw new TomcatException( ex );
   	}
       }
       
   }
   
  -class DestroyInterceptorAdapter extends BaseContextInterceptor implements ContextInterceptor {
  +class DestroyInterceptorAdapter extends BaseInterceptor implements ContextInterceptor {
       LifecycleInterceptor interceptor;
       
       DestroyInterceptorAdapter( LifecycleInterceptor interceptor) {
  @@ -161,21 +163,23 @@
       }
   
   
  -    public int preServletDestroy(Context ctx, ServletWrapper sw ) {
  +    public void preServletDestroy(Context ctx, ServletWrapper sw )
  +    	throws TomcatException
  +    {
   	try {
   	    interceptor.preInvoke( ctx, sw.getServlet());
  -	    return 0;
   	} catch( InterceptorException ex ) {
  -	    return -1; // map exceptions to error codes
  +	    throw new TomcatException( ex );
   	}
       }
   
  -    public int postServletDestroy(Context ctx, ServletWrapper sw ) {
  +    public void postServletDestroy(Context ctx, ServletWrapper sw )
  +    	throws TomcatException
  +    {
   	try {
   	    interceptor.postInvoke( ctx, sw.getServlet());
  -	    return 0;
   	} catch( InterceptorException ex ) {
  -	    return -1; // map exceptions to error codes
  +	    throw new TomcatException( ex );
   	}
       }
   
  
  
  
  1.2       +5 -1      jakarta-tomcat/src/j2ee/org/apache/tomcat/shell/Startup.java
  
  Index: Startup.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/j2ee/org/apache/tomcat/shell/Startup.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Startup.java	2000/02/11 00:22:37	1.1
  +++ Startup.java	2000/02/12 03:38:48	1.2
  @@ -134,7 +134,11 @@
   		context.setPath(contextConfig.getPath());
   		context.setDocumentBase(contextConfig.getDocumentBase());
   
  -                contextManager.addContext(context);
  +		try {
  +		    contextManager.addContext(context);
  +		} catch(TomcatException ex ) {
  +		    ex.printStackTrace();
  +		}
   
   		context.setSessionTimeOut(
   		    contextConfig.getDefaultSessionTimeOut());
  
  
  
  1.5       +3 -5      jakarta-tomcat/src/share/org/apache/tomcat/context/AutoSetup.java
  
  Index: AutoSetup.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/context/AutoSetup.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- AutoSetup.java	2000/02/11 02:21:46	1.4
  +++ AutoSetup.java	2000/02/12 03:38:49	1.5
  @@ -78,16 +78,16 @@
    * 
    * @author costin@dnt.ro
    */
  -public class AutoSetup { //  implements TomcatHandler
  +public class AutoSetup extends BaseInterceptor {
   
       public AutoSetup() {
       }
   	
  -    public int engineInit(ContextManager cm) {
  +    public void engineInit(ContextManager cm) throws TomcatException {
   	String home=cm.getHome();
   	File webappD=new File(home + "/webapps");
   	if (! webappD.exists() || ! webappD.isDirectory())
  -	    return 0; // nothing to set up
  +	    return ; // nothing to set up
   
   	String[] list = webappD.list();
   	for (int i = 0; i < list.length; i++) {
  @@ -143,7 +143,5 @@
   
   		
   	}
  -
  -	return 0;
       }
   }
  
  
  
  1.10      +6 -11     jakarta-tomcat/src/share/org/apache/tomcat/context/DefaultCMSetter.java
  
  Index: DefaultCMSetter.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/context/DefaultCMSetter.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- DefaultCMSetter.java	2000/02/11 02:21:46	1.9
  +++ DefaultCMSetter.java	2000/02/12 03:38:49	1.10
  @@ -74,12 +74,12 @@
    *
    * @author costin@dnt.ro
    */
  -public class DefaultCMSetter extends BaseContextInterceptor {
  +public class DefaultCMSetter extends BaseInterceptor {
   
       public DefaultCMSetter() {
       }
   	
  -    public int engineInit(ContextManager cm)  {
  +    public void engineInit(ContextManager cm)  {
   	// set a default connector ( http ) if none defined yet
   	Enumeration conn=cm.getConnectors();
   	if( ! conn.hasMoreElements() ) {
  @@ -99,8 +99,6 @@
   
   	    cm.addRequestInterceptor(new SessionInterceptor());
   	}
  -
  -	return 0;
       }
   
       /** Called when a new context is added to the server.
  @@ -111,7 +109,7 @@
        *
        *  - Set up defaults for context interceptors and session if nothing is set
        */
  -    public int addContext(ContextManager cm, Context ctx) {
  +    public void addContext(ContextManager cm, Context ctx) {
   	// Make sure context knows about its manager.
   	ctx.setContextManager( cm );
   	setEngineHeader( ctx );
  @@ -137,14 +135,11 @@
   	    
   	    // load initial servlets
   	    ctx.addContextInterceptor(new LoadOnStartupInterceptor());
  -	}
  -	
  +	}	
   	// XXX Loader properties - need to be set on loader!!
  -	ctx.setServletLoader( new org.apache.tomcat.loader.ServletClassLoaderImpl());
  -	//	    ctx.setServletLoader( new org.apache.tomcat.loader.AdaptiveServletLoader());
  +	//ctx.setServletLoader( new org.apache.tomcat.loader.ServletClassLoaderImpl());
  +	ctx.setServletLoader( new org.apache.tomcat.loader.AdaptiveServletLoader());
   	initURLs( ctx );
  -
  -	return 0;
       }
   
       private void initURLs(Context context) {
  
  
  
  1.6       +2 -3      jakarta-tomcat/src/share/org/apache/tomcat/context/LoadOnStartupInterceptor.java
  
  Index: LoadOnStartupInterceptor.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/context/LoadOnStartupInterceptor.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- LoadOnStartupInterceptor.java	2000/02/11 02:21:46	1.5
  +++ LoadOnStartupInterceptor.java	2000/02/12 03:38:49	1.6
  @@ -75,7 +75,7 @@
    *
    * @author costin@dnt.ro
    */
  -public class LoadOnStartupInterceptor extends BaseContextInterceptor  implements ContextInterceptor {
  +public class LoadOnStartupInterceptor extends BaseInterceptor {
       private static StringManager sm =StringManager.getManager("org.apache.tomcat.context");
       int debug=0;
       
  @@ -86,7 +86,7 @@
   	debug=i;
       }
       
  -    public int contextInit(Context ctx) {
  +    public void contextInit(Context ctx) {
   	init(ctx);
   	Vector orderedKeys = new Vector();
   	Enumeration e=getInitLevels();
  @@ -143,7 +143,6 @@
   		}
   	    }
   	}
  -	return OK;
       }
   
       void loadJsp( Context context, ServletWrapper result ) throws Exception {
  
  
  
  1.6       +2 -3      jakarta-tomcat/src/share/org/apache/tomcat/context/WebXmlReader.java
  
  Index: WebXmlReader.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/context/WebXmlReader.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- WebXmlReader.java	2000/02/11 19:23:46	1.5
  +++ WebXmlReader.java	2000/02/12 03:38:49	1.6
  @@ -18,14 +18,14 @@
   /**
    * @author costin@dnt.ro
    */
  -public class WebXmlReader extends BaseContextInterceptor  implements ContextInterceptor {
  +public class WebXmlReader extends BaseInterceptor {
   
       private static StringManager sm =StringManager.getManager("org.apache.tomcat.core");
       
       public WebXmlReader() {
       }
   
  -    public int contextInit(Context ctx) {
  +    public void contextInit(Context ctx) {
   	//	System.out.println("Context(" + ctx.getPath() + "): " + ctx.getDocBase());
   
   	// read default web.xml
  @@ -37,7 +37,6 @@
   	    String msg = sm.getString("context.getConfig.e",ctx.getPath() + " " + ctx.getDocBase());
   	    System.out.println(msg);
   	}
  -	return 0;
   
       }
   
  
  
  
  1.5       +3 -5      jakarta-tomcat/src/share/org/apache/tomcat/context/WorkDirInterceptor.java
  
  Index: WorkDirInterceptor.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/context/WorkDirInterceptor.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- WorkDirInterceptor.java	2000/02/11 02:21:46	1.4
  +++ WorkDirInterceptor.java	2000/02/12 03:38:49	1.5
  @@ -74,12 +74,12 @@
    *
    * @author costin@dnt.ro
    */
  -public class WorkDirInterceptor extends BaseContextInterceptor  implements ContextInterceptor {
  +public class WorkDirInterceptor extends BaseInterceptor {
   
       public WorkDirInterceptor() {
       }
   	
  -    public int contextInit(Context ctx) {
  +    public void contextInit(Context ctx) {
   	// never null !! ( it is set by default to ./work ! )
   	//log	System.out.println("Preparing work dir " + ctx.getWorkDir() );
   
  @@ -94,15 +94,13 @@
   
   	ctx.setAttribute(Constants.ATTRIB_WORKDIR1, ctx.getWorkDir());
   	ctx.setAttribute(Constants.ATTRIB_WORKDIR , ctx.getWorkDir());
  -	return 0;
       }
   
  -    public int contextShutdown( Context ctx ) {
  +    public void contextShutdown( Context ctx ) {
   	
   	if (! ctx.isWorkDirPersistent()) {
               clearDir(ctx.getWorkDir());
   	}
  -	return 0;
       }
   
       private void clearDir(File dir) {
  
  
  
  1.50      +4 -4      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.49
  retrieving revision 1.50
  diff -u -r1.49 -r1.50
  --- Context.java	2000/02/11 19:23:46	1.49
  +++ Context.java	2000/02/12 03:38:50	1.50
  @@ -439,7 +439,7 @@
        * <p>This method may only be called once and must be called
        * before any requests are handled by this context.
        */
  -    public synchronized void init() {
  +    public synchronized void init() throws TomcatException {
   	if (this.initialized) {
   	    String msg = sm.getString("context.init.alreadyinit");
   	    throw new IllegalStateException(msg);
  @@ -503,7 +503,7 @@
   	sessionManager= manager;
       }
       
  -    public void shutdown() {
  +    public void shutdown() throws TomcatException {
   	// shut down container
   	initialized=false;
   	Enumeration enum = servlets.keys();
  @@ -720,8 +720,8 @@
       public void setLoginConfig( String authMethod, String realmName,
   				String formLoginPage, String formErrorPage)
       {
  -	System.out.println("Login config: " + authMethod + " " + realmName + " " +
  -			   formLoginPage + " " + formErrorPage);
  +	// 	System.out.println("Login config: " + authMethod + " " + realmName + " " +
  +	// 			   formLoginPage + " " + formErrorPage);
   	this.authMethod=authMethod;
   	this.realmName=realmName;
   	this.formLoginPage=formLoginPage;
  
  
  
  1.6       +18 -20    jakarta-tomcat/src/share/org/apache/tomcat/core/ContextInterceptor.java
  
  Index: ContextInterceptor.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/ContextInterceptor.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ContextInterceptor.java	2000/02/10 22:28:22	1.5
  +++ ContextInterceptor.java	2000/02/12 03:38:50	1.6
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/ContextInterceptor.java,v 1.5 2000/02/10 22:28:22 costin Exp $
  - * $Revision: 1.5 $
  - * $Date: 2000/02/10 22:28:22 $
  + * $Header: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/ContextInterceptor.java,v 1.6 2000/02/12 03:38:50 costin Exp $
  + * $Revision: 1.6 $
  + * $Date: 2000/02/12 03:38:50 $
    *
    * ====================================================================
    *
  @@ -74,60 +74,58 @@
    * @author costin@dnt.ro
    */
   public interface ContextInterceptor {
  -    public static final int OK=0;
   
       /** Called when the ContextManger is started
        */
  -    public int engineInit(ContextManager cm);
  -
  +    public void engineInit(ContextManager cm) throws TomcatException;
  +    
       /** Called before the ContextManager is stoped.
        *  You need to stop any threads and remove any resources.
        */
  -    public int engineShutdown(ContextManager cm);
  +    public void engineShutdown(ContextManager cm) throws TomcatException;
   
       /** Called when a context is added to a CM
        */
  -    public int addContext( ContextManager cm, Context ctx );
  +    public void addContext( ContextManager cm, Context ctx ) throws TomcatException;
   
       /** Called when a context is removed from a CM
        */
  -    public int removeContext( ContextManager cm, Context ctx );
  +    public void removeContext( ContextManager cm, Context ctx ) throws TomcatException;
   
       /** Notification when a context is initialized
        */
  -    public int contextInit(Context ctx);
  +    public void contextInit(Context ctx) throws TomcatException;
   
       /** Called when a context is stoped.
        */
  -    public int contextShutdown(Context ctx);
  -
  +    public void contextShutdown(Context ctx) throws TomcatException;
       
       /** Notify when a new servlet is added
        */
  -    public int addServlet( Context ctx, ServletWrapper sw);
  +    public void addServlet( Context ctx, ServletWrapper sw) throws TomcatException;
   
       /** Notify when a servlet is removed from context
        */
  -    public int removeServlet( Context ctx, ServletWrapper sw);
  +    public void removeServlet( Context ctx, ServletWrapper sw) throws TomcatException;
   
       /** Notify when a mapping is added to a context
        */
  -    public int addMapping( Context ctx, String path, ServletWrapper servlet);
  +    public void addMapping( Context ctx, String path, ServletWrapper servlet) throws TomcatException;
   
       /** Notify when a mapping is deleted  from  a context
        */
  -    public int removeMapping( Context ctx, String path );
  +    public void removeMapping( Context ctx, String path ) throws TomcatException;
   
       /** Servlet Init  notification
        */
  -    public int preServletInit( Context ctx, ServletWrapper sw );
  +    public void preServletInit( Context ctx, ServletWrapper sw ) throws TomcatException;
       
  -    public int postServletInit( Context ctx, ServletWrapper sw );
  +    public void postServletInit( Context ctx, ServletWrapper sw ) throws TomcatException;
   
   
       /** Servlet Destroy  notification
        */
  -    public int preServletDestroy( Context ctx, ServletWrapper sw );
  +    public void preServletDestroy( Context ctx, ServletWrapper sw ) throws TomcatException;
       
  -    public int postServletDestroy( Context ctx, ServletWrapper sw );
  +    public void postServletDestroy( Context ctx, ServletWrapper sw ) throws TomcatException;
   }
  
  
  
  1.36      +7 -2      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.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- ContextManager.java	2000/02/09 20:36:10	1.35
  +++ ContextManager.java	2000/02/12 03:38:50	1.36
  @@ -212,11 +212,12 @@
        *
        * @param ctx context to be added.
        */
  -    public void addContext( Context ctx ) {
  +    public void addContext( Context ctx ) throws TomcatException {
   	// it will replace existing context - it's better than 
   	// IllegalStateException.
   	String path=ctx.getPath();
   	if( getContext( path ) != null ) {
  +	    log("Warning: replacing context for " + path);
   	    removeContext(path);
   	}
   
  @@ -233,7 +234,7 @@
        *
        * @param name Name of the Context to be removed
        */
  -    public void removeContext(String name) {
  +    public void removeContext(String name) throws TomcatException {
   	if (name.equals("")){
   	    throw new IllegalArgumentException(name);
   	}
  @@ -462,6 +463,10 @@
   
       // -------------------- Utils --------------------
       // Debug ( to be replaced with the real thing )
  +    public void setDebug( String  level ) {
  +	setDebug( new Integer( level).intValue());
  +    }
  +    
       public void setDebug( int level ) {
   	log( "Setting debug " + level );
   	debug=level;
  
  
  
  1.6       +3 -5      jakarta-tomcat/src/share/org/apache/tomcat/core/RequestInterceptor.java
  
  Index: RequestInterceptor.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/RequestInterceptor.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- RequestInterceptor.java	2000/02/03 23:41:29	1.5
  +++ RequestInterceptor.java	2000/02/12 03:38:50	1.6
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/RequestInterceptor.java,v 1.5 2000/02/03 23:41:29 costin Exp $
  - * $Revision: 1.5 $
  - * $Date: 2000/02/03 23:41:29 $
  + * $Header: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/RequestInterceptor.java,v 1.6 2000/02/12 03:38:50 costin Exp $
  + * $Revision: 1.6 $
  + * $Date: 2000/02/12 03:38:50 $
    *
    * ====================================================================
    *
  @@ -78,8 +78,6 @@
        *  in notification.
        */
       public Enumeration getMethods();
  -
  -
       
       /** Will detect the context path for a request.
        *  It need to set: context, contextPath, lookupPath
  
  
  
  1.22      +26 -7     jakarta-tomcat/src/share/org/apache/tomcat/core/ServletWrapper.java
  
  Index: ServletWrapper.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/ServletWrapper.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- ServletWrapper.java	2000/02/10 23:49:57	1.21
  +++ ServletWrapper.java	2000/02/12 03:38:50	1.22
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/ServletWrapper.java,v 1.21 2000/02/10 23:49:57 costin Exp $
  - * $Revision: 1.21 $
  - * $Date: 2000/02/10 23:49:57 $
  + * $Header: /home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/core/ServletWrapper.java,v 1.22 2000/02/12 03:38:50 costin Exp $
  + * $Revision: 1.22 $
  + * $Date: 2000/02/12 03:38:50 $
    *
    * ====================================================================
    *
  @@ -468,14 +468,23 @@
   	// 	}
   	ContextInterceptor cI[]=context.getContextInterceptors();
   	for( int i=0; i<cI.length; i++ ) {
  -	    cI[i].preServletInit( context, this ); // ignore the error - like in the original code
  +	    try {
  +		cI[i].preServletInit( context, this ); // ignore the error - like in the original code
  +	    } catch( TomcatException ex) {
  +		ex.printStackTrace();
  +	    }
   	}
   	servlet.init(servletConfig);
   	// if an exception is thrown in init, no end interceptors will be called.
   	// that was in the origianl code
   
   	for( int i=cI.length-1; i>=0; i-- ) {
  -	    cI[i].postServletInit( context, this ); // ignore the error - like in the original code
  +	    try {
  +		cI[i].postServletInit( context, this ); // ignore the error - like in the original code
  +	    } catch( TomcatException ex) {
  +		ex.printStackTrace();
  +	    }
  +
   	}
   	// 	for( int i=v.size()-1; i>=0 ; i-- ) {
   	// 	    try { 
  @@ -502,11 +511,21 @@
   	// 	}
   	ContextInterceptor cI[]=context.getContextInterceptors();
   	for( int i=0; i<cI.length; i++ ) {
  -	    cI[i].preServletDestroy( context, this ); // ignore the error - like in the original code
  +	    try {
  +		cI[i].preServletDestroy( context, this ); // ignore the error - like in the original code
  +	    } catch( TomcatException ex) {
  +		ex.printStackTrace();
  +	    }
  +
   	}
   	servlet.destroy();
   	for( int i=cI.length-1; i>=0; i-- ) {
  -	    cI[i].postServletDestroy( context, this ); // ignore the error - like in the original code
  +	    try {
  +		cI[i].postServletDestroy( context, this ); // ignore the error - like in the original code
  +	    } catch( TomcatException ex) {
  +		ex.printStackTrace();
  +	    }
  +
   	}
   	// if an exception is thrown in init, no end interceptors will be called.
   	// that was in the origianl code
  
  
  
  1.1                  jakarta-tomcat/src/share/org/apache/tomcat/core/BaseInterceptor.java
  
  Index: BaseInterceptor.java
  ===================================================================
  /*
   * ====================================================================
   *
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights 
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer. 
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *    any, must include the following acknowlegement:  
   *       "This product includes software developed by the 
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowlegement may appear in the software itself,
   *    if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
   *    Foundation" must not be used to endorse or promote products derived
   *    from this software without prior written permission. For written 
   *    permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Group.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   * [Additional notices, if required by prior licensing conditions]
   *
   */ 
  
  
  package org.apache.tomcat.core;
  
  import org.apache.tomcat.core.*;
  import org.apache.tomcat.util.*;
  import java.io.*;
  import java.net.*;
  import java.util.*;
  import javax.servlet.http.*;
  
  /**
   */
  public class BaseInterceptor implements RequestInterceptor, ContextInterceptor {
      
      protected Vector methods=new Vector();
      
      public BaseInterceptor() {
      }
  
      // -------------------- Request notifications --------------------
      public int requestMap(Request request ) {
  	return 0;
      }
  
      public int contextMap( Request rrequest ) {
  	return 0;
      }
  
      public int preService(Request request, Response response) {
  	return 0;
      }
  
      public int beforeBody( Request rrequest, Response response ) {
  	return 0;
      }
  
      public int beforeCommit( Request request, Response response) {
  	return 0;
      }
  
  
      public int afterBody( Request request, Response response) {
  	return 0;
      }
  
      public int postService(Request request, Response response) {
  	return 0;
      }
  
      public Enumeration getMethods()  {
  	return methods.elements();
      }
  
      // -------------------- Context notifications --------------------
      public void contextInit(Context ctx) throws TomcatException {
      }
  
      public void contextShutdown(Context ctx) throws TomcatException {
      }
  
      /** Notify when a new servlet is added
       */
      public void addServlet( Context ctx, ServletWrapper sw) throws TomcatException {
      }
      
      /** Notify when a servlet is removed from context
       */
      public void removeServlet( Context ctx, ServletWrapper sw) throws TomcatException {
      }
  
      public void addMapping( Context ctx, String path, ServletWrapper servlet) throws TomcatException {
      }
  
  
      public void removeMapping( Context ctx, String path ) throws TomcatException {
      }
  
      /** Called when the ContextManger is started
       */
      public void engineInit(ContextManager cm) throws TomcatException {
      }
  
      /** Called before the ContextManager is stoped.
       *  You need to stop any threads and remove any resources.
       */
      public void engineShutdown(ContextManager cm) throws TomcatException {
      }
  
  
      /** Called when a context is added to a CM
       */
      public void addContext( ContextManager cm, Context ctx ) throws TomcatException {
      }
  
      /** Called when a context is removed from a CM
       */
      public void removeContext( ContextManager cm, Context ctx ) throws TomcatException {
      }
  
      /** Servlet Init  notification
       */
      public void preServletInit( Context ctx, ServletWrapper sw ) throws TomcatException {
      }
  
      
      public void postServletInit( Context ctx, ServletWrapper sw ) throws TomcatException {
      }
  
      /** Servlet Destroy  notification
       */
      public void preServletDestroy( Context ctx, ServletWrapper sw ) throws TomcatException {
      }
  
      
      public void postServletDestroy( Context ctx, ServletWrapper sw ) throws TomcatException {
      }
  
  }