ehcache

net.sf.ehcache.distribution
Class RMICachePeer

java.lang.Object
  extended byjava.rmi.server.RemoteObject
      extended byjava.rmi.server.RemoteServer
          extended byjava.rmi.server.UnicastRemoteObject
              extended bynet.sf.ehcache.distribution.RMICachePeer
All Implemented Interfaces:
CachePeer, java.rmi.Remote, java.io.Serializable

public class RMICachePeer
extends java.rmi.server.UnicastRemoteObject
implements CachePeer, java.rmi.Remote

An RMI based implementation of CachePeer.

This class features a customised RMIClientSocketFactory which enables socket timeouts to be configured.

Version:
$Id: RMICachePeer.java 52 2006-04-24 14:50:03Z gregluck $
Author:
Greg Luck
See Also:
Serialized Form

Field Summary
 
Fields inherited from class java.rmi.server.RemoteObject
ref
 
Constructor Summary
RMICachePeer(Cache cache, java.lang.String hostName, java.lang.Integer port, java.lang.Integer socketTimeoutMillis)
          Construct a new remote peer.
 
Method Summary
 java.lang.String getGuid()
          Gets the globally unique id for the underlying Cache instance.
 java.lang.String getName()
          Gets the cache name
 java.lang.String getUrl()
          The URL for the remote replicator to connect. The value will only have meaning for a specific implementation of replicator and remote peer.

This method is not meant to be used remotely. The replicator already needs to know this. It has to throw RemoteException to comply with RMI requirements

This implementation gives an URL which has meaning to the RMI remoting system.

 java.lang.String getUrlBase()
          The URL base for the remote replicator to connect. The value will have meaning only to a specific implementation of replicator and remote peer.

This implementation gives an URL which has meaning to the RMI remoting system.

 void put(Element element)
          Puts an Element into the underlying cache without notifying listeners or updating statistics.
 boolean remove(java.io.Serializable key)
          Removes an Element from the underlying cache without notifying listeners or updating statistics.
 void removeAll()
          Removes all cached items.
 void send(java.util.List eventMessages)
          Send the cache peer with an ordered list of EventMessages

This enables multiple messages to be delivered in one network invocation.

 
Methods inherited from class java.rmi.server.UnicastRemoteObject
clone, exportObject, exportObject, exportObject, unexportObject
 
Methods inherited from class java.rmi.server.RemoteServer
getClientHost, getLog, setLog
 
Methods inherited from class java.rmi.server.RemoteObject
equals, getRef, hashCode, toString, toStub
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RMICachePeer

public RMICachePeer(Cache cache,
                    java.lang.String hostName,
                    java.lang.Integer port,
                    java.lang.Integer socketTimeoutMillis)
             throws java.rmi.RemoteException
Construct a new remote peer.

Parameters:
cache -
hostName -
port -
socketTimeoutMillis -
Throws:
java.rmi.RemoteException
Method Detail

getUrl

public final java.lang.String getUrl()
The URL for the remote replicator to connect. The value will only have meaning for a specific implementation of replicator and remote peer.

This method is not meant to be used remotely. The replicator already needs to know this. It has to throw RemoteException to comply with RMI requirements

This implementation gives an URL which has meaning to the RMI remoting system.

Specified by:
getUrl in interface CachePeer
Returns:
the URL, without the scheme, as a string e.g. //hostname:port/cacheName

getUrlBase

public final java.lang.String getUrlBase()
The URL base for the remote replicator to connect. The value will have meaning only to a specific implementation of replicator and remote peer.

This implementation gives an URL which has meaning to the RMI remoting system.

Specified by:
getUrlBase in interface CachePeer
Returns:
the URL, without the scheme, as a string e.g. //hostname:port

put

public void put(Element element)
         throws java.rmi.RemoteException,
                java.lang.IllegalArgumentException,
                java.lang.IllegalStateException
Puts an Element into the underlying cache without notifying listeners or updating statistics.

Specified by:
put in interface CachePeer
Parameters:
element -
Throws:
java.rmi.RemoteException
java.lang.IllegalArgumentException
java.lang.IllegalStateException

remove

public final boolean remove(java.io.Serializable key)
                     throws java.rmi.RemoteException,
                            java.lang.IllegalStateException
Removes an Element from the underlying cache without notifying listeners or updating statistics.

Specified by:
remove in interface CachePeer
Parameters:
key -
Returns:
true if the element was removed, false if it was not found in the cache
Throws:
java.rmi.RemoteException
java.lang.IllegalStateException

removeAll

public final void removeAll()
                     throws java.rmi.RemoteException,
                            java.lang.IllegalStateException
Removes all cached items.

Specified by:
removeAll in interface CachePeer
Throws:
java.lang.IllegalStateException - if the cache is not Status.STATUS_ALIVE
java.rmi.RemoteException

send

public final void send(java.util.List eventMessages)
                throws java.rmi.RemoteException
Send the cache peer with an ordered list of EventMessages

This enables multiple messages to be delivered in one network invocation.

Specified by:
send in interface CachePeer
Parameters:
eventMessages - a list of type EventMessage
Throws:
java.rmi.RemoteException

getName

public final java.lang.String getName()
                               throws java.rmi.RemoteException
Gets the cache name

Specified by:
getName in interface CachePeer
Throws:
java.rmi.RemoteException

getGuid

public final java.lang.String getGuid()
                               throws java.rmi.RemoteException
Gets the globally unique id for the underlying Cache instance.

Specified by:
getGuid in interface CachePeer
Returns:
a String representation of the GUID
Throws:
java.rmi.RemoteException

ehcache

true