-
Notifications
You must be signed in to change notification settings - Fork 861
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add apache-async-client #1543
Add apache-async-client #1543
Conversation
...client/src/main/java/software/amazon/awssdk/http/apache/async/ApacheAsyncRequestFactory.java
Outdated
Show resolved
Hide resolved
...client/src/main/java/software/amazon/awssdk/http/apache/async/ApacheAsyncRequestFactory.java
Outdated
Show resolved
Hide resolved
a9c8d8d
to
039b460
Compare
...-async-client/src/main/java/software/amazon/awssdk/http/apache/async/ProxyConfiguration.java
Outdated
Show resolved
Hide resolved
2a9ffcf
to
41f383d
Compare
5fe2ceb
to
c3abf7e
Compare
156b23c
to
abc3d20
Compare
abc3d20
to
fa77504
Compare
I've updated this PR to depend on the latest beta. It no longer requires snapshot builds and is in pretty good shape to merge to a feature branch or something. |
SonarCloud Quality Gate failed. 3 Bugs |
This commit adds a new `SdkAsyncHttpClient` implementation, `ApacheAsyncHttpClient`, as well as a service provider for that implementation. These live in a new module, apache-async-client, which is part of the http-clients module. This client is intended to be roughly equivalent in power to the netty-nio-client, supporting features like HTTP/2, full-duplex HTTP requests, and reactive streams. The client supports the following options: | Option | Default value | Defined by... | Implemented via... | | ------------------------------ | ------------- | ------------------- | ------------------------------------- | | `socketTimeout` | 30 sec | http-client-spi | `IOReactorConfig` | | `connectionTimeout` | 2 sec | http-client-spi | `RequestConfig` | | `connectionAcquisitionTimeout` | 20 sec | http-client-spi | `RequestConfig` | | `maxConnections` | 50 | http-client-spi | `PoolingAsyncClientConnectionManager` | | `proxyConfiguration` | empty object | apache-async-client | `HttpAsyncClient` | | `localAddress` | `null` | apache-async-client | `HttpAsyncClient` | | `expectContinueEnabled` | `true` | apache-async-client | `RequestConfig` | | `connectionTimeToLive` | unlimited | http-client-spi | `PoolingAsyncClientConnectionManager` | | `connectionMaxIdleTime` | 60 sec | http-client-spi | `HttpAsyncClient` | | `protocol` | `null` | http-client-spi | `HttpVersionPolicy` | | `maxHttp2Streams` | `null` | apache-async-client | `H2Config` | | `httpRoutePlanner` | `null` | apache-async-client | `HttpAsyncClient` | | `credentialsProvider` | `null` | apache-async-client | `HttpAsyncClient` | | `tlsKeyManagersProvider` | JVM defaults | http-client-spi | `SSLContext` | The following standard options are not supported: * `SdkHttpConfigurationOption.WRITE_TIMEOUT`: `socketTimeout` maps to `READ_TIMEOUT`, which controls both read and write behavior on every client except netty-nio-client * `SdkHttpConfigurationOption.MAX_PENDING_CONNECTION_ACQUIRES`: Apache supports an acquisition timeout, not a limit on the number of pending connection acquires
7d239e4
to
d6a705b
Compare
…1c59d118c Pull request: release <- staging/c2eace12-0c83-44d0-9b5d-c351c59d118c
Hey Ryan, I'm going to go ahead and close this as the branch has gone stale. I think we as a team should also discuss how want to handle new HTTP client implementations going forward. |
This commit adds a new
SdkAsyncHttpClient
implementation,ApacheAsyncHttpClient
, as well as a service provider for thatimplementation. These live in a new module, apache-async-client, which
is part of the http-clients module.
This client is intended to be roughly equivalent in power to the
netty-nio-client, supporting features like HTTP/2, full-duplex HTTP
requests, and reactive streams.
The client supports the following options:
socketTimeout
IOReactorConfig
connectionTimeout
RequestConfig
connectionAcquisitionTimeout
RequestConfig
maxConnections
PoolingAsyncClientConnectionManager
proxyConfiguration
HttpAsyncClient
localAddress
null
HttpAsyncClient
expectContinueEnabled
true
RequestConfig
connectionTimeToLive
PoolingAsyncClientConnectionManager
connectionMaxIdleTime
HttpAsyncClient
protocol
null
HttpVersionPolicy
maxHttp2Streams
null
H2Config
httpRoutePlanner
null
HttpAsyncClient
credentialsProvider
null
HttpAsyncClient
tlsKeyManagersProvider
SSLContext
The following standard options are not supported:
SdkHttpConfigurationOption.WRITE_TIMEOUT
:socketTimeout
maps toREAD_TIMEOUT
, which controls both read and write behavior on everyclient except netty-nio-client
SdkHttpConfigurationOption.MAX_PENDING_CONNECTION_ACQUIRES
: Apachesupports an acquisition timeout, not a limit on the number of pending
connection acquires