- Type Parameters:
A- the session data type
- All Implemented Interfaces:
BasicSessionStore<A>,SessionStore<A,Session<A>>
A basic session store implementation that stores sessions and their data in-memory in a concurrent map.
- Since:
- 1.13
- Author:
- Jeremy Kuhn
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classThe in-memory basic session store builder. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final longThe default session cleaning period in milliseconds:300000(i.e. 5 minutes).Fields inherited from class io.inverno.mod.session.AbstractSessionStore
expireAfterPeriod, maxInactiveInterval, sessionIdGenerator -
Method Summary
Modifier and TypeMethodDescriptionstatic <A> InMemoryBasicSessionStore.Builder<A> Creates an in-memory basic session store builder usingSessionIdGenerator.uuid()session id generator.static <A> InMemoryBasicSessionStore.Builder<A> builder(Reactor reactor, SessionIdGenerator<A, Session<A>> sessionIdGenerator) Creates an in-memory basic session store builder.create()Creates a new session in the session store.Returns the session identified by the specified session id.Returns the data of the session identified by the specified session id.Returns the session id generator.Moves the session identified by the specified identifier to a new identifier.Removes the session identified by the specified identifier.Saves the specified session.Methods inherited from class io.inverno.mod.session.AbstractSessionStore
getExpireAfterPeriod, getMaxInactiveInterval
-
Field Details
-
DEFAULT_CLEAN_PERIOD
public static final long DEFAULT_CLEAN_PERIODThe default session cleaning period in milliseconds:300000(i.e. 5 minutes).- See Also:
-
-
Method Details
-
builder
Creates an in-memory basic session store builder using
SessionIdGenerator.uuid()session id generator.- Type Parameters:
A- the session data type- Parameters:
reactor- the reactor- Returns:
- an in-memory basic session store builder
-
builder
public static <A> InMemoryBasicSessionStore.Builder<A> builder(Reactor reactor, SessionIdGenerator<A, Session<A>> sessionIdGenerator) Creates an in-memory basic session store builder.
- Type Parameters:
A- the session data type- Parameters:
reactor- the reactorsessionIdGenerator- a session id generator- Returns:
- an in-memory basic session store builder
-
getSessionIdGenerator
Description copied from class:AbstractSessionStoreReturns the session id generator.
- Overrides:
getSessionIdGeneratorin classAbstractSessionStore<A,Session<A>> - Returns:
- the session id generator
-
create
Description copied from interface:SessionStoreCreates a new session in the session store.
This shall physically create a new session in the data store.
- Specified by:
createin interfaceSessionStore<A,Session<A>> - Returns:
- a mono for creating a session
-
get
Description copied from interface:SessionStoreReturns the session identified by the specified session id.
- Specified by:
getin interfaceSessionStore<A,Session<A>> - Parameters:
sessionId- a session id- Returns:
- a mono emitting the session or an empty mono if no session exists with the specified identifier
-
getData
Description copied from interface:SessionStoreReturns the data of the session identified by the specified session id.
- Specified by:
getDatain interfaceSessionStore<A,Session<A>> - Parameters:
sessionId- a session id- Returns:
- a mono emitting the session data or an empty mono if no session exists with specified identifier or if a session exists which does not define any data
-
move
Description copied from interface:SessionStoreMoves the session identified by the specified identifier to a new identifier.
- Specified by:
movein interfaceSessionStore<A,Session<A>> - Parameters:
sessionId- a session idnewSessionId- a new session id- Returns:
- a mono for moving a session
- Throws:
IllegalStateException- if there is no session with the specified identifier or if a session already exists at the specified new identifier
-
remove
Description copied from interface:SessionStoreRemoves the session identified by the specified identifier.
- Specified by:
removein interfaceSessionStore<A,Session<A>> - Parameters:
sessionId- a session id- Returns:
- a mono for removing a session
-
save
Description copied from interface:SessionStoreSaves the specified session.
Whether resolved session data are saved along with the session is implementation specific. Implementors must however at least guarantee that data that is explicitly set on a session using
Session.setData(Object)are saved.- Specified by:
savein interfaceSessionStore<A,Session<A>> - Parameters:
session- a session- Returns:
- a mono for saving a session
- Throws:
IllegalArgumentException- if the specified session does not originate from this session storeIllegalStateException- if the specified session does not exist in the store or if it was invalidated
-