Package ome.services.sessions
Class SessionProviderInDb
- java.lang.Object
-
- ome.services.sessions.SessionProviderInDb
-
- All Implemented Interfaces:
SessionProvider
,ReadOnlyStatus.IsAware
public class SessionProviderInDb extends java.lang.Object implements SessionProvider, ReadOnlyStatus.IsAware
Is for ISession a cache and will be kept there in sync? OR Factors out the logic from ISession and SessionManagerI Therefore either called directly, or via synchronous messages. Uses the name of a Principal as the key to the session. We may need to limit user names to prevent this. (Strictly alphanumeric) Receives notifications as anApplicationListener
, which should be used to keep theSession
instances up-to-date.- Since:
- 3.0-Beta3
-
-
Constructor Summary
Constructors Constructor Description SessionProviderInDb(ome.system.Roles roles, NodeProvider nodeProvider, Executor executor, ome.util.SqlAction sqlAction)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
executeCloseSession(java.lang.String uuid)
Loads a session directly, sets its "closed" value and immediately saves it.ome.model.meta.Session
executeInternalSession(java.lang.String uuid, ome.model.meta.Session session)
long
executeNextSessionId()
Added as an attempt to cure ticket:1176ome.model.meta.Session
executeUpdate(ome.system.ServiceFactory sf, ome.model.meta.Session session, java.lang.String uuid, long userId, java.lang.Long sudoerId)
ome.model.meta.Session
findSessionById(long id, ome.system.ServiceFactory sf)
Retrieves a session by ID.ome.model.meta.Session
findSessionById(long id, org.hibernate.Session session)
Retrieves a session by ID.java.lang.Long
findSessionIdByUuid(java.lang.String uuid)
java.lang.Long
findSessionIdByUuid(java.lang.String uuid, ome.system.ServiceFactory sf)
boolean
isReadOnly(ReadOnlyStatus readOnly)
-
-
-
Constructor Detail
-
SessionProviderInDb
public SessionProviderInDb(ome.system.Roles roles, NodeProvider nodeProvider, Executor executor, ome.util.SqlAction sqlAction)
-
-
Method Detail
-
executeUpdate
public ome.model.meta.Session executeUpdate(ome.system.ServiceFactory sf, ome.model.meta.Session session, java.lang.String uuid, long userId, java.lang.Long sudoerId)
- Specified by:
executeUpdate
in interfaceSessionProvider
-
executeCloseSession
public void executeCloseSession(java.lang.String uuid)
Description copied from interface:SessionProvider
Loads a session directly, sets its "closed" value and immediately saves it. This method is not called directly from theSessionManager.close(String)
andSessionManager.closeAll()
methods since there are other non-explicit ways for a session to be destroyed, such as a timeout withinSessionCache
and so this is called fromSessionManagerImpl.onApplicationEvent(org.springframework.context.ApplicationEvent)
when aDestroySessionMessage
is received.- Specified by:
executeCloseSession
in interfaceSessionProvider
-
executeInternalSession
public ome.model.meta.Session executeInternalSession(java.lang.String uuid, ome.model.meta.Session session)
- Specified by:
executeInternalSession
in interfaceSessionProvider
-
executeNextSessionId
public long executeNextSessionId()
Description copied from interface:SessionProvider
Added as an attempt to cure ticket:1176- Specified by:
executeNextSessionId
in interfaceSessionProvider
-
findSessionById
public ome.model.meta.Session findSessionById(long id, org.hibernate.Session session)
Description copied from interface:SessionProvider
Retrieves a session by ID.- Specified by:
findSessionById
in interfaceSessionProvider
- Parameters:
id
- session ID to lookupsession
- active Hibernate session- Returns:
- See above.
-
findSessionById
public ome.model.meta.Session findSessionById(long id, ome.system.ServiceFactory sf)
Description copied from interface:SessionProvider
Retrieves a session by ID.- Specified by:
findSessionById
in interfaceSessionProvider
- Parameters:
id
- session ID to lookupsf
- active service factory- Returns:
- See above.
-
findSessionIdByUuid
public java.lang.Long findSessionIdByUuid(java.lang.String uuid, ome.system.ServiceFactory sf)
- Specified by:
findSessionIdByUuid
in interfaceSessionProvider
-
findSessionIdByUuid
public java.lang.Long findSessionIdByUuid(java.lang.String uuid)
- Specified by:
findSessionIdByUuid
in interfaceSessionProvider
-
isReadOnly
public boolean isReadOnly(ReadOnlyStatus readOnly)
- Specified by:
isReadOnly
in interfaceReadOnlyStatus.IsAware
- Parameters:
readOnly
- a read-only status, typically the current one- Returns:
- if that status puts this class into read-only mode
-
-