SVNKit Home

## org.tmatesoft.svn.core.wc
Class SVNClientManager

    java.lang.Object
      org.tmatesoft.svn.core.wc.SVNClientManager

All Implemented Interfaces:
  ISVNRepositoryPool

public class SVNClientManager
extends Object
implements ISVNRepositoryPool

The SVNClientManager class is used to manage SVN*Client objects as well as for providing them to a user what makes the user's work easier and his code - pretty clear and flexible.

When you don't have special needs to create, keep and manage separate SVN*Client objects by yourself, you should use SVNClientManager that takes care of all that work for you. These are some of advantages of using SVNClientManager:

1. If you instantiate an SVN*Client object by yourself you need to provide a run-time configuration driver - `ISVNOptions` - as well as an authentication and network layers driver - `ISVNAuthenticationManager`. When using an SVNClientManager you have multiple choices to provide and use those drivers:

            //1.default options and authentication drivers to use
            SVNClientManager clientManager = SVNClientManager.newInstance();

            ...

            //2.provided options and default authentication drivers to use
            ISVNOptions myOptions;
            ...
            SVNClientManager clientManager = SVNClientManager.newInstance(myOptions);

            ...

            //3.provided options and authentication drivers to use
            ISVNOptions myOptions;
            ISVNAuthenticationManager myAuthManager;
            ...
            SVNClientManager clientManager = SVNClientManager.newInstance(myOptions, myAuthManager);

            ...

            //4.provided options driver and user's credentials to make
            //a default authentication driver use them
            ISVNOptions myOptions;
            ...
            SVNClientManager
                clientManager = SVNClientManager.newInstance(myOptions, "name", "passw");

   Having instantiated an SVNClientManager in one of these ways, all the SVN*Client objects it will provide you will share those drivers, so you don't need to code much to provide the same drivers to each SVN*Client instance by yourself.
2. With SVNClientManager you don't need to create and keep your SVN*Client objects by youself - SVNClientManager will do all the work for you, so this will certainly bring down your efforts on coding and your code will be clearer and more flexible. All you need is to create an SVNClientManager instance.
3. Actually every SVN*Client object is instantiated only at the moment of the first call to an appropriate SVNClientManager's `get` method:

            SVNClientManager clientManager;
            ...
            //an update client will be created only at that moment when you
            //first call this method for getting your update client, but if you
            //have already called it once before, then the method will return
            //that update client object instantiated in previous... so, it's
            //quite cheap, you see..
            SVNUpdateClient updateClient = clientManager.getUpdateClient();

4. You can provide a single event handler that will be used by all SVN*Client objects provided by SVNClientManager:

        import org.tmatesoft.svn.core.wc.ISVNEventHandler;

            ...

            ISVNEventHandler commonEventHandler;
            SVNClientManager clientManager = SVNClientManager.newInstance();
            ...
            //will be used by all SVN*Client objects
            //obtained from your client manager
            clientManager.setEventHandler(commonEventHandler);

Version:
  1.1.1
Author:
  TMate Software Ltd.
See Also:
  `ISVNEventHandler`, Examples

Method Summary
`SVNRepository` `createRepository(SVNURL url, boolean mayReuse)` Creates a low-level SVN protocol driver to directly work with a repository.
`void` `dispose()`
`SVNAdminClient` `getAdminClient()` Returns an instance of the `SVNAdminClient` class.
`SVNCommitClient` `getCommitClient()` Returns an instance of the `SVNCommitClient` class.
`SVNCopyClient` `getCopyClient()` Returns an instance of the `SVNCopyClient` class.
`org.tmatesoft.svn.util.ISVNDebugLog` `getDebugLog()` Returns the debug logger currently in use.
`SVNDiffClient` `getDiffClient()` Returns an instance of the `SVNDiffClient` class.
`SVNLogClient` `getLogClient()` Returns an instance of the `SVNLogClient` class.
`SVNLookClient` `getLookClient()` Returns an instance of the `SVNLookClient` class.
`SVNMoveClient` `getMoveClient()` Returns an instance of the `SVNMoveClient` class.
`ISVNOptions` `getOptions()` Returns the run-time configuration options driver which kept by this object.
`SVNStatusClient` `getStatusClient()` Returns an instance of the `SVNStatusClient` class.
`SVNUpdateClient` `getUpdateClient()` Returns an instance of the `SVNUpdateClient` class.
`SVNWCClient` `getWCClient()` Returns an instance of the `SVNWCClient` class.
`static SVNClientManager` `newInstance()` Creates a new instance of this class using default `ISVNOptions` and `ISVNAuthenticationManager` drivers.
`static SVNClientManager` `newInstance(ISVNOptions options)` Creates a new instance of this class using the provided `ISVNOptions` and default `ISVNAuthenticationManager` drivers.
`static SVNClientManager` `newInstance(ISVNOptions options, ISVNAuthenticationManager authManager)` Creates a new instance of this class using the provided `ISVNOptions` and `ISVNAuthenticationManager` drivers.
`static SVNClientManager` `newInstance(ISVNOptions options, ISVNRepositoryPool repositoryPool)` Creates a new instance of this class using the provided config driver and creator of of SVNRepository objects.
`static SVNClientManager` `newInstance(ISVNOptions options, String userName, String password)` Creates a new instance of this class using the provided `ISVNOptions` driver and user's credentials to make a default implementation of `ISVNAuthenticationManager` use them.
`void` `setAuthenticationManager(ISVNAuthenticationManager authManager)` Updates authentication manager instance referenced by SVNRepository objects currently in the pool.
`void` `setCanceller(ISVNCanceller canceller)` Updates canceller instance referenced by SVNRepository objects currently in the pool.
`void` `setDebugLog(org.tmatesoft.svn.util.ISVNDebugLog log)` Sets a logger to write debug log information to.
`void` `setEventHandler(ISVNEventHandler handler)` Sets an event handler to all SVN*Client objects created and kept by this SVNClientManager.
`void` `setOptions(ISVNOptions options)`
`void` `shutdownConnections(boolean shutdownAll)` Forces cached SVNRepository driver objects to close their socket connections.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### newInstance

    public static SVNClientManager newInstance()

  Creates a new instance of this class using default `ISVNOptions` and `ISVNAuthenticationManager` drivers. That means this SVNClientManager will use the SVN's default run-time configuration area.

  Returns:
    a new SVNClientManager instance

### newInstance

    public static SVNClientManager newInstance(ISVNOptions options)

  Creates a new instance of this class using the provided `ISVNOptions` and default `ISVNAuthenticationManager` drivers. That means this SVNClientManager will use the caller's configuration options (which correspond to options found in the default SVN's config file) and the default SVN's servers configuration and auth storage.

  Parameters:
    `options` - a config driver
  Returns:
    a new SVNClientManager instance

### newInstance

    public static SVNClientManager newInstance(ISVNOptions options,
                                               ISVNAuthenticationManager authManager)

  Creates a new instance of this class using the provided `ISVNOptions` and `ISVNAuthenticationManager` drivers. That means this SVNClientManager will use the caller's configuration options (which correspond to options found in the default SVN's config file) as well as authentication credentials and servers options (similar to options found in the default SVN's servers).

  Parameters:
    `options` - a config driver
    `authManager` - an authentication driver
  Returns:
    a new SVNClientManager instance

### newInstance

    public static SVNClientManager newInstance(ISVNOptions options,
                                               ISVNRepositoryPool repositoryPool)

  Creates a new instance of this class using the provided config driver and creator of of SVNRepository objects.

  Parameters:
    `options` - a config driver
    `repositoryPool` - a creator of SVNRepository objects
  Returns:
    a new SVNClientManager instance

### newInstance

    public static SVNClientManager newInstance(ISVNOptions options,
                                               String userName,
                                               String password)

  Creates a new instance of this class using the provided `ISVNOptions` driver and user's credentials to make a default implementation of `ISVNAuthenticationManager` use them. That means this SVNClientManager will use the caller's configuration options (which correspond to options found in the default SVN's config file), the default SVN's servers configuration and the caller's credentials.

  Parameters:
    `options` - a config driver
    `userName` - a user account name
    `password` - a user password
  Returns:
    a new SVNClientManager instance

### createRepository

    public SVNRepository createRepository(SVNURL url,
                                          boolean mayReuse)
                                   throws SVNException

  Creates a low-level SVN protocol driver to directly work with a repository.

  The driver created will be set a default `ISVNAuthenticationManager` manager.

  Used by SVN*Client objects (managed by this SVNClientManager) to access a repository when needed.

  Specified by:
    `createRepository` in interface `ISVNRepositoryPool`
  Parameters:
    `url` - a repository location to establish a connection with (will be the root directory for the working session)
    `mayReuse` - if true then tries first tries to find a reusable driver or creates a new reusable one
  Returns:
    a low-level API driver for direct interacting with a repository
  Throws:
    `SVNException`
  See Also:
    `DefaultSVNRepositoryPool.createRepository(SVNURL, boolean)`

### shutdownConnections

    public void shutdownConnections(boolean shutdownAll)

  Description copied from interface: `ISVNRepositoryPool`
  Forces cached SVNRepository driver objects to close their socket connections.

  A default implementation DefaultSVNRepositoryPool is able to cache SVNRepository objects in a common pool shared between multiple threads. This method allows to close connections of all the cached objects.

  Specified by:
    `shutdownConnections` in interface `ISVNRepositoryPool`
  Parameters:
    `shutdownAll` - if true - closes connections of all the SVNRepository objects, if false - connections of only some part of SVNRepository objects (for example, those, that are not needed anymore)
  See Also:
    `DefaultSVNRepositoryPool`

### dispose

    public void dispose()

  Specified by:
    `dispose` in interface `ISVNRepositoryPool`

### getOptions

    public ISVNOptions getOptions()

  Returns the run-time configuration options driver which kept by this object.

  Returns:
    a run-time options driver

### setEventHandler

    public void setEventHandler(ISVNEventHandler handler)

  Sets an event handler to all SVN*Client objects created and kept by this SVNClientManager.

  The provided event handler will be set only to only those objects that have been already created (SVN*Client objects are instantiated by an SVNClientManager at the moment of the first call to a `get*Client()` method). So, the handler won't be set for those ones that have never been requested. However as they are first requested (and thus created) the handler will be set to them, too, since SVNClientManager is still keeping the handler.

  Parameters:
    `handler` - an event handler

### setOptions

    public void setOptions(ISVNOptions options)

### getCommitClient

    public SVNCommitClient getCommitClient()

  Returns an instance of the `SVNCommitClient` class.

  If it's the first time this method is being called the object is created, initialized and then returned. Further calls to this method will get the same object instantiated at that moment of the first call. SVNClientManager does not reinstantiate its SVN*Client objects.

  Returns:
    an SVNCommitClient instance

### getAdminClient

    public SVNAdminClient getAdminClient()

  Returns an instance of the `SVNAdminClient` class.

  If it's the first time this method is being called the object is created, initialized and then returned. Further calls to this method will get the same object instantiated at that moment of the first call. SVNClientManager does not reinstantiate its SVN*Client objects.

  Returns:
    an SVNAdminClient instance

### getLookClient

    public SVNLookClient getLookClient()

  Returns an instance of the `SVNLookClient` class.

  If it's the first time this method is being called the object is created, initialized and then returned. Further calls to this method will get the same object instantiated at that moment of the first call. SVNClientManager does not reinstantiate its SVN*Client objects.

  Returns:
    an SVNLookClient instance

### getCopyClient

    public SVNCopyClient getCopyClient()

  Returns an instance of the `SVNCopyClient` class.

  If it's the first time this method is being called the object is created, initialized and then returned. Further calls to this method will get the same object instantiated at that moment of the first call. SVNClientManager does not reinstantiate its SVN*Client objects.

  Returns:
    an SVNCopyClient instance

### getDiffClient

    public SVNDiffClient getDiffClient()

  Returns an instance of the `SVNDiffClient` class.

  If it's the first time this method is being called the object is created, initialized and then returned. Further calls to this method will get the same object instantiated at that moment of the first call. SVNClientManager does not reinstantiate its SVN*Client objects.

  Returns:
    an SVNDiffClient instance

### getLogClient

    public SVNLogClient getLogClient()

  Returns an instance of the `SVNLogClient` class.

  If it's the first time this method is being called the object is created, initialized and then returned. Further calls to this method will get the same object instantiated at that moment of the first call. SVNClientManager does not reinstantiate its SVN*Client objects.

  Returns:
    an SVNLogClient instance

### getMoveClient

    public SVNMoveClient getMoveClient()

  Returns an instance of the `SVNMoveClient` class.

  If it's the first time this method is being called the object is created, initialized and then returned. Further calls to this method will get the same object instantiated at that moment of the first call. SVNClientManager does not reinstantiate its SVN*Client objects.

  Returns:
    an SVNMoveClient instance

### getStatusClient

    public SVNStatusClient getStatusClient()

  Returns an instance of the `SVNStatusClient` class.

  If it's the first time this method is being called the object is created, initialized and then returned. Further calls to this method will get the same object instantiated at that moment of the first call. SVNClientManager does not reinstantiate its SVN*Client objects.

  Returns:
    an SVNStatusClient instance

### getUpdateClient

    public SVNUpdateClient getUpdateClient()

  Returns an instance of the `SVNUpdateClient` class.

  If it's the first time this method is being called the object is created, initialized and then returned. Further calls to this method will get the same object instantiated at that moment of the first call. SVNClientManager does not reinstantiate its SVN*Client objects.

  Returns:
    an SVNUpdateClient instance

### getWCClient

    public SVNWCClient getWCClient()

  Returns an instance of the `SVNWCClient` class.

  If it's the first time this method is being called the object is created, initialized and then returned. Further calls to this method will get the same object instantiated at that moment of the first call. SVNClientManager does not reinstantiate its SVN*Client objects.

  Returns:
    an SVNWCClient instance

### getDebugLog

    public org.tmatesoft.svn.util.ISVNDebugLog getDebugLog()

  Returns the debug logger currently in use.

  If no debug logger has been specified by the time this call occurs, a default one (returned by `org.tmatesoft.svn.util.SVNDebugLog.getDefaultLog()`) will be created and used.

  Returns:
    a debug logger

### setDebugLog

    public void setDebugLog(org.tmatesoft.svn.util.ISVNDebugLog log)

  Sets a logger to write debug log information to. Sets this same logger object to all SVN*Client objects instantiated by this moment.

  Specified by:
    `setDebugLog` in interface `ISVNRepositoryPool`
  Parameters:
    `log` - a debug logger

### setAuthenticationManager

    public void setAuthenticationManager(ISVNAuthenticationManager authManager)

  Description copied from interface: `ISVNRepositoryPool`
  Updates authentication manager instance referenced by SVNRepository objects currently in the pool.

  Specified by:
    `setAuthenticationManager` in interface `ISVNRepositoryPool`

### setCanceller

    public void setCanceller(ISVNCanceller canceller)

  Description copied from interface: `ISVNRepositoryPool`
  Updates canceller instance referenced by SVNRepository objects currently in the pool.

  Specified by:
    `setCanceller` in interface `ISVNRepositoryPool`

SVNKit Home

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