Class SessionManager<T>

  • All Implemented Interfaces:
    SessionProvider<T>

    public class SessionManager<T>
    extends java.lang.Object
    implements SessionProvider<T>
    The SessionManager object is used to create sessions that are active for a given time period. Each session is referenced using a unique key, and only one session exists per key at a time. Once a session has been created it remains active for a fixed time period, this time period is renewed each time that session is open.

    When the session manager is no longer required it can be closed. Closing the session manager will cancel and destroy all active sessions, and release all resources occupied by the provider such as threads and memory. Typically it is advisable to close a manager when it is not longer required by the application.

    Author:
    Niall Gallagher
    • Constructor Summary

      Constructors 
      Constructor Description
      SessionManager()
      Constructor for the SessionManager object.
      SessionManager​(long duration, java.util.concurrent.TimeUnit unit)
      Constructor for the SessionManager object.
      SessionManager​(Observer<T> observer)
      Constructor for the SessionManager object.
      SessionManager​(Observer<T> observer, long duration, java.util.concurrent.TimeUnit unit)
      Constructor for the SessionManager object.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()
      This close method is used to close the manager and release all resources associated with it.
      Session open​(T key)
      This open method is used to either open an existing session or create a new session if one does not exist.
      Session open​(T key, boolean create)
      This open method is used to either open an existing session or create a new session if requested.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SessionManager

        public SessionManager()
        Constructor for the SessionManager object. This is used to create a session manager than can manage sessions. This sets the default renewal duration of the sessions created to twenty minutes. If the session is not used within this duration then it is destroyed and its state is lost.
      • SessionManager

        public SessionManager​(Observer<T> observer)
        Constructor for the SessionManager object. This is used to create a session manager than can manage sessions. This sets the default renewal duration of the sessions created to twenty minutes. If the session is not used within this duration then it is destroyed and its state is lost.
        Parameters:
        observer - this is used to observe the session manager
      • SessionManager

        public SessionManager​(long duration,
                              java.util.concurrent.TimeUnit unit)
        Constructor for the SessionManager object. This is used to create a session manager than can manage sessions. This takes a duration which specifies the default lifetime of a session, also when a session is opened for a second time this represents the renewal duration for that instance.
        Parameters:
        duration - this is the default renewal duration to use
        unit - this is the time unit for the specified duration
      • SessionManager

        public SessionManager​(Observer<T> observer,
                              long duration,
                              java.util.concurrent.TimeUnit unit)
        Constructor for the SessionManager object. This is used to create a session manager than can manage sessions. This takes a duration which specifies the default lifetime of a session, also when a session is opened for a second time this represents the renewal duration for that instance.
        Parameters:
        observer - this is used to observe the session manager
        duration - this is the default renewal duration to use
        unit - this is the time unit for the specified duration
    • Method Detail

      • open

        public Session open​(T key)
                     throws LeaseException
        This open method is used to either open an existing session or create a new session if one does not exist. This is always guaranteed to open a session. Upon each open for a given sesion that sessions expiry is renewed for a fixed period of time, typically this is several minutes long.
        Specified by:
        open in interface SessionProvider<T>
        Parameters:
        key - the unique key identifying the session instance
        Returns:
        returns either a new session object or an existing one
        Throws:
        LeaseException - if the keyed session can not be retrieved
      • open

        public Session open​(T key,
                            boolean create)
                     throws LeaseException
        This open method is used to either open an existing session or create a new session if requested. This is used to optionally create a new session if one does not already exist. This is used in situations where a session might not be required but the existence of one may be queried. Once created a session is active for a fixed time period.
        Specified by:
        open in interface SessionProvider<T>
        Parameters:
        key - the unique key identifying the session instance
        Returns:
        returns either a new session object or an existing one
        Throws:
        LeaseException - if the keyed session can not be retrieved
      • close

        public void close()
                   throws LeaseException
        This close method is used to close the manager and release all resources associated with it. This includes canceling all active sessions and emptying the contents of those sessions. All threads and other such resources are released by this method.
        Specified by:
        close in interface SessionProvider<T>
        Throws:
        LeaseException - if the session provider can not be shutdown