javax.ws.rs.client
Class ClientBuilder

java.lang.Object
  extended by javax.ws.rs.client.ClientBuilder
All Implemented Interfaces:
Configurable<ClientBuilder>
Direct Known Subclasses:
ResteasyClientBuilder

public abstract class ClientBuilder
extends Object
implements Configurable<ClientBuilder>

Main entry point to the client API used to bootstrap Client instances.

Since:
2.0
Author:
Marek Potociar

Field Summary
static String JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY
          Name of the property identifying the ClientBuilder implementation to be returned from newBuilder().
 
Constructor Summary
protected ClientBuilder()
          Allows custom implementations to extend the ClientBuilder class.
 
Method Summary
abstract  Client build()
          Build a new client instance using all the configuration previously specified in this client builder.
abstract  ClientBuilder hostnameVerifier(HostnameVerifier verifier)
          Set the hostname verifier to be used by the client to verify the endpoint's hostname against it's identification information.
abstract  ClientBuilder keyStore(KeyStore keyStore, char[] password)
          Set the client-side key store.
 ClientBuilder keyStore(KeyStore keyStore, String password)
          Set the client-side key store.
static ClientBuilder newBuilder()
          Create a new ClientBuilder instance using the default client builder implementation class provided by the JAX-RS implementation provider.
static Client newClient()
          Create a new Client instance using the default client builder implementation class provided by the JAX-RS implementation provider.
static Client newClient(Configuration configuration)
          Create a new custom-configured Client instance using the default client builder implementation class provided by the JAX-RS implementation provider.
abstract  ClientBuilder sslContext(SSLContext sslContext)
          Set the SSL context that will be used when creating secured transport connections to server endpoints from web targets created by the client instance that is using this SSL context.
abstract  ClientBuilder trustStore(KeyStore trustStore)
          Set the client-side trust store.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.ws.rs.core.Configurable
getConfiguration, property, register, register, register, register, register, register, register, register, replaceWith
 

Field Detail

JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY

public static final String JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY
Name of the property identifying the ClientBuilder implementation to be returned from newBuilder().

See Also:
Constant Field Values
Constructor Detail

ClientBuilder

protected ClientBuilder()
Allows custom implementations to extend the ClientBuilder class.

Method Detail

newBuilder

public static ClientBuilder newBuilder()
Create a new ClientBuilder instance using the default client builder implementation class provided by the JAX-RS implementation provider.

Returns:
new client builder instance.

newClient

public static Client newClient()
Create a new Client instance using the default client builder implementation class provided by the JAX-RS implementation provider.

Returns:
new client instance.

newClient

public static Client newClient(Configuration configuration)
Create a new custom-configured Client instance using the default client builder implementation class provided by the JAX-RS implementation provider.

Parameters:
configuration - data used to provide initial configuration for the new client instance.
Returns:
new configured client instance.

sslContext

public abstract ClientBuilder sslContext(SSLContext sslContext)
Set the SSL context that will be used when creating secured transport connections to server endpoints from web targets created by the client instance that is using this SSL context. The SSL context is expected to have all the security infrastructure initialized, including the key and trust managers.

Parameters:
sslContext - secure socket protocol implementation which acts as a factory for secure socket factories or SSL engines.
Returns:
an updated client builder instance.
Throws:
IllegalStateException - in case either a key store or trust store has been previously set.

keyStore

public abstract ClientBuilder keyStore(KeyStore keyStore,
                                       char[] password)
Set the client-side key store. Key store contains client's private keys, and the certificates with their corresponding public keys. A custom key store is only required if you want to enable a custom setup of a 2-way SSL connections (client certificate authentication).

Parameters:
keyStore - client-side key store.
password - client key password.
Returns:
an updated client builder instance.
Throws:
IllegalStateException - in case the SSL context has been previously set.

keyStore

public ClientBuilder keyStore(KeyStore keyStore,
                              String password)
Set the client-side key store. Key store contains client's private keys, and the certificates with their corresponding public keys. A custom key store is only required if you want to enable a custom setup of a 2-way SSL connections (client certificate authentication).

Note that for improved security of working with password data and avoid storing passwords in Java string objects, the keyStore(java.security.KeyStore, char[]) version of the method can be utilized.

Parameters:
keyStore - client-side key store.
password - client key password.
Returns:
an updated client builder instance.
Throws:
IllegalStateException - in case the SSL context has been previously set.

trustStore

public abstract ClientBuilder trustStore(KeyStore trustStore)
Set the client-side trust store. Trust store is expected to contain certificates from other parties the client is you expect to communicate with, or from Certificate Authorities that are trusted to identify other parties.

In case a custom trust store or custom SSL context is not specified, the trust management will be configured to use the default Java runtime settings.

Parameters:
trustStore - client-side trust store.
Returns:
an updated client builder instance.
Throws:
IllegalStateException - in case the SSL context has been previously set.

hostnameVerifier

public abstract ClientBuilder hostnameVerifier(HostnameVerifier verifier)
Set the hostname verifier to be used by the client to verify the endpoint's hostname against it's identification information.

Parameters:
verifier - hostname verifier.
Returns:
an updated client builder instance.

build

public abstract Client build()
Build a new client instance using all the configuration previously specified in this client builder.

Returns:
a new client instance.


Copyright © 2013. All Rights Reserved.