Overview | Package | Class | Tree | Deprecated | Index | Help
| JavaSVN Home
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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.0
Author:
  TMate Software Ltd.
See Also:
  `SVNRepository`, `SVNRepositoryFactory`

Field Summary
`static ISVNSession` | `DEFAULT` A default implementation of the ISVNSession interface that does not allow to use a single socket connection and does not cache commit messages.
`static ISVNSession` | `KEEP_ALIVE`

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

### DEFAULT

    public static final ISVNSession DEFAULT

  A default implementation of the ISVNSession interface that does not allow to use a single socket connection and does not cache commit messages.

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

Overview | Package | Class | Tree | Deprecated | Index | Help
| JavaSVN Home
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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