Package org.eclipse.emf.cdo.spi.server

## Interface InternalSessionManager

- All Superinterfaces:
    `org.eclipse.net4j.util.container.IContainer<ISession>`, `org.eclipse.net4j.util.concurrent.IExecutorServiceProvider`, `org.eclipse.net4j.util.event.INotifier`, `ISessionManager`

      public interface InternalSessionManager
      extends ISessionManager, org.eclipse.net4j.util.concurrent.IExecutorServiceProvider

  If the meaning of this type isn't clear, there really should be more of a description here...
  Since:
    3.0
  Author:
    Eike Stepper
  No Implement
    This interface is not intended to be implemented by clients.
  No Extend
    This interface is not intended to be extended by clients.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.eclipse.net4j.util.container.IContainer

      `org.eclipse.net4j.util.container.IContainer.Modifiable<E extends java.lang.Object>, org.eclipse.net4j.util.container.IContainer.Persistable<E extends java.lang.Object>, org.eclipse.net4j.util.container.IContainer.Persistence<E extends java.lang.Object>`

    - ### Nested classes/interfaces inherited from interface org.eclipse.net4j.util.event.INotifier

      `org.eclipse.net4j.util.event.INotifier.INotifier2`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.String` | `authenticateUser​(IAuthenticationProtocol sessionProtocol)` | Challenges the connected user to authenticate the connection.
    `void` | `changeUserCredentials​(IAuthenticationProtocol sessionProtocol, java.lang.String userID)` | Initiates the change-credentials protocol with the client and processes the client response to update the user's credentials.
    `org.eclipse.net4j.util.security.DiffieHellman.Server` | `getAuthenticationServer()` |
    `IPermissionManager` | `getPermissionManager()` |
    `InternalRepository` | `getRepository()` |
    `InternalSession` | `getSession​(int sessionID)` |
    `InternalSession[]` | `getSessions()` |
    `org.eclipse.net4j.util.security.IUserManager` | `getUserManager()` | Deprecated. As of 4.2 use `ISessionManager.getAuthenticator()`
    `void` | `openedOnClientSide​(InternalSession session)` |
    `InternalSession` | `openSession​(ISessionProtocol sessionProtocol)` |
    `InternalSession` | `openSession​(ISessionProtocol protocol, int sessionID)` |
    `void` | `resetUserCredentials​(IAuthenticationProtocol sessionProtocol, java.lang.String userID)` | Initiates the administrative reset-credentials protocol with the client and processes the client response to reset the specified `userID`'s credentials.
    `void` | `sendBranchNotification​(InternalSession sender, InternalCDOBranch branch)` | Deprecated. As of 4.3 use `sendBranchNotification(InternalSession, InternalCDOBranch, ChangeKind)`.
    `void` | `sendBranchNotification​(InternalSession sender, InternalCDOBranch branch, CDOBranchChangedEvent.ChangeKind changeKind)` |
    `void` | `sendCommitNotification​(CDOProtocol.CommitNotificationInfo info)` |
    `void` | `sendCommitNotification​(InternalSession sender, CDOCommitInfo commitInfo)` | Deprecated. As of 4.2 use `sendCommitNotification(InternalSession, CDOCommitInfo, boolean)`.
    `void` | `sendCommitNotification​(InternalSession sender, CDOCommitInfo commitInfo, boolean clearResourcePathCache)` | Deprecated. As of 4.3 use `sendCommitNotification(ISessionProtocol.CommitNotificationInfo)`.
    `void` | `sendLockNotification​(InternalSession sender, CDOLockChangeInfo lockChangeInfo)` |
    `java.util.List<java.lang.Integer>` | `sendRemoteMessageNotification​(InternalSession sender, CDORemoteSessionMessage message, int[] recipients)` |
    `void` | `sendRemoteSessionNotification​(InternalSession sender, byte opcode)` |
    `void` | `sendRepositoryStateNotification​(CDOCommonRepository.State oldState, CDOCommonRepository.State newState)` | Deprecated. use `sendRepositoryStateNotification(org.eclipse.emf.cdo.common.CDOCommonRepository.State, org.eclipse.emf.cdo.common.CDOCommonRepository.State, CDOID)` instead
    `void` | `sendRepositoryStateNotification​(CDOCommonRepository.State oldState, CDOCommonRepository.State newState, CDOID rootResourceID)` |
    `void` | `sendRepositoryTypeNotification​(CDOCommonRepository.Type oldType, CDOCommonRepository.Type newType)` |
    `void` | `sendTagNotification​(InternalSession sender, int modCount, java.lang.String oldName, java.lang.String newName, CDOBranchPoint branchPoint)` |
    `void` | `sessionClosed​(InternalSession session)` |
    `void` | `setAuthenticationServer​(org.eclipse.net4j.util.security.DiffieHellman.Server authenticationServer)` |
    `void` | `setPermissionManager​(IPermissionManager permissionManager)` |
    `void` | `setRepository​(InternalRepository repository)` |
    `void` | `setUserManager​(org.eclipse.net4j.util.security.IUserManager userManager)` | Deprecated. As of 4.2 use `ISessionManager.setAuthenticator(IAuthenticator)`

    - ### Methods inherited from interface org.eclipse.net4j.util.container.IContainer

      `getElements, isEmpty`

    - ### Methods inherited from interface org.eclipse.net4j.util.concurrent.IExecutorServiceProvider

      `getExecutorService`

    - ### Methods inherited from interface org.eclipse.net4j.util.event.INotifier

      `addListener, getListeners, hasListeners, removeListener`

    - ### Methods inherited from interface org.eclipse.emf.cdo.server.ISessionManager

      `getAuthenticator, setAuthenticator`

- - ### Method Detail

    - #### getRepository

          InternalRepository getRepository()

      Specified by:
        `getRepository` in interface `ISessionManager`

    - #### setRepository

          void setRepository​(InternalRepository repository)

    - #### getUserManager

          @Deprecated
          org.eclipse.net4j.util.security.IUserManager getUserManager()

      Deprecated.
      As of 4.2 use `ISessionManager.getAuthenticator()`
      Since:
        4.1

    - #### setUserManager

          @Deprecated
          void setUserManager​(org.eclipse.net4j.util.security.IUserManager userManager)

      Deprecated.
      As of 4.2 use `ISessionManager.setAuthenticator(IAuthenticator)`

    - #### getAuthenticationServer

          org.eclipse.net4j.util.security.DiffieHellman.Server getAuthenticationServer()

      Since:
        4.2

    - #### setAuthenticationServer

          void setAuthenticationServer​(org.eclipse.net4j.util.security.DiffieHellman.Server authenticationServer)

      Since:
        4.2

    - #### changeUserCredentials

          void changeUserCredentials​(IAuthenticationProtocol sessionProtocol,
                                     java.lang.String userID)

      Initiates the change-credentials protocol with the client and processes the client response to update the user's credentials.
      Since:
        4.3

    - #### resetUserCredentials

          void resetUserCredentials​(IAuthenticationProtocol sessionProtocol,
                                    java.lang.String userID)

      Initiates the administrative reset-credentials protocol with the client and processes the client response to reset the specified `userID`'s credentials.
      Since:
        4.3

    - #### authenticateUser

          java.lang.String authenticateUser​(IAuthenticationProtocol sessionProtocol)
                                     throws java.lang.SecurityException

      Challenges the connected user to authenticate the connection.
      Parameters:
        `sessionProtocol` - the authenticatable session protocol
      Returns:
        the user ID with which the user authenticated herself, or `null` if the server does not require authentication for this connection
      Throws:
        `java.lang.SecurityException` - on failure to authenticate
      Since:
        4.3

    - #### getPermissionManager

          IPermissionManager getPermissionManager()

      Since:
        4.1

    - #### setPermissionManager

          void setPermissionManager​(IPermissionManager permissionManager)

      Since:
        4.1

    - #### getSessions

          InternalSession[] getSessions()

      Specified by:
        `getSessions` in interface `ISessionManager`

    - #### getSession

          InternalSession getSession​(int sessionID)

      Specified by:
        `getSession` in interface `ISessionManager`

    - #### openSession

          InternalSession openSession​(ISessionProtocol sessionProtocol)

      Returns:
        Never `null`

    - #### openSession

          InternalSession openSession​(ISessionProtocol protocol,
                                      int sessionID)

      Returns:
        Never `null`
      Since:
        4.14

    - #### sessionClosed

          void sessionClosed​(InternalSession session)

    - #### openedOnClientSide

          void openedOnClientSide​(InternalSession session)

      Since:
        4.5

    - #### sendRepositoryTypeNotification

          void sendRepositoryTypeNotification​(CDOCommonRepository.Type oldType,
                                              CDOCommonRepository.Type newType)

    - #### sendRepositoryStateNotification

          @Deprecated
          void sendRepositoryStateNotification​(CDOCommonRepository.State oldState,
                                               CDOCommonRepository.State newState)

      Deprecated.
      use `sendRepositoryStateNotification(org.eclipse.emf.cdo.common.CDOCommonRepository.State, org.eclipse.emf.cdo.common.CDOCommonRepository.State, CDOID)` instead

    - #### sendRepositoryStateNotification

          void sendRepositoryStateNotification​(CDOCommonRepository.State oldState,
                                               CDOCommonRepository.State newState,
                                               CDOID rootResourceID)

      Since:
        4.1

    - #### sendBranchNotification

          @Deprecated
          void sendBranchNotification​(InternalSession sender,
                                      InternalCDOBranch branch)

      Deprecated.
      As of 4.3 use `sendBranchNotification(InternalSession, InternalCDOBranch, ChangeKind)`.

    - #### sendBranchNotification

          void sendBranchNotification​(InternalSession sender,
                                      InternalCDOBranch branch,
                                      CDOBranchChangedEvent.ChangeKind changeKind)

      Since:
        4.3

    - #### sendTagNotification

          void sendTagNotification​(InternalSession sender,
                                   int modCount,
                                   java.lang.String oldName,
                                   java.lang.String newName,
                                   CDOBranchPoint branchPoint)

      Since:
        4.10

    - #### sendCommitNotification

          @Deprecated
          void sendCommitNotification​(InternalSession sender,
                                      CDOCommitInfo commitInfo)

      Deprecated.
      As of 4.2 use `sendCommitNotification(InternalSession, CDOCommitInfo, boolean)`.

    - #### sendCommitNotification

          @Deprecated
          void sendCommitNotification​(InternalSession sender,
                                      CDOCommitInfo commitInfo,
                                      boolean clearResourcePathCache)

      Deprecated.
      As of 4.3 use `sendCommitNotification(ISessionProtocol.CommitNotificationInfo)`.
      Since:
        4.2

    - #### sendCommitNotification

          void sendCommitNotification​(CDOProtocol.CommitNotificationInfo info)

      Since:
        4.3

    - #### sendLockNotification

          void sendLockNotification​(InternalSession sender,
                                    CDOLockChangeInfo lockChangeInfo)

      Since:
        4.1

    - #### sendRemoteSessionNotification

          void sendRemoteSessionNotification​(InternalSession sender,
                                             byte opcode)

    - #### sendRemoteMessageNotification

          java.util.List<java.lang.Integer> sendRemoteMessageNotification​(InternalSession sender,
                                                                          CDORemoteSessionMessage message,
                                                                          int[] recipients)