Package com.cloudera.cdp.client
Class CdpClientConfigurationBuilder
- java.lang.Object
-
- com.cloudera.cdp.client.CdpClientConfigurationBuilder
-
public class CdpClientConfigurationBuilder extends Object
Class used to build an CdpClientConfiguration object.
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description CdpClientConfigurationBuilder
addRequestHeader(String name, String value)
Adds the request header.CdpClientConfigurationBuilder
addTrustedCertificate(X509Certificate trustedCertificate)
Adds the trusted certificate.CdpClientConfiguration
build()
Builds an CdpClientConfiguration object based on current settings.static CdpClientConfigurationBuilder
defaultBuilder()
Gets an CdpClientConfigurationBuilder object with all the default values set.String
getClientApplicationName()
Returns the client application name if set optionally by a customer or a partner application.Duration
getConnectionMaxIdle()
Returns the maximum amount of time that an idle connection may sit in the connection pool and still be eligible for reuse.Duration
getConnectionTimeout()
Gets the connection timeout of the underlying HTTP connection.boolean
getIgnoreTls()
Gets the switch to ignore HTTPS verification errors.int
getMaxConnections()
Returns the maximum number of allowed open HTTP connections.String
getProxyPassword()
Gets the current proxy password.String
getProxyUri()
Gets the current proxy URI.String
getProxyUsername()
Gets the current proxy username.Duration
getReadTimeout()
Gets the read timeout on the underlying HTTP client.Map<String,String>
getRequestHeaders()
Gets the request headers.RetryHandler
getRetryHandler()
Gets the current value of the retryHandler property.List<X509Certificate>
getTrustedCertificates()
Gets the trusted certificates.Duration
getValidateAfterInactivity()
Returns the amount of time that a connection can be idle in the connection pool before it must be validated to ensure it's still open.String
toString()
Builds an string representation of the CdpClientConfiguration object based on current settings.CdpClientConfigurationBuilder
withClientApplicationName(String clientApplicationName)
Sets the client application name.CdpClientConfigurationBuilder
withConnectionMaxIdle(Duration connectionMaxIdle)
Sets the maximum amount of time that an idle connection may sit in the connection pool and still be eligible for reuse.CdpClientConfigurationBuilder
withConnectionTimeout(Duration connectionTimeout)
Sets the connection timeout on the underlying HTTP client.CdpClientConfigurationBuilder
withIgnoreTls(boolean ignoreTls)
Sets the switch to ignore HTTPS verification errors.CdpClientConfigurationBuilder
withMaxConnections(int maxConnections)
Sets the maximum number of allowed open HTTP connections.CdpClientConfigurationBuilder
withProxyPassword(String proxyPassword)
Sets the value of the proxy password.CdpClientConfigurationBuilder
withProxyUri(String proxyUri)
Sets the value of the proxy URI.CdpClientConfigurationBuilder
withProxyUsername(String proxyUsername)
Sets the value of the proxy username.CdpClientConfigurationBuilder
withReadTimeout(Duration readTimeout)
Sets the read timeout on the underlying HTTP client.CdpClientConfigurationBuilder
withRequestHeaders(Map<String,String> requestHeaders)
Sets the request headers.CdpClientConfigurationBuilder
withRetryHandler(RetryHandler retryHandler)
Sets the value for RetryHandler.CdpClientConfigurationBuilder
withTrustedCertificates(List<X509Certificate> trustedCertificates)
Sets the trusted certificates.CdpClientConfigurationBuilder
withValidateAfterInactivity(Duration validateAfterInactivity)
Sets the amount of time that a connection can be idle in the connection pool before it must be validated to ensure it's still open.
-
-
-
Method Detail
-
withMaxConnections
public CdpClientConfigurationBuilder withMaxConnections(int maxConnections)
Sets the maximum number of allowed open HTTP connections.- Parameters:
maxConnections
- The maximum number of allowed open HTTP connections.- Returns:
- a reference to the CdpClientConfiguration object so that method calls can be chained together.
-
getMaxConnections
public int getMaxConnections()
Returns the maximum number of allowed open HTTP connections.- Returns:
- The maximum number of allowed open HTTP connections.
-
withClientApplicationName
public CdpClientConfigurationBuilder withClientApplicationName(String clientApplicationName)
Sets the client application name.- Parameters:
clientApplicationName
- - Name of the the client application.- Returns:
- a reference to the CdpClientConfiguration object so that method calls can be chained together.
-
getClientApplicationName
public String getClientApplicationName()
Returns the client application name if set optionally by a customer or a partner application. This client application name would be used by Cloudera to derive metrics around CDP SDK adoption by different customers and partners.- Returns:
- the client application name, if set, otherwise returns "" (empty string) by default
-
withConnectionTimeout
public CdpClientConfigurationBuilder withConnectionTimeout(Duration connectionTimeout)
Sets the connection timeout on the underlying HTTP client.- Parameters:
connectionTimeout
- the connection timeout- Returns:
- the builder.
-
getConnectionTimeout
public Duration getConnectionTimeout()
Gets the connection timeout of the underlying HTTP connection.- Returns:
- the connection timeout
-
withReadTimeout
public CdpClientConfigurationBuilder withReadTimeout(Duration readTimeout)
Sets the read timeout on the underlying HTTP client.- Parameters:
readTimeout
- the read timeout- Returns:
- Returns a reference to the CdpClientConfiguration object so that method calls can be chained together
-
getReadTimeout
public Duration getReadTimeout()
Gets the read timeout on the underlying HTTP client.- Returns:
- the read timeout
-
withConnectionMaxIdle
public CdpClientConfigurationBuilder withConnectionMaxIdle(Duration connectionMaxIdle)
Sets the maximum amount of time that an idle connection may sit in the connection pool and still be eligible for reuse. When retrieving a connection from the pool to make a request, the amount of time the connection has been idle is compared against this value. Connections which have been idle for longer are discarded, and if needed a new connection is created. Tuning this setting down reduces the likelihood of a race condition (wherein you begin sending a request down a connection which appears to be healthy, but before it arrives the service decides the connection has been idle for too long and closes it) at the cost of having to re-establish new connections more frequently. A non positive value disables this check.- Parameters:
connectionMaxIdle
- the connectionMaxIdle value- Returns:
- the builder.
-
getConnectionMaxIdle
public Duration getConnectionMaxIdle()
Returns the maximum amount of time that an idle connection may sit in the connection pool and still be eligible for reuse. When retrieving a connection from the pool to make a request, the amount of time the connection has been idle is compared against this value. Connections which have been idle for longer are discarded, and if needed a new connection is created. Tuning this setting down reduces the likelihood of a race condition (wherein you begin sending a request down a connection which appears to be healthy, but before it arrives the service decides the connection has been idle for too long and closes it) at the cost of having to re-establish new connections more frequently.- Returns:
- the connection maximum idle time
-
withValidateAfterInactivity
public CdpClientConfigurationBuilder withValidateAfterInactivity(Duration validateAfterInactivity)
Sets the amount of time that a connection can be idle in the connection pool before it must be validated to ensure it's still open. This "stale connection check" adds a small bit of overhead to validate the connection. Setting this value to larger values may increase the likelihood that the connection is not usable, potentially resulting in aNoHttpResponseException
. Lowering this setting increases the overhead when leasing connections from the connection pool. A non positive value disables validation of connections.- Parameters:
validateAfterInactivity
- the validateAfterInactivity value- Returns:
- the builder.
-
getValidateAfterInactivity
public Duration getValidateAfterInactivity()
Returns the amount of time that a connection can be idle in the connection pool before it must be validated to ensure it's still open. This "stale connection check" adds a small bit of overhead to validate the connection. Setting this value to larger values may increase the likelihood that the connection is not usable, potentially resulting in aNoHttpResponseException
. Lowering this setting increases the overhead when leasing connections from the connection pool. A non positive value disables validation of connections.- Returns:
- the validate after inactivity duration
-
withRetryHandler
public CdpClientConfigurationBuilder withRetryHandler(RetryHandler retryHandler)
Sets the value for RetryHandler. If none is set the SimpleRetryHandler is used. The retry handler determines whether or not to retry service operations in the event of a failure or exception.- Parameters:
retryHandler
- The retry handler to use- Returns:
- the current value of the flag as a boolean
-
getRetryHandler
public RetryHandler getRetryHandler()
Gets the current value of the retryHandler property.- Returns:
- a RetryHandler object with the current value of the retryHandler property
-
withProxyUri
public CdpClientConfigurationBuilder withProxyUri(@Nullable String proxyUri)
Sets the value of the proxy URI. If not set or explicitly set to null, then no proxy will be used for connections. The string should be of the form: http(s)://hostname:port/- Parameters:
proxyUri
- The Proxy URI- Returns:
- a reference to the CdpClientConfiguration object so that method calls can be chained together
-
getProxyUri
public String getProxyUri()
Gets the current proxy URI.- Returns:
- the proxy URI
-
withProxyUsername
public CdpClientConfigurationBuilder withProxyUsername(@Nullable String proxyUsername)
Sets the value of the proxy username. If not set or explicitly set to null, the connection to the proxy will not be authenticated- Parameters:
proxyUsername
- The Proxy Username- Returns:
- a reference to the CdpClientConfiguration object so that method calls can be chained together
-
getProxyUsername
public String getProxyUsername()
Gets the current proxy username.- Returns:
- the proxy username
-
withProxyPassword
public CdpClientConfigurationBuilder withProxyPassword(@Nullable String proxyPassword)
Sets the value of the proxy password.- Parameters:
proxyPassword
- The Proxy Password- Returns:
- a reference to the CdpClientConfiguration object so that method calls can be chained together
-
getProxyPassword
public String getProxyPassword()
Gets the current proxy password.- Returns:
- the proxy password
-
withIgnoreTls
public CdpClientConfigurationBuilder withIgnoreTls(boolean ignoreTls)
Sets the switch to ignore HTTPS verification errors.- Parameters:
ignoreTls
- The switch to ignore HTTPS verification errors- Returns:
- a reference to the CdpClientConfiguration object so that method calls can be chained together
-
getIgnoreTls
public boolean getIgnoreTls()
Gets the switch to ignore HTTPS verification errors.- Returns:
- the switch to ignore HTTPS verification errors
-
withTrustedCertificates
public CdpClientConfigurationBuilder withTrustedCertificates(List<X509Certificate> trustedCertificates)
Sets the trusted certificates.- Parameters:
trustedCertificates
- The trusted certificates- Returns:
- a reference to the CdpClientConfiguration object so that method calls can be chained together
-
addTrustedCertificate
public CdpClientConfigurationBuilder addTrustedCertificate(X509Certificate trustedCertificate)
Adds the trusted certificate.- Parameters:
trustedCertificate
- The trusted certificate- Returns:
- a reference to the CdpClientConfiguration object so that method calls can be chained together
-
getTrustedCertificates
public List<X509Certificate> getTrustedCertificates()
Gets the trusted certificates.- Returns:
- the trusted certificates
-
withRequestHeaders
public CdpClientConfigurationBuilder withRequestHeaders(Map<String,String> requestHeaders)
Sets the request headers.- Parameters:
requestHeaders
- The request headers- Returns:
- a reference to the CdpClientConfiguration object so that method calls can be chained together
-
addRequestHeader
public CdpClientConfigurationBuilder addRequestHeader(String name, String value)
Adds the request header.- Parameters:
name
- The request header namevalue
- The request header value- Returns:
- a reference to the CdpClientConfiguration object so that method calls can be chained together
-
getRequestHeaders
public Map<String,String> getRequestHeaders()
Gets the request headers.- Returns:
- the request headers
-
defaultBuilder
public static CdpClientConfigurationBuilder defaultBuilder()
Gets an CdpClientConfigurationBuilder object with all the default values set.- Returns:
- an CdpClientConfiguration object with default values for each property
-
build
public CdpClientConfiguration build()
Builds an CdpClientConfiguration object based on current settings.- Returns:
- an CdpClientConfiguration object with current settings
-
-