Skip to content

Commit 276b682

Browse files
Merge pull request #752 from aws/staging/a8f9ebb4-bbc7-47c8-873a-cd3693403ec9
Pull request: release <- staging/a8f9ebb4-bbc7-47c8-873a-cd3693403ec9
2 parents 8d061fa + 1fe982d commit 276b682

File tree

348 files changed

+3599
-985
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

348 files changed

+3599
-985
lines changed

.changes/2.10.82.json

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
{
2+
"version": "2.10.82",
3+
"date": "2020-03-09",
4+
"entries": [
5+
{
6+
"type": "bugfix",
7+
"category": "AWS SDK for Java v2",
8+
"description": "Use the last seen HTTP/1.1 header value for headers defined to only appear once in an HTTP message instead of merging them all into a list. The order in which header values are inspected is: headers set by the request marshaller, overridden headers set on the client, then finally overridden headers set on the SDK request object. See https://tools.ietf.org/html/rfc2616#section-4.2 for more information."
9+
},
10+
{
11+
"type": "feature",
12+
"category": "AWS SDK for Java v2",
13+
"description": "Added support for \"retry modes\". A retry mode allows configuring multiple SDK parameters at once using default retry profiles, some of which are standardized between AWS SDK languages. See RetryMode javadoc for more information."
14+
},
15+
{
16+
"type": "bugfix",
17+
"category": "AWS SDK for Java v2",
18+
"description": "Fixed an issue where specifying your own retry policy would override AWS and service-specific retry conditions. By default, all retry policies now have AWS and service-specific retry conditions added. This can be disabled via the new `RetryPolicy.furtherRefinementsAllowed(false)`."
19+
},
20+
{
21+
"type": "bugfix",
22+
"category": "AWS SDK for Java v2",
23+
"description": "Fixed an issue where the retry condition returned by `RetryPolicy.retryCondition` differed from the one specified by `RetryPolicy.Builder.retryCondition`. The old value can be accessed via the new `RetryPolicy.aggregateRetryCondition`."
24+
},
25+
{
26+
"type": "feature",
27+
"category": "AWS SDK for Java v2",
28+
"description": "Added the ability to configure or disable the default retry throttling behavior of the SDK that 'kicks in' during a large volume of retriable service call errors. This behavior can now be configured via `RetryPolicy.retryCapacityCondition`."
29+
},
30+
{
31+
"type": "feature",
32+
"category": "AWS Elemental MediaLive",
33+
"description": "AWS Elemental MediaLive now supports the ability to configure the Preferred Channel Pipeline for channels contributing to a Multiplex."
34+
},
35+
{
36+
"type": "feature",
37+
"category": "AWS Database Migration Service",
38+
"description": "Added new settings for Kinesis target to include detailed transaction info; to capture table DDL details; to use single-line unformatted json, which can be directly queried by AWS Athena if data is streamed into S3 through AWS Kinesis Firehose. Added CdcInsertsAndUpdates in S3 target settings to allow capture ongoing insertions and updates only."
39+
},
40+
{
41+
"type": "feature",
42+
"category": "Amazon Elastic Compute Cloud",
43+
"description": "Amazon Virtual Private Cloud (VPC) NAT Gateway adds support for tagging on resource creation."
44+
}
45+
]
46+
}

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,26 @@
1+
# __2.10.82__ __2020-03-09__
2+
## __AWS Database Migration Service__
3+
- ### Features
4+
- Added new settings for Kinesis target to include detailed transaction info; to capture table DDL details; to use single-line unformatted json, which can be directly queried by AWS Athena if data is streamed into S3 through AWS Kinesis Firehose. Added CdcInsertsAndUpdates in S3 target settings to allow capture ongoing insertions and updates only.
5+
6+
## __AWS Elemental MediaLive__
7+
- ### Features
8+
- AWS Elemental MediaLive now supports the ability to configure the Preferred Channel Pipeline for channels contributing to a Multiplex.
9+
10+
## __AWS SDK for Java v2__
11+
- ### Features
12+
- Added support for "retry modes". A retry mode allows configuring multiple SDK parameters at once using default retry profiles, some of which are standardized between AWS SDK languages. See RetryMode javadoc for more information.
13+
- Added the ability to configure or disable the default retry throttling behavior of the SDK that 'kicks in' during a large volume of retriable service call errors. This behavior can now be configured via `RetryPolicy.retryCapacityCondition`.
14+
15+
- ### Bugfixes
16+
- Fixed an issue where specifying your own retry policy would override AWS and service-specific retry conditions. By default, all retry policies now have AWS and service-specific retry conditions added. This can be disabled via the new `RetryPolicy.furtherRefinementsAllowed(false)`.
17+
- Fixed an issue where the retry condition returned by `RetryPolicy.retryCondition` differed from the one specified by `RetryPolicy.Builder.retryCondition`. The old value can be accessed via the new `RetryPolicy.aggregateRetryCondition`.
18+
- Use the last seen HTTP/1.1 header value for headers defined to only appear once in an HTTP message instead of merging them all into a list. The order in which header values are inspected is: headers set by the request marshaller, overridden headers set on the client, then finally overridden headers set on the SDK request object. See https://tools.ietf.org/html/rfc2616#section-4.2 for more information.
19+
20+
## __Amazon Elastic Compute Cloud__
21+
- ### Features
22+
- Amazon Virtual Private Cloud (VPC) NAT Gateway adds support for tagging on resource creation.
23+
124
# __2.10.81__ __2020-03-06__
225
## __AWS App Mesh__
326
- ### Features

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ To automatically manage module versions (currently all modules have the same ver
4848
<dependency>
4949
<groupId>software.amazon.awssdk</groupId>
5050
<artifactId>bom</artifactId>
51-
<version>2.10.81</version>
51+
<version>2.10.82</version>
5252
<type>pom</type>
5353
<scope>import</scope>
5454
</dependency>
@@ -82,12 +82,12 @@ Alternatively you can add dependencies for the specific services you use only:
8282
<dependency>
8383
<groupId>software.amazon.awssdk</groupId>
8484
<artifactId>ec2</artifactId>
85-
<version>2.10.81</version>
85+
<version>2.10.82</version>
8686
</dependency>
8787
<dependency>
8888
<groupId>software.amazon.awssdk</groupId>
8989
<artifactId>s3</artifactId>
90-
<version>2.10.81</version>
90+
<version>2.10.82</version>
9191
</dependency>
9292
```
9393

@@ -99,7 +99,7 @@ You can import the whole SDK into your project (includes *ALL* services). Please
9999
<dependency>
100100
<groupId>software.amazon.awssdk</groupId>
101101
<artifactId>aws-sdk-java</artifactId>
102-
<version>2.10.81</version>
102+
<version>2.10.82</version>
103103
</dependency>
104104
```
105105

aws-sdk-java/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<parent>
2020
<groupId>software.amazon.awssdk</groupId>
2121
<artifactId>aws-sdk-java-pom</artifactId>
22-
<version>2.10.81</version>
22+
<version>2.10.82</version>
2323
<relativePath>../pom.xml</relativePath>
2424
</parent>
2525
<artifactId>aws-sdk-java</artifactId>

bom-internal/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<parent>
2121
<artifactId>aws-sdk-java-pom</artifactId>
2222
<groupId>software.amazon.awssdk</groupId>
23-
<version>2.10.81</version>
23+
<version>2.10.82</version>
2424
</parent>
2525
<modelVersion>4.0.0</modelVersion>
2626

bom/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<parent>
2020
<groupId>software.amazon.awssdk</groupId>
2121
<artifactId>aws-sdk-java-pom</artifactId>
22-
<version>2.10.81</version>
22+
<version>2.10.82</version>
2323
<relativePath>../pom.xml</relativePath>
2424
</parent>
2525
<artifactId>bom</artifactId>

bundle/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<parent>
2222
<groupId>software.amazon.awssdk</groupId>
2323
<artifactId>aws-sdk-java-pom</artifactId>
24-
<version>2.10.81</version>
24+
<version>2.10.82</version>
2525
</parent>
2626
<artifactId>bundle</artifactId>
2727
<packaging>jar</packaging>

codegen-lite-maven-plugin/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<parent>
2323
<groupId>software.amazon.awssdk</groupId>
2424
<artifactId>aws-sdk-java-pom</artifactId>
25-
<version>2.10.81</version>
25+
<version>2.10.82</version>
2626
<relativePath>../pom.xml</relativePath>
2727
</parent>
2828
<artifactId>codegen-lite-maven-plugin</artifactId>

codegen-lite/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<parent>
2222
<groupId>software.amazon.awssdk</groupId>
2323
<artifactId>aws-sdk-java-pom</artifactId>
24-
<version>2.10.81</version>
24+
<version>2.10.82</version>
2525
</parent>
2626
<artifactId>codegen-lite</artifactId>
2727
<name>AWS Java SDK :: Code Generator Lite</name>

codegen-maven-plugin/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<parent>
2323
<groupId>software.amazon.awssdk</groupId>
2424
<artifactId>aws-sdk-java-pom</artifactId>
25-
<version>2.10.81</version>
25+
<version>2.10.82</version>
2626
<relativePath>../pom.xml</relativePath>
2727
</parent>
2828
<artifactId>codegen-maven-plugin</artifactId>

codegen/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<parent>
2222
<groupId>software.amazon.awssdk</groupId>
2323
<artifactId>aws-sdk-java-pom</artifactId>
24-
<version>2.10.81</version>
24+
<version>2.10.82</version>
2525
</parent>
2626
<artifactId>codegen</artifactId>
2727
<name>AWS Java SDK :: Code Generator</name>

codegen/src/main/java/software/amazon/awssdk/codegen/poet/builder/BaseClientBuilderClass.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import com.squareup.javapoet.TypeName;
2929
import com.squareup.javapoet.TypeSpec;
3030
import com.squareup.javapoet.TypeVariableName;
31-
3231
import java.util.Collections;
3332
import java.util.List;
3433
import javax.lang.model.element.Modifier;
@@ -160,7 +159,7 @@ private MethodSpec mergeServiceDefaultsMethod() {
160159
SdkClientOption.class, crc32FromCompressedDataEnabled);
161160

162161
if (StringUtils.isNotBlank(model.getCustomizationConfig().getCustomRetryPolicy())) {
163-
builder.addCode(".option($T.RETRY_POLICY, $T.defaultPolicy())", SdkClientOption.class,
162+
builder.addCode(".option($T.RETRY_POLICY, $T.defaultRetryPolicy())", SdkClientOption.class,
164163
PoetUtils.classNameFromFqcn(model.getCustomizationConfig().getCustomRetryPolicy()));
165164
}
166165
builder.addCode(");");
@@ -198,14 +197,20 @@ private MethodSpec finalizeServiceConfigurationMethod() {
198197
.endControlFlow();
199198

200199
builder.addCode("return config.toBuilder()\n" +
201-
" .option($1T.EXECUTION_INTERCEPTORS, interceptors)\n" +
202-
" .option($1T.ENDPOINT_DISCOVERY_ENABLED, endpointDiscoveryEnabled)\n" +
203-
" .build();", SdkClientOption.class);
200+
".option($T.ENDPOINT_DISCOVERY_ENABLED, endpointDiscoveryEnabled)\n",
201+
SdkClientOption.class);
204202
} else {
205-
builder.addCode("return config.toBuilder()\n" +
206-
" .option($T.EXECUTION_INTERCEPTORS, interceptors)\n" +
207-
" .build();", SdkClientOption.class);
203+
builder.addCode("return config.toBuilder()\n");
204+
}
205+
206+
builder.addCode(".option($1T.EXECUTION_INTERCEPTORS, interceptors)", SdkClientOption.class);
207+
208+
if (StringUtils.isNotBlank(model.getCustomizationConfig().getCustomRetryPolicy())) {
209+
builder.addCode(".option($1T.RETRY_POLICY, $2T.addRetryConditions(config.option($1T.RETRY_POLICY)))",
210+
SdkClientOption.class,
211+
PoetUtils.classNameFromFqcn(model.getCustomizationConfig().getCustomRetryPolicy()));
208212
}
213+
builder.addCode(".build();");
209214

210215
return builder.build();
211216
}

codegen/src/test/java/software/amazon/awssdk/codegen/poet/builder/BuilderClassTest.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,11 @@ public void baseClientBuilderClass() throws Exception {
3838
validateGeneration(BaseClientBuilderClass::new, "test-client-builder-class.java");
3939
}
4040

41+
@Test
42+
public void baseQueryClientBuilderClass() throws Exception {
43+
validateQueryGeneration(BaseClientBuilderClass::new, "test-query-client-builder-class.java");
44+
}
45+
4146
@Test
4247
public void syncClientBuilderInterface() throws Exception {
4348
validateGeneration(SyncClientBuilderInterface::new, "test-sync-client-builder-interface.java");
@@ -61,4 +66,8 @@ public void asyncClientBuilderClass() throws Exception {
6166
private void validateGeneration(Function<IntermediateModel, ClassSpec> generatorConstructor, String expectedClassName) {
6267
assertThat(generatorConstructor.apply(ClientTestModels.jsonServiceModels()), generatesTo(expectedClassName));
6368
}
69+
70+
private void validateQueryGeneration(Function<IntermediateModel, ClassSpec> generatorConstructor, String expectedClassName) {
71+
assertThat(generatorConstructor.apply(ClientTestModels.queryServiceModels()), generatesTo(expectedClassName));
72+
}
6473
}

codegen/src/test/resources/software/amazon/awssdk/codegen/poet/builder/test-client-builder-class.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.util.List;
44
import software.amazon.MyServiceHttpConfig;
5+
import software.amazon.MyServiceRetryPolicy;
56
import software.amazon.awssdk.annotations.Generated;
67
import software.amazon.awssdk.annotations.SdkInternalApi;
78
import software.amazon.awssdk.auth.signer.Aws4Signer;
@@ -33,8 +34,9 @@ protected final String serviceName() {
3334

3435
@Override
3536
protected final SdkClientConfiguration mergeServiceDefaults(SdkClientConfiguration config) {
36-
return config.merge(c -> c.option(SdkAdvancedClientOption.SIGNER, defaultSigner()).option(
37-
SdkClientOption.CRC32_FROM_COMPRESSED_DATA_ENABLED, false));
37+
return config.merge(c -> c.option(SdkAdvancedClientOption.SIGNER, defaultSigner())
38+
.option(SdkClientOption.CRC32_FROM_COMPRESSED_DATA_ENABLED, false)
39+
.option(SdkClientOption.RETRY_POLICY, MyServiceRetryPolicy.defaultRetryPolicy()));
3840
}
3941

4042
@Override
@@ -43,7 +45,11 @@ protected final SdkClientConfiguration finalizeServiceConfiguration(SdkClientCon
4345
List<ExecutionInterceptor> interceptors = interceptorFactory
4446
.getInterceptors("software/amazon/awssdk/services/json/execution.interceptors");
4547
interceptors = CollectionUtils.mergeLists(interceptors, config.option(SdkClientOption.EXECUTION_INTERCEPTORS));
46-
return config.toBuilder().option(SdkClientOption.EXECUTION_INTERCEPTORS, interceptors).build();
48+
return config
49+
.toBuilder()
50+
.option(SdkClientOption.EXECUTION_INTERCEPTORS, interceptors)
51+
.option(SdkClientOption.RETRY_POLICY,
52+
MyServiceRetryPolicy.addRetryConditions(config.option(SdkClientOption.RETRY_POLICY))).build();
4753
}
4854

4955
private Signer defaultSigner() {
@@ -70,4 +76,3 @@ protected final AttributeMap serviceHttpConfig() {
7076
return result;
7177
}
7278
}
73-
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package software.amazon.awssdk.services.query;
2+
3+
import java.util.Collections;
4+
import java.util.List;
5+
import software.amazon.awssdk.annotations.Generated;
6+
import software.amazon.awssdk.annotations.SdkInternalApi;
7+
import software.amazon.awssdk.auth.signer.Aws4Signer;
8+
import software.amazon.awssdk.awscore.client.builder.AwsDefaultClientBuilder;
9+
import software.amazon.awssdk.core.client.config.SdkAdvancedClientOption;
10+
import software.amazon.awssdk.core.client.config.SdkClientConfiguration;
11+
import software.amazon.awssdk.core.client.config.SdkClientOption;
12+
import software.amazon.awssdk.core.interceptor.ClasspathInterceptorChainFactory;
13+
import software.amazon.awssdk.core.interceptor.ExecutionInterceptor;
14+
import software.amazon.awssdk.core.signer.Signer;
15+
import software.amazon.awssdk.protocols.query.interceptor.QueryParametersToBodyInterceptor;
16+
import software.amazon.awssdk.utils.CollectionUtils;
17+
18+
/**
19+
* Internal base class for {@link DefaultQueryClientBuilder} and {@link DefaultQueryAsyncClientBuilder}.
20+
*/
21+
@Generated("software.amazon.awssdk:codegen")
22+
@SdkInternalApi
23+
abstract class DefaultQueryBaseClientBuilder<B extends QueryBaseClientBuilder<B, C>, C> extends AwsDefaultClientBuilder<B, C> {
24+
@Override
25+
protected final String serviceEndpointPrefix() {
26+
return "query-service";
27+
}
28+
29+
@Override
30+
protected final String serviceName() {
31+
return "Query";
32+
}
33+
34+
@Override
35+
protected final SdkClientConfiguration mergeServiceDefaults(SdkClientConfiguration config) {
36+
return config.merge(c -> c.option(SdkAdvancedClientOption.SIGNER, defaultSigner()).option(
37+
SdkClientOption.CRC32_FROM_COMPRESSED_DATA_ENABLED, false));
38+
}
39+
40+
@Override
41+
protected final SdkClientConfiguration finalizeServiceConfiguration(SdkClientConfiguration config) {
42+
ClasspathInterceptorChainFactory interceptorFactory = new ClasspathInterceptorChainFactory();
43+
List<ExecutionInterceptor> interceptors = interceptorFactory
44+
.getInterceptors("software/amazon/awssdk/services/query/execution.interceptors");
45+
interceptors = CollectionUtils.mergeLists(interceptors, config.option(SdkClientOption.EXECUTION_INTERCEPTORS));
46+
List<ExecutionInterceptor> protocolInterceptors = Collections.singletonList(new QueryParametersToBodyInterceptor());
47+
interceptors = CollectionUtils.mergeLists(interceptors, protocolInterceptors);
48+
return config.toBuilder().option(SdkClientOption.EXECUTION_INTERCEPTORS, interceptors).build();
49+
}
50+
51+
private Signer defaultSigner() {
52+
return Aws4Signer.create();
53+
}
54+
55+
@Override
56+
protected final String signingName() {
57+
return "query-service";
58+
}
59+
}

codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/c2j/json/customization.config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"presignersFqcn": "software.amazon.awssdk.services.acm.presign.AcmClientPresigners",
66
"serviceSpecificHttpConfig": "software.amazon.MyServiceHttpConfig",
77
"serviceSpecificClientConfigClass": "ServiceConfiguration",
8+
"customRetryPolicy": "software.amazon.MyServiceRetryPolicy",
89
"verifiedSimpleMethods" : ["paginatedOperationWithResultKey"],
910
"blacklistedSimpleMethods" : [
1011
"eventStreamOperation"

core/annotations/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<parent>
2121
<artifactId>core</artifactId>
2222
<groupId>software.amazon.awssdk</groupId>
23-
<version>2.10.81</version>
23+
<version>2.10.82</version>
2424
</parent>
2525
<modelVersion>4.0.0</modelVersion>
2626

core/arns/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<parent>
2121
<artifactId>core</artifactId>
2222
<groupId>software.amazon.awssdk</groupId>
23-
<version>2.10.81</version>
23+
<version>2.10.82</version>
2424
</parent>
2525
<modelVersion>4.0.0</modelVersion>
2626

core/auth/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<parent>
2323
<groupId>software.amazon.awssdk</groupId>
2424
<artifactId>core</artifactId>
25-
<version>2.10.81</version>
25+
<version>2.10.82</version>
2626
</parent>
2727

2828
<artifactId>auth</artifactId>

0 commit comments

Comments
 (0)