Interface ISVNSession

All Known Implementing Classes:
DefaultSVNRepositoryPool

public interface ISVNSession
The ISVNSession interface provides some extra handling operations over SVNRepository objects.

For remote accessing a repository (via svn:// and http://) SVNRepository drivers open socket connections to write and read data from. Session objects (implementing ISVNSession) may enable an SVNRepository object to use a single socket connection during the whole runtime, or, as an alternative, to use a new socket connection per each repository access operation (this slows the speed of operation execution since the operation needs some extra time for opening and closing a socket).

Also ISVNSession allows to cache and retrieve commit messages during runtime.

How to set a session object for an SVNRepository driver:

 import org.tmatesoft.svn.core.io.ISVNSession;
 import org.tmatesoft.svn.core.io.SVNRepositoryFactory;
 import org.tmatesoft.svn.core.io.SVNRepository;
 import org.tmatesoft.svn.core.SVNURL;
 ...
 
     ISVNSession session;
     ...
     SVNURL url = SVNURL.parseURIEncoded("svn://host/path/to/repos");
     try{
         SVNRepository repository = SVNRepositoryFactory.create(url, session);
         ...
     }catch(SVNException svne){
         ...
     }

Since:
1.2
Version:
1.3
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final ISVNSession
    The same as KEEP_ALIVE.
    static final ISVNSession
    A session options implementation that simply allows to keep a single connection alive for all data i/o.
  • Method Summary

    Modifier and Type
    Method
    Description
    java.lang.String
    getCommitMessage(SVNRepository repository, long revision)
    Retrieves the cached commit message for a particular revision.
    boolean
    hasCommitMessage(SVNRepository repository, long revision)
    Checks if there's a commit message in cache for a particular repository and revision.
    boolean
    Says if the given SVNRepository object should use a single socket connection (not to open/close a new one for each operation).
    void
    saveCommitMessage(SVNRepository repository, long revision, java.lang.String message)
    Caches a commit message for the given revision.
  • Field Details

    • KEEP_ALIVE

      static final ISVNSession KEEP_ALIVE
      A session options implementation that simply allows to keep a single connection alive for all data i/o. This implementation does not cache commit messages.
    • DEFAULT

      static final ISVNSession DEFAULT
      The same as KEEP_ALIVE. Left for backward compatibility.
  • Method Details

    • keepConnection

      boolean keepConnection(SVNRepository repository)
      Says if the given SVNRepository object should use a single socket connection (not to open/close a new one for each operation). This will certainly improve the SVNRepository object's methods performance speed.

      For examlpe, a session object may hold a number of SVNRepository object references knowing for everyone of them if it should keep a single connection or not.

      Parameters:
      repository - an SVNRepository driver
      Returns:
      true if repository should use a single socket connection during the whole runtime, false - to open/close a new connection for each repository access operation
    • saveCommitMessage

      void saveCommitMessage(SVNRepository repository, long revision, java.lang.String message)
      Caches a commit message for the given revision.
      Parameters:
      repository - an SVNRepository driver (to distinguish that repository for which this message is actual)
      revision - a revision number
      message - the commit message for revision
      See Also:
    • getCommitMessage

      java.lang.String getCommitMessage(SVNRepository repository, long revision)
      Retrieves the cached commit message for a particular revision. Use getCommitMessage() to check if there's a message in cache.
      Parameters:
      repository - an SVNRepository driver (to distinguish that repository for which a commit message is requested)
      revision - a revision number
      Returns:
      the commit message for revision
      See Also:
    • hasCommitMessage

      boolean hasCommitMessage(SVNRepository repository, long revision)
      Checks if there's a commit message in cache for a particular repository and revision.
      Parameters:
      repository - an SVNRepository driver (to distinguish that repository for which a commit message is requested)
      revision - a revision number
      Returns:
      true if the cache has got a message for the given repository and revision, false otherwise