Skip to content

Commit 7e4fc08

Browse files
committed
AsyncClientBuilder cleanup: remove async prefix and create SdkEventGroupLoop to allow users provide both EventGroupLoop and ChannelFactory.
1 parent 0c27e16 commit 7e4fc08

File tree

16 files changed

+397
-344
lines changed

16 files changed

+397
-344
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"category": "AWS SDK for Java v2",
3+
"type": "feature",
4+
"description": "Various AsyncClient Refactors:\\n - Drop async prefix in `SdkAyncClientBuilder`: `SdkAsyncClientBuilder.asyncHttpClientBuilder() -> SdkAsyncClientBuilder.httpClientBuilder()`\\n - Create `SdkEventLoopGroup` to allow users to provide `EventLoopGroup` and `ChannelFactory`."
5+
}

aws-core/src/test/java/software/amazon/awssdk/awscore/client/builder/DefaultAwsClientBuilderTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ public void noAsyncClientProvided_DefaultAsyncHttpClientIsManagedBySdk() {
126126
public void clientFactoryProvided_ClientIsManagedBySdk() {
127127
TestClient client = testClientBuilder()
128128
.region(Region.US_WEST_2)
129-
.httpClientBuilder(serviceDefaults -> {
129+
.httpClientBuilder((SdkHttpClient.Builder) serviceDefaults -> {
130130
assertThat(serviceDefaults).isEqualTo(MOCK_DEFAULTS);
131131
return mock(SdkHttpClient.class);
132132
})
@@ -140,7 +140,7 @@ public void clientFactoryProvided_ClientIsManagedBySdk() {
140140
public void asyncHttpClientFactoryProvided_ClientIsManagedBySdk() {
141141
TestAsyncClient client = testAsyncClientBuilder()
142142
.region(Region.US_WEST_2)
143-
.asyncHttpClientBuilder(serviceDefaults -> {
143+
.httpClientBuilder((SdkAsyncHttpClient.Builder) serviceDefaults -> {
144144
assertThat(serviceDefaults).isEqualTo(MOCK_DEFAULTS);
145145
return mock(SdkAsyncHttpClient.class);
146146
})
@@ -165,7 +165,7 @@ public void explicitClientProvided_ClientIsNotManagedBySdk() {
165165
public void explicitAsyncHttpClientProvided_ClientIsNotManagedBySdk() {
166166
TestAsyncClient client = testAsyncClientBuilder()
167167
.region(Region.US_WEST_2)
168-
.asyncHttpClient(mock(SdkAsyncHttpClient.class))
168+
.httpClient(mock(SdkAsyncHttpClient.class))
169169
.build();
170170
assertThat(client.clientConfiguration.option(SdkClientOption.ASYNC_HTTP_CLIENT))
171171
.isInstanceOf(AwsDefaultClientBuilder.NonManagedSdkAsyncHttpClient.class);

core/src/main/java/software/amazon/awssdk/core/client/builder/SdkAsyncClientBuilder.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ default B asyncConfiguration(Consumer<ClientAsyncConfiguration.Builder> clientAs
5050
* shared between multiple SDK service clients to share a common connection pool. To create a client you must use an
5151
* implementation specific builder. Note that this method is only recommended when you wish to share an HTTP client across
5252
* multiple SDK service clients. If you do not wish to share HTTP clients, it is recommended to use
53-
* {@link #asyncHttpClientBuilder(SdkAsyncHttpClient.Builder)} so that service specific default configuration may be applied.
53+
* {@link #httpClientBuilder(SdkAsyncHttpClient.Builder)} so that service specific default configuration may be applied.
5454
*
5555
* <p>
5656
* <b>This client must be closed by the caller when it is ready to be disposed. The SDK will not close the HTTP client
@@ -59,7 +59,7 @@ default B asyncConfiguration(Consumer<ClientAsyncConfiguration.Builder> clientAs
5959
*
6060
* @return This builder for method chaining.
6161
*/
62-
B asyncHttpClient(SdkAsyncHttpClient httpClient);
62+
B httpClient(SdkAsyncHttpClient httpClient);
6363

6464
/**
6565
* Sets a custom HTTP client builder that will be used to obtain a configured instance of {@link SdkAsyncHttpClient}. Any
@@ -73,5 +73,5 @@ default B asyncConfiguration(Consumer<ClientAsyncConfiguration.Builder> clientAs
7373
*
7474
* @return This builder for method chaining.
7575
*/
76-
B asyncHttpClientBuilder(SdkAsyncHttpClient.Builder httpClientBuilder);
76+
B httpClientBuilder(SdkAsyncHttpClient.Builder httpClientBuilder);
7777
}

core/src/main/java/software/amazon/awssdk/core/client/builder/SdkDefaultClientBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -333,12 +333,12 @@ public final B httpClientBuilder(SdkHttpClient.Builder httpClientBuilder) {
333333
return thisBuilder();
334334
}
335335

336-
public final B asyncHttpClient(SdkAsyncHttpClient httpClient) {
336+
public final B httpClient(SdkAsyncHttpClient httpClient) {
337337
clientConfiguration.option(ASYNC_HTTP_CLIENT, httpClient);
338338
return thisBuilder();
339339
}
340340

341-
public final B asyncHttpClientBuilder(SdkAsyncHttpClient.Builder httpClientBuilder) {
341+
public final B httpClientBuilder(SdkAsyncHttpClient.Builder httpClientBuilder) {
342342
this.asyncHttpClientBuilder = httpClientBuilder;
343343
return thisBuilder();
344344
}

core/src/test/java/software/amazon/awssdk/core/client/builder/DefaultClientBuilderTest.java

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import java.time.Duration;
3333
import java.util.Arrays;
3434
import java.util.Optional;
35+
import org.assertj.core.api.Assertions;
3536
import org.junit.Before;
3637
import org.junit.Test;
3738
import org.junit.runner.RunWith;
@@ -107,13 +108,10 @@ public void noAsyncClientProvided_DefaultAsyncHttpClientIsManagedBySdk() {
107108

108109
@Test
109110
public void clientFactoryProvided_ClientIsManagedBySdk() {
110-
TestClient client = testClientBuilder().httpClientBuilder(new SdkHttpClient.Builder() {
111-
@Override
112-
public SdkHttpClient buildWithDefaults(AttributeMap serviceDefaults) {
113-
assertThat(serviceDefaults).isEqualTo(MOCK_DEFAULTS);
114-
return mock(SdkHttpClient.class);
115-
}
116-
})
111+
TestClient client = testClientBuilder().httpClientBuilder((SdkHttpClient.Builder) serviceDefaults -> {
112+
Assertions.assertThat(serviceDefaults).isEqualTo(MOCK_DEFAULTS);
113+
return mock(SdkHttpClient.class);
114+
})
117115
.build();
118116
assertThat(client.clientConfiguration.option(SdkClientOption.SYNC_HTTP_CLIENT))
119117
.isNotInstanceOf(SdkDefaultClientBuilder.NonManagedSdkHttpClient.class);
@@ -123,7 +121,7 @@ public SdkHttpClient buildWithDefaults(AttributeMap serviceDefaults) {
123121
@Test
124122
public void asyncHttpClientFactoryProvided_ClientIsManagedBySdk() {
125123
TestAsyncClient client = testAsyncClientBuilder()
126-
.asyncHttpClientBuilder(serviceDefaults -> {
124+
.httpClientBuilder((SdkAsyncHttpClient.Builder) serviceDefaults -> {
127125
assertThat(serviceDefaults).isEqualTo(MOCK_DEFAULTS);
128126
return mock(SdkAsyncHttpClient.class);
129127
})
@@ -147,7 +145,7 @@ public void explicitClientProvided_ClientIsNotManagedBySdk() {
147145
@Test
148146
public void explicitAsyncHttpClientProvided_ClientIsNotManagedBySdk() {
149147
TestAsyncClient client = testAsyncClientBuilder()
150-
.asyncHttpClient(mock(SdkAsyncHttpClient.class))
148+
.httpClient(mock(SdkAsyncHttpClient.class))
151149
.build();
152150
assertThat(client.clientConfiguration.option(SdkClientOption.ASYNC_HTTP_CLIENT))
153151
.isInstanceOf(SdkDefaultClientBuilder.NonManagedSdkAsyncHttpClient.class);

http-clients/netty-nio-client/src/main/java/software/amazon/awssdk/http/nio/netty/DefaultEventLoopGroupFactory.java

Lines changed: 0 additions & 165 deletions
This file was deleted.

http-clients/netty-nio-client/src/main/java/software/amazon/awssdk/http/nio/netty/EventLoopGroupFactory.java

Lines changed: 0 additions & 34 deletions
This file was deleted.

0 commit comments

Comments
 (0)