Class SessionProvider
java.lang.Object
org.exoplatform.services.jcr.ext.common.SessionProvider
- All Implemented Interfaces:
org.exoplatform.services.jcr.core.SessionLifecycleListener
public class SessionProvider
extends Object
implements org.exoplatform.services.jcr.core.SessionLifecycleListener
Created by The eXo Platform SAS
Provides JCR Session for client program. Usually it is per client thread object Session creates with Repository.login(..) method and then can be stored in some cache if neccessary.
Provides JCR Session for client program. Usually it is per client thread object Session creates with Repository.login(..) method and then can be stored in some cache if neccessary.
- Version:
- $Id: SessionProvider.java 34445 2009-07-24 07:51:18Z dkatayev $
- Author:
- Gennady Azarenkov
- eXo level API
- Platform
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final org.exoplatform.services.log.Logstatic final StringConstant for handlers. -
Constructor Summary
ConstructorsConstructorDescriptionSessionProvider(org.exoplatform.services.security.ConversationState userState) Creates SessionProvider for certain identity. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Calls logout() method for all cached sessions.static SessionProviderHelper for creating Anonymous session provider.static SessionProvidercreateProvider(List<org.exoplatform.services.jcr.access.AccessControlEntry> accessList) Gives aSessionProviderfor a given list ofAccessControlEntry.static SessionProviderHelper for creating System session provider.org.exoplatform.services.jcr.core.ManageableRepositoryjavax.jcr.SessiongetSession(String workspaceName, org.exoplatform.services.jcr.core.ManageableRepository repository) Gets the session from an internal cache if a similar session has already been used or creates a new session and puts it into the internal cache.voidonCloseSession(org.exoplatform.services.jcr.core.ExtendedSession session) voidsetCurrentRepository(org.exoplatform.services.jcr.core.ManageableRepository currentRepository) Sets the current repository Repository.voidsetCurrentWorkspace(String currentWorkspace) Sets the current Workspace
-
Field Details
-
LOG
protected static final org.exoplatform.services.log.Log LOG -
SESSION_PROVIDER
Constant for handlers.- See Also:
-
-
Constructor Details
-
SessionProvider
public SessionProvider(org.exoplatform.services.security.ConversationState userState) Creates SessionProvider for certain identity.- Parameters:
userState-
-
-
Method Details
-
createSystemProvider
Helper for creating System session provider.- Returns:
- a system session provider
-
createAnonimProvider
Helper for creating Anonymous session provider.- Returns:
- an anonymous session provider
-
createProvider
public static SessionProvider createProvider(List<org.exoplatform.services.jcr.access.AccessControlEntry> accessList) Gives aSessionProviderfor a given list ofAccessControlEntry.- Parameters:
accessList- list ofAccessControlEntry- Returns:
- a
SessionProviderallowing to provide sessions with the corresponding ACL.
-
getSession
public javax.jcr.Session getSession(String workspaceName, org.exoplatform.services.jcr.core.ManageableRepository repository) throws javax.jcr.LoginException, javax.jcr.NoSuchWorkspaceException, javax.jcr.RepositoryException Gets the session from an internal cache if a similar session has already been used or creates a new session and puts it into the internal cache.- Parameters:
workspaceName- the workspace namerepository- the repository instance- Returns:
- a session corresponding to the given repository and workspace
- Throws:
javax.jcr.LoginException- if an error occurs while trying to login to the workspacejavax.jcr.NoSuchWorkspaceException- if the requested workspace doesn't existjavax.jcr.RepositoryException- if any error occurs
-
close
public void close()Calls logout() method for all cached sessions. Session will be removed from cache by the listener (this provider) via ExtendedSession.logout(). -
onCloseSession
public void onCloseSession(org.exoplatform.services.jcr.core.ExtendedSession session) - Specified by:
onCloseSessionin interfaceorg.exoplatform.services.jcr.core.SessionLifecycleListener
-
getCurrentRepository
public org.exoplatform.services.jcr.core.ManageableRepository getCurrentRepository()- Returns:
- returns the current Repository
-
getCurrentWorkspace
- Returns:
- returns the current Workspace
-
setCurrentRepository
public void setCurrentRepository(org.exoplatform.services.jcr.core.ManageableRepository currentRepository) Sets the current repository Repository.- Parameters:
currentRepository- the current repository
-
setCurrentWorkspace
Sets the current Workspace- Parameters:
currentWorkspace- the current workspace
-