Class ResteasyClientBuilderImpl
- java.lang.Object
-
- jakarta.ws.rs.client.ClientBuilder
-
- org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder
-
- org.jboss.resteasy.client.jaxrs.internal.ResteasyClientBuilderImpl
-
- All Implemented Interfaces:
jakarta.ws.rs.core.Configurable<jakarta.ws.rs.client.ClientBuilder>
public class ResteasyClientBuilderImpl extends ResteasyClientBuilder
Abstraction for creating Clients. Allows SSL configuration. Uses Apache Http Client under the covers. If used with other ClientHttpEngines though, all configuration options are ignored.- Version:
- $Revision: 1 $
- Author:
- Bill Burke
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder
ResteasyClientBuilder.HostnameVerificationPolicy
-
-
Field Summary
-
Fields inherited from class org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder
PROPERTY_PROXY_HOST, PROPERTY_PROXY_PORT, PROPERTY_PROXY_SCHEME
-
-
Constructor Summary
Constructors Constructor Description ResteasyClientBuilderImpl()
-
Method Summary
-
-
-
Field Detail
-
truststore
protected KeyStore truststore
-
clientKeyStore
protected KeyStore clientKeyStore
-
clientPrivateKeyPassword
protected String clientPrivateKeyPassword
-
disableTrustManager
protected boolean disableTrustManager
-
policy
protected ResteasyClientBuilder.HostnameVerificationPolicy policy
-
providerFactory
protected ResteasyProviderFactory providerFactory
-
asyncExecutor
protected ExecutorService asyncExecutor
-
scheduledExecutorService
protected ScheduledExecutorService scheduledExecutorService
-
cleanupExecutor
protected boolean cleanupExecutor
-
sslContext
protected SSLContext sslContext
-
httpEngine
protected ClientHttpEngine httpEngine
-
connectionPoolSize
protected int connectionPoolSize
-
maxPooledPerRoute
protected int maxPooledPerRoute
-
connectionTTL
protected long connectionTTL
-
connectionTTLUnit
protected TimeUnit connectionTTLUnit
-
socketTimeout
protected long socketTimeout
-
socketTimeoutUnits
protected TimeUnit socketTimeoutUnits
-
establishConnectionTimeout
protected long establishConnectionTimeout
-
establishConnectionTimeoutUnits
protected TimeUnit establishConnectionTimeoutUnits
-
connectionCheckoutTimeoutMs
protected int connectionCheckoutTimeoutMs
-
verifier
protected HostnameVerifier verifier
-
defaultProxy
protected org.apache.http.HttpHost defaultProxy
-
responseBufferSize
protected int responseBufferSize
-
trustSelfSignedCertificates
protected boolean trustSelfSignedCertificates
-
cookieManagementEnabled
protected boolean cookieManagementEnabled
-
disableAutomaticRetries
protected boolean disableAutomaticRetries
-
followRedirects
protected boolean followRedirects
-
-
Method Detail
-
setProviderFactory
public static void setProviderFactory(ResteasyProviderFactory providerFactory)
-
providerFactory
public ResteasyClientBuilderImpl providerFactory(ResteasyProviderFactory providerFactory)
Changing the providerFactory will wipe clean any registered components or properties.- Specified by:
providerFactory
in classResteasyClientBuilder
- Parameters:
providerFactory
- provider factory- Returns:
- the updated client builder instance
-
asyncExecutor
@Deprecated public ResteasyClientBuilderImpl asyncExecutor(ExecutorService asyncExecutor)
Deprecated.useexecutorService(ExecutorService)
insteadExecutor to use to run AsyncInvoker invocations.- Parameters:
asyncExecutor
- executor service- Returns:
- the updated client builder instance
-
asyncExecutor
@Deprecated public ResteasyClientBuilderImpl asyncExecutor(ExecutorService asyncExecutor, boolean cleanupExecutor)
Deprecated.Executor to use to run AsyncInvoker invocations.- Parameters:
asyncExecutor
- executor servicecleanupExecutor
- true if the Client should close the executor when it is closed- Returns:
- the updated client builder instance
-
connectionTTL
public ResteasyClientBuilderImpl connectionTTL(long ttl, TimeUnit unit)
If there is a connection pool, set the time to live in the pool.- Specified by:
connectionTTL
in classResteasyClientBuilder
- Parameters:
ttl
- time to liveunit
- the time unit of the ttl argument- Returns:
- the updated client builder instance
-
readTimeout
public ResteasyClientBuilderImpl readTimeout(long timeout, TimeUnit unit)
- Specified by:
readTimeout
in classResteasyClientBuilder
-
connectTimeout
public ResteasyClientBuilderImpl connectTimeout(long timeout, TimeUnit unit)
- Specified by:
connectTimeout
in classResteasyClientBuilder
-
maxPooledPerRoute
public ResteasyClientBuilderImpl maxPooledPerRoute(int maxPooledPerRoute)
If connection pooling enabled, how many connections to pool per url?- Specified by:
maxPooledPerRoute
in classResteasyClientBuilder
- Parameters:
maxPooledPerRoute
- max pool size per url- Returns:
- the updated client builder instance
-
connectionCheckoutTimeout
public ResteasyClientBuilderImpl connectionCheckoutTimeout(long timeout, TimeUnit unit)
If connection pooling is enabled, how long will we wait to get a connection?- Specified by:
connectionCheckoutTimeout
in classResteasyClientBuilder
- Parameters:
timeout
- the timeoutunit
- the units the timeout is in- Returns:
- the updated client builder instance
-
connectionPoolSize
public ResteasyClientBuilderImpl connectionPoolSize(int connectionPoolSize)
Number of connections allowed to pool.- Specified by:
connectionPoolSize
in classResteasyClientBuilder
- Parameters:
connectionPoolSize
- connection pool size- Returns:
- the updated client builder instance
-
responseBufferSize
public ResteasyClientBuilderImpl responseBufferSize(int size)
Response stream is wrapped in a BufferedInputStream. Default is 8192. Value of 0 will not wrap it. Value of -1 will use a SelfExpandingBufferedInputStream.- Specified by:
responseBufferSize
in classResteasyClientBuilder
- Parameters:
size
- response buffer size- Returns:
- the updated client builder instance
-
disableTrustManager
public ResteasyClientBuilderImpl disableTrustManager()
Disable trust management and hostname verification. NOTE this is a security hole, so only set this option if you cannot or do not want to verify the identity of the host you are communicating with.- Specified by:
disableTrustManager
in classResteasyClientBuilder
- Returns:
- the updated client builder instance
-
hostnameVerification
public ResteasyClientBuilderImpl hostnameVerification(ResteasyClientBuilder.HostnameVerificationPolicy policy)
SSL policy used to verify hostnames- Specified by:
hostnameVerification
in classResteasyClientBuilder
- Parameters:
policy
- SSL policy- Returns:
- the updated client builder instance
-
httpEngine
public ResteasyClientBuilderImpl httpEngine(ClientHttpEngine httpEngine)
Negates all ssl and connection specific configuration- Specified by:
httpEngine
in classResteasyClientBuilder
- Parameters:
httpEngine
- http engine- Returns:
- the updated client builder instance
-
useAsyncHttpEngine
public ResteasyClientBuilderImpl useAsyncHttpEngine()
- Specified by:
useAsyncHttpEngine
in classResteasyClientBuilder
-
sslContext
public ResteasyClientBuilderImpl sslContext(SSLContext sslContext)
- Specified by:
sslContext
in classResteasyClientBuilder
-
trustStore
public ResteasyClientBuilderImpl trustStore(KeyStore truststore)
- Specified by:
trustStore
in classResteasyClientBuilder
-
keyStore
public ResteasyClientBuilderImpl keyStore(KeyStore keyStore, String password)
- Specified by:
keyStore
in classResteasyClientBuilder
-
keyStore
public ResteasyClientBuilderImpl keyStore(KeyStore keyStore, char[] password)
- Specified by:
keyStore
in classResteasyClientBuilder
-
property
public ResteasyClientBuilderImpl property(String name, Object value)
-
sniHostNames
public ResteasyClientBuilderImpl sniHostNames(String... sniHostNames)
Adds a TLS/SSL SNI Host Name for authentication.- Specified by:
sniHostNames
in classResteasyClientBuilder
- Parameters:
sniHostNames
- host names- Returns:
- the updated client builder instance
-
defaultProxy
public ResteasyClientBuilderImpl defaultProxy(String hostname)
Specify a default proxy. Default port and schema will be used.- Specified by:
defaultProxy
in classResteasyClientBuilder
- Parameters:
hostname
- host name- Returns:
- the updated client builder instance
-
defaultProxy
public ResteasyClientBuilderImpl defaultProxy(String hostname, int port)
Specify a default proxy host and port. Default schema will be used.- Specified by:
defaultProxy
in classResteasyClientBuilder
- Parameters:
hostname
- host nameport
- port- Returns:
- the updated client builder instance
-
defaultProxy
public ResteasyClientBuilderImpl defaultProxy(String hostname, int port, String scheme)
Specify default proxy.- Specified by:
defaultProxy
in classResteasyClientBuilder
- Parameters:
hostname
- host nameport
- portscheme
- scheme- Returns:
- the updated client builder instance
-
getProviderFactory
public ResteasyProviderFactory getProviderFactory()
- Specified by:
getProviderFactory
in classResteasyClientBuilder
-
build
public ResteasyClient build()
- Specified by:
build
in classResteasyClientBuilder
-
createResteasyClient
protected ResteasyClient createResteasyClient(ClientHttpEngine engine, ExecutorService executor, boolean cleanupExecutor, ScheduledExecutorService scheduledExecutorService, ClientConfiguration config)
-
hostnameVerifier
public ResteasyClientBuilderImpl hostnameVerifier(HostnameVerifier verifier)
- Specified by:
hostnameVerifier
in classResteasyClientBuilder
-
getConfiguration
public jakarta.ws.rs.core.Configuration getConfiguration()
-
register
public ResteasyClientBuilderImpl register(Class<?> componentClass)
-
register
public ResteasyClientBuilderImpl register(Class<?> componentClass, int priority)
-
register
public ResteasyClientBuilderImpl register(Class<?> componentClass, Class<?>... contracts)
-
register
public ResteasyClientBuilderImpl register(Class<?> componentClass, Map<Class<?>,Integer> contracts)
-
register
public ResteasyClientBuilderImpl register(Object component)
-
register
public ResteasyClientBuilderImpl register(Object component, int priority)
-
register
public ResteasyClientBuilderImpl register(Object component, Class<?>... contracts)
-
register
public ResteasyClientBuilderImpl register(Object component, Map<Class<?>,Integer> contracts)
-
withConfig
public ResteasyClientBuilderImpl withConfig(jakarta.ws.rs.core.Configuration config)
- Specified by:
withConfig
in classResteasyClientBuilder
-
executorService
public ResteasyClientBuilder executorService(ExecutorService executorService)
- Specified by:
executorService
in classResteasyClientBuilder
-
executorService
public ResteasyClientBuilder executorService(ExecutorService executorService, boolean cleanupExecutor)
- Specified by:
executorService
in classResteasyClientBuilder
-
scheduledExecutorService
public ResteasyClientBuilder scheduledExecutorService(ScheduledExecutorService scheduledExecutorService)
- Specified by:
scheduledExecutorService
in classResteasyClientBuilder
-
getConnectionTTL
public long getConnectionTTL(TimeUnit unit)
- Specified by:
getConnectionTTL
in classResteasyClientBuilder
-
getMaxPooledPerRoute
public int getMaxPooledPerRoute()
- Specified by:
getMaxPooledPerRoute
in classResteasyClientBuilder
-
getConnectionCheckoutTimeout
public long getConnectionCheckoutTimeout(TimeUnit unit)
- Specified by:
getConnectionCheckoutTimeout
in classResteasyClientBuilder
-
getConnectionPoolSize
public int getConnectionPoolSize()
- Specified by:
getConnectionPoolSize
in classResteasyClientBuilder
-
getResponseBufferSize
public int getResponseBufferSize()
- Specified by:
getResponseBufferSize
in classResteasyClientBuilder
-
isTrustManagerDisabled
public boolean isTrustManagerDisabled()
- Specified by:
isTrustManagerDisabled
in classResteasyClientBuilder
-
isTrustSelfSignedCertificates
public boolean isTrustSelfSignedCertificates()
- Specified by:
isTrustSelfSignedCertificates
in classResteasyClientBuilder
-
setIsTrustSelfSignedCertificates
public void setIsTrustSelfSignedCertificates(boolean b)
Description copied from class:ResteasyClientBuilder
When the user is not using a TrustManager (see disableTrustManager) and does not define an SSLContext object but they want all defined trustStores to use the TrustSelfSignedCertificates trust strategy set this value to true.- Specified by:
setIsTrustSelfSignedCertificates
in classResteasyClientBuilder
- Parameters:
b
- A value of true assigns trust strategy TrustSelfSignedCertificates to the trustStores. A value of false assigns a null to the trust strategy. The default value is true in order to maintain backward compatibility.
-
getHostnameVerification
public ResteasyClientBuilder.HostnameVerificationPolicy getHostnameVerification()
- Specified by:
getHostnameVerification
in classResteasyClientBuilder
-
getHttpEngine
public ClientHttpEngine getHttpEngine()
- Specified by:
getHttpEngine
in classResteasyClientBuilder
-
isUseAsyncHttpEngine
public boolean isUseAsyncHttpEngine()
- Specified by:
isUseAsyncHttpEngine
in classResteasyClientBuilder
-
getSniHostNames
public List<String> getSniHostNames()
- Specified by:
getSniHostNames
in classResteasyClientBuilder
-
getDefaultProxyHostname
public String getDefaultProxyHostname()
- Specified by:
getDefaultProxyHostname
in classResteasyClientBuilder
-
getDefaultProxyPort
public int getDefaultProxyPort()
- Specified by:
getDefaultProxyPort
in classResteasyClientBuilder
-
getDefaultProxyScheme
public String getDefaultProxyScheme()
- Specified by:
getDefaultProxyScheme
in classResteasyClientBuilder
-
getReadTimeout
public long getReadTimeout(TimeUnit unit)
- Specified by:
getReadTimeout
in classResteasyClientBuilder
-
getConnectionTimeout
public long getConnectionTimeout(TimeUnit unit)
- Specified by:
getConnectionTimeout
in classResteasyClientBuilder
-
getSSLContext
public SSLContext getSSLContext()
- Specified by:
getSSLContext
in classResteasyClientBuilder
-
getKeyStore
public KeyStore getKeyStore()
- Specified by:
getKeyStore
in classResteasyClientBuilder
-
getKeyStorePassword
public String getKeyStorePassword()
- Specified by:
getKeyStorePassword
in classResteasyClientBuilder
-
getTrustStore
public KeyStore getTrustStore()
- Specified by:
getTrustStore
in classResteasyClientBuilder
-
getHostnameVerifier
public HostnameVerifier getHostnameVerifier()
- Specified by:
getHostnameVerifier
in classResteasyClientBuilder
-
enableCookieManagement
public ResteasyClientBuilder enableCookieManagement()
Description copied from class:ResteasyClientBuilder
Enable state (cookie) management.- Specified by:
enableCookieManagement
in classResteasyClientBuilder
- Returns:
- the updated client builder instance
-
isCookieManagementEnabled
public boolean isCookieManagementEnabled()
- Specified by:
isCookieManagementEnabled
in classResteasyClientBuilder
-
disableAutomaticRetries
public ResteasyClientBuilder disableAutomaticRetries()
Description copied from class:ResteasyClientBuilder
boolean, notify apache to disable its automatic retries.- Specified by:
disableAutomaticRetries
in classResteasyClientBuilder
-
isDisableAutomaticRetries
public boolean isDisableAutomaticRetries()
- Specified by:
isDisableAutomaticRetries
in classResteasyClientBuilder
-
setFollowRedirects
public ResteasyClientBuilder setFollowRedirects(boolean followRedirects)
Description copied from class:ResteasyClientBuilder
Follow redirects added for MicroProfile-rest-client but can be used by tradition clients as well.- Specified by:
setFollowRedirects
in classResteasyClientBuilder
- Returns:
-
isFollowRedirects
public boolean isFollowRedirects()
- Specified by:
isFollowRedirects
in classResteasyClientBuilder
-
-