Class HazelcastSessionDataStore
- java.lang.Object
-
- org.eclipse.jetty.util.component.AbstractLifeCycle
-
- org.eclipse.jetty.util.component.ContainerLifeCycle
-
- org.eclipse.jetty.server.session.AbstractSessionDataStore
-
- org.eclipse.jetty.hazelcast.session.HazelcastSessionDataStore
-
- All Implemented Interfaces:
SessionDataMap
,SessionDataStore
,Container
,Destroyable
,Dumpable
,Dumpable.DumpableContainer
,LifeCycle
@ManagedObject public class HazelcastSessionDataStore extends AbstractSessionDataStore implements SessionDataStore
Session data stored in Hazelcast
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
AbstractLifeCycle.AbstractLifeCycleListener
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container
Container.InheritedListener, Container.Listener
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
Dumpable.DumpableContainer
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
LifeCycle.Listener
-
-
Field Summary
-
Fields inherited from class org.eclipse.jetty.server.session.AbstractSessionDataStore
_context, _gracePeriodSec, _lastExpiryCheckTime, _savePeriodSec
-
-
Constructor Summary
Constructors Constructor Description HazelcastSessionDataStore()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
delete(java.lang.String id)
Delete session datajava.util.Set<java.lang.String>
doGetExpired(java.util.Set<java.lang.String> candidates)
Implemented by subclasses to resolve which sessions this node should attempt to expire.SessionData
doLoad(java.lang.String id)
Load the session from persistent store.void
doStore(java.lang.String id, SessionData data, long lastSaveTime)
Store the session data persistently.boolean
exists(java.lang.String id)
Test if data exists for a given session id.java.lang.String
getCacheKey(java.lang.String id)
com.hazelcast.core.IMap<java.lang.String,SessionData>
getSessionDataMap()
void
initialize(SessionContext context)
Initialize this data map for the given context.boolean
isPassivating()
True if this type of datastore will passivate session objectsboolean
isScavengeZombies()
void
setScavengeZombieSessions(boolean scavengeZombies)
Control whether or not to execute queries to find "zombie" sessions - ie sessions that are no longer actively referenced by any jetty instance and should be expired.void
setSessionDataMap(com.hazelcast.core.IMap<java.lang.String,SessionData> sessionDataMap)
-
Methods inherited from class org.eclipse.jetty.server.session.AbstractSessionDataStore
checkStarted, doStart, getExpired, getGracePeriodSec, getSavePeriodSec, load, newSessionData, setGracePeriodSec, setSavePeriodSec, store, toString
-
Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle
addBean, addBean, addEventListener, addManaged, contains, destroy, doStop, dump, dump, dump, dump, dump, dumpBeans, dumpObject, dumpObjects, dumpStdErr, dumpThis, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, setStopTimeout, start, stop, unmanage, updateBean, updateBean, updateBeans
-
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
addLifeCycleListener, getState, getState, getStopTimeout, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer
isDumpable
-
Methods inherited from interface org.eclipse.jetty.util.component.LifeCycle
addLifeCycleListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop
-
Methods inherited from interface org.eclipse.jetty.server.session.SessionDataMap
load, store
-
Methods inherited from interface org.eclipse.jetty.server.session.SessionDataStore
getExpired, newSessionData
-
-
-
-
Method Detail
-
setScavengeZombieSessions
public void setScavengeZombieSessions(boolean scavengeZombies)
Control whether or not to execute queries to find "zombie" sessions - ie sessions that are no longer actively referenced by any jetty instance and should be expired. If you use this feature, be aware that if your session stores any attributes that use classes from within your webapp, or from within jetty, you will need to make sure those classes are available to all of your hazelcast instances, whether embedded or remote.- Parameters:
scavengeZombies
- true means unreferenced sessions will be actively sought and expired. False means that they will remain in hazelcast until some other mechanism removes them.
-
isScavengeZombies
public boolean isScavengeZombies()
-
doLoad
public SessionData doLoad(java.lang.String id) throws java.lang.Exception
Description copied from class:AbstractSessionDataStore
Load the session from persistent store.- Specified by:
doLoad
in classAbstractSessionDataStore
- Parameters:
id
- the id of the session to load- Returns:
- the re-inflated session
- Throws:
java.lang.Exception
- if unable to load the session
-
delete
public boolean delete(java.lang.String id) throws java.lang.Exception
Description copied from interface:SessionDataMap
Delete session data- Specified by:
delete
in interfaceSessionDataMap
- Parameters:
id
- identity of session to delete- Returns:
- true if the session was deleted
- Throws:
java.lang.Exception
- if unable to delete session data
-
getSessionDataMap
public com.hazelcast.core.IMap<java.lang.String,SessionData> getSessionDataMap()
-
setSessionDataMap
public void setSessionDataMap(com.hazelcast.core.IMap<java.lang.String,SessionData> sessionDataMap)
-
initialize
public void initialize(SessionContext context) throws java.lang.Exception
Description copied from interface:SessionDataMap
Initialize this data map for the given context. A SessionDataMap can only be used by one context(/session manager).- Specified by:
initialize
in interfaceSessionDataMap
- Overrides:
initialize
in classAbstractSessionDataStore
- Parameters:
context
- context associated- Throws:
java.lang.Exception
- if unable to initialize the
-
doStore
public void doStore(java.lang.String id, SessionData data, long lastSaveTime) throws java.lang.Exception
Description copied from class:AbstractSessionDataStore
Store the session data persistently.- Specified by:
doStore
in classAbstractSessionDataStore
- Parameters:
id
- identity of session to storedata
- info of the sessionlastSaveTime
- time of previous save or 0 if never saved- Throws:
java.lang.Exception
- if unable to store data
-
isPassivating
public boolean isPassivating()
Description copied from interface:SessionDataStore
True if this type of datastore will passivate session objects- Specified by:
isPassivating
in interfaceSessionDataStore
- Returns:
- true if this store can passivate sessions, false otherwise
-
doGetExpired
public java.util.Set<java.lang.String> doGetExpired(java.util.Set<java.lang.String> candidates)
Description copied from class:AbstractSessionDataStore
Implemented by subclasses to resolve which sessions this node should attempt to expire.- Specified by:
doGetExpired
in classAbstractSessionDataStore
- Parameters:
candidates
- the ids of sessions the SessionDataStore thinks has expired- Returns:
- the reconciled set of session ids that this node should attempt to expire
-
exists
public boolean exists(java.lang.String id) throws java.lang.Exception
Description copied from interface:SessionDataStore
Test if data exists for a given session id.- Specified by:
exists
in interfaceSessionDataStore
- Parameters:
id
- Identity of session whose existence should be checked- Returns:
- true if valid, non-expired session exists
- Throws:
java.lang.Exception
- if problem checking existence with persistence layer
-
getCacheKey
public java.lang.String getCacheKey(java.lang.String id)
-
-