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://
andhttp://
) 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 Summary
Fields Modifier and Type Field Description static ISVNSession
DEFAULT
The same asKEEP_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
All Methods Instance Methods Abstract Methods 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
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, java.lang.String message)
Caches a commit message for the given revision.
-
-
-
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.
-
DEFAULT
static final ISVNSession DEFAULT
The same asKEEP_ALIVE
. Left for backward compatibility.
-
-
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 numbermessage
- the commit message forrevision
- See Also:
getCommitMessage(SVNRepository, long)
-
getCommitMessage
java.lang.String getCommitMessage(SVNRepository repository, long revision)
Retrieves the cached commit message for a particular revision. UsegetCommitMessage()
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
-
-