org.tmatesoft.svn.core.io
Interface ISVNSession
- 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){
...
}
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.
|
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.
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.
repository - an SVNRepository driver (to distinguish
that repository for which a commit message is requested)revision - a revision number
- the commit message for
revision
hasCommitMessage
public boolean hasCommitMessage(SVNRepository repository,
long revision) Checks if there's a commit message in cache for a particular repository
and revision.
repository - an SVNRepository driver (to distinguish
that repository for which a commit message is requested)revision - a revision number
- true if the cache
has got a message for the given repository and revision,
false otherwise
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.
repository - an SVNRepository driver
- 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.
repository - an SVNRepository driver (to distinguish
that repository for which this message is actual)revision - a revision numbermessage - the commit message for revision
Copyright © 2004-2006 TMate Software Ltd. All Rights Reserved.