Class JettyConnectorProvider
- java.lang.Object
-
- org.glassfish.jersey.jetty.connector.JettyConnectorProvider
-
- All Implemented Interfaces:
ConnectorProvider
public class JettyConnectorProvider extends java.lang.Object implements ConnectorProvider
AConnectorProvider
for Jerseyconnector
instances that utilize the Jetty HTTP Client to send and receive HTTP request and responses.The following connector configuration properties are supported:
ClientProperties.ASYNC_THREADPOOL_SIZE
ClientProperties.CONNECT_TIMEOUT
ClientProperties.FOLLOW_REDIRECTS
ClientProperties.PROXY_URI
ClientProperties.PROXY_USERNAME
ClientProperties.PROXY_PASSWORD
ClientProperties.PROXY_PASSWORD
JettyClientProperties.PREEMPTIVE_BASIC_AUTHENTICATION
JettyClientProperties.DISABLE_COOKIES
This transport supports both synchronous and asynchronous processing of client requests. The following methods are supported: GET, POST, PUT, DELETE, HEAD, OPTIONS, TRACE, CONNECT and MOVE.
Typical usage:
ClientConfig config = new ClientConfig(); config.connectorProvider(new JettyConnectorProvider()); Client client = ClientBuilder.newClient(config); // async request WebTarget target = client.target("http://localhost:8080"); Future<Response> future = target.path("resource").request().async().get(); // wait for 3 seconds Response response = future.get(3, TimeUnit.SECONDS); String entity = response.readEntity(String.class); client.close();
Connector instances created via Jetty HTTP Client-based connector provider support only
entity buffering
. Defining the propertyClientProperties.REQUEST_ENTITY_PROCESSING
has no effect on Jetty HTTP Client-based connectors.- Since:
- 2.5
-
-
Constructor Summary
Constructors Constructor Description JettyConnectorProvider()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Connector
getConnector(javax.ws.rs.client.Client client, javax.ws.rs.core.Configuration runtimeConfig)
Get a Jersey client connector instance for a givenclient
instance and Jersey client runtimeconfiguration
.static org.eclipse.jetty.client.HttpClient
getHttpClient(javax.ws.rs.core.Configurable<?> component)
Retrieve the underlying JettyHttpClient
instance fromJerseyClient
orJerseyWebTarget
configured to useJettyConnectorProvider
.
-
-
-
Method Detail
-
getConnector
public Connector getConnector(javax.ws.rs.client.Client client, javax.ws.rs.core.Configuration runtimeConfig)
Description copied from interface:ConnectorProvider
Get a Jersey client connector instance for a givenclient
instance and Jersey client runtimeconfiguration
.Note that the supplied runtime configuration can be different from the client instance configuration as a single client can be used to serve multiple differently configured runtimes. While the
SSL context
orhostname verifier
are shared, other configuration properties may change in each runtime.Based on the supplied client and runtime configuration data, it is up to each connector provider implementation to decide whether a new dedicated connector instance is required or if the existing, previously create connector instance can be reused.
- Specified by:
getConnector
in interfaceConnectorProvider
- Parameters:
client
- Jersey client instance.runtimeConfig
- Jersey client runtime configuration.- Returns:
- configured
Connector
instance to be used by the client.
-
getHttpClient
public static org.eclipse.jetty.client.HttpClient getHttpClient(javax.ws.rs.core.Configurable<?> component)
Retrieve the underlying JettyHttpClient
instance fromJerseyClient
orJerseyWebTarget
configured to useJettyConnectorProvider
.- Parameters:
component
-JerseyClient
orJerseyWebTarget
instance that is configured to useJettyConnectorProvider
.- Returns:
- underlying Jetty
HttpClient
instance. - Throws:
java.lang.IllegalArgumentException
- in case thecomponent
is neitherJerseyClient
norJerseyWebTarget
instance or in case the component is not configured to use aJettyConnectorProvider
.- Since:
- 2.8
-
-