com.microsoft.tfs.core.httpclient.protocol
Class SSLProtocolSocketFactory

java.lang.Object
  extended by com.microsoft.tfs.core.httpclient.protocol.SSLProtocolSocketFactory
All Implemented Interfaces:
ProtocolSocketFactory, SecureProtocolSocketFactory

public class SSLProtocolSocketFactory
extends java.lang.Object
implements SecureProtocolSocketFactory

A SecureProtocolSocketFactory that uses JSSE to create sockets.

Since:
2.0

Constructor Summary
SSLProtocolSocketFactory()
          Constructor for SSLProtocolSocketFactory.
 
Method Summary
 java.net.Socket createSocket(java.net.Socket socket, java.lang.String host, int port, HttpConnectionParams params, boolean autoClose)
          Returns a socket connected to the given host that is layered over an existing socket.
 java.net.Socket createSocket(java.lang.String host, int port, java.net.InetAddress localAddress, int localPort, HttpConnectionParams params)
          Attempts to get a new socket connection to the given host within the given time limit.
 boolean equals(java.lang.Object obj)
          All instances of SSLProtocolSocketFactory are the same.
 int hashCode()
          All instances of SSLProtocolSocketFactory have the same hash code.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SSLProtocolSocketFactory

public SSLProtocolSocketFactory()
Constructor for SSLProtocolSocketFactory.

Method Detail

createSocket

public java.net.Socket createSocket(java.lang.String host,
                                    int port,
                                    java.net.InetAddress localAddress,
                                    int localPort,
                                    HttpConnectionParams params)
                             throws java.io.IOException,
                                    java.net.UnknownHostException,
                                    ConnectTimeoutException
Attempts to get a new socket connection to the given host within the given time limit.

This method employs several techniques to circumvent the limitations of older JREs that do not support connect timeout. When running in JRE 1.4 or above reflection is used to call Socket#connect(SocketAddress endpoint, int timeout) method. When executing in older JREs a controller thread is executed. The controller thread attempts to create a new socket within the given limit of time. If socket constructor does not return until the timeout expires, the controller terminates and throws an ConnectTimeoutException

Specified by:
createSocket in interface ProtocolSocketFactory
Parameters:
host - the host name/IP
port - the port on the host
localAddress - the local host name/IP to bind the socket to
localPort - the port on the local machine
params - Http connection parameters
Returns:
Socket a new socket
Throws:
java.io.IOException - if an I/O error occurs while creating the socket
java.net.UnknownHostException - if the IP address of the host cannot be determined
ConnectTimeoutException - if socket cannot be connected within the given time limit
Since:
3.0

createSocket

public java.net.Socket createSocket(java.net.Socket socket,
                                    java.lang.String host,
                                    int port,
                                    HttpConnectionParams params,
                                    boolean autoClose)
                             throws java.io.IOException,
                                    java.net.UnknownHostException
Description copied from interface: SecureProtocolSocketFactory
Returns a socket connected to the given host that is layered over an existing socket. Used primarily for creating secure sockets through proxies.

Specified by:
createSocket in interface SecureProtocolSocketFactory
Parameters:
socket - the existing socket
host - the host name/IP
port - the port on the host
autoClose - a flag for closing the underling socket when the created socket is closed
Returns:
Socket a new socket
See Also:
SecureProtocolSocketFactory#createSocket(java.net.Socket,java.lang.String,int,boolean)
Throws:
java.io.IOException - if an I/O error occurs while creating the socket
java.net.UnknownHostException - if the IP address of the host cannot be determined

equals

public boolean equals(java.lang.Object obj)
All instances of SSLProtocolSocketFactory are the same.

Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
All instances of SSLProtocolSocketFactory have the same hash code.

Overrides:
hashCode in class java.lang.Object


© 2015 Microsoft. All rights reserved.