bip         01/04/25 18:40:17

  Modified:    catalina/src/share/org/apache/catalina/session
                        FileStore.java
  Log:
  Refactored to take advantage of StoreBase.
  Updated to use CustomObjectInputstream() from util instead of having
  it as a inline class.
  
  Revision  Changes    Path
  1.5       +30 -189   
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/FileStore.java
  
  Index: FileStore.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/FileStore.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- FileStore.java    2001/04/14 10:56:29     1.4
  +++ FileStore.java    2001/04/26 01:40:10     1.5
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/FileStore.java,v
 1.4 2001/04/14 10:56:29 kief Exp $
  - * $Revision: 1.4 $
  - * $Date: 2001/04/14 10:56:29 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/FileStore.java,v
 1.5 2001/04/26 01:40:10 bip Exp $
  + * $Revision: 1.5 $
  + * $Date: 2001/04/26 01:40:10 $
    *
    * ====================================================================
    *
  @@ -65,8 +65,6 @@
   package org.apache.catalina.session;
   
   
  -import java.beans.PropertyChangeListener;
  -import java.beans.PropertyChangeSupport;
   import java.io.BufferedInputStream;
   import java.io.BufferedOutputStream;
   import java.io.File;
  @@ -85,18 +83,11 @@
   import javax.servlet.ServletContext;
   import org.apache.catalina.Context;
   import org.apache.catalina.Globals;
  -import org.apache.catalina.Lifecycle;
  -import org.apache.catalina.LifecycleEvent;
  -import org.apache.catalina.LifecycleException;
  -import org.apache.catalina.LifecycleListener;
   import org.apache.catalina.Loader;
  -import org.apache.catalina.Logger;
  -import org.apache.catalina.Manager;
   import org.apache.catalina.Session;
   import org.apache.catalina.Store;
   import org.apache.catalina.Container;
  -import org.apache.catalina.util.LifecycleSupport;
  -import org.apache.catalina.util.StringManager;
  +import org.apache.catalina.util.CustomObjectInputStream;
   
   
   /**
  @@ -105,11 +96,11 @@
    * saved are still subject to being expired based on inactivity.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.4 $ $Date: 2001/04/14 10:56:29 $
  + * @version $Revision: 1.5 $ $Date: 2001/04/26 01:40:10 $
    */
   
   public final class FileStore
  -    implements Store {
  +    extends StoreBase implements Store {
   
   
       // ----------------------------------------------------- Constants
  @@ -142,30 +133,15 @@
        */
       private static final String info = "FileStore/1.0";
   
  -
  -    /**
  -     * The string manager for this package.
  -     */
  -    private StringManager sm =
  -        StringManager.getManager(Constants.Package);
  -
  -
  -    /**
  -     * The property change support for this component.
  -     */
  -    private PropertyChangeSupport support = new PropertyChangeSupport(this);
  -
  -
       /**
  -     * The Manager with which this FileStore is associated.
  +     * Name to register for this Store, used for logging.
        */
  -    protected Manager manager;
  +    private static final String storeName = "fileStore";
   
  -
       /**
  -     * The debugging detail level for this component.
  +     * Name to register for the background thread.
        */
  -    protected int debug = 0;
  +    private static final String threadName = "FileStore";
   
   
       // ------------------------------------------------------------- Properties
  @@ -208,6 +184,20 @@
   
       }
   
  +    /**
  +     * Return the thread name for this Store.
  +     */
  +    public String getThreadName() {
  +     return(threadName);
  +    }
  +
  +    /**
  +     * Return the name for this Store, used for logging.
  +     */
  +    public String getStoreName() {
  +     return(storeName);
  +    }
  +
   
       /**
        * Return the number of Sessions present in this Store.
  @@ -230,67 +220,8 @@
       }
   
   
  -    /**
  -     * Return the Manager with which the FileStore is associated.
  -     */
  -    public Manager getManager() {
  -    
  -        return (this.manager);
  -            
  -    }
  -
  -
  -    /**
  -     * Set the Manager with which this FileStore is associated.
  -     *
  -     * @param manager The newly associated Manager
  -     */
  -    public void setManager(Manager manager) {
  -
  -        Manager oldManager = this.manager;
  -        this.manager = manager;
  -        support.firePropertyChange("manager", oldManager, this.manager);
  -
  -    }
  -
  -
  -    /**
  -     * Return the debugging detail level for this component.
  -     */
  -    public int getDebug() {
  -
  -        return (this.debug);
  -
  -    }
  -
  -
  -    /**
  -     * Set the debugging detail level for this component.
  -     *
  -     * @param debug The new debugging detail level
  -     */
  -    public void setDebug(int debug) {
  -
  -        this.debug = debug;
  -
  -    }
  -
  -
       // --------------------------------------------------------- Public Methods
   
  -
  -    /**
  -     * Add a property change listener to this component.
  -     *
  -     * @param listener The listener to add
  -     */
  -    public void addPropertyChangeListener(PropertyChangeListener listener) {
  -
  -        support.addPropertyChangeListener(listener);
  -
  -    }
  -
  -
       /**
        * Return an array containing the session identifiers of all Sessions
        * currently saved in this Store.  If there are no such Sessions, a
  @@ -346,7 +277,8 @@
           if (file == null)
               return (null);
           if (debug >= 1)
  -            log(sm.getString("fileStore.loading", id, file.getAbsolutePath()));
  +            log(sm.getString(getStoreName()+".loading",
  +                          id, file.getAbsolutePath()));
   
           FileInputStream fis = null;
           ObjectInputStream ois = null;
  @@ -414,7 +346,8 @@
           if (file == null)
               return;
           if (debug >= 1)
  -            log(sm.getString("fileStore.removing", id, file.getAbsolutePath()));
  +            log(sm.getString(getStoreName()+".removing",
  +                          id, file.getAbsolutePath()));
           file.delete();
       }
   
  @@ -436,18 +369,6 @@
       
   
       /**
  -     * Remove a property change listener from this component.
  -     *
  -     * @param listener The listener to remove
  -     */
  -    public void removePropertyChangeListener(PropertyChangeListener listener) {
  -
  -        support.removePropertyChangeListener(listener);
  -
  -    }
  -
  -
  -    /**
        * Save the specified Session into this Store.  Any previously saved
        * information for the associated session identifier is replaced.
        *
  @@ -462,7 +383,8 @@
           if (file == null)
               return;
           if (debug >= 1)
  -            log(sm.getString("fileStore.saving", session.getId(), 
file.getAbsolutePath()));
  +            log(sm.getString(getStoreName()+".saving",
  +                          session.getId(), file.getAbsolutePath()));
           FileOutputStream fos = null;
           ObjectOutputStream oos = null;
           try {
  @@ -488,31 +410,6 @@
       }
   
   
  -    /**
  -     * Log a message on the Logger associated with our Container (if any).
  -     *
  -     * @param message Message to be logged
  -     */
  -    void log(String message) {
  -
  -        Logger logger = null;
  -        Container container = manager.getContainer();
  -        if (container != null)
  -            logger = container.getLogger();
  -        if (logger != null)
  -            logger.log("FileStore[" + container.getName() + "]: "
  -                       + message);
  -        else {
  -            String containerName = null;
  -            if (container != null)
  -                containerName = container.getName();
  -            System.out.println("FileStore[" + containerName
  -                               + "]: " + message);
  -        }
  -
  -    }
  -
  -
       // -------------------------------------------------------- Private Methods
   
       /**
  @@ -558,60 +455,4 @@
           return directoryFile;
   
       }
  -                
  -    // -------------------------------------------------------- Private Classes
  -
  -
  -    /**
  -     * Custom subclass of <code>ObjectInputStream</code> that loads from the
  -     * class loader for this web application.  This allows classes defined only
  -     * with the web application to be found correctly.
  -     */
  -    private static final class CustomObjectInputStream
  -        extends ObjectInputStream {
  -
  -
  -        /**
  -         * The class loader we will use to resolve classes.
  -         */
  -        private ClassLoader classLoader = null;
  -
  -
  -        /**
  -         * Construct a new instance of CustomObjectInputStream
  -         *
  -         * @param stream The input stream we will read from
  -         * @param classLoader The class loader used to instantiate objects
  -         *
  -         * @exception IOException if an input/output error occurs
  -         */
  -        public CustomObjectInputStream(InputStream stream,
  -                                       ClassLoader classLoader)
  -            throws IOException {
  -
  -            super(stream);
  -            this.classLoader = classLoader;
  -
  -        }
  -
  -
  -        /**
  -         * Load the local class equivalent of the specified stream class
  -         * description, by using the class loader assigned to this Context.
  -         *
  -         * @param classDesc Class description from the input stream
  -         *
  -         * @exception ClassNotFoundException if this class cannot be found
  -         * @exception IOException if an input/output error occurs
  -         */
  -        protected Class resolveClass(ObjectStreamClass classDesc)
  -            throws ClassNotFoundException, IOException {
  -
  -            return (classLoader.loadClass(classDesc.getName()));
  -
  -        }
  -
  -
  -    }
  -
   }
  
  
  

Reply via email to