- 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 class
The in-memory basic session store builder. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final long
The 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:AbstractSessionStore
Returns the session id generator.
- Overrides:
getSessionIdGenerator
in classAbstractSessionStore<A,
Session<A>> - Returns:
- the session id generator
-
create
Description copied from interface:SessionStore
Creates a new session in the session store.
This shall physically create a new session in the data store.
- Specified by:
create
in interfaceSessionStore<A,
Session<A>> - Returns:
- a mono for creating a session
-
get
Description copied from interface:SessionStore
Returns the session identified by the specified session id.
- Specified by:
get
in 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:SessionStore
Returns the data of the session identified by the specified session id.
- Specified by:
getData
in 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:SessionStore
Moves the session identified by the specified identifier to a new identifier.
- Specified by:
move
in 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:SessionStore
Removes the session identified by the specified identifier.
- Specified by:
remove
in interfaceSessionStore<A,
Session<A>> - Parameters:
sessionId
- a session id- Returns:
- a mono for removing a session
-
save
Description copied from interface:SessionStore
Saves 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:
save
in 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
-