ehcache

net.sf.ehcache.distribution
Class ConfigurableRMIClientSocketFactory

java.lang.Object
  extended by net.sf.ehcache.distribution.ConfigurableRMIClientSocketFactory
All Implemented Interfaces:
java.io.Serializable, java.rmi.server.RMIClientSocketFactory

public final class ConfigurableRMIClientSocketFactory
extends java.lang.Object
implements java.io.Serializable, java.rmi.server.RMIClientSocketFactory

Default socket timeouts are unlikely to be suitable for cache replication. Sockets should fail fast.

This class decorates the RMIClientSocketFactory so as to enable customisations to be placed on newly created sockets.

Version:
$Id: ConfigurableRMIClientSocketFactory.java 704 2008-07-13 00:17:52Z gregluck $
Author:
Greg Luck
See Also:
"http://java.sun.com/j2se/1.5.0/docs/guide/rmi/socketfactory/#1", Serialized Form

Constructor Summary
ConfigurableRMIClientSocketFactory(java.lang.Integer socketTimeoutMillis)
          Construct a new socket factory with the given timeout.
 
Method Summary
 java.net.Socket createSocket(java.lang.String host, int port)
          Create a client socket connected to the specified host and port.
 boolean equals(java.lang.Object object)
          The standard hashCode method which is necessary for SocketFactory classes.
 int hashCode()
          Implements the Object hashCode method.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ConfigurableRMIClientSocketFactory

public ConfigurableRMIClientSocketFactory(java.lang.Integer socketTimeoutMillis)
Construct a new socket factory with the given timeout.

Parameters:
socketTimeoutMillis -
See Also:
Socket.setSoTimeout(int)
Method Detail

createSocket

public java.net.Socket createSocket(java.lang.String host,
                                    int port)
                             throws java.io.IOException
Create a client socket connected to the specified host and port.

If necessary this implementation can be changed to specify the outbound address to use e.g. Socket socket = new Socket(host, port, localInterface , 0);

Specified by:
createSocket in interface java.rmi.server.RMIClientSocketFactory
Parameters:
host - the host name
port - the port number
Returns:
a socket connected to the specified host and port.
Throws:
java.io.IOException - if an I/O error occurs during socket creation
Since:
1.2

hashCode

public int hashCode()
Implements the Object hashCode method.

Overrides:
hashCode in class java.lang.Object
Returns:
a hash based on socket options

equals

public boolean equals(java.lang.Object object)
The standard hashCode method which is necessary for SocketFactory classes. Omitting this method causes RMI to quickly error out with "too many open files" errors.

Overrides:
equals in class java.lang.Object
Parameters:
object - the comparison object
Returns:
equal if the classes are the same and the socket options are the name.

ehcache