org.glassfish.jersey.apache.connector
Class ApacheConnector

java.lang.Object
  extended by org.glassfish.jersey.apache.connector.ApacheConnector
All Implemented Interfaces:
Connector, Inflector<ClientRequest,ClientResponse>

public class ApacheConnector
extends Object
implements Connector

A Connector that utilizes the Apache HTTP Client to send and receive HTTP request and responses.

The following properties are only supported at construction of this class:

This connector uses chunked encoding as a default setting. This can be overridden by the ClientProperties.REQUEST_ENTITY_PROCESSING. By default the ClientProperties.CHUNKED_ENCODING_SIZE property is only supported by using default connection manager. If custom connection manager needs to be used then chunked encoding size can be set by providing a custom HttpClientConnection (via custom ManagedHttpClientConnectionFactory) and overriding createOutputStream method.

Using of authorization is dependent on the chunk encoding setting. If the entity buffering is enabled, the entity is buffered and authorization can be performed automatically in response to a 401 by sending the request again. When entity buffering is disabled (chunked encoding is used) then the property ApacheClientProperties.PREEMPTIVE_BASIC_AUTHENTICATION must be set to true.

If a ClientResponse is obtained and an entity is not read from the response then InboundMessageContext.close() MUST be called after processing the response to release connection-based resources.

Client operations are thread safe, the HTTP connection may be shared between different threads.

If a response entity is obtained that is an instance of Closeable then the instance MUST be closed after processing the entity to release connection-based resources.

The following methods are currently supported: HEAD, GET, POST, PUT, DELETE, OPTIONS, PATCH and TRACE.

Author:
jorgeluisw@mac.com, Paul Sandoz (paul.sandoz at oracle.com), Pavel Bucek (pavel.bucek at oracle.com), Arul Dhesiaseelan (aruld at acm.org)
See Also:
ApacheClientProperties.CONNECTION_MANAGER

Method Summary
 ClientResponse apply(ClientRequest clientRequest)
           
 Future<?> apply(ClientRequest request, AsyncConnectorCallback callback)
           
 void close()
           
 org.apache.http.client.CookieStore getCookieStore()
          Get the CookieStore.
 org.apache.http.client.HttpClient getHttpClient()
          Get the HttpClient.
 String getName()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getHttpClient

public org.apache.http.client.HttpClient getHttpClient()
Get the HttpClient.

Returns:
the HttpClient.

getCookieStore

public org.apache.http.client.CookieStore getCookieStore()
Get the CookieStore.

Returns:
the CookieStore instance or null when set to true.

apply

public ClientResponse apply(ClientRequest clientRequest)
                     throws javax.ws.rs.ProcessingException
Specified by:
apply in interface Connector
Specified by:
apply in interface Inflector<ClientRequest,ClientResponse>
Throws:
javax.ws.rs.ProcessingException

apply

public Future<?> apply(ClientRequest request,
                       AsyncConnectorCallback callback)
Specified by:
apply in interface Connector

getName

public String getName()
Specified by:
getName in interface Connector

close

public void close()
Specified by:
close in interface Connector


Copyright © 2007-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.