public abstract class ClientBuilder extends java.lang.Object implements Configurable<ClientBuilder>
Client
instances.Modifier and Type | Field and Description |
---|---|
static java.lang.String |
JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY
Name of the property identifying the
ClientBuilder implementation to be returned from
newBuilder() . |
Modifier | Constructor and Description |
---|---|
protected |
ClientBuilder()
Allows custom implementations to extend the
ClientBuilder class. |
Modifier and Type | Method and Description |
---|---|
abstract Client |
build()
Build a new client instance using all the configuration previously specified in this client builder.
|
abstract ClientBuilder |
connectTimeout(long timeout,
java.util.concurrent.TimeUnit unit)
Set the connect timeout.
|
abstract ClientBuilder |
executorService(java.util.concurrent.ExecutorService executorService)
Set the client-side
ExecutorService . |
abstract ClientBuilder |
hostnameVerifier(javax.net.ssl.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(java.security.KeyStore keyStore,
char[] password)
Set the client-side key store.
|
ClientBuilder |
keyStore(java.security.KeyStore keyStore,
java.lang.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 |
readTimeout(long timeout,
java.util.concurrent.TimeUnit unit)
Set the read timeout.
|
abstract ClientBuilder |
scheduledExecutorService(java.util.concurrent.ScheduledExecutorService scheduledExecutorService)
Set the client-side
ScheduledExecutorService . |
abstract ClientBuilder |
sslContext(javax.net.ssl.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(java.security.KeyStore trustStore)
Set the client-side trust store.
|
abstract ClientBuilder |
withConfig(Configuration config)
Set the internal configuration state to an externally provided configuration state.
|
public static final java.lang.String JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY
ClientBuilder
implementation to be returned from
newBuilder()
.protected ClientBuilder()
ClientBuilder
class.public static ClientBuilder newBuilder()
ClientBuilder
instance using the default client builder implementation class provided by the
JAX-RS implementation provider.public static Client newClient()
Client
instance using the default client builder implementation class provided by the JAX-RS
implementation provider.public static Client newClient(Configuration configuration)
Client
instance using the default client builder implementation class provided
by the JAX-RS implementation provider.configuration
- data used to provide initial configuration for the new client instance.public abstract ClientBuilder withConfig(Configuration config)
config
- external configuration state to replace the configuration of this configurable instance.public abstract ClientBuilder sslContext(javax.net.ssl.SSLContext sslContext)
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.
Setting a SSL context instance resets any key store
or
trust store
values previously specified.
sslContext
- secure socket protocol implementation which acts as a factory for secure socket factories or
SSL engines
. Must not be null
.java.lang.NullPointerException
- in case the sslContext
parameter is null
.keyStore(java.security.KeyStore, char[])
,
keyStore(java.security.KeyStore, String)
,
trustStore(java.security.KeyStore)
public abstract ClientBuilder keyStore(java.security.KeyStore keyStore, char[] password)
Setting a key store instance resets any SSL context instance
value
previously specified.
Note that a custom key store is only required if you want to enable a custom setup of a 2-way SSL connections (client certificate authentication).
keyStore
- client-side key store. Must not be null
.password
- client key password. Must not be null
.java.lang.NullPointerException
- in case any of the supplied parameters is null
.sslContext(javax.net.ssl.SSLContext)
,
keyStore(java.security.KeyStore, String)
,
trustStore(java.security.KeyStore)
public ClientBuilder keyStore(java.security.KeyStore keyStore, java.lang.String password)
Setting a key store instance resets any SSL context instance
value
previously specified.
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. Also note that a custom key
store is only required if you want to enable a custom setup of a 2-way SSL connections (client certificate
authentication).
keyStore
- client-side key store. Must not be null
.password
- client key password. Must not be null
.java.lang.NullPointerException
- in case any of the supplied parameters is null
.sslContext(javax.net.ssl.SSLContext)
,
keyStore(java.security.KeyStore, char[])
,
trustStore(java.security.KeyStore)
public abstract ClientBuilder trustStore(java.security.KeyStore trustStore)
Setting a trust store instance resets any SSL context instance
value
previously specified.
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.
trustStore
- client-side trust store. Must not be null
.java.lang.NullPointerException
- in case the supplied trust store parameter is null
.sslContext(javax.net.ssl.SSLContext)
,
keyStore(java.security.KeyStore, char[])
,
keyStore(java.security.KeyStore, String)
public abstract ClientBuilder hostnameVerifier(javax.net.ssl.HostnameVerifier verifier)
verifier
- hostname verifier.public abstract ClientBuilder executorService(java.util.concurrent.ExecutorService executorService)
ExecutorService
.
Provided executor service will be used for executing asynchronous tasks.
When running in a Jakarta EE container, implementations are required to use the container-managed executor service by default. In Java SE, the default is implementation-specific. In either case, calling this method will override the default.
executorService
- executor service to be used for async invocations.Invocation.Builder.async()
,
Invocation.Builder.rx()
,
RxInvokerProvider.getRxInvoker(SyncInvoker, ExecutorService)
public abstract ClientBuilder scheduledExecutorService(java.util.concurrent.ScheduledExecutorService scheduledExecutorService)
ScheduledExecutorService
.
Provided executor service will be used for executing scheduled asynchronous tasks.
When running in a Jakarta EE container, implementations are required to use the container-managed scheduled executor service by default. In Java SE the default is implementation-specific. In either case, calling this method will override the default.
scheduledExecutorService
- executor service to be used for scheduled async invocations.SseEventSource.Builder.reconnectingEvery(long, TimeUnit)
public abstract ClientBuilder connectTimeout(long timeout, java.util.concurrent.TimeUnit unit)
Value 0
represents infinity. Negative values are not allowed.
timeout
- the maximum time to wait.unit
- the time unit of the timeout argument.java.lang.IllegalArgumentException
- when the value is negative.public abstract ClientBuilder readTimeout(long timeout, java.util.concurrent.TimeUnit unit)
The value is the timeout to read a response. If the server doesn't respond within the defined timeframe,
ProcessingException
is thrown with TimeoutException
as a cause.
Value 0
represents infinity. Negative values are not allowed.
timeout
- the maximum time to wait.unit
- the time unit of the timeout argument.java.lang.IllegalArgumentException
- when the value is negative.public abstract Client build()