org.infinispan.client.hotrod
Class RemoteCacheManager

java.lang.Object
  extended by org.infinispan.client.hotrod.RemoteCacheManager
All Implemented Interfaces:
Lifecycle, CacheContainer

public class RemoteCacheManager
extends Object
implements CacheContainer

Factory for RemoteCaches.

Lifecycle:

In order to be able to use an RemoteCache, the RemoteCacheManager must be started first: beside other things, this instantiates connections to Hot Rod server(s). Starting the RemoteCacheManager can be done either at creation by passing start==true to constructor or by using a constructor that does that for you (see C-tor documentation); or after construction by calling start().

This is an "expensive" object, as it manages a set of persistent TCP connections to the Hot Rod servers. It is recommended to only have one instance of this per JVM, and to cache it between calls to the server (i.e. remoteCache operations).

stop() needs to be called explicitly in order to release all the resources (e.g. threads, TCP connections).

Configuration:

The cache manager is configured through a Properties object passed to the constructor (there are also "simplified" constructors that rely on default values).

Below is the list of supported configuration elements:


The following properties are related to connection pooling:

Since:
4.1
Author:
Mircea.Markus@jboss.com

Field Summary
static String HOTROD_CLIENT_PROPERTIES
           
 
Fields inherited from interface org.infinispan.manager.CacheContainer
DEFAULT_CACHE_NAME
 
Constructor Summary
RemoteCacheManager()
          Same as RemoteCacheManager(boolean) and it also starts the cache.
RemoteCacheManager(boolean start)
          Same as RemoteCacheManager(java.util.Properties), but it will try to lookup the config properties in the classpath, in a file named hotrod-client.properties.
RemoteCacheManager(Marshaller marshaller, Properties props)
          Same as RemoteCacheManager(Marshaller, java.util.Properties, boolean) with start = true.
RemoteCacheManager(Marshaller marshaller, Properties props, boolean start)
          Builds a remote cache manager that relies on the provided Marshaller for marshalling keys and values to be send over to the remote Infinispan cluster.
RemoteCacheManager(Marshaller marshaller, Properties props, boolean start, ClassLoader classLoader)
          Builds a remote cache manager that relies on the provided Marshaller for marshalling keys and values to be send over to the remote Infinispan cluster.
RemoteCacheManager(Marshaller marshaller, Properties props, ClassLoader classLoader)
          Same as RemoteCacheManager(Marshaller, java.util.Properties, boolean) with start = true.
RemoteCacheManager(Properties props)
          Same as RemoteCacheManager(java.util.Properties, boolean), and it also starts the cache (start==true).
RemoteCacheManager(Properties props, boolean start)
          Build a cache manager based on supplied properties.
RemoteCacheManager(Properties props, boolean start, ClassLoader classLoader)
          Build a cache manager based on supplied properties.
RemoteCacheManager(Properties props, ClassLoader classLoader)
          Same as RemoteCacheManager(java.util.Properties, boolean), and it also starts the cache (start==true).
RemoteCacheManager(String servers)
          Same as RemoteCacheManager(String, boolean), with start=true.
RemoteCacheManager(String servers, boolean start)
          The given string should have the following structure: "host1:port2;host:port2...".
RemoteCacheManager(String servers, boolean start, ClassLoader classLoader)
          The given string should have the following structure: "host1:port2;host:port2...".
RemoteCacheManager(String servers, ClassLoader classLoader)
          Same as RemoteCacheManager(String, boolean), with start=true.
RemoteCacheManager(String host, int port)
          Same as RemoteCacheManager(String, int, boolean) with start=true.
RemoteCacheManager(String host, int port, boolean start)
          Creates a remote cache manager aware of the Hot Rod server listening at host:port.
RemoteCacheManager(String host, int port, boolean start, ClassLoader classLoader)
          Creates a remote cache manager aware of the Hot Rod server listening at host:port.
RemoteCacheManager(String host, int port, ClassLoader classLoader)
          Same as RemoteCacheManager(String, int, boolean) with start=true.
RemoteCacheManager(URL config)
          Same as RemoteCacheManager(java.net.URL) and it also starts the cache (start==true).
RemoteCacheManager(URL config, boolean start)
          Same as RemoteCacheManager(java.util.Properties), but it will try to lookup the config properties in supplied URL.
RemoteCacheManager(URL config, boolean start, ClassLoader classLoader)
          Same as RemoteCacheManager(java.util.Properties), but it will try to lookup the config properties in supplied URL.
RemoteCacheManager(URL config, ClassLoader classLoader)
          Same as RemoteCacheManager(java.net.URL) and it also starts the cache (start==true).
 
Method Summary
<K,V> RemoteCache<K,V>
getCache()
          Retrieves the default cache from the remote server.
<K,V> RemoteCache<K,V>
getCache(boolean forceReturnValue)
           
<K,V> RemoteCache<K,V>
getCache(String cacheName)
          Retrieves a named cache from the remote server if the cache has been defined, otherwise if the cache name is underfined, it will return null.
<K,V> RemoteCache<K,V>
getCache(String cacheName, boolean forceReturnValue)
           
 Properties getProperties()
          Retrieves a clone of the properties currently in use.
 boolean isStarted()
           
 void start()
           
 void stop()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

HOTROD_CLIENT_PROPERTIES

public static final String HOTROD_CLIENT_PROPERTIES
See Also:
Constant Field Values
Constructor Detail

RemoteCacheManager

public RemoteCacheManager(Marshaller marshaller,
                          Properties props,
                          boolean start)
Builds a remote cache manager that relies on the provided Marshaller for marshalling keys and values to be send over to the remote Infinispan cluster.

Parameters:
marshaller - marshaller implementation to be used
props - other properties
start - weather or not to start the manager on return from the constructor.

RemoteCacheManager

public RemoteCacheManager(Marshaller marshaller,
                          Properties props,
                          boolean start,
                          ClassLoader classLoader)
Builds a remote cache manager that relies on the provided Marshaller for marshalling keys and values to be send over to the remote Infinispan cluster.

Parameters:
marshaller - marshaller implementation to be used
props - other properties
start - weather or not to start the manager on return from the constructor.

RemoteCacheManager

public RemoteCacheManager(Marshaller marshaller,
                          Properties props)
Same as RemoteCacheManager(Marshaller, java.util.Properties, boolean) with start = true.


RemoteCacheManager

public RemoteCacheManager(Marshaller marshaller,
                          Properties props,
                          ClassLoader classLoader)
Same as RemoteCacheManager(Marshaller, java.util.Properties, boolean) with start = true.


RemoteCacheManager

public RemoteCacheManager(Properties props,
                          boolean start)
Build a cache manager based on supplied properties.


RemoteCacheManager

public RemoteCacheManager(Properties props,
                          boolean start,
                          ClassLoader classLoader)
Build a cache manager based on supplied properties.


RemoteCacheManager

public RemoteCacheManager(Properties props)
Same as RemoteCacheManager(java.util.Properties, boolean), and it also starts the cache (start==true).


RemoteCacheManager

public RemoteCacheManager(Properties props,
                          ClassLoader classLoader)
Same as RemoteCacheManager(java.util.Properties, boolean), and it also starts the cache (start==true).


RemoteCacheManager

public RemoteCacheManager(boolean start)
Same as RemoteCacheManager(java.util.Properties), but it will try to lookup the config properties in the classpath, in a file named hotrod-client.properties. If no properties can be found in the classpath, the server tries to connect to "127.0.0.1:11222" in start.

Parameters:
start - weather or not to start the RemoteCacheManager
Throws:
HotRodClientException - if such a file cannot be found in the classpath

RemoteCacheManager

public RemoteCacheManager()
Same as RemoteCacheManager(boolean) and it also starts the cache.


RemoteCacheManager

public RemoteCacheManager(String host,
                          int port,
                          boolean start)
Creates a remote cache manager aware of the Hot Rod server listening at host:port.

Parameters:
start - weather or not to start the RemoteCacheManager.

RemoteCacheManager

public RemoteCacheManager(String host,
                          int port,
                          boolean start,
                          ClassLoader classLoader)
Creates a remote cache manager aware of the Hot Rod server listening at host:port.

Parameters:
start - weather or not to start the RemoteCacheManager.

RemoteCacheManager

public RemoteCacheManager(String host,
                          int port)
Same as RemoteCacheManager(String, int, boolean) with start=true.


RemoteCacheManager

public RemoteCacheManager(String host,
                          int port,
                          ClassLoader classLoader)
Same as RemoteCacheManager(String, int, boolean) with start=true.


RemoteCacheManager

public RemoteCacheManager(String servers,
                          boolean start)
The given string should have the following structure: "host1:port2;host:port2...". Every host:port defines a server.


RemoteCacheManager

public RemoteCacheManager(String servers,
                          boolean start,
                          ClassLoader classLoader)
The given string should have the following structure: "host1:port2;host:port2...". Every host:port defines a server.


RemoteCacheManager

public RemoteCacheManager(String servers)
Same as RemoteCacheManager(String, boolean), with start=true.


RemoteCacheManager

public RemoteCacheManager(String servers,
                          ClassLoader classLoader)
Same as RemoteCacheManager(String, boolean), with start=true.


RemoteCacheManager

public RemoteCacheManager(URL config,
                          boolean start)
Same as RemoteCacheManager(java.util.Properties), but it will try to lookup the config properties in supplied URL.

Parameters:
start - weather or not to start the RemoteCacheManager
Throws:
HotRodClientException - if properties could not be loaded

RemoteCacheManager

public RemoteCacheManager(URL config,
                          boolean start,
                          ClassLoader classLoader)
Same as RemoteCacheManager(java.util.Properties), but it will try to lookup the config properties in supplied URL.

Parameters:
start - weather or not to start the RemoteCacheManager
Throws:
HotRodClientException - if properties could not be loaded

RemoteCacheManager

public RemoteCacheManager(URL config)
Same as RemoteCacheManager(java.net.URL) and it also starts the cache (start==true).

Parameters:
config -

RemoteCacheManager

public RemoteCacheManager(URL config,
                          ClassLoader classLoader)
Same as RemoteCacheManager(java.net.URL) and it also starts the cache (start==true).

Parameters:
config -
Method Detail

getProperties

public Properties getProperties()
Retrieves a clone of the properties currently in use. Note that making any changes to the properties instance retrieved will not affect an already-running RemoteCacheManager. If you wish to make changes to an already-running RemoteCacheManager, you should use the following pattern: Properties p = remoteCacheManager.getProperties(); // update properties remoteCacheManager.stop(); remoteCacheManager = new RemoteCacheManager(p);

Returns:
a clone of the properties used to configure this RemoteCacheManager
Since:
4.2

getCache

public <K,V> RemoteCache<K,V> getCache(String cacheName)
Retrieves a named cache from the remote server if the cache has been defined, otherwise if the cache name is underfined, it will return null.

Specified by:
getCache in interface CacheContainer
Parameters:
cacheName - name of cache to retrieve
Returns:
a cache instance identified by cacheName or null if the cache name has not been defined

getCache

public <K,V> RemoteCache<K,V> getCache(String cacheName,
                                       boolean forceReturnValue)

getCache

public <K,V> RemoteCache<K,V> getCache()
Retrieves the default cache from the remote server.

Specified by:
getCache in interface CacheContainer
Returns:
a remote cache instance that can be used to send requests to the default cache in the server

getCache

public <K,V> RemoteCache<K,V> getCache(boolean forceReturnValue)

start

public void start()
Specified by:
start in interface Lifecycle

stop

public void stop()
Specified by:
stop in interface Lifecycle

isStarted

public boolean isStarted()

-->

Copyright © 2011 JBoss, a division of Red Hat. All Rights Reserved.