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
    Author:
    TMate Software Ltd.
    See Also:
    SVNRepository, SVNRepositoryFactory
    • Field Detail

      • 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.
    • Method Detail

      • 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(SVNRepository, long)
      • 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:
        saveCommitMessage(SVNRepository, long, String)
      • 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