Class ApacheConnectorProvider
- java.lang.Object
-
- org.glassfish.jersey.apache.connector.ApacheConnectorProvider
-
- All Implemented Interfaces:
ConnectorProvider
public class ApacheConnectorProvider extends Object implements ConnectorProvider
Connector provider for Jerseyconnectors
that utilize Apache HTTP Client to send and receive HTTP request and responses.The following connector configuration properties are supported:
ApacheClientProperties.CONNECTION_MANAGER
ApacheClientProperties.REQUEST_CONFIG
ApacheClientProperties.CREDENTIALS_PROVIDER
ApacheClientProperties.DISABLE_COOKIES
ApacheClientProperties.KEEPALIVE_STRATEGY
ClientProperties.PROXY_URI
ClientProperties.PROXY_USERNAME
ClientProperties.PROXY_PASSWORD
ClientProperties.REQUEST_ENTITY_PROCESSING
- default value isRequestEntityProcessing.CHUNKED
ApacheClientProperties.PREEMPTIVE_BASIC_AUTHENTICATION
ApacheClientProperties.RETRY_HANDLER
ApacheClientProperties.REUSE_STRATEGY
Connector instances created via this connector provider use
chunked encoding
as a default setting. This can be overridden by theClientProperties.REQUEST_ENTITY_PROCESSING
. By default theClientProperties.CHUNKED_ENCODING_SIZE
property is only supported when using the defaultorg.apache.http.conn.HttpClientConnectionManager
instance. If custom connection manager is used, then chunked encoding size can be set by providing a customorg.apache.http.HttpClientConnection
(via customorg.apache.http.impl.conn.ManagedHttpClientConnectionFactory
) and overriding it'screateOutputStream
method.Use of authorization by the AHC-based connectors 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 totrue
.If a
ClientResponse
is obtained and an entity is not read from the response thenInboundMessageContext.close()
MUST be called after processing the response to release connection-based resources.Registration of
ApacheHttpClientBuilderConfigurator
instance on theClient
is supported. A configuration provided byApacheHttpClientBuilderConfigurator
will override theHttpClientBuilder
configuration set by using the properties.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.
- Since:
- 2.5
- Author:
- Pavel Bucek, Arul Dhesiaseelan (aruld at acm.org), jorgeluisw at mac.com, Marek Potociar, Paul Sandoz, Maksim Mukosey (mmukosey at gmail.com)
-
-
Constructor Summary
Constructors Constructor Description ApacheConnectorProvider()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Connector
getConnector(jakarta.ws.rs.client.Client client, jakarta.ws.rs.core.Configuration runtimeConfig)
static org.apache.http.client.CookieStore
getCookieStore(jakarta.ws.rs.core.Configurable<?> component)
Retrieve the underlying ApacheCookieStore
instance fromJerseyClient
orJerseyWebTarget
configured to useApacheConnectorProvider
.static org.apache.http.client.HttpClient
getHttpClient(jakarta.ws.rs.core.Configurable<?> component)
Retrieve the underlying ApacheHttpClient
instance fromJerseyClient
orJerseyWebTarget
configured to useApacheConnectorProvider
.
-
-
-
Method Detail
-
getConnector
public Connector getConnector(jakarta.ws.rs.client.Client client, jakarta.ws.rs.core.Configuration runtimeConfig)
- Specified by:
getConnector
in interfaceConnectorProvider
-
getHttpClient
public static org.apache.http.client.HttpClient getHttpClient(jakarta.ws.rs.core.Configurable<?> component)
Retrieve the underlying ApacheHttpClient
instance fromJerseyClient
orJerseyWebTarget
configured to useApacheConnectorProvider
.- Parameters:
component
-JerseyClient
orJerseyWebTarget
instance that is configured to useApacheConnectorProvider
.- Returns:
- underlying Apache
HttpClient
instance. - Throws:
IllegalArgumentException
- in case thecomponent
is neitherJerseyClient
norJerseyWebTarget
instance or in case the component is not configured to use aApacheConnectorProvider
.- Since:
- 2.8
-
getCookieStore
public static org.apache.http.client.CookieStore getCookieStore(jakarta.ws.rs.core.Configurable<?> component)
Retrieve the underlying ApacheCookieStore
instance fromJerseyClient
orJerseyWebTarget
configured to useApacheConnectorProvider
.- Parameters:
component
-JerseyClient
orJerseyWebTarget
instance that is configured to useApacheConnectorProvider
.- Returns:
- underlying Apache
CookieStore
instance. - Throws:
IllegalArgumentException
- in case thecomponent
is neitherJerseyClient
norJerseyWebTarget
instance or in case the component is not configured to use aApacheConnectorProvider
.- Since:
- 2.16
-
-