org.apache.catalina.session

## Class FileStore

- java.lang.Object
- - org.apache.catalina.util.LifecycleBase
  - - org.apache.catalina.session.StoreBase
    - - org.apache.catalina.session.FileStore

- All Implemented Interfaces:
    Lifecycle, Store

      public final class FileStore
      extends StoreBase

  Concrete implementation of the Store interface that utilizes a file per saved Session in a configured directory. Sessions that are saved are still subject to being expired based on inactivity.
  Author:
    Craig R. McClanahan

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle

      `Lifecycle.SingleUse`

  - ### Field Summary

    - ### Fields inherited from class org.apache.catalina.session.StoreBase

      `manager, support`

    - ### Fields inherited from interface org.apache.catalina.Lifecycle

      `AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `FileStore()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `clear()` Remove all of the Sessions in this Store.
    `String` | `getDirectory()`
    `int` | `getSize()` Return the number of Sessions present in this Store.
    `String` | `getStoreName()` Return the name for this Store, used for logging.
    `String` | `getThreadName()`
    `String[]` | `keys()` Return an array containing the session identifiers of all Sessions currently saved in this Store.
    `Session` | `load(String id)` Load and return the Session associated with the specified session identifier from this Store, without removing it.
    `void` | `remove(String id)` Remove the Session with the specified session identifier from this Store, if present.
    `void` | `save(Session session)` Save the specified Session into this Store.
    `void` | `setDirectory(String path)` Set the directory path for this Store.

    - ### Methods inherited from class org.apache.catalina.session.StoreBase

      `addPropertyChangeListener, destroyInternal, expiredKeys, getManager, getObjectInputStream, initInternal, processExpires, removePropertyChangeListener, setManager, startInternal, stopInternal, toString`

    - ### Methods inherited from class org.apache.catalina.util.LifecycleBase

      `addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### FileStore

          public FileStore()

  - ### Method Detail

    - #### getDirectory

          public String getDirectory()

      Returns:
        The directory path for this Store.

    - #### setDirectory

          public void setDirectory(String path)

      Set the directory path for this Store.
      Parameters:
        `path` - The new directory path

    - #### getThreadName

          public String getThreadName()

      Returns:
        The thread name for this Store.

    - #### getStoreName

          public String getStoreName()

      Return the name for this Store, used for logging.
      Overrides:
        `getStoreName` in class `StoreBase`
      Returns:
        the name for this Store, used for logging.

    - #### getSize

          public int getSize()
                      throws IOException

      Return the number of Sessions present in this Store.
      Returns:
        the number of Sessions present in this Store.
      Throws:
        `IOException` - if an input/output error occurs

    - #### clear

          public void clear()
                     throws IOException

      Remove all of the Sessions in this Store.
      Throws:
        `IOException` - if an input/output error occurs

    - #### keys

          public String[] keys()
                        throws IOException

      Return an array containing the session identifiers of all Sessions currently saved in this Store. If there are no such Sessions, a zero-length array is returned.
      Returns:
        an array containing the session identifiers of all Sessions currently saved in this Store. If there are no such Sessions, a zero-length array is returned.
      Throws:
        `IOException` - if an input/output error occurred

    - #### load

          public Session load(String id)
                       throws ClassNotFoundException,
                              IOException

      Load and return the Session associated with the specified session identifier from this Store, without removing it. If there is no such stored Session, return `null`.
      Parameters:
        `id` - Session identifier of the session to load
      Returns:
        the loaded Session instance
      Throws:
        `ClassNotFoundException` - if a deserialization error occurs
        `IOException` - if an input/output error occurs

    - #### remove

          public void remove(String id)
                      throws IOException

      Remove the Session with the specified session identifier from this Store, if present. If no such Session is present, this method takes no action.
      Parameters:
        `id` - Session identifier of the Session to be removed
      Throws:
        `IOException` - if an input/output error occurs

    - #### save

          public void save(Session session)
                    throws IOException

      Save the specified Session into this Store. Any previously saved information for the associated session identifier is replaced.
      Parameters:
        `session` - Session to be saved
      Throws:
        `IOException` - if an input/output error occurs

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.