Interface ISVNSession
- All Known Implementing Classes:
DefaultSVNRepositoryPool
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
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final ISVNSession
The same asKEEP_ALIVE
.static final ISVNSession
A session options implementation that simply allows to keep a single connection alive for all data i/o. -
Method Summary
Modifier and TypeMethodDescriptiongetCommitMessage
(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 Details
-
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
The same asKEEP_ALIVE
. Left for backward compatibility.
-
-
Method Details
-
keepConnection
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
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
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:
-
hasCommitMessage
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
-