sunlabs.brazil.session
Class PropertiesCacheManager
java.lang.Object
sunlabs.brazil.session.SessionManager
sunlabs.brazil.session.CacheManager
sunlabs.brazil.session.PropertiesCacheManager
- All Implemented Interfaces:
- Serializable, Handler
public class PropertiesCacheManager
- extends CacheManager
- implements Handler, Serializable
A version of the CacheManager that saves out any session state
that is either a "java properties" object, or implements "Saveable"
into a directory in the filesystem,
one file per entry, then
restores them on server startup. This is a "poor man's" serialization,
that saves only ascii state represented in properties files.
This permits a wider variety of changes to be made to the
server code, yet still have the ability to read in the proper
session information.
Classes that are not properties files may implement "Saveable", which
has the store() and load() methods from Properties; they are expected to
generate and restore the state of the object in Properties format.
This handler/sessionManager can take an ascii-readable "snapshot" of
the server state, for all state that is a java properties object (or
implements Saveable).
It doesn't perturb the existing state.
Properties:
- storeDir
- The directory to use to store the state files. It is created as needed
when the state is saved. Defalts to "store".
- match
- A glob pattern that matches the url (or url?query if a query is used.
Defaults to "*\?*save=true".
- filePrefix
- A prefix pattern to use for all session files. Defaults to the
handler prefix.
- defer
- If set, the saved session information is not reconstructed upon
startup. Only the list of sessions is read in; the session information
is restored only when needed.
- Version:
- %V% PropertiesCacheManager.java
- Author:
- Stephen Uhler (stephen.uhler@sun.com)
- See Also:
- Serialized Form
Method Summary |
protected Object |
getObj(Object session,
Object ident)
If we have deferred session loading, check here and get it! |
boolean |
init(Server server,
String prefix)
Install this class as the session manager. |
boolean |
respond(Request request)
Don't handle any URL requests (yet) |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
PropertiesCacheManager
public PropertiesCacheManager()
init
public boolean init(Server server,
String prefix)
- Description copied from class:
CacheManager
- Install this class as the session manager.
Get the number of tables, and the max size per table.
- Specified by:
init
in interface Handler
- Overrides:
init
in class CacheManager
- Parameters:
server
- The HTTP server that created this Handler
.
Typical Handler
s will use Server.props
to obtain run-time configuration information.prefix
- The handlers name.
The string this Handler
may prepend to all
of the keys that it uses to extract configuration information
from Server.props
. This is set (by the Server
and ChainHandler
) to help avoid configuration parameter
namespace collisions.
- Returns:
true
if this Handler
initialized
successfully, false
otherwise. If
false
is returned, this Handler
should not be used.
respond
public boolean respond(Request request)
- Description copied from class:
CacheManager
- Don't handle any URL requests (yet)
- Specified by:
respond
in interface Handler
- Overrides:
respond
in class CacheManager
- Parameters:
request
- The Request
object that represents the HTTP
request.
- Returns:
true
if the request was handled. A request was
handled if a response was supplied to the client, typically
by calling Request.sendResponse()
or
Request.sendError
.
getObj
protected Object getObj(Object session,
Object ident)
- If we have deferred session loading, check here and get it!
- Overrides:
getObj
in class CacheManager