org.eclipse.jetty.client
Class HttpClient

java.lang.Object
  extended by org.eclipse.jetty.util.component.AbstractLifeCycle
      extended by org.eclipse.jetty.http.HttpBuffers
          extended by org.eclipse.jetty.client.HttpClient
All Implemented Interfaces:
Attributes, LifeCycle

public class HttpClient
extends HttpBuffers
implements Attributes

Http Client.

HttpClient is the main active component of the client API implementation. It is the opposite of the Connectors in standard Jetty, in that it listens for responses rather than requests. Just like the connectors, there is a blocking socket version and a non-blocking NIO version (implemented as nested classes selected by setConnectorType(int)).

The an instance of HttpExchange is passed to the send(HttpExchange) method to send a request. The exchange contains both the headers and content (source) of the request plus the callbacks to handle responses. A HttpClient can have many exchanges outstanding and they may be queued on the HttpDestination waiting for a HttpConnection, queued in the HttpConnection waiting to be transmitted or pipelined on the actual TCP/IP connection waiting for a response.

The HttpDestination class is an aggregation of HttpConnections for the same host, port and protocol. A destination may limit the number of connections open and they provide a pool of open connections that may be reused. Connections may also be allocated from a destination, so that multiple request sources are not multiplexed over the same connection.

See Also:
HttpExchange, HttpDestination

Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
AbstractLifeCycle.AbstractLifeCycleListener
 
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
LifeCycle.Listener
 
Field Summary
static int CONNECTOR_SELECT_CHANNEL
           
static int CONNECTOR_SOCKET
           
 
Fields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
_listeners, FAILED, RUNNING, STARTED, STARTING, STOPPED, STOPPING
 
Constructor Summary
HttpClient()
           
HttpClient(SslContextFactory sslContextFactory)
           
 
Method Summary
 void cancel(Timeout.Task task)
           
 void clearAttributes()
           
protected  void doStart()
           
protected  void doStop()
           
 void dump()
           
 Object getAttribute(String name)
           
 Enumeration getAttributeNames()
           
 int getConnectorType()
          Get the type of connector (socket, blocking or select) in use.
 int getConnectTimeout()
           
 HttpDestination getDestination(Address remote, boolean ssl)
           
 long getIdleTimeout()
           
 String getKeyManagerAlgorithm()
          Deprecated. 
 InputStream getKeyStoreInputStream()
          Deprecated. 
 String getKeyStoreLocation()
          Deprecated. 
 String getKeyStoreType()
          Deprecated. 
 int getMaxConnectionsPerAddress()
           
 Set<String> getNoProxy()
           
 String getProtocol()
          Deprecated. 
 String getProvider()
          Deprecated. 
 Address getProxy()
           
 Authentication getProxyAuthentication()
           
 RealmResolver getRealmResolver()
          returns the SecurityRealmResolver reg_realmResolveristered with the HttpClient or null
 LinkedList<String> getRegisteredListeners()
           
 String getSecureRandomAlgorithm()
          Deprecated. 
 int getSoTimeout()
          Deprecated. use getTimeout() instead.
protected  SSLContext getSSLContext()
          if a keystore location has been provided then client will attempt to use it as the keystore, otherwise we simply ignore certificates and run with a loose ssl context.
 SslContextFactory getSslContextFactory()
           
 ThreadPool getThreadPool()
           
 long getTimeout()
           
 String getTrustManagerAlgorithm()
          Deprecated. 
 InputStream getTrustStoreInputStream()
          Deprecated. 
 String getTrustStoreLocation()
          Deprecated. 
 String getTrustStoreType()
          Deprecated. 
 boolean getUseDirectBuffers()
          Get whether the connector can use direct NIO buffers.
 boolean hasRealms()
           
 boolean isConnectBlocking()
           
 boolean isProxied()
           
 int maxRedirects()
           
 int maxRetries()
           
 void registerListener(String listenerClass)
          Registers a listener that can listen to the stream of execution between the client and the server and influence events.
 void removeAttribute(String name)
           
 void schedule(Timeout.Task task)
           
 void schedule(Timeout.Task task, long timeout)
           
 void scheduleIdle(Timeout.Task task)
           
 void send(HttpExchange exchange)
           
 void setAttribute(String name, Object attribute)
          Set an attribute on the HttpClient.
 void setConnectBlocking(boolean connectBlocking)
           
 void setConnectorType(int connectorType)
           
 void setConnectTimeout(int connectTimeout)
           
 void setIdleTimeout(long ms)
           
 void setKeyManagerAlgorithm(String keyManagerAlgorithm)
          Deprecated. 
 void setKeyManagerPassword(String keyManagerPassword)
          Deprecated. 
 void setKeyStoreInputStream(InputStream keyStoreInputStream)
          Deprecated. 
 void setKeyStoreLocation(String keyStoreLocation)
          Deprecated. 
 void setKeyStorePassword(String keyStorePassword)
          Deprecated. 
 void setKeyStoreType(String keyStoreType)
          Deprecated. 
 void setMaxConnectionsPerAddress(int maxConnectionsPerAddress)
           
 void setMaxRedirects(int redirects)
           
 void setMaxRetries(int retries)
           
 void setNoProxy(Set<String> noProxyAddresses)
           
 void setProtocol(String protocol)
          Deprecated. 
 void setProvider(String provider)
          Deprecated. 
 void setProxy(Address proxy)
           
 void setProxyAuthentication(Authentication authentication)
           
 void setRealmResolver(RealmResolver resolver)
          Set a RealmResolver for client Authentication.
 void setSecureRandomAlgorithm(String secureRandomAlgorithm)
          Deprecated. 
 void setSoTimeout(int timeout)
          Deprecated. use setTimeout(long) instead.
 void setThreadPool(ThreadPool threadPool)
           
 void setTimeout(long timeout)
           
 void setTrustManagerAlgorithm(String trustManagerAlgorithm)
          Deprecated. 
 void setTrustStoreInputStream(InputStream trustStoreInputStream)
          Deprecated. 
 void setTrustStoreLocation(String trustStoreLocation)
          Deprecated. 
 void setTrustStorePassword(String trustStorePassword)
          Deprecated. 
 void setTrustStoreType(String trustStoreType)
          Deprecated. 
 void setUseDirectBuffers(boolean direct)
          Set to use NIO direct buffers.
 
Methods inherited from class org.eclipse.jetty.http.HttpBuffers
getMaxBuffers, getRequestBuffers, getRequestBufferSize, getRequestBufferType, getRequestHeaderSize, getRequestHeaderType, getResponseBuffers, getResponseBufferSize, getResponseBufferType, getResponseHeaderSize, getResponseHeaderType, setMaxBuffers, setRequestBuffers, setRequestBufferSize, setRequestBufferType, setRequestHeaderSize, setRequestHeaderType, setResponseBuffers, setResponseBufferSize, setResponseBufferType, setResponseHeaderSize, setResponseHeaderType
 
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
addLifeCycleListener, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CONNECTOR_SOCKET

public static final int CONNECTOR_SOCKET
See Also:
Constant Field Values

CONNECTOR_SELECT_CHANNEL

public static final int CONNECTOR_SELECT_CHANNEL
See Also:
Constant Field Values
Constructor Detail

HttpClient

public HttpClient()

HttpClient

public HttpClient(SslContextFactory sslContextFactory)
Method Detail

isConnectBlocking

public boolean isConnectBlocking()
Returns:
True if connects will be in blocking mode.

setConnectBlocking

public void setConnectBlocking(boolean connectBlocking)
Parameters:
connectBlocking - True if connects will be in blocking mode.

dump

public void dump()

send

public void send(HttpExchange exchange)
          throws IOException
Throws:
IOException

getThreadPool

public ThreadPool getThreadPool()
Returns:
the threadPool

setThreadPool

public void setThreadPool(ThreadPool threadPool)
Parameters:
threadPool - the threadPool to set

getAttribute

public Object getAttribute(String name)
Specified by:
getAttribute in interface Attributes
Parameters:
name -
Returns:
Attribute associated with client

getAttributeNames

public Enumeration getAttributeNames()
Specified by:
getAttributeNames in interface Attributes
Returns:
names of attributes associated with client

removeAttribute

public void removeAttribute(String name)
Specified by:
removeAttribute in interface Attributes
Parameters:
name -

setAttribute

public void setAttribute(String name,
                         Object attribute)
Set an attribute on the HttpClient. Attributes are not used by the client, but are provided for so that users of a shared HttpClient may share other structures.

Specified by:
setAttribute in interface Attributes
Parameters:
name -
attribute -

clearAttributes

public void clearAttributes()
Specified by:
clearAttributes in interface Attributes

getDestination

public HttpDestination getDestination(Address remote,
                                      boolean ssl)
                               throws UnknownHostException,
                                      IOException
Throws:
UnknownHostException
IOException

schedule

public void schedule(Timeout.Task task)

schedule

public void schedule(Timeout.Task task,
                     long timeout)

scheduleIdle

public void scheduleIdle(Timeout.Task task)

cancel

public void cancel(Timeout.Task task)

getUseDirectBuffers

public boolean getUseDirectBuffers()
Get whether the connector can use direct NIO buffers.


setRealmResolver

public void setRealmResolver(RealmResolver resolver)
Set a RealmResolver for client Authentication. If a realmResolver is set, then the HttpDestinations created by this client will instantiate a SecurityListener so that BASIC and DIGEST authentication can be performed.

Parameters:
resolver -

getRealmResolver

public RealmResolver getRealmResolver()
returns the SecurityRealmResolver reg_realmResolveristered with the HttpClient or null

Returns:
the SecurityRealmResolver reg_realmResolveristered with the HttpClient or null

hasRealms

public boolean hasRealms()

registerListener

public void registerListener(String listenerClass)
Registers a listener that can listen to the stream of execution between the client and the server and influence events. Sequential calls to the method wrapper sequentially wrap the preceding listener in a delegation model.

NOTE: the SecurityListener is a special listener which doesn't need to be added via this mechanic, if you register security realms then it will automatically be added as the top listener of the delegation stack.

Parameters:
listenerClass -

getRegisteredListeners

public LinkedList<String> getRegisteredListeners()

setUseDirectBuffers

public void setUseDirectBuffers(boolean direct)
Set to use NIO direct buffers.

Parameters:
direct - If True (the default), the connector can use NIO direct buffers. Some JVMs have memory management issues (bugs) with direct buffers.

getConnectorType

public int getConnectorType()
Get the type of connector (socket, blocking or select) in use.


setConnectorType

public void setConnectorType(int connectorType)

getMaxConnectionsPerAddress

public int getMaxConnectionsPerAddress()

setMaxConnectionsPerAddress

public void setMaxConnectionsPerAddress(int maxConnectionsPerAddress)

doStart

protected void doStart()
                throws Exception
Overrides:
doStart in class HttpBuffers
Throws:
Exception

doStop

protected void doStop()
               throws Exception
Overrides:
doStop in class HttpBuffers
Throws:
Exception

getSSLContext

protected SSLContext getSSLContext()
if a keystore location has been provided then client will attempt to use it as the keystore, otherwise we simply ignore certificates and run with a loose ssl context.

Returns:
the SSL context

getSslContextFactory

public SslContextFactory getSslContextFactory()
Returns:
the instance of SslContextFactory associated with the client

getIdleTimeout

public long getIdleTimeout()
Returns:
the period in milliseconds a HttpConnection can be idle for before it is closed.

setIdleTimeout

public void setIdleTimeout(long ms)
Parameters:
ms - the period in milliseconds a HttpConnection can be idle for before it is closed.

getSoTimeout

@Deprecated
public int getSoTimeout()
Deprecated. use getTimeout() instead.

Returns:
the period in ms that an exchange will wait for a response from the server.

setSoTimeout

@Deprecated
public void setSoTimeout(int timeout)
Deprecated. use setTimeout(long) instead.

Parameters:
timeout - the period in ms that an exchange will wait for a response from the server.

getTimeout

public long getTimeout()
Returns:
the period in ms that an exchange will wait for a response from the server.

setTimeout

public void setTimeout(long timeout)
Parameters:
timeout - the period in ms that an exchange will wait for a response from the server.

getConnectTimeout

public int getConnectTimeout()
Returns:
the period in ms before timing out an attempt to connect

setConnectTimeout

public void setConnectTimeout(int connectTimeout)
Parameters:
connectTimeout - the period in ms before timing out an attempt to connect

getProxy

public Address getProxy()

setProxy

public void setProxy(Address proxy)

getProxyAuthentication

public Authentication getProxyAuthentication()

setProxyAuthentication

public void setProxyAuthentication(Authentication authentication)

isProxied

public boolean isProxied()

getNoProxy

public Set<String> getNoProxy()

setNoProxy

public void setNoProxy(Set<String> noProxyAddresses)

maxRetries

public int maxRetries()

setMaxRetries

public void setMaxRetries(int retries)

maxRedirects

public int maxRedirects()

setMaxRedirects

public void setMaxRedirects(int redirects)

getTrustStoreLocation

@Deprecated
public String getTrustStoreLocation()
Deprecated. 


setTrustStoreLocation

@Deprecated
public void setTrustStoreLocation(String trustStoreLocation)
Deprecated. 


getTrustStoreInputStream

@Deprecated
public InputStream getTrustStoreInputStream()
Deprecated. 


setTrustStoreInputStream

@Deprecated
public void setTrustStoreInputStream(InputStream trustStoreInputStream)
Deprecated. 


getKeyStoreLocation

@Deprecated
public String getKeyStoreLocation()
Deprecated. 


setKeyStoreLocation

@Deprecated
public void setKeyStoreLocation(String keyStoreLocation)
Deprecated. 


getKeyStoreInputStream

@Deprecated
public InputStream getKeyStoreInputStream()
Deprecated. 


setKeyStoreInputStream

@Deprecated
public void setKeyStoreInputStream(InputStream keyStoreInputStream)
Deprecated. 


setKeyStorePassword

@Deprecated
public void setKeyStorePassword(String keyStorePassword)
Deprecated. 


setKeyManagerPassword

@Deprecated
public void setKeyManagerPassword(String keyManagerPassword)
Deprecated. 


setTrustStorePassword

@Deprecated
public void setTrustStorePassword(String trustStorePassword)
Deprecated. 


getKeyStoreType

@Deprecated
public String getKeyStoreType()
Deprecated. 


setKeyStoreType

@Deprecated
public void setKeyStoreType(String keyStoreType)
Deprecated. 


getTrustStoreType

@Deprecated
public String getTrustStoreType()
Deprecated. 


setTrustStoreType

@Deprecated
public void setTrustStoreType(String trustStoreType)
Deprecated. 


getKeyManagerAlgorithm

@Deprecated
public String getKeyManagerAlgorithm()
Deprecated. 


setKeyManagerAlgorithm

@Deprecated
public void setKeyManagerAlgorithm(String keyManagerAlgorithm)
Deprecated. 


getTrustManagerAlgorithm

@Deprecated
public String getTrustManagerAlgorithm()
Deprecated. 


setTrustManagerAlgorithm

@Deprecated
public void setTrustManagerAlgorithm(String trustManagerAlgorithm)
Deprecated. 


getProtocol

@Deprecated
public String getProtocol()
Deprecated. 


setProtocol

@Deprecated
public void setProtocol(String protocol)
Deprecated. 


getProvider

@Deprecated
public String getProvider()
Deprecated. 


setProvider

@Deprecated
public void setProvider(String provider)
Deprecated. 


getSecureRandomAlgorithm

@Deprecated
public String getSecureRandomAlgorithm()
Deprecated. 


setSecureRandomAlgorithm

@Deprecated
public void setSecureRandomAlgorithm(String secureRandomAlgorithm)
Deprecated. 



Copyright © 1995-2011 Mort Bay Consulting. All Rights Reserved.