SVNKit Home

## org.tmatesoft.svn.core.io
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){
             ...
         }

Version:
  1.1.1
Author:
  TMate Software Ltd.
See Also:
  `SVNRepository`, `SVNRepositoryFactory`

Field Summary
`static ISVNSession` `DEFAULT` The same as `KEEP_ALIVE`.
`static ISVNSession` `KEEP_ALIVE` A session options implementation that simply allows to keep a single connection alive for all data i/o.

Method Summary
`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` `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).
`void` `saveCommitMessage(SVNRepository repository, long revision, String message)` Caches a commit message for the given revision.

Field Detail

### KEEP_ALIVE

    public 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

    public static final ISVNSession DEFAULT

  The same as `KEEP_ALIVE`. Left for backward compatibility.

Method Detail

### keepConnection

    public 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

    public void saveCommitMessage(SVNRepository repository,
                                  long revision,
                                  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

    public 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

    public 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

SVNKit Home

Copyright © 2004-2008 TMate Software Ltd. All Rights Reserved.