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.
Version:
$Id: SessionProvider.java 34445 2009-07-24 07:51:18Z dkatayev $
Author:
Gennady Azarenkov
eXo level API
Platform
  • Field Details

    • LOG

      protected static final org.exoplatform.services.log.Log LOG
    • SESSION_PROVIDER

      public static final String 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

      public static SessionProvider createSystemProvider()
      Helper for creating System session provider.
      Returns:
      a system session provider
    • createAnonimProvider

      public static SessionProvider 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 a SessionProvider for a given list of AccessControlEntry.
      Parameters:
      accessList - list of AccessControlEntry
      Returns:
      a SessionProvider allowing 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 name
      repository - 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 workspace
      javax.jcr.NoSuchWorkspaceException - if the requested workspace doesn't exist
      javax.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:
      onCloseSession in interface org.exoplatform.services.jcr.core.SessionLifecycleListener
    • getCurrentRepository

      public org.exoplatform.services.jcr.core.ManageableRepository getCurrentRepository()
      Returns:
      returns the current Repository
    • getCurrentWorkspace

      public String 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

      public void setCurrentWorkspace(String currentWorkspace)
      Sets the current Workspace
      Parameters:
      currentWorkspace - the current workspace