You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by cr...@locus.apache.org on 2000/04/29 20:24:30 UTC

cvs commit: jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/session LocalStrings.properties StandardManager.java

craigmcc    00/04/29 11:24:29

  Modified:    proposals/catalina/src/conf web.xml
               proposals/catalina/src/share/org/apache/tomcat/core
                        StandardWrapper.java StandardWrapperValve.java
               proposals/catalina/src/share/org/apache/tomcat/resources
                        StandardResources.java
               proposals/catalina/src/share/org/apache/tomcat/servlets
                        DefaultServlet.java
               proposals/catalina/src/share/org/apache/tomcat/session
                        LocalStrings.properties StandardManager.java
  Log:
  Add 'welcome file' support to the default servlet (FIXME - not jsp pages
  yet).  Still messes up on the If-Modified-Since check, no filename part at
  all in the URL, and a few other goodies.
  
  Revision  Changes    Path
  1.2       +5 -2      jakarta-tomcat/proposals/catalina/src/conf/web.xml
  
  Index: web.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/proposals/catalina/src/conf/web.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- web.xml	2000/04/29 05:59:52	1.1
  +++ web.xml	2000/04/29 18:24:24	1.2
  @@ -6,11 +6,13 @@
   
   <web-app>
   
  -  <!-- The default servlet that normally serves static resources -->
  +  <!-- Mappings in this file are the defaults for all contexts -->
  +
  +  <!-- The default servlet that serves static resources -->
     <servlet>
       <servlet-name>default</servlet-name>
       <servlet-class>org.apache.tomcat.servlets.DefaultServlet</servlet-class>
  -    <load-on-startup>-2147483646</load-on-startup>
  +    <load-on-startup>1</load-on-startup>
       <init-param>
         <param-name>debug</param-name>
         <param-value>99</param-value>
  @@ -50,6 +52,7 @@
     </servlet-mapping>
   
     <!-- The mapping for the invoker servlet -->
  +  <!-- Comment this out if you do not want "invoker" service -->
     <servlet-mapping>
       <servlet-name>invoker</servlet-name>
       <url-pattern>/servlet/*</url-pattern>
  
  
  
  1.7       +21 -4     jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/core/StandardWrapper.java
  
  Index: StandardWrapper.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/core/StandardWrapper.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- StandardWrapper.java	2000/04/29 05:59:54	1.6
  +++ StandardWrapper.java	2000/04/29 18:24:25	1.7
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/core/StandardWrapper.java,v 1.6 2000/04/29 05:59:54 craigmcc Exp $
  - * $Revision: 1.6 $
  - * $Date: 2000/04/29 05:59:54 $
  + * $Header: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/core/StandardWrapper.java,v 1.7 2000/04/29 18:24:25 craigmcc Exp $
  + * $Revision: 1.7 $
  + * $Date: 2000/04/29 18:24:25 $
    *
    * ====================================================================
    *
  @@ -96,7 +96,7 @@
    * make them efficient are counter-productive.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.6 $ $Date: 2000/04/29 05:59:54 $
  + * @version $Revision: 1.7 $ $Date: 2000/04/29 18:24:25 $
    */
   
   public final class StandardWrapper
  @@ -274,6 +274,23 @@
   
       }
   
  +
  +
  +    /**
  +     * This should not be necessary, but XmlMapper does not seem to find
  +     * the version of setLoadOnStartup with an "int" argument.
  +     *
  +     * @param value New load-on-startup value
  +     */
  +    public void setLoadOnStartup(String value) {
  +
  +	try {
  +	    setLoadOnStartup(Integer.parseInt(value));
  +	} catch (NumberFormatException e) {
  +	    setLoadOnStartup(0);
  +	}
  +
  +    }
   
   
       /**
  
  
  
  1.5       +5 -5      jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/core/StandardWrapperValve.java
  
  Index: StandardWrapperValve.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/core/StandardWrapperValve.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- StandardWrapperValve.java	2000/04/29 05:59:54	1.4
  +++ StandardWrapperValve.java	2000/04/29 18:24:25	1.5
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/core/StandardWrapperValve.java,v 1.4 2000/04/29 05:59:54 craigmcc Exp $
  - * $Revision: 1.4 $
  - * $Date: 2000/04/29 05:59:54 $
  + * $Header: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/core/StandardWrapperValve.java,v 1.5 2000/04/29 18:24:25 craigmcc Exp $
  + * $Revision: 1.5 $
  + * $Date: 2000/04/29 18:24:25 $
    *
    * ====================================================================
    *
  @@ -87,7 +87,7 @@
    * <code>StandardWrapper</code> container implementation.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.4 $ $Date: 2000/04/29 05:59:54 $
  + * @version $Revision: 1.5 $ $Date: 2000/04/29 18:24:25 $
    */
   
   final class StandardWrapperValve
  @@ -137,7 +137,7 @@
   	    }
   	    wrapper.deallocate(servlet);
   	} catch (Throwable t) {
  -	    log(sm.getString("servletWrapper.servletException"), t);
  +	    log(sm.getString("standardWrapper.servletException"), t);
   	    wrapper.deallocate(servlet);
   	}
   
  
  
  
  1.4       +5 -5      jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/resources/StandardResources.java
  
  Index: StandardResources.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/resources/StandardResources.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- StandardResources.java	2000/04/29 05:59:55	1.3
  +++ StandardResources.java	2000/04/29 18:24:26	1.4
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/resources/StandardResources.java,v 1.3 2000/04/29 05:59:55 craigmcc Exp $
  - * $Revision: 1.3 $
  - * $Date: 2000/04/29 05:59:55 $
  + * $Header: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/resources/StandardResources.java,v 1.4 2000/04/29 18:24:26 craigmcc Exp $
  + * $Revision: 1.4 $
  + * $Date: 2000/04/29 18:24:26 $
    *
    * ====================================================================
    *
  @@ -66,8 +66,8 @@
   
   
   import java.beans.PropertyChangeEvent;
  -import java.beans.PropertyChangeSupport;
   import java.beans.PropertyChangeListener;
  +import java.beans.PropertyChangeSupport;
   import java.io.File;
   import java.io.FileInputStream;
   import java.io.InputStream;
  @@ -101,7 +101,7 @@
    * </ul>
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.3 $ $Date: 2000/04/29 05:59:55 $
  + * @version $Revision: 1.4 $ $Date: 2000/04/29 18:24:26 $
    */
   
   public final class StandardResources
  
  
  
  1.2       +15 -5     jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/servlets/DefaultServlet.java
  
  Index: DefaultServlet.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/servlets/DefaultServlet.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DefaultServlet.java	2000/04/29 05:59:56	1.1
  +++ DefaultServlet.java	2000/04/29 18:24:27	1.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/servlets/DefaultServlet.java,v 1.1 2000/04/29 05:59:56 craigmcc Exp $
  - * $Revision: 1.1 $
  - * $Date: 2000/04/29 05:59:56 $
  + * $Header: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/servlets/DefaultServlet.java,v 1.2 2000/04/29 18:24:27 craigmcc Exp $
  + * $Revision: 1.2 $
  + * $Date: 2000/04/29 18:24:27 $
    *
    * ====================================================================
    *
  @@ -91,7 +91,7 @@
    * used to serve static resources such as HTML pages and images.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.1 $ $Date: 2000/04/29 05:59:56 $
  + * @version $Revision: 1.2 $ $Date: 2000/04/29 18:24:27 $
    */
   
   public final class DefaultServlet
  @@ -380,7 +380,17 @@
   	if (!content)
   	    return;
   
  -	// FIXME - look for a welcome file
  +	// Serve a welcome file if one exists
  +	// FIXME - update the welcome files list?
  +	for (int i = 0; i < welcomes.size(); i++) {
  +	    File file = new File(directory, (String) welcomes.elementAt(i));
  +	    if (file.exists() && file.canRead() && file.isFile()) {
  +		serveFile(requestURI, file.getAbsolutePath(),
  +			  response, content);
  +		return;
  +	    }
  +	}
  +	
   
   	// FIXME - do the directory thing
   	response.setContentType("text/html");
  
  
  
  1.4       +1 -0      jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/session/LocalStrings.properties
  
  Index: LocalStrings.properties
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/session/LocalStrings.properties,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- LocalStrings.properties	2000/04/27 05:55:18	1.3
  +++ LocalStrings.properties	2000/04/29 18:24:28	1.4
  @@ -7,6 +7,7 @@
   standardManager.createSession.ise=createSession: Too many active sessions
   standardManager.loading=Loading persisted sessions from {0}
   standardManager.notStarted=Manager has not yet been started
  +standardManager.sessionTimeout=Invalid session timeout setting {0}
   standardManager.unloading=Saving persisted sessions to {0}
   standardSession.invalidate.ise=invalidate: Session already invalidated
   standardSession.isNew.ise=isNew: Session already invalidated
  
  
  
  1.9       +63 -5     jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/session/StandardManager.java
  
  Index: StandardManager.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/session/StandardManager.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- StandardManager.java	2000/04/27 05:55:19	1.8
  +++ StandardManager.java	2000/04/29 18:24:28	1.9
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/session/StandardManager.java,v 1.8 2000/04/27 05:55:19 craigmcc Exp $
  - * $Revision: 1.8 $
  - * $Date: 2000/04/27 05:55:19 $
  + * $Header: /home/cvs/jakarta-tomcat/proposals/catalina/src/share/org/apache/tomcat/session/StandardManager.java,v 1.9 2000/04/29 18:24:28 craigmcc Exp $
  + * $Revision: 1.9 $
  + * $Date: 2000/04/29 18:24:28 $
    *
    * ====================================================================
    *
  @@ -64,6 +64,10 @@
   
   package org.apache.tomcat.session;
   
  +import java.beans.PropertyChangeEvent;
  +import java.beans.PropertyChangeListener;
  +import java.beans.PropertyChangeSupport;
  +import java.beans.PropertyChangeListener;
   import java.io.BufferedInputStream;
   import java.io.BufferedOutputStream;
   import java.io.FileInputStream;
  @@ -75,6 +79,8 @@
   import java.util.Enumeration;
   import java.util.Hashtable;
   import java.util.Vector;
  +import org.apache.tomcat.Container;
  +import org.apache.tomcat.Context;
   import org.apache.tomcat.Lifecycle;
   import org.apache.tomcat.LifecycleEvent;
   import org.apache.tomcat.LifecycleException;
  @@ -98,12 +104,12 @@
    * <code>stop()</code> methods of this class at the correct times.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.8 $ $Date: 2000/04/27 05:55:19 $
  + * @version $Revision: 1.9 $ $Date: 2000/04/29 18:24:28 $
    */
   
   public final class StandardManager
       extends ManagerBase
  -    implements Lifecycle, Runnable {
  +    implements Lifecycle, PropertyChangeListener, Runnable {
   
   
       // ----------------------------------------------------- Instance Variables
  @@ -208,6 +214,29 @@
   
   
       /**
  +     * Set the Container with which this Manager has been associated.  If
  +     * it is a Context (the usual case), listen for changes to the session
  +     * timeout property.
  +     *
  +     * @param container The associated Container
  +     */
  +    public void setContainer(Container container) {
  +
  +	// De-register from the old Container (if any)
  +	if ((this.container != null) && (this.container instanceof Context))
  +	    ((Context) this.container).removePropertyChangeListener(this);
  +
  +	// Default processing provided by our superclass
  +	super.setContainer(container);
  +
  +	// Register with the new Container (if any)
  +	if ((this.container != null) && (this.container instanceof Context))
  +	    ((Context) this.container).addPropertyChangeListener(this);
  +
  +    }
  +
  +
  +    /**
        * Return the debugging detail level for this component.
        */
       public int getDebug() {
  @@ -405,6 +434,35 @@
   	    if (!session.isValid())
   		continue;
   	    session.expire();
  +	}
  +
  +    }
  +
  +
  +    // ----------------------------------------- PropertyChangeListener Methods
  +
  +
  +    /**
  +     * Process property change events from our associated Context.
  +     *
  +     * @param event The property change event that has occurred
  +     */
  +    public void propertyChange(PropertyChangeEvent event) {
  +
  +	// Validate the source of this event
  +	if (!(event.getSource() instanceof Context))
  +	    return;
  +	Context context = (Context) event.getSource();
  +
  +	// Process a relevant property change
  +	if (event.getPropertyName().equals("sessionTimeout")) {
  +	    try {
  +		setMaxInactiveInterval
  +		    (Integer.parseInt((String) event.getNewValue()));
  +	    } catch (NumberFormatException e) {
  +		log(sm.getString("standardManager.sessionTimeout",
  +				 event.getNewValue().toString()));
  +	    }
   	}
   
       }