Class ClientConfiguration
- java.lang.Object
-
- com.amazonaws.ClientConfiguration
-
public class ClientConfiguration extends Object
Client configuration options such as proxy settings, user agent string, max retry attempts, etc.- See Also:
PredefinedClientConfigurations
-
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_CLIENT_EXECUTION_TIMEOUT
The default timeout for a request.static long
DEFAULT_CONNECTION_MAX_IDLE_MILLIS
The default maximum idle time (in milliseconds) for a connection in the connection pool.static int
DEFAULT_CONNECTION_TIMEOUT
The default timeout for creating new connections.static long
DEFAULT_CONNECTION_TTL
The default expiration time (in milliseconds) for a connection in the connection pool.static int
DEFAULT_MAX_CONNECTIONS
The default max connection pool size.static int
DEFAULT_REQUEST_TIMEOUT
The default timeout for a request.static int
DEFAULT_RESPONSE_METADATA_CACHE_SIZE
The default response metadata cache size.static RetryPolicy
DEFAULT_RETRY_POLICY
Default request retry policy, including the maximum retry count of 3, the default retry condition and the default back-off strategy.static int
DEFAULT_SOCKET_TIMEOUT
The default timeout for reading from a connected socket.static boolean
DEFAULT_TCP_KEEP_ALIVE
The default on whether to use TCP KeepAlive.static boolean
DEFAULT_THROTTLE_RETRIES
The default on whether to throttle retries.static boolean
DEFAULT_USE_GZIP
The default on whether to use gzip compression.static boolean
DEFAULT_USE_REAPER
The default on whether to use theIdleConnectionReaper
to manage stale connectionsstatic String
DEFAULT_USER_AGENT
The default HTTP user agent header for AWS Java SDK clients.
-
Constructor Summary
Constructors Constructor Description ClientConfiguration()
ClientConfiguration(ClientConfiguration other)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ApacheHttpClientConfig
getApacheHttpClientConfig()
Returns a non-null object that can be used to specify Apache HTTP client specific custom configurations.int
getClientExecutionTimeout()
Returns the amount of time (in milliseconds) to allow the client to complete the execution of an API call.long
getConnectionMaxIdleMillis()
Returns the maximum amount of time that an idle connection may sit in the connection pool and still be eligible for reuse.int
getConnectionTimeout()
Returns the amount of time to wait (in milliseconds) when initially establishing a connection before giving up and timing out.long
getConnectionTTL()
Returns the expiration time (in milliseconds) for a connection in the connection pool.DnsResolver
getDnsResolver()
Returns the DnsResolver for resolving AWS IP addresses.InetAddress
getLocalAddress()
Returns the optional local address the client will bind to.int
getMaxConnections()
Returns the maximum number of allowed open HTTP connections.int
getMaxErrorRetry()
Returns the maximum number of retry attempts for failed retryable requests (ex: 5xx error responses from a service).Protocol
getProtocol()
Returns the protocol (HTTP or HTTPS) to use when connecting to Amazon Web Services.String
getProxyDomain()
Returns the optional Windows domain name for configuring an NTLM proxy.String
getProxyHost()
Returns the optional proxy host the client will connect through.String
getProxyPassword()
Returns the optional proxy password to use if connecting through a proxy.int
getProxyPort()
Returns the optional proxy port the client will connect through.String
getProxyUsername()
Returns the optional proxy user name to use if connecting through a proxy.String
getProxyWorkstation()
Returns the optional Windows workstation name for configuring NTLM proxy support.int
getRequestTimeout()
Returns the amount of time to wait (in milliseconds) for the request to complete before giving up and timing out.int
getResponseMetadataCacheSize()
Returns the response metadata cache size.RetryPolicy
getRetryPolicy()
Returns the retry policy upon failed requests.SecureRandom
getSecureRandom()
Returns the instance ofSecureRandom
configured by the user; or the JDK default if it is null.String
getSignerOverride()
Returns the name of the signature algorithm to use for signing requests made by this client.int[]
getSocketBufferSizeHints()
Returns the optional size hints (in bytes) for the low level TCP send and receive buffers.int
getSocketTimeout()
Returns the amount of time to wait (in milliseconds) for data to be transfered over an established, open connection before the connection times out and is closed.String
getUserAgent()
Returns the HTTP user agent header to send with all requests.boolean
isPreemptiveBasicProxyAuth()
Returns whether to attempt to authenticate preemptively against proxy servers using basic authenticationboolean
isUseExpectContinue()
Returns the use expect continue flagvoid
setClientExecutionTimeout(int clientExecutionTimeout)
Sets the amount of time (in milliseconds) to allow the client to complete the execution of an API call.void
setConnectionMaxIdleMillis(long connectionMaxIdleMillis)
Sets the maximum amount of time that an idle connection may sit in the connection pool and still be eligible for reuse.void
setConnectionTimeout(int connectionTimeout)
Sets the amount of time to wait (in milliseconds) when initially establishing a connection before giving up and timing out.void
setConnectionTTL(long connectionTTL)
Sets the expiration time (in milliseconds) for a connection in the connection pool.void
setDnsResolver(DnsResolver resolver)
Sets the DNS Resolver that should be used to for resolving AWS IP addresses.void
setLocalAddress(InetAddress localAddress)
Sets the optional local address the client will bind to.void
setMaxConnections(int maxConnections)
Sets the maximum number of allowed open HTTP connections.void
setMaxErrorRetry(int maxErrorRetry)
Sets the maximum number of retry attempts for failed retryable requests (ex: 5xx error responses from services).void
setPreemptiveBasicProxyAuth(Boolean preemptiveBasicProxyAuth)
Sets whether to attempt to authenticate preemptively against proxy servers using basic authenticationvoid
setProtocol(Protocol protocol)
Sets the protocol (i.e.void
setProxyDomain(String proxyDomain)
Sets the optional Windows domain name for configuration an NTLM proxy.void
setProxyHost(String proxyHost)
Sets the optional proxy host the client will connect through.void
setProxyPassword(String proxyPassword)
Sets the optional proxy password to use when connecting through a proxy.void
setProxyPort(int proxyPort)
Sets the optional proxy port the client will connect through.void
setProxyUsername(String proxyUsername)
Sets the optional proxy user name to use if connecting through a proxy.void
setProxyWorkstation(String proxyWorkstation)
Sets the optional Windows workstation name for configuring NTLM proxy support.void
setRequestTimeout(int requestTimeout)
Sets the amount of time to wait (in milliseconds) for the request to complete before giving up and timing out.void
setResponseMetadataCacheSize(int responseMetadataCacheSize)
Sets the response metadata cache size.void
setRetryPolicy(RetryPolicy retryPolicy)
Sets the retry policy upon failed requests.void
setSecureRandom(SecureRandom secureRandom)
Sets an instance ofSecureRandom
to be used by the SDK.void
setSignerOverride(String value)
Sets the name of the signature algorithm to use for signing requests made by this client.void
setSocketBufferSizeHints(int socketSendBufferSizeHint, int socketReceiveBufferSizeHint)
Sets the optional size hints (in bytes) for the low level TCP send and receive buffers.void
setSocketTimeout(int socketTimeout)
Sets the amount of time to wait (in milliseconds) for data to be transfered over an established, open connection before the connection times out and is closed.void
setUseExpectContinue(boolean useExpectContinue)
Sets if use expect continue should be enabled.void
setUseGzip(boolean use)
Sets whether gzip compression should be usedvoid
setUserAgent(String userAgent)
Sets the HTTP user agent header to send with all requests.void
setUseReaper(boolean use)
Sets whether theIdleConnectionReaper
is to be started as a daemon threadvoid
setUseTcpKeepAlive(boolean use)
Sets whether or not to enable TCP KeepAlive support at the socket level.void
setUseThrottleRetries(boolean use)
Sets whether throttled retries should be usedboolean
useGzip()
Checks if gzip compression is usedboolean
useReaper()
Checks if theIdleConnectionReaper
is to be startedboolean
useTcpKeepAlive()
Returns whether or not TCP KeepAlive support is enabled.boolean
useThrottledRetries()
Returns whether retry throttling will be used.ClientConfiguration
withClientExecutionTimeout(int clientExecutionTimeout)
Sets the amount of time (in milliseconds) to allow the client to complete the execution of an API call.ClientConfiguration
withConnectionMaxIdleMillis(long connectionMaxIdleMillis)
Sets the maximum amount of time that an idle connection may sit in the connection pool and still be eligible for reuse.ClientConfiguration
withConnectionTimeout(int connectionTimeout)
Sets the amount of time to wait (in milliseconds) when initially establishing a connection before giving up and timing out, and returns the updated ClientConfiguration object so that additional method calls may be chained together.ClientConfiguration
withConnectionTTL(long connectionTTL)
Sets the expiration time (in milliseconds) for a connection in the connection pool.ClientConfiguration
withDnsResolver(DnsResolver resolver)
Sets the DNS Resolver that should be used to for resolving AWS IP addresses.ClientConfiguration
withGzip(boolean use)
Sets whether gzip compression should be usedClientConfiguration
withLocalAddress(InetAddress localAddress)
Sets the optional local address the client will bind to and returns the updated ClientConfiguration object.ClientConfiguration
withMaxConnections(int maxConnections)
Sets the maximum number of allowed open HTTP connections and returns the updated ClientConfiguration object.ClientConfiguration
withMaxErrorRetry(int maxErrorRetry)
Sets the maximum number of retry attempts for failed retryable requests (ex: 5xx error responses from services), and returns the updated ClientConfiguration object.ClientConfiguration
withPreemptiveBasicProxyAuth(boolean preemptiveBasicProxyAuth)
Sets whether to attempt to authenticate preemptively against proxy servers using basic authentication, and returns the updated ClientConfiguration object so that additional method calls may be chained together.ClientConfiguration
withProtocol(Protocol protocol)
Sets the protocol (i.e.ClientConfiguration
withProxyDomain(String proxyDomain)
Sets the optional Windows domain name for configuration an NTLM proxy and returns a reference to this updated ClientConfiguration object so that additional method calls can be chained together.ClientConfiguration
withProxyHost(String proxyHost)
Sets the optional proxy host the client will connect through and returns the updated ClientConfiguration object.ClientConfiguration
withProxyPassword(String proxyPassword)
Sets the optional proxy password to use when connecting through a proxy, and returns the updated ClientConfiguration object.ClientConfiguration
withProxyPort(int proxyPort)
Sets the optional proxy port the client will connect through and returns the updated ClientConfiguration object.ClientConfiguration
withProxyUsername(String proxyUsername)
Sets the optional proxy user name and returns the updated ClientConfiguration object.ClientConfiguration
withProxyWorkstation(String proxyWorkstation)
Sets the optional Windows workstation name for configuring NTLM proxy support, and returns the updated ClientConfiguration object so that additional method calls can be chained together.ClientConfiguration
withReaper(boolean use)
Sets whether theIdleConnectionReaper
is to be started as a daemon threadClientConfiguration
withRequestTimeout(int requestTimeout)
Sets the amount of time to wait (in milliseconds) for the request to complete before giving up and timing out.ClientConfiguration
withResponseMetadataCacheSize(int responseMetadataCacheSize)
Sets the response metadata cache size.ClientConfiguration
withRetryPolicy(RetryPolicy retryPolicy)
Sets the retry policy upon failed requests, and returns the updated ClientConfiguration object.ClientConfiguration
withSecureRandom(SecureRandom secureRandom)
Fluent API forsetSecureRandom(SecureRandom)
.ClientConfiguration
withSignerOverride(String value)
Sets the name of the signature algorithm to use for signing requests made by this client.ClientConfiguration
withSocketBufferSizeHints(int socketSendBufferSizeHint, int socketReceiveBufferSizeHint)
Sets the optional size hints (in bytes) for the low level TCP send and receive buffers, and returns the updated ClientConfiguration object so that additional method calls may be chained together.ClientConfiguration
withSocketTimeout(int socketTimeout)
Sets the amount of time to wait (in milliseconds) for data to be transfered over an established, open connection before the connection times out and is closed, and returns the updated ClientConfiguration object so that additional method calls may be chained together.ClientConfiguration
withTcpKeepAlive(boolean use)
Sets whether or not to enable TCP KeepAlive support at the socket level.ClientConfiguration
withThrottledRetries(boolean use)
Sets whether throttled retries should be usedClientConfiguration
withUseExpectContinue(boolean useExpectContinue)
Sets if use expect continue should be enabled.ClientConfiguration
withUserAgent(String userAgent)
Sets the HTTP user agent header used in requests and returns the updated ClientConfiguration object.
-
-
-
Field Detail
-
DEFAULT_CONNECTION_TIMEOUT
public static final int DEFAULT_CONNECTION_TIMEOUT
The default timeout for creating new connections.- See Also:
- Constant Field Values
-
DEFAULT_SOCKET_TIMEOUT
public static final int DEFAULT_SOCKET_TIMEOUT
The default timeout for reading from a connected socket.- See Also:
- Constant Field Values
-
DEFAULT_REQUEST_TIMEOUT
public static final int DEFAULT_REQUEST_TIMEOUT
The default timeout for a request. This is disabled by default.- See Also:
- Constant Field Values
-
DEFAULT_CLIENT_EXECUTION_TIMEOUT
public static final int DEFAULT_CLIENT_EXECUTION_TIMEOUT
The default timeout for a request. This is disabled by default.- See Also:
- Constant Field Values
-
DEFAULT_MAX_CONNECTIONS
public static final int DEFAULT_MAX_CONNECTIONS
The default max connection pool size.- See Also:
- Constant Field Values
-
DEFAULT_USER_AGENT
public static final String DEFAULT_USER_AGENT
The default HTTP user agent header for AWS Java SDK clients.
-
DEFAULT_RETRY_POLICY
public static final RetryPolicy DEFAULT_RETRY_POLICY
Default request retry policy, including the maximum retry count of 3, the default retry condition and the default back-off strategy.
-
DEFAULT_USE_REAPER
public static final boolean DEFAULT_USE_REAPER
The default on whether to use theIdleConnectionReaper
to manage stale connections- See Also:
IdleConnectionReaper
, Constant Field Values
-
DEFAULT_USE_GZIP
public static final boolean DEFAULT_USE_GZIP
The default on whether to use gzip compression.- See Also:
- Constant Field Values
-
DEFAULT_CONNECTION_TTL
public static final long DEFAULT_CONNECTION_TTL
The default expiration time (in milliseconds) for a connection in the connection pool.- See Also:
- Constant Field Values
-
DEFAULT_CONNECTION_MAX_IDLE_MILLIS
public static final long DEFAULT_CONNECTION_MAX_IDLE_MILLIS
The default maximum idle time (in milliseconds) for a connection in the connection pool.- See Also:
- Constant Field Values
-
DEFAULT_TCP_KEEP_ALIVE
public static final boolean DEFAULT_TCP_KEEP_ALIVE
The default on whether to use TCP KeepAlive.- See Also:
- Constant Field Values
-
DEFAULT_THROTTLE_RETRIES
public static final boolean DEFAULT_THROTTLE_RETRIES
The default on whether to throttle retries.- See Also:
- Constant Field Values
-
DEFAULT_RESPONSE_METADATA_CACHE_SIZE
public static final int DEFAULT_RESPONSE_METADATA_CACHE_SIZE
The default response metadata cache size.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ClientConfiguration
public ClientConfiguration()
-
ClientConfiguration
public ClientConfiguration(ClientConfiguration other)
-
-
Method Detail
-
getProtocol
public Protocol getProtocol()
Returns the protocol (HTTP or HTTPS) to use when connecting to Amazon Web Services.The default configuration is to use HTTPS for all requests for increased security.
Individual clients can also override this setting by explicitly including the protocol as part of the endpoint URL when calling
AmazonWebServiceClient.setEndpoint(String)
.- Returns:
- The protocol to use when connecting to Amazon Web Services.
-
setProtocol
public void setProtocol(Protocol protocol)
Sets the protocol (i.e. HTTP or HTTPS) to use when connecting to Amazon Web Services.The default configuration is to use HTTPS for all requests for increased security.
Individual clients can also override this setting by explicitly including the protocol as part of the endpoint URL when calling
AmazonWebServiceClient.setEndpoint(String)
.- Parameters:
protocol
- The protocol to use when connecting to Amazon Web Services.
-
withProtocol
public ClientConfiguration withProtocol(Protocol protocol)
Sets the protocol (i.e. HTTP or HTTPS) to use when connecting to Amazon Web Services, and returns the updated ClientConfiguration object so that additional calls may be chained together.The default configuration is to use HTTPS for all requests for increased security.
Individual clients can also override this setting by explicitly including the protocol as part of the endpoint URL when calling
AmazonWebServiceClient.setEndpoint(String)
.- Parameters:
protocol
- The protocol to use when connecting to Amazon Web Services.- Returns:
- The updated ClientConfiguration object with the new max HTTP connections setting.
-
getMaxConnections
public int getMaxConnections()
Returns the maximum number of allowed open HTTP connections.- Returns:
- The maximum number of allowed open HTTP connections.
-
setMaxConnections
public void setMaxConnections(int maxConnections)
Sets the maximum number of allowed open HTTP connections.- Parameters:
maxConnections
- The maximum number of allowed open HTTP connections.
-
withMaxConnections
public ClientConfiguration withMaxConnections(int maxConnections)
Sets the maximum number of allowed open HTTP connections and returns the updated ClientConfiguration object.- Parameters:
maxConnections
- The maximum number of allowed open HTTP connections.- Returns:
- The updated ClientConfiguration object with the new max HTTP connections setting.
-
getUserAgent
public String getUserAgent()
Returns the HTTP user agent header to send with all requests.- Returns:
- The user agent string to use when sending requests.
-
setUserAgent
public void setUserAgent(String userAgent)
Sets the HTTP user agent header to send with all requests.- Parameters:
userAgent
- The user agent string to use when sending requests.
-
withUserAgent
public ClientConfiguration withUserAgent(String userAgent)
Sets the HTTP user agent header used in requests and returns the updated ClientConfiguration object.- Parameters:
userAgent
- The user agent string to use when sending requests.- Returns:
- The updated ClientConfiguration object.
-
getLocalAddress
public InetAddress getLocalAddress()
Returns the optional local address the client will bind to.- Returns:
- The local address the client will bind to.
-
setLocalAddress
public void setLocalAddress(InetAddress localAddress)
Sets the optional local address the client will bind to.- Parameters:
localAddress
- The local address the client will bind to.
-
withLocalAddress
public ClientConfiguration withLocalAddress(InetAddress localAddress)
Sets the optional local address the client will bind to and returns the updated ClientConfiguration object.- Parameters:
localAddress
- The local address the client will bind to.- Returns:
- The updated ClientConfiguration object.
-
getProxyHost
public String getProxyHost()
Returns the optional proxy host the client will connect through. Returns either the proxyHost set on this object, or if not provided, checks the value of the Java system property for proxy host according to {@link this.getProtocol()}: i.e. if protocol is https, returns the value of the system property https.proxyHost, otherwise returns value of http.proxyHost.- Returns:
- The proxy host the client will connect through.
-
setProxyHost
public void setProxyHost(String proxyHost)
Sets the optional proxy host the client will connect through.- Parameters:
proxyHost
- The proxy host the client will connect through.
-
withProxyHost
public ClientConfiguration withProxyHost(String proxyHost)
Sets the optional proxy host the client will connect through and returns the updated ClientConfiguration object.- Parameters:
proxyHost
- The proxy host the client will connect through.- Returns:
- The updated ClientConfiguration object.
-
getProxyPort
public int getProxyPort()
Returns the optional proxy port the client will connect through. Returns either the proxyPort set on this object, or if not provided, checks the value of the Java system property for proxy port according to {@link this.getProtocol()}: i.e. if protocol is https, returns the value of the system property https.proxyPort, otherwise returns value of http.proxyPort.- Returns:
- The proxy port the client will connect through.
-
setProxyPort
public void setProxyPort(int proxyPort)
Sets the optional proxy port the client will connect through.- Parameters:
proxyPort
- The proxy port the client will connect through.
-
withProxyPort
public ClientConfiguration withProxyPort(int proxyPort)
Sets the optional proxy port the client will connect through and returns the updated ClientConfiguration object.- Parameters:
proxyPort
- The proxy port the client will connect through.- Returns:
- The updated ClientConfiguration object.
-
getProxyUsername
public String getProxyUsername()
Returns the optional proxy user name to use if connecting through a proxy. Returns either the proxyUsername set on this object, or if not provided, checks the value of the Java system property for proxy user name according to {@link this.getProtocol()}: i.e. if protocol is https, returns the value of the system property https.proxyUsername, otherwise returns value of http.proxyUsername.- Returns:
- The optional proxy user name the configured client will use if connecting through a proxy.
-
setProxyUsername
public void setProxyUsername(String proxyUsername)
Sets the optional proxy user name to use if connecting through a proxy.- Parameters:
proxyUsername
- The proxy user name to use if connecting through a proxy.
-
withProxyUsername
public ClientConfiguration withProxyUsername(String proxyUsername)
Sets the optional proxy user name and returns the updated ClientConfiguration object.- Parameters:
proxyUsername
- The proxy user name to use if connecting through a proxy.- Returns:
- The updated ClientConfiguration object.
-
getProxyPassword
public String getProxyPassword()
Returns the optional proxy password to use if connecting through a proxy. Returns either the proxyPassword set on this object, or if not provided, checks the value of the Java system property for proxy password according to {@link this.getProtocol()}: i.e. if protocol is https, returns the value of the system property https.proxyPassword, otherwise returns value of http.proxyPassword.- Returns:
- The password to use when connecting through a proxy.
-
setProxyPassword
public void setProxyPassword(String proxyPassword)
Sets the optional proxy password to use when connecting through a proxy.- Parameters:
proxyPassword
- The password to use when connecting through a proxy.
-
withProxyPassword
public ClientConfiguration withProxyPassword(String proxyPassword)
Sets the optional proxy password to use when connecting through a proxy, and returns the updated ClientConfiguration object.- Parameters:
proxyPassword
- The password to use when connecting through a proxy.- Returns:
- The updated ClientConfiguration object.
-
getProxyDomain
public String getProxyDomain()
Returns the optional Windows domain name for configuring an NTLM proxy. If you aren't using a Windows NTLM proxy, you do not need to set this field.- Returns:
- The optional Windows domain name for configuring an NTLM proxy.
-
setProxyDomain
public void setProxyDomain(String proxyDomain)
Sets the optional Windows domain name for configuration an NTLM proxy. If you aren't using a Windows NTLM proxy, you do not need to set this field.- Parameters:
proxyDomain
- The optional Windows domain name for configuring an NTLM proxy.
-
withProxyDomain
public ClientConfiguration withProxyDomain(String proxyDomain)
Sets the optional Windows domain name for configuration an NTLM proxy and returns a reference to this updated ClientConfiguration object so that additional method calls can be chained together. If you aren't using a Windows NTLM proxy, you do not need to set this field.- Parameters:
proxyDomain
- The optional Windows domain name for configuring an NTLM proxy.- Returns:
- The updated ClientConfiguration object.
-
getProxyWorkstation
public String getProxyWorkstation()
Returns the optional Windows workstation name for configuring NTLM proxy support. If you aren't using a Windows NTLM proxy, you do not need to set this field.- Returns:
- The optional Windows workstation name for configuring NTLM proxy support.
-
setProxyWorkstation
public void setProxyWorkstation(String proxyWorkstation)
Sets the optional Windows workstation name for configuring NTLM proxy support. If you aren't using a Windows NTLM proxy, you do not need to set this field.- Parameters:
proxyWorkstation
- The optional Windows workstation name for configuring NTLM proxy support.
-
withProxyWorkstation
public ClientConfiguration withProxyWorkstation(String proxyWorkstation)
Sets the optional Windows workstation name for configuring NTLM proxy support, and returns the updated ClientConfiguration object so that additional method calls can be chained together. If you aren't using a Windows NTLM proxy, you do not need to set this field.- Parameters:
proxyWorkstation
- The optional Windows workstation name for configuring NTLM proxy support.- Returns:
- The updated ClientConfiguration object.
-
getRetryPolicy
public RetryPolicy getRetryPolicy()
Returns the retry policy upon failed requests.- Returns:
- The retry policy upon failed requests.
-
setRetryPolicy
public void setRetryPolicy(RetryPolicy retryPolicy)
Sets the retry policy upon failed requests. User could specify whether the RetryPolicy should honor maxErrorRetry set bysetMaxErrorRetry(int)
.- Parameters:
retryPolicy
- The retry policy upon failed requests.
-
withRetryPolicy
public ClientConfiguration withRetryPolicy(RetryPolicy retryPolicy)
Sets the retry policy upon failed requests, and returns the updated ClientConfiguration object. User could specify whether the RetryPolicy should honor maxErrorRetry set bysetMaxErrorRetry(int)
- Parameters:
retryPolicy
- The retry policy upon failed requests.
-
getMaxErrorRetry
public int getMaxErrorRetry()
Returns the maximum number of retry attempts for failed retryable requests (ex: 5xx error responses from a service). This method returns -1 before a maxErrorRetry value is explicitly set bysetMaxErrorRetry(int)
, in which case the configured RetryPolicy will be used to control the retry count.- Returns:
- The maximum number of retry attempts for failed retryable requests, or -1 if
maxErrorRetry has not been set by
setMaxErrorRetry(int)
.
-
setMaxErrorRetry
public void setMaxErrorRetry(int maxErrorRetry)
Sets the maximum number of retry attempts for failed retryable requests (ex: 5xx error responses from services).- Parameters:
maxErrorRetry
- The maximum number of retry attempts for failed retryable requests. This value should not be negative.
-
withMaxErrorRetry
public ClientConfiguration withMaxErrorRetry(int maxErrorRetry)
Sets the maximum number of retry attempts for failed retryable requests (ex: 5xx error responses from services), and returns the updated ClientConfiguration object.- Parameters:
maxErrorRetry
- The maximum number of retry attempts for failed retryable requests. This value should not be negative.- Returns:
- The updated ClientConfiguration object.
-
getSocketTimeout
public int getSocketTimeout()
Returns the amount of time to wait (in milliseconds) for data to be transfered over an established, open connection before the connection times out and is closed. A value of 0 means infinity, and isn't recommended.- Returns:
- The amount of time to wait (in milliseconds) for data to be transfered over an established, open connection before the connection times out and is closed.
-
setSocketTimeout
public void setSocketTimeout(int socketTimeout)
Sets the amount of time to wait (in milliseconds) for data to be transfered over an established, open connection before the connection times out and is closed. A value of 0 means infinity, and isn't recommended.- Parameters:
socketTimeout
- The amount of time to wait (in milliseconds) for data to be transfered over an established, open connection before the connection is times out and is closed.
-
withSocketTimeout
public ClientConfiguration withSocketTimeout(int socketTimeout)
Sets the amount of time to wait (in milliseconds) for data to be transfered over an established, open connection before the connection times out and is closed, and returns the updated ClientConfiguration object so that additional method calls may be chained together.- Parameters:
socketTimeout
- The amount of time to wait (in milliseconds) for data to be transfered over an established, open connection before the connection is times out and is closed.- Returns:
- The updated ClientConfiguration object.
-
getConnectionTimeout
public int getConnectionTimeout()
Returns the amount of time to wait (in milliseconds) when initially establishing a connection before giving up and timing out. A value of 0 means infinity, and is not recommended.- Returns:
- The amount of time to wait (in milliseconds) when initially establishing a connection before giving up and timing out.
-
setConnectionTimeout
public void setConnectionTimeout(int connectionTimeout)
Sets the amount of time to wait (in milliseconds) when initially establishing a connection before giving up and timing out. A value of 0 means infinity, and is not recommended.- Parameters:
connectionTimeout
- The amount of time to wait (in milliseconds) when initially establishing a connection before giving up and timing out.
-
withConnectionTimeout
public ClientConfiguration withConnectionTimeout(int connectionTimeout)
Sets the amount of time to wait (in milliseconds) when initially establishing a connection before giving up and timing out, and returns the updated ClientConfiguration object so that additional method calls may be chained together.- Parameters:
connectionTimeout
- the amount of time to wait (in milliseconds) when initially establishing a connection before giving up and timing out.- Returns:
- The updated ClientConfiguration object.
-
getRequestTimeout
public int getRequestTimeout()
Returns the amount of time to wait (in milliseconds) for the request to complete before giving up and timing out. A non-positive value disables this feature.This feature requires buffering the entire response (for non-streaming APIs) into memory to enforce a hard timeout when reading the response. For APIs that return large responses this could be expensive.
The request timeout feature doesn't have strict guarantees on how quickly a request is aborted when the timeout is breached. The typical case aborts the request within a few milliseconds but there may occasionally be requests that don't get aborted until several seconds after the timer has been breached. Because of this, the request timeout feature should not be used when absolute precision is needed.
Note: This feature is not compatible with Java 1.6.- Returns:
- The amount of time to wait (in milliseconds) for the request to complete before giving up and timing out.
-
setRequestTimeout
public void setRequestTimeout(int requestTimeout)
Sets the amount of time to wait (in milliseconds) for the request to complete before giving up and timing out. A non-positive value disables this feature.This feature requires buffering the entire response (for non-streaming APIs) into memory to enforce a hard timeout when reading the response. For APIs that return large responses this could be expensive.
The request timeout feature doesn't have strict guarantees on how quickly a request is aborted when the timeout is breached. The typical case aborts the request within a few milliseconds but there may occasionally be requests that don't get aborted until several seconds after the timer has been breached. Because of this, the request timeout feature should not be used when absolute precision is needed.
Note: This feature is not compatible with Java 1.6.
- Parameters:
requestTimeout
- The amount of time to wait (in milliseconds) for the request to complete before giving up and timing out.
-
withRequestTimeout
public ClientConfiguration withRequestTimeout(int requestTimeout)
Sets the amount of time to wait (in milliseconds) for the request to complete before giving up and timing out. A non-positive value disables this feature. Returns the updated ClientConfiguration object so that additional method calls may be chained together.This feature requires buffering the entire response (for non-streaming APIs) into memory to enforce a hard timeout when reading the response. For APIs that return large responses this could be expensive.
The request timeout feature doesn't have strict guarantees on how quickly a request is aborted when the timeout is breached. The typical case aborts the request within a few milliseconds but there may occasionally be requests that don't get aborted until several seconds after the timer has been breached. Because of this, the request timeout feature should not be used when absolute precision is needed.
Note: This feature is not compatible with Java 1.6.
- Parameters:
requestTimeout
- The amount of time to wait (in milliseconds) for the request to complete before giving up and timing out.- Returns:
- The updated ClientConfiguration object.
-
getClientExecutionTimeout
public int getClientExecutionTimeout()
Returns the amount of time (in milliseconds) to allow the client to complete the execution of an API call. This timeout covers the entire client execution except for marshalling. This includes request handler execution, all HTTP request including retries, unmarshalling, etc.This feature requires buffering the entire response (for non-streaming APIs) into memory to enforce a hard timeout when reading the response. For APIs that return large responses this could be expensive.
The client execution timeout feature doesn't have strict guarantees on how quickly a request is aborted when the timeout is breached. The typical case aborts the request within a few milliseconds but there may occasionally be requests that don't get aborted until several seconds after the timer has been breached. Because of this, the client execution timeout feature should not be used when absolute precision is needed.
This may be used together with
setRequestTimeout(int)
to enforce both a timeout on each individual HTTP request (i.e. each retry) and the total time spent on all requests across retries (i.e. the 'client execution' time). A non-positive value disables this feature.Note: This feature is not compatible with Java 1.6.
- Returns:
- The amount of time (in milliseconds) to allow the client to complete the execution of an API call.
-
setClientExecutionTimeout
public void setClientExecutionTimeout(int clientExecutionTimeout)
Sets the amount of time (in milliseconds) to allow the client to complete the execution of an API call. This timeout covers the entire client execution except for marshalling. This includes request handler execution, all HTTP request including retries, unmarshalling, etc.This feature requires buffering the entire response (for non-streaming APIs) into memory to enforce a hard timeout when reading the response. For APIs that return large responses this could be expensive.
The client execution timeout feature doesn't have strict guarantees on how quickly a request is aborted when the timeout is breached. The typical case aborts the request within a few milliseconds but there may occasionally be requests that don't get aborted until several seconds after the timer has been breached. Because of this, the client execution timeout feature should not be used when absolute precision is needed.
This may be used together with
setRequestTimeout(int)
to enforce both a timeout on each individual HTTP request (i.e. each retry) and the total time spent on all requests across retries (i.e. the 'client execution' time). A non-positive value disables this feature.Note: This feature is not compatible with Java 1.6.
- Parameters:
clientExecutionTimeout
- The amount of time (in milliseconds) to allow the client to complete the execution of an API call. A value of null disables this feature for this request.
-
withClientExecutionTimeout
public ClientConfiguration withClientExecutionTimeout(int clientExecutionTimeout)
Sets the amount of time (in milliseconds) to allow the client to complete the execution of an API call. This timeout covers the entire client execution except for marshalling. This includes request handler execution, all HTTP request including retries, unmarshalling, etc.This feature requires buffering the entire response (for non-streaming APIs) into memory to enforce a hard timeout when reading the response. For APIs that return large responses this could be expensive.
The client execution timeout feature doesn't have strict guarantees on how quickly a request is aborted when the timeout is breached. The typical case aborts the request within a few milliseconds but there may occasionally be requests that don't get aborted until several seconds after the timer has been breached. Because of this, the client execution timeout feature should not be used when absolute precision is needed.
This may be used together with
setRequestTimeout(int)
to enforce both a timeout on each individual HTTP request (i.e. each retry) and the total time spent on all requests across retries (i.e. the 'client execution' time). A non-positive value disables this feature.Note: This feature is not compatible with Java 1.6.
- Parameters:
clientExecutionTimeout
- The amount of time (in milliseconds) to allow the client to complete the execution of an API call. A value of null disables this feature for this request.- Returns:
- The updated ClientConfiguration object for method chaining
-
useReaper
public boolean useReaper()
Checks if theIdleConnectionReaper
is to be started- Returns:
- if the
IdleConnectionReaper
is to be started
-
setUseReaper
public void setUseReaper(boolean use)
Sets whether theIdleConnectionReaper
is to be started as a daemon thread- Parameters:
use
- whether theIdleConnectionReaper
is to be started as a daemon thread- See Also:
IdleConnectionReaper
-
withReaper
public ClientConfiguration withReaper(boolean use)
Sets whether theIdleConnectionReaper
is to be started as a daemon thread- Parameters:
use
- theIdleConnectionReaper
is to be started as a daemon thread- Returns:
- The updated ClientConfiguration object.
-
useThrottledRetries
public boolean useThrottledRetries()
Returns whether retry throttling will be used.Retry throttling is a feature which intelligently throttles retry attempts when a large percentage of requests are failing and retries are unsuccessful, particularly in scenarios of degraded service health. In these situations the client will drain its internal retry capacity and slowly roll off from retry attempts until requests begin to succeed again. At that point the retry capacity pool will begin to refill and retries will once again be permitted.
In situations where retries have been throttled this feature will effectively result in fail-fast behavior from the client. Because retries are circumvented exceptions will be immediately returned to the caller if the initial request is unsuccessful. This will result in a greater number of exceptions being returned up front but prevents requests being tied up attempting subsequent retries which are also likely to fail.
- Returns:
- true if retry throttling will be used
-
setUseThrottleRetries
public void setUseThrottleRetries(boolean use)
Sets whether throttled retries should be usedRetry throttling is a feature which intelligently throttles retry attempts when a large percentage of requests are failing and retries are unsuccessful, particularly in scenarios of degraded service health. In these situations the client will drain its internal retry capacity and slowly roll off from retry attempts until requests begin to succeed again. At that point the retry capacity pool will begin to refill and retries will once again be permitted.
In situations where retries have been throttled this feature will effectively result in fail-fast behavior from the client. Because retries are circumvented exceptions will be immediately returned to the caller if the initial request is unsuccessful. This will result in a greater number of exceptions being returned up front but prevents requests being tied up attempting subsequent retries which are also likely to fail.
- Parameters:
use
- true if throttled retries should be used
-
withThrottledRetries
public ClientConfiguration withThrottledRetries(boolean use)
Sets whether throttled retries should be usedRetry throttling is a feature which intelligently throttles retry attempts when a large percentage of requests are failing and retries are unsuccessful, particularly in scenarios of degraded service health. In these situations the client will drain its internal retry capacity and slowly roll off from retry attempts until requests begin to succeed again. At that point the retry capacity pool will begin to refill and retries will once again be permitted.
In situations where retries have been throttled this feature will effectively result in fail-fast behavior from the client. Because retries are circumvented exceptions will be immediately returned to the caller if the initial request is unsuccessful. This will result in a greater number of exceptions being returned up front but prevents requests being tied up attempting subsequent retries which are also likely to fail.
- Parameters:
use
- true if throttled retries should be used- Returns:
- The updated ClientConfiguration object.
-
useGzip
public boolean useGzip()
Checks if gzip compression is used- Returns:
- if gzip compression is used
-
setUseGzip
public void setUseGzip(boolean use)
Sets whether gzip compression should be used- Parameters:
use
- whether gzip compression should be used
-
withGzip
public ClientConfiguration withGzip(boolean use)
Sets whether gzip compression should be used- Parameters:
use
- whether gzip compression should be used- Returns:
- The updated ClientConfiguration object.
-
getSocketBufferSizeHints
public int[] getSocketBufferSizeHints()
Returns the optional size hints (in bytes) for the low level TCP send and receive buffers. This is an advanced option for advanced users who want to tune low level TCP parameters to try and squeeze out more performance.The optimal TCP buffer sizes for a particular application are highly dependent on network configuration and operating system configuration and capabilities. For example, most modern operating systems provide auto-tuning functionality for TCP buffer sizes, which can have a big impact on performance for TCP connections that are held open long enough for the auto-tuning to optimize buffer sizes.
Large buffer sizes (ex: 2MB) will allow the operating system to buffer more data in memory without requiring the remote server to acknowledge receipt of that information, so can be particularly useful when the network has high latency.
This is only a hint, and the operating system may choose not to honor it. When using this option, users should always check the operating system's configured limits and defaults. Most OS's have a maximum TCP buffer size limit configured, and won't let you go beyond that limit unless you explicitly raise the max TCP buffer size limit.
There are many resources available online to help with configuring TCP buffer sizes and operating system specific TCP settings, including:
- http://onlamp.com/pub/a/onlamp/2005/11/17/tcp_tuning.html
- http://fasterdata.es.net/TCP-tuning/
- Returns:
- A two element array containing first the TCP send buffer size hint and then the TCP receive buffer size hint.
-
setSocketBufferSizeHints
public void setSocketBufferSizeHints(int socketSendBufferSizeHint, int socketReceiveBufferSizeHint)
Sets the optional size hints (in bytes) for the low level TCP send and receive buffers. This is an advanced option for advanced users who want to tune low level TCP parameters to try and squeeze out more performance.The optimal TCP buffer sizes for a particular application are highly dependent on network configuration and operating system configuration and capabilities. For example, most modern operating systems provide auto-tuning functionality for TCP buffer sizes, which can have a big impact on performance for TCP connections that are held open long enough for the auto-tuning to optimize buffer sizes.
Large buffer sizes (ex: 2MB) will allow the operating system to buffer more data in memory without requiring the remote server to acknowledge receipt of that information, so can be particularly useful when the network has high latency.
This is only a hint, and the operating system may choose not to honor it. When using this option, users should always check the operating system's configured limits and defaults. Most OS's have a maximum TCP buffer size limit configured, and won't let you go beyond that limit unless you explicitly raise the max TCP buffer size limit.
There are many resources available online to help with configuring TCP buffer sizes and operating system specific TCP settings, including:
- http://onlamp.com/pub/a/onlamp/2005/11/17/tcp_tuning.html
- http://fasterdata.es.net/TCP-tuning/
- Parameters:
socketSendBufferSizeHint
- The size hint (in bytes) for the low level TCP send buffer.socketReceiveBufferSizeHint
- The size hint (in bytes) for the low level TCP receive buffer.
-
withSocketBufferSizeHints
public ClientConfiguration withSocketBufferSizeHints(int socketSendBufferSizeHint, int socketReceiveBufferSizeHint)
Sets the optional size hints (in bytes) for the low level TCP send and receive buffers, and returns the updated ClientConfiguration object so that additional method calls may be chained together.This is an advanced option for advanced users who want to tune low level TCP parameters to try and squeeze out more performance.
The optimal TCP buffer sizes for a particular application are highly dependent on network configuration and operating system configuration and capabilities. For example, most modern operating systems provide auto-tuning functionality for TCP buffer sizes, which can have a big impact on performance for TCP connections that are held open long enough for the auto-tuning to optimize buffer sizes.
Large buffer sizes (ex: 2MB) will allow the operating system to buffer more data in memory without requiring the remote server to acknowledge receipt of that information, so can be particularly useful when the network has high latency.
This is only a hint, and the operating system may choose not to honor it. When using this option, users should always check the operating system's configured limits and defaults. Most OS's have a maximum TCP buffer size limit configured, and won't let you go beyond that limit unless you explicitly raise the max TCP buffer size limit.
There are many resources available online to help with configuring TCP buffer sizes and operating system specific TCP settings, including:
- http://onlamp.com/pub/a/onlamp/2005/11/17/tcp_tuning.html
- http://fasterdata.es.net/TCP-tuning/
- Parameters:
socketSendBufferSizeHint
- The size hint (in bytes) for the low level TCP send buffer.socketReceiveBufferSizeHint
- The size hint (in bytes) for the low level TCP receive buffer.- Returns:
- The updated ClientConfiguration object.
-
getSignerOverride
public String getSignerOverride()
Returns the name of the signature algorithm to use for signing requests made by this client. If not set or explicitly set to null, the client will choose a signature algorithm to use based on a configuration file of supported signature algorithms for the service and region.Most users do not need to concern themselves with which signature algorithm is being used, as the defaults will be sufficient. This setting exists only so advanced users can opt in to newer signature protocols which have not yet been made the default for a particular service/region.
Not all services support all signature algorithms, and configuring an unsupported signature algorithm will lead to authentication failures. Use me at your own risk, and only after consulting the documentation for the service to ensure it actually does supports your chosen algorithm.
If non-null, the name returned from this method is used to look up a
Signer
class implementing the chosen algorithm by thecom.amazonaws.auth.SignerFactory
class.- Returns:
- The signature algorithm to use for this client, or null to use the default.
-
setSignerOverride
public void setSignerOverride(String value)
Sets the name of the signature algorithm to use for signing requests made by this client. If not set or explicitly set to null, the client will choose a signature algorithm to use based on a configuration file of supported signature algorithms for the service and region.Most users do not need to concern themselves with which signature algorithm is being used, as the defaults will be sufficient. This setting exists only so advanced users can opt in to newer signature protocols which have not yet been made the default for a particular service/region.
Not all services support all signature algorithms, and configuring an unsupported signature algorithm will lead to authentication failures. Use me at your own risk, and only after consulting the documentation for the service to ensure it actually does supports your chosen algorithm.
If non-null, the name returned from this method is used to look up a
Signer
class implementing the chosen algorithm by thecom.amazonaws.auth.SignerFactory
class.- Parameters:
value
- The signature algorithm to use for this client, or null to use the default.
-
withSignerOverride
public ClientConfiguration withSignerOverride(String value)
Sets the name of the signature algorithm to use for signing requests made by this client. If not set or explicitly set to null, the client will choose a signature algorithm to use based on a configuration file of supported signature algorithms for the service and region.Most users do not need to concern themselves with which signature algorithm is being used, as the defaults will be sufficient. This setting exists only so advanced users can opt in to newer signature protocols which have not yet been made the default for a particular service/region.
Not all services support all signature algorithms, and configuring an unsupported signature algorithm will lead to authentication failures. Use me at your own risk, and only after consulting the documentation for the service to ensure it actually does supports your chosen algorithm.
If non-null, the name returned from this method is used to look up a
Signer
class implementing the chosen algorithm by thecom.amazonaws.auth.SignerFactory
class.- Parameters:
value
- The signature algorithm to use for this client, or null to use the default.- Returns:
- The updated ClientConfiguration object.
-
isPreemptiveBasicProxyAuth
public boolean isPreemptiveBasicProxyAuth()
Returns whether to attempt to authenticate preemptively against proxy servers using basic authentication- Returns:
- Whether to authenticate preemptively against proxy server.
-
setPreemptiveBasicProxyAuth
public void setPreemptiveBasicProxyAuth(Boolean preemptiveBasicProxyAuth)
Sets whether to attempt to authenticate preemptively against proxy servers using basic authentication- Parameters:
preemptiveBasicProxyAuth
- Whether to authenticate preemptively against proxy server.
-
withPreemptiveBasicProxyAuth
public ClientConfiguration withPreemptiveBasicProxyAuth(boolean preemptiveBasicProxyAuth)
Sets whether to attempt to authenticate preemptively against proxy servers using basic authentication, and returns the updated ClientConfiguration object so that additional method calls may be chained together.- Parameters:
preemptiveBasicProxyAuth
- Whether to authenticate preemptively against proxy server.- Returns:
- The updated ClientConfiguration object.
-
getConnectionTTL
public long getConnectionTTL()
Returns the expiration time (in milliseconds) for a connection in the connection pool. When retrieving a connection from the pool to make a request, the total time that the connection has been open is compared against this value. Connections which have been open for longer are discarded, and if needed a new connection is created.Tuning this setting down (together with an appropriately-low setting for Java's DNS cache TTL) ensures that your application will quickly rotate over to new IP addresses when the service begins announcing them through DNS, at the cost of having to re-establish new connections more frequently.
- Returns:
- the connection TTL, in milliseconds
-
setConnectionTTL
public void setConnectionTTL(long connectionTTL)
Sets the expiration time (in milliseconds) for a connection in the connection pool. When retrieving a connection from the pool to make a request, the total time that the connection has been open is compared against this value. Connections which have been open for longer are discarded, and if needed a new connection is created.Tuning this setting down (together with an appropriately-low setting for Java's DNS cache TTL) ensures that your application will quickly rotate over to new IP addresses when the service begins announcing them through DNS, at the cost of having to re-establish new connections more frequently.
By default, it is set to {@code -1], i.e. connections do not expire.
- Parameters:
connectionTTL
- the connection TTL, in milliseconds
-
withConnectionTTL
public ClientConfiguration withConnectionTTL(long connectionTTL)
Sets the expiration time (in milliseconds) for a connection in the connection pool. When retrieving a connection from the pool to make a request, the total time that the connection has been open is compared against this value. Connections which have been open for longer are discarded, and if needed a new connection is created.Tuning this setting down (together with an appropriately-low setting for Java's DNS cache TTL) ensures that your application will quickly rotate over to new IP addresses when the service begins announcing them through DNS, at the cost of having to re-establish new connections more frequently.
By default, it is set to
-1
, i.e. connections do not expire.- Parameters:
connectionTTL
- the connection TTL, in milliseconds- Returns:
- the updated ClientConfiguration object
-
getConnectionMaxIdleMillis
public long getConnectionMaxIdleMillis()
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, in milliseconds
-
setConnectionMaxIdleMillis
public void setConnectionMaxIdleMillis(long connectionMaxIdleMillis)
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.
By default, it is set to one minute (60000ms).
- Parameters:
connectionMaxIdleMillis
- the connection maximum idle time, in milliseconds
-
withConnectionMaxIdleMillis
public ClientConfiguration withConnectionMaxIdleMillis(long connectionMaxIdleMillis)
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.
By default, it is set to one minute (60000ms).
- Parameters:
connectionMaxIdleMillis
- the connection maximum idle time, in milliseconds- Returns:
- the updated ClientConfiguration object
-
useTcpKeepAlive
public boolean useTcpKeepAlive()
Returns whether or not TCP KeepAlive support is enabled.
-
setUseTcpKeepAlive
public void setUseTcpKeepAlive(boolean use)
Sets whether or not to enable TCP KeepAlive support at the socket level.
-
withTcpKeepAlive
public ClientConfiguration withTcpKeepAlive(boolean use)
Sets whether or not to enable TCP KeepAlive support at the socket level.- Returns:
- The updated ClientConfiguration object.
-
getDnsResolver
public DnsResolver getDnsResolver()
Returns the DnsResolver for resolving AWS IP addresses. Returns theSystemDefaultDnsResolver
by default if not explicitly configured by the user.
-
setDnsResolver
public void setDnsResolver(DnsResolver resolver)
Sets the DNS Resolver that should be used to for resolving AWS IP addresses.
-
withDnsResolver
public ClientConfiguration withDnsResolver(DnsResolver resolver)
Sets the DNS Resolver that should be used to for resolving AWS IP addresses.- Returns:
- The updated ClientConfiguration object.
-
getResponseMetadataCacheSize
public int getResponseMetadataCacheSize()
Returns the response metadata cache size.
-
setResponseMetadataCacheSize
public void setResponseMetadataCacheSize(int responseMetadataCacheSize)
Sets the response metadata cache size. By default, it is set to 50.- Parameters:
responseMetadataCacheSize
- maximum cache size.
-
withResponseMetadataCacheSize
public ClientConfiguration withResponseMetadataCacheSize(int responseMetadataCacheSize)
Sets the response metadata cache size. By default, it is set to 50.- Parameters:
responseMetadataCacheSize
- maximum cache size.- Returns:
- The updated ClientConfiguration object.
-
getApacheHttpClientConfig
public ApacheHttpClientConfig getApacheHttpClientConfig()
Returns a non-null object that can be used to specify Apache HTTP client specific custom configurations.
-
getSecureRandom
public SecureRandom getSecureRandom()
Returns the instance ofSecureRandom
configured by the user; or the JDK default if it is null.- Returns:
- a non-null instance of SecureRandom.
-
setSecureRandom
public void setSecureRandom(SecureRandom secureRandom)
Sets an instance ofSecureRandom
to be used by the SDK.
-
withSecureRandom
public ClientConfiguration withSecureRandom(SecureRandom secureRandom)
Fluent API forsetSecureRandom(SecureRandom)
.
-
isUseExpectContinue
public boolean isUseExpectContinue()
Returns the use expect continue flag
-
setUseExpectContinue
public void setUseExpectContinue(boolean useExpectContinue)
Sets if use expect continue should be enabled. By default, it is set to true.- Parameters:
useExpectContinue
- use expect continue HTTP/1.1 header.
-
withUseExpectContinue
public ClientConfiguration withUseExpectContinue(boolean useExpectContinue)
Sets if use expect continue should be enabled. By default, it is set to true.- Parameters:
useExpectContinue
- use expect continue HTTP/1.1 header.- Returns:
- The updated ClientConfiguration object.
-
-