Class JettyConnectorProvider

java.lang.Object
org.glassfish.jersey.jetty.connector.JettyConnectorProvider
All Implemented Interfaces:
ConnectorProvider

public class JettyConnectorProvider extends Object implements ConnectorProvider
A ConnectorProvider for Jersey connector instances that utilize the Jetty HTTP Client to send and receive HTTP request and responses.

The following connector configuration properties are supported:

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 property ClientProperties.REQUEST_ENTITY_PROCESSING has no effect on Jetty HTTP Client-based connectors.

Since:
2.5
Author:
Arul Dhesiaseelan (aruld at acm.org), Marek Potociar
  • Constructor Details

    • JettyConnectorProvider

      public JettyConnectorProvider()
  • Method Details

    • getConnector

      public Connector getConnector(Client client, Configuration runtimeConfig)
      Description copied from interface: ConnectorProvider
      Get a Jersey client connector instance for a given client instance and Jersey client runtime configuration.

      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 or hostname 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 interface ConnectorProvider
      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(Configurable<?> component)
      Retrieve the underlying Jetty HttpClient instance from JerseyClient or JerseyWebTarget configured to use JettyConnectorProvider.
      Parameters:
      component - JerseyClient or JerseyWebTarget instance that is configured to use JettyConnectorProvider.
      Returns:
      underlying Jetty HttpClient instance.
      Throws:
      IllegalArgumentException - in case the component is neither JerseyClient nor JerseyWebTarget instance or in case the component is not configured to use a JettyConnectorProvider.
      Since:
      2.8