[jboss-cvs] JBossRemoting/src/main/org/jboss/remoting/transport/sslrmi ...
Ron Sigal
ron_sigal at yahoo.com
Tue Jan 16 01:17:46 EST 2007
User: rsigal
Date: 07/01/16 01:17:46
Modified: src/main/org/jboss/remoting/transport/sslrmi Tag:
remoting_2_x
SerializableSSLClientSocketFactory.java
Log:
JBREM-298: Refactored with RemotingRMIClientSocketFactory to allow storage of client side config parameters for RMI as well as SSLRMI.
Revision Changes Path
No revision
No revision
1.3.4.1 +28 -73 JBossRemoting/src/main/org/jboss/remoting/transport/sslrmi/SerializableSSLClientSocketFactory.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: SerializableSSLClientSocketFactory.java
===================================================================
RCS file: /cvsroot/jboss/JBossRemoting/src/main/org/jboss/remoting/transport/sslrmi/SerializableSSLClientSocketFactory.java,v
retrieving revision 1.3
retrieving revision 1.3.4.1
diff -u -b -r1.3 -r1.3.4.1
--- SerializableSSLClientSocketFactory.java 18 Aug 2006 13:51:28 -0000 1.3
+++ SerializableSSLClientSocketFactory.java 16 Jan 2007 06:17:46 -0000 1.3.4.1
@@ -23,6 +23,7 @@
package org.jboss.remoting.transport.sslrmi;
import org.jboss.logging.Logger;
+import org.jboss.remoting.AbstractInvoker;
import org.jboss.remoting.Client;
import org.jboss.remoting.InvokerLocator;
import org.jboss.remoting.Remoting;
@@ -41,7 +42,7 @@
/**
*
* @author <a href="mailto:ron.sigal at jboss.com">Ron Sigal</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.3.4.1 $
* <p>
* Copyright (c) Jun 9, 2006
* </p>
@@ -50,24 +51,13 @@
{
private static final long serialVersionUID = 3242156275483606618L;
private static Logger log = Logger.getLogger(SerializableSSLClientSocketFactory.class);
- private static HashMap configMaps = new HashMap();
- private static Map socketFactories = new HashMap();
-
- private Map configuration;
- private InvokerLocator invokerLocator;
-
-
- static void addLocalConfiguration(InvokerLocator invokerLocator, Map localConfig)
- {
- configMaps.put(new ComparableHolder(invokerLocator), localConfig);
- }
public SerializableSSLClientSocketFactory(InvokerLocator invokerLocator,
int timeout,
Map configuration)
{
- super(null, invokerLocator.getHost(), timeout);
+ super(invokerLocator, invokerLocator.getHost(), timeout, configuration);
this.invokerLocator = invokerLocator;
this.configuration = new HashMap(configuration);
}
@@ -75,14 +65,25 @@
public Socket createSocket(String host, int port) throws IOException
{
- // If invokerLocator isn't in configMaps, an SSLRMICLientInvoker has not been created
- // yet. This call was probably made by an RMI thread, and is premature.
- ComparableHolder holder = new ComparableHolder(invokerLocator);
- if (!configMaps.containsKey(holder))
- return null;
+ Socket s = super.createSocket(host, port);
+
+ // need to check for handshake listener and add them if there is one
+ Object obj = configuration.get(Client.HANDSHAKE_COMPLETED_LISTENER);
+ if (obj != null && obj instanceof HandshakeCompletedListener)
+ {
+ SSLSocket sslSocket = (SSLSocket) s;
+ HandshakeCompletedListener listener = (HandshakeCompletedListener) obj;
+ establishHandshake(sslSocket, listener);
+ }
+
+ return s;
+ }
- socketFactory = (SocketFactory) socketFactories.get(this);
- if (socketFactory == null)
+
+ public SocketFactory retrieveSocketFactory(ComparableHolder holder) throws IOException
+ {
+ SocketFactory sf = (SocketFactory) socketFactories.get(this);
+ if (sf == null)
{
try
{
@@ -96,16 +97,17 @@
if (tempConfig.containsKey(Remoting.CUSTOM_SOCKET_FACTORY))
{
- socketFactory = (SocketFactory) tempConfig.get(Remoting.CUSTOM_SOCKET_FACTORY);
+ sf = (SocketFactory) tempConfig.get(Remoting.CUSTOM_SOCKET_FACTORY);
}
else
{
SSLSocketBuilder socketBuilder = new SSLSocketBuilder(tempConfig);
socketBuilder.setUseSSLSocketFactory( false );
- socketFactory = socketBuilder.createSSLSocketFactory();
+ sf = socketBuilder.createSSLSocketFactory();
+ sf = AbstractInvoker.wrapSocketFactory(sf, tempConfig);
}
- socketFactories.put(this, socketFactory);
+ socketFactories.put(this, sf);
// Get handshake listener from local configuration map and store in
// configuration map brought over from server. We don't have to worry
@@ -125,19 +127,7 @@
}
}
- Socket s = super.createSocket(host, port);
- socketFactory = null;
-
- // need to check for handshake listener and add them if there is one
- Object obj = configuration.get(Client.HANDSHAKE_COMPLETED_LISTENER);
- if (obj != null && obj instanceof HandshakeCompletedListener)
- {
- SSLSocket sslSocket = (SSLSocket) s;
- HandshakeCompletedListener listener = (HandshakeCompletedListener) obj;
- establishHandshake(sslSocket, listener);
- }
-
- return s;
+ return sf;
}
@@ -149,39 +139,4 @@
sslSocket.getSession();
repeater.waitForHandshake();
}
-
-
- private static class ComparableHolder
- {
- private String protocol;
- private String host;
- private int port;
- private int hashCode;
-
- public ComparableHolder(InvokerLocator invokerLocator)
- {
- protocol = invokerLocator.getProtocol().toLowerCase();
- host = invokerLocator.getHost();
- port = invokerLocator.getPort();
- hashCode = protocol.hashCode() * host.hashCode() * port;
- }
-
- public boolean equals(Object obj)
- {
- if (obj == null || !(obj instanceof ComparableHolder))
- return false;
-
- ComparableHolder holder = (ComparableHolder) obj;
-
- return protocol.equals(holder.protocol.toLowerCase())
- && host.equals(holder.host)
- && port == holder.port;
- }
-
- public int hashCode()
- {
- return hashCode;
- }
-
- }
}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list