public class ClientConfiguration
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_CONNECTION_TIMEOUT
The default timeout for creating new connections.
|
static int |
DEFAULT_MAX_CONNECTIONS
The default max connection pool 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 java.lang.String |
DEFAULT_USER_AGENT
The default HTTP user agent header for AWS Java SDK clients.
|
Constructor and Description |
---|
ClientConfiguration()
Constructor.
|
ClientConfiguration(ClientConfiguration other)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
int |
getConnectionTimeout()
Returns the amount of time to wait (in milliseconds) when initially
establishing a connection before giving up and timing out.
|
java.net.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.
|
java.lang.String |
getProxyDomain()
Deprecated.
|
java.lang.String |
getProxyHost()
Returns the optional proxy host the client will connect through.
|
java.lang.String |
getProxyPassword()
Returns the optional proxy password to use when connecting through a
proxy.
|
int |
getProxyPort()
Returns the optional proxy port the client will connect through.
|
java.lang.String |
getProxyUsername()
Returns the optional proxy user name to use if connecting through a
proxy.
|
java.lang.String |
getProxyWorkstation()
Returns the optional Windows workstation name for configuring NTLM proxy
support.
|
RetryPolicy |
getRetryPolicy()
Returns the retry policy upon failed requests.
|
java.lang.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.
|
javax.net.ssl.TrustManager |
getTrustManager()
Gets the trust manager to use for secure connections from this client.
|
java.lang.String |
getUserAgent()
Returns the HTTP user agent header to send with all requests.
|
java.lang.String |
getUserAgentOverride()
The
userAgent string is sometimes combined with other strings. |
boolean |
isCurlLogging()
Tells whether or not the client should be logging anything.
|
boolean |
isEnableGzip() |
boolean |
isPreemptiveBasicProxyAuth()
Returns whether to attempt to authenticate preemptively against proxy
servers using basic authentication
|
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 |
setCurlLogging(boolean curlLogging)
Sets whether or not the client should be logging any information.
|
void |
setEnableGzip(boolean enableGzip)
Sets whether gzip compression should be used
|
void |
setLocalAddress(java.net.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(java.lang.Boolean preemptiveBasicProxyAuth)
Sets whether to attempt to authenticate preemptively against proxy
servers using basic authentication
|
void |
setProtocol(Protocol protocol)
Sets the protocol (i.e.
|
void |
setProxyDomain(java.lang.String proxyDomain)
Deprecated.
|
void |
setProxyHost(java.lang.String proxyHost)
Sets the optional proxy host the client will connect through.
|
void |
setProxyPassword(java.lang.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(java.lang.String proxyUsername)
Sets the optional proxy user name to use if connecting through a proxy.
|
void |
setProxyWorkstation(java.lang.String proxyWorkstation)
Deprecated.
|
void |
setRetryPolicy(RetryPolicy retryPolicy)
Sets the retry policy upon failed requests.
|
void |
setSignerOverride(java.lang.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 |
setTrustManager(javax.net.ssl.TrustManager trustManager)
Sets the trust manager to use for secure connections from this client.
|
void |
setUserAgent(java.lang.String userAgent)
Sets the HTTP user agent header to send with all requests.
|
void |
setUserAgentOverride(java.lang.String userAgentOverride)
The
userAgent string is sometimes combined with other strings. |
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 |
withCurlLogging(boolean curlLogging)
Sets whether or not the client should be logging any information.
|
ClientConfiguration |
withEnableGzip(boolean enableGzip)
Sets whether gzip compression should be used
|
ClientConfiguration |
withLocalAddress(java.net.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(java.lang.String proxyDomain)
Deprecated.
|
ClientConfiguration |
withProxyHost(java.lang.String proxyHost)
Sets the optional proxy host the client will connect through and returns
the updated ClientConfiguration object.
|
ClientConfiguration |
withProxyPassword(java.lang.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(java.lang.String proxyUsername)
Sets the optional proxy user name and returns the updated
ClientConfiguration object.
|
ClientConfiguration |
withProxyWorkstation(java.lang.String proxyWorkstation)
Deprecated.
|
ClientConfiguration |
withRetryPolicy(RetryPolicy retryPolicy)
Sets the retry policy upon failed requests, and returns the updated
ClientConfiguration object.
|
ClientConfiguration |
withSignerOverride(java.lang.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 |
withTrustManager(javax.net.ssl.TrustManager trustManager)
Sets the trust manager to use for secure connections from this client,
and returns the updated ClientConfiguration object so that additional
calls may be chained together.
|
ClientConfiguration |
withUserAgent(java.lang.String userAgent)
Sets the HTTP user agent header used in requests and returns the updated
ClientConfiguration object.
|
ClientConfiguration |
withUserAgentOverride(java.lang.String userAgentOverride)
The
userAgent string is sometimes combined with other strings. |
public static final int DEFAULT_CONNECTION_TIMEOUT
public static final int DEFAULT_SOCKET_TIMEOUT
public static final int DEFAULT_MAX_CONNECTIONS
public static final java.lang.String DEFAULT_USER_AGENT
public static final RetryPolicy DEFAULT_RETRY_POLICY
Note this default policy might be overridden by a service-specific
default policy, if the user doesn't provide a custom RetryPolicy
implementation by setRetryPolicy(RetryPolicy)
. For example,
AmazonDynamoDBClient by default uses a different retry policy
PredefinedRetryPolicies.DYNAMODB_DEFAULT
.
public ClientConfiguration()
public ClientConfiguration(ClientConfiguration other)
other
- the client configuration.public Protocol getProtocol()
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)
.
public void setProtocol(Protocol protocol)
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)
.
protocol
- The protocol to use when connecting to Amazon Web
Services.public ClientConfiguration withProtocol(Protocol protocol)
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)
.
protocol
- The protocol to use when connecting to Amazon Web
Services.public int getMaxConnections()
public void setMaxConnections(int maxConnections)
maxConnections
- The maximum number of allowed open HTTP
connections.public ClientConfiguration withMaxConnections(int maxConnections)
maxConnections
- The maximum number of allowed open HTTP
connections.public java.lang.String getUserAgent()
public void setUserAgent(java.lang.String userAgent)
userAgent
- The user agent string to use when sending requests.public ClientConfiguration withUserAgent(java.lang.String userAgent)
userAgent
- The user agent string to use when sending requests.public java.lang.String getUserAgentOverride()
userAgent
string is sometimes combined with other strings. If this property is set, it instructs the
client to only use this as the full user agent string.public void setUserAgentOverride(java.lang.String userAgentOverride)
userAgent
string is sometimes combined with other strings. If this property is set, it instructs the
client to only use this as the full user agent string.userAgentOverride
- The string to use as the full user agent when sending requests.public ClientConfiguration withUserAgentOverride(java.lang.String userAgentOverride)
userAgent
string is sometimes combined with other strings. If this property is set, it instructs the
client to only use this as the full user agent string.userAgentOverride
- The string to use as the full user agent when sending requests.public java.net.InetAddress getLocalAddress()
public void setLocalAddress(java.net.InetAddress localAddress)
localAddress
- The local address the client will bind to.public ClientConfiguration withLocalAddress(java.net.InetAddress localAddress)
localAddress
- The local address the client will bind to.public java.lang.String getProxyHost()
public void setProxyHost(java.lang.String proxyHost)
proxyHost
- The proxy host the client will connect through.public ClientConfiguration withProxyHost(java.lang.String proxyHost)
proxyHost
- The proxy host the client will connect through.public int getProxyPort()
public void setProxyPort(int proxyPort)
proxyPort
- The proxy port the client will connect through.public ClientConfiguration withProxyPort(int proxyPort)
proxyPort
- The proxy port the client will connect through.public java.lang.String getProxyUsername()
public void setProxyUsername(java.lang.String proxyUsername)
proxyUsername
- The proxy user name to use if connecting through a
proxy.public ClientConfiguration withProxyUsername(java.lang.String proxyUsername)
proxyUsername
- The proxy user name to use if connecting through a
proxy.public java.lang.String getProxyPassword()
public void setProxyPassword(java.lang.String proxyPassword)
proxyPassword
- The password to use when connecting through a proxy.public ClientConfiguration withProxyPassword(java.lang.String proxyPassword)
proxyPassword
- The password to use when connecting through a proxy.@Deprecated public java.lang.String getProxyDomain()
@Deprecated public void setProxyDomain(java.lang.String proxyDomain)
proxyDomain
- The optional Windows domain name for configuring an
NTLM proxy.@Deprecated public ClientConfiguration withProxyDomain(java.lang.String proxyDomain)
proxyDomain
- The optional Windows domain name for configuring an
NTLM proxy.public java.lang.String getProxyWorkstation()
@Deprecated public void setProxyWorkstation(java.lang.String proxyWorkstation)
proxyWorkstation
- The optional Windows workstation name for
configuring NTLM proxy support.@Deprecated public ClientConfiguration withProxyWorkstation(java.lang.String proxyWorkstation)
proxyWorkstation
- The optional Windows workstation name for
configuring NTLM proxy support.public RetryPolicy getRetryPolicy()
public void setRetryPolicy(RetryPolicy retryPolicy)
setMaxErrorRetry(int)
.retryPolicy
- The retry policy upon failed requests.public ClientConfiguration withRetryPolicy(RetryPolicy retryPolicy)
setMaxErrorRetry(int)
retryPolicy
- The retry policy upon failed requests.public int getMaxErrorRetry()
setMaxErrorRetry(int)
, in which case the configured RetryPolicy
will be used to control the retry count.setMaxErrorRetry(int)
.public void setMaxErrorRetry(int maxErrorRetry)
maxErrorRetry
- The maximum number of retry attempts for failed
retryable requests. This value should not be negative.public ClientConfiguration withMaxErrorRetry(int maxErrorRetry)
maxErrorRetry
- The maximum number of retry attempts for failed
retryable requests. This value should not be negative.public int getSocketTimeout()
public void setSocketTimeout(int socketTimeout)
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.public ClientConfiguration withSocketTimeout(int socketTimeout)
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.public int getConnectionTimeout()
public void setConnectionTimeout(int connectionTimeout)
connectionTimeout
- The amount of time to wait (in milliseconds)
when initially establishing a connection before giving up and
timing out.public ClientConfiguration withConnectionTimeout(int connectionTimeout)
connectionTimeout
- the amount of time to wait (in milliseconds)
when initially establishing a connection before giving up and
timing out.public int[] getSocketBufferSizeHints()
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:
public void setSocketBufferSizeHints(int socketSendBufferSizeHint, int socketReceiveBufferSizeHint)
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:
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.public ClientConfiguration withSocketBufferSizeHints(int socketSendBufferSizeHint, int socketReceiveBufferSizeHint)
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:
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.public java.lang.String getSignerOverride()
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 the
com.amazonaws.auth.SignerFactory
class.
public void setSignerOverride(java.lang.String value)
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 the
com.amazonaws.auth.SignerFactory
class.
value
- The signature algorithm to use for this client, or null to
use the default.public ClientConfiguration withSignerOverride(java.lang.String value)
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 the
com.amazonaws.auth.SignerFactory
class.
value
- The signature algorithm to use for this client, or null to
use the default.public boolean isPreemptiveBasicProxyAuth()
public void setPreemptiveBasicProxyAuth(java.lang.Boolean preemptiveBasicProxyAuth)
preemptiveBasicProxyAuth
- Whether to authenticate preemptively
against proxy server.public ClientConfiguration withPreemptiveBasicProxyAuth(boolean preemptiveBasicProxyAuth)
preemptiveBasicProxyAuth
- Whether to authenticate preemptively
against proxy server.public javax.net.ssl.TrustManager getTrustManager()
public void setTrustManager(javax.net.ssl.TrustManager trustManager)
trustManager
- The trust manager to use for this client.public ClientConfiguration withTrustManager(javax.net.ssl.TrustManager trustManager)
trustManager
- The trust manager to use for this client.public boolean isCurlLogging()
public void setCurlLogging(boolean curlLogging)
curlLogging
- Whether or not the client should be logging operations.public ClientConfiguration withCurlLogging(boolean curlLogging)
curlLogging
- Whether or not the client should be logging operations.public boolean isEnableGzip()
public void setEnableGzip(boolean enableGzip)
enableGzip
- true if it is a gzip.public ClientConfiguration withEnableGzip(boolean enableGzip)
enableGzip
- whether gzip compression should be usedCopyright © 2018 Amazon Web Services, Inc. All Rights Reserved.