Skip to content

Commit 9b78ecf

Browse files
Merge pull request aws#1275 from aws/staging/f0a13f45-b8c1-4b9e-8e46-502aff5fbd4a
Pull request: release <- staging/f0a13f45-b8c1-4b9e-8e46-502aff5fbd4a
2 parents cb78c49 + 9876a7c commit 9b78ecf

File tree

333 files changed

+1924
-1373
lines changed

Some content is hidden

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

333 files changed

+1924
-1373
lines changed

.changes/2.16.43.json

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"version": "2.16.43",
3+
"date": "2021-04-15",
4+
"entries": [
5+
{
6+
"type": "feature",
7+
"category": "AWS SDK for Java v2",
8+
"contributor": "",
9+
"description": "Updated service endpoint metadata."
10+
},
11+
{
12+
"type": "bugfix",
13+
"category": "Amazon DynamoDB",
14+
"contributor": "",
15+
"description": "Fixed an issue where structure builders containing List<Map<String, Shape>> could not be marshalled using bean-based serializers."
16+
},
17+
{
18+
"type": "feature",
19+
"category": "AWS Database Migration Service",
20+
"contributor": "",
21+
"description": "AWS DMS added support of TLS for Kafka endpoint. Added Describe endpoint setting API for DMS endpoints."
22+
},
23+
{
24+
"type": "feature",
25+
"category": "AWS Security Token Service",
26+
"contributor": "",
27+
"description": "STS now supports assume role with Web Identity using JWT token length upto 20000 characters"
28+
}
29+
]
30+
}

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
# __2.16.43__ __2021-04-15__
2+
## __AWS Database Migration Service__
3+
- ### Features
4+
- AWS DMS added support of TLS for Kafka endpoint. Added Describe endpoint setting API for DMS endpoints.
5+
6+
## __AWS SDK for Java v2__
7+
- ### Features
8+
- Updated service endpoint metadata.
9+
10+
## __AWS Security Token Service__
11+
- ### Features
12+
- STS now supports assume role with Web Identity using JWT token length upto 20000 characters
13+
14+
## __Amazon DynamoDB__
15+
- ### Bugfixes
16+
- Fixed an issue where structure builders containing List<Map<String, Shape>> could not be marshalled using bean-based serializers.
17+
118
# __2.16.42__ __2021-04-14__
219
## __AWS CodeStar connections__
320
- ### Features

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ To automatically manage module versions (currently all modules have the same ver
5252
<dependency>
5353
<groupId>software.amazon.awssdk</groupId>
5454
<artifactId>bom</artifactId>
55-
<version>2.16.42</version>
55+
<version>2.16.43</version>
5656
<type>pom</type>
5757
<scope>import</scope>
5858
</dependency>
@@ -86,12 +86,12 @@ Alternatively you can add dependencies for the specific services you use only:
8686
<dependency>
8787
<groupId>software.amazon.awssdk</groupId>
8888
<artifactId>ec2</artifactId>
89-
<version>2.16.42</version>
89+
<version>2.16.43</version>
9090
</dependency>
9191
<dependency>
9292
<groupId>software.amazon.awssdk</groupId>
9393
<artifactId>s3</artifactId>
94-
<version>2.16.42</version>
94+
<version>2.16.43</version>
9595
</dependency>
9696
```
9797

@@ -103,7 +103,7 @@ You can import the whole SDK into your project (includes *ALL* services). Please
103103
<dependency>
104104
<groupId>software.amazon.awssdk</groupId>
105105
<artifactId>aws-sdk-java</artifactId>
106-
<version>2.16.42</version>
106+
<version>2.16.43</version>
107107
</dependency>
108108
```
109109

archetypes/archetype-app-quickstart/pom.xml

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

archetypes/archetype-lambda/pom.xml

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

archetypes/archetype-tools/pom.xml

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

archetypes/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.16.42</version>
23+
<version>2.16.43</version>
2424
</parent>
2525
<modelVersion>4.0.0</modelVersion>
2626
<artifactId>archetypes</artifactId>

aws-sdk-java/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<parent>
1818
<groupId>software.amazon.awssdk</groupId>
1919
<artifactId>aws-sdk-java-pom</artifactId>
20-
<version>2.16.42</version>
20+
<version>2.16.43</version>
2121
<relativePath>../pom.xml</relativePath>
2222
</parent>
2323
<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.16.42</version>
23+
<version>2.16.43</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
@@ -17,7 +17,7 @@
1717
<parent>
1818
<groupId>software.amazon.awssdk</groupId>
1919
<artifactId>aws-sdk-java-pom</artifactId>
20-
<version>2.16.42</version>
20+
<version>2.16.43</version>
2121
<relativePath>../pom.xml</relativePath>
2222
</parent>
2323
<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.16.42</version>
24+
<version>2.16.43</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.16.42</version>
25+
<version>2.16.43</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.16.42</version>
24+
<version>2.16.43</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.16.42</version>
25+
<version>2.16.43</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.16.42</version>
24+
<version>2.16.43</version>
2525
</parent>
2626
<artifactId>codegen</artifactId>
2727
<name>AWS Java SDK :: Code Generator</name>

codegen/src/main/java/software/amazon/awssdk/codegen/model/intermediate/MemberModel.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -620,6 +620,12 @@ public boolean isCollectionWithBuilderMember() {
620620
(isMap() && getMapModel().getValueModel() != null && getMapModel().getValueModel().hasBuilder());
621621
}
622622

623+
@JsonIgnore
624+
public boolean isCollectionWithNestedBuilderMember() {
625+
return isList() && getListModel().getListMemberModel() != null && getListModel().isMap() &&
626+
getListModel().getListMemberModel().getMapModel().getValueModel().hasBuilder();
627+
}
628+
623629
@JsonIgnore
624630
public boolean isSdkBytesType() {
625631
return SdkBytes.class.getName().equals(variable.getVariableType());

codegen/src/main/java/software/amazon/awssdk/codegen/poet/model/AbstractMemberSetters.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import java.util.stream.Collectors;
2929
import javax.lang.model.element.Modifier;
3030
import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel;
31+
import software.amazon.awssdk.codegen.model.intermediate.MapModel;
3132
import software.amazon.awssdk.codegen.model.intermediate.MemberModel;
3233
import software.amazon.awssdk.codegen.model.intermediate.ShapeModel;
3334
import software.amazon.awssdk.codegen.poet.PoetExtensions;
@@ -124,7 +125,7 @@ protected CodeBlock copySetterBuilderBody() {
124125
"this.$1N = $1N != null ? $1N.build() : null",
125126
serviceModelCopiers.copyMethodName());
126127
}
127-
if (memberModel.isCollectionWithBuilderMember()) {
128+
if (memberModel.isCollectionWithBuilderMember() || memberModel.isCollectionWithNestedBuilderMember()) {
128129
return copySetterBody("this.$1N = $2T.$3N($1N)", null, serviceModelCopiers.builderCopyMethodName());
129130
}
130131
return copySetterBody();
@@ -175,6 +176,19 @@ protected ParameterSpec memberAsBeanStyleParameter() {
175176
}
176177

177178
if (memberModel.isList()) {
179+
if (memberModel.isCollectionWithNestedBuilderMember()) {
180+
MapModel nestedMapModel = memberModel.getListModel().getListMemberModel().getMapModel();
181+
TypeName nestedMapKeyType = typeProvider.getTypeNameForSimpleType(nestedMapModel.getKeyModel()
182+
.getVariable()
183+
.getVariableType());
184+
ClassName nestedMapValueType = poetExtensions.getModelClass(nestedMapModel.getValueModel().getC2jShape());
185+
TypeName nestedMapReturnType = ParameterizedTypeName.get(ClassName.get(Map.class),
186+
nestedMapKeyType,
187+
nestedMapValueType.nestedClass("BuilderImpl"));
188+
TypeName listType = ParameterizedTypeName.get(ClassName.get(Collection.class), nestedMapReturnType);
189+
return ParameterSpec.builder(listType, fieldName()).build();
190+
}
191+
178192
MemberModel listMember = memberModel.getListModel().getListMemberModel();
179193

180194
if (hasBuilder(listMember)) {
@@ -249,4 +263,5 @@ private CodeBlock copySetterBody(String copyAssignment, String regularAssignment
249263
private boolean hasBuilder(MemberModel model) {
250264
return model != null && model.hasBuilder();
251265
}
266+
252267
}

codegen/src/main/java/software/amazon/awssdk/codegen/poet/model/BeanGetterHelper.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import java.util.Map;
2727
import java.util.stream.Collectors;
2828
import javax.lang.model.element.Modifier;
29+
import software.amazon.awssdk.codegen.model.intermediate.MapModel;
2930
import software.amazon.awssdk.codegen.model.intermediate.MemberModel;
3031
import software.amazon.awssdk.codegen.poet.PoetExtensions;
3132
import software.amazon.awssdk.codegen.poet.PoetUtils;
@@ -48,6 +49,9 @@ public MethodSpec beanStyleGetter(MemberModel memberModel) {
4849
if (memberModel.isCollectionWithBuilderMember()) {
4950
return memberModel.isList() ? listOfBuildersGetter(memberModel) : mapOfBuildersGetter(memberModel);
5051
}
52+
if (memberModel.isCollectionWithNestedBuilderMember()) {
53+
return listOfMapOfBuilderGetter(memberModel);
54+
}
5155
if (memberModel.isSdkBytesType()) {
5256
return byteBufferGetter(memberModel);
5357
}
@@ -96,6 +100,28 @@ private MethodSpec builderGetter(MemberModel memberModel) {
96100
memberModel.getVariable().getVariableName()));
97101
}
98102

103+
private MethodSpec listOfMapOfBuilderGetter(MemberModel memberModel) {
104+
MapModel nestedMapModel = memberModel.getListModel().getListMemberModel().getMapModel();
105+
TypeName nestedMapKeyType = typeProvider.getTypeNameForSimpleType(nestedMapModel.getKeyModel()
106+
.getVariable().getVariableType());
107+
ClassName nestedMapValueType = poetExtensions.getModelClass(nestedMapModel.getValueModel().getC2jShape());
108+
TypeName nestedMapReturnType = ParameterizedTypeName.get(ClassName.get(Map.class),
109+
nestedMapKeyType,
110+
nestedMapValueType.nestedClass("Builder"));
111+
112+
TypeName returnType = ParameterizedTypeName.get(ClassName.get(Collection.class), nestedMapReturnType);
113+
114+
CodeBlock mapReturnStatement =
115+
CodeBlock.of("Collectors.toMap(entry -> entry.getKey(), entry -> entry.getValue().toBuilder())");
116+
117+
CodeBlock returnStatement = CodeBlock.of("return $1N != null ? $1N.stream().map(m -> m.entrySet().stream().collect("
118+
+ mapReturnStatement + ")).collect($2T.toList()) : null;",
119+
memberModel.getVariable().getVariableName(),
120+
Collectors.class);
121+
122+
return basicGetter(memberModel, returnType, returnStatement);
123+
}
124+
99125
private MethodSpec mapOfBuildersGetter(MemberModel memberModel) {
100126
TypeName keyType = typeProvider.getTypeNameForSimpleType(memberModel.getMapModel().getKeyModel()
101127
.getVariable().getVariableType());

codegen/src/main/java/software/amazon/awssdk/codegen/poet/model/ListSetters.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,12 @@ public List<MethodSpec> fluent(TypeName returnType) {
119119

120120
@Override
121121
public List<MethodSpec> beanStyle() {
122-
MethodSpec.Builder builder = beanStyleSetterBuilder()
123-
.addCode(memberModel().isCollectionWithBuilderMember() ? copySetterBuilderBody() : beanCopySetterBody());
122+
MethodSpec.Builder builder = beanStyleSetterBuilder();
123+
if (memberModel().isCollectionWithBuilderMember()) {
124+
builder.addCode(copySetterBuilderBody());
125+
} else {
126+
builder.addCode(beanCopySetterBody());
127+
}
124128

125129
return Collections.singletonList(builder.build());
126130

0 commit comments

Comments
 (0)