Skip to content

Commit 61f20ac

Browse files
Merge pull request #1299 from aws/staging/19912570-4507-4433-8b7c-6143387c7c90
Pull request: release <- staging/19912570-4507-4433-8b7c-6143387c7c90
2 parents 5bfc61e + 78bfa79 commit 61f20ac

File tree

371 files changed

+2823
-1441
lines changed

Some content is hidden

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

371 files changed

+2823
-1441
lines changed

.changes/2.16.46.json

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
{
2+
"version": "2.16.46",
3+
"date": "2021-04-22",
4+
"entries": [
5+
{
6+
"type": "bugfix",
7+
"category": "Amazon DynamoDB",
8+
"contributor": "",
9+
"description": "Fixed bean-based marshalling for model builder types containing complex collections."
10+
},
11+
{
12+
"type": "feature",
13+
"category": "AWS SecurityHub",
14+
"contributor": "",
15+
"description": "Replaced the term \"master\" with \"administrator\". Added new actions to replace AcceptInvitation, GetMasterAccount, and DisassociateFromMasterAccount. In Member, replaced MasterId with AdministratorId."
16+
},
17+
{
18+
"type": "feature",
19+
"category": "Amazon Forecast Service",
20+
"contributor": "",
21+
"description": "This release adds EstimatedTimeRemaining minutes field to the DescribeDatasetImportJob, DescribePredictor, DescribeForecast API response which denotes the time remaining to complete the job IN_PROGRESS."
22+
},
23+
{
24+
"type": "feature",
25+
"category": "AWS SDK for Java v2",
26+
"contributor": "ndejaco2",
27+
"description": "This feature adds client and request overrides of execution attributes prior to request invocation."
28+
},
29+
{
30+
"type": "feature",
31+
"category": "Amazon Cognito Identity Provider",
32+
"contributor": "",
33+
"description": "Documentation updates for cognito-idp"
34+
},
35+
{
36+
"type": "feature",
37+
"category": "Amazon ElastiCache",
38+
"contributor": "",
39+
"description": "This release introduces log delivery of Redis slow log from Amazon ElastiCache."
40+
}
41+
]
42+
}

CHANGELOG.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,33 @@
1+
# __2.16.46__ __2021-04-22__
2+
## __AWS SDK for Java v2__
3+
- ### Features
4+
- This feature adds client and request overrides of execution attributes prior to request invocation.
5+
- Contributed by: [@ndejaco2](https://github.com/ndejaco2)
6+
7+
## __AWS SecurityHub__
8+
- ### Features
9+
- Replaced the term "master" with "administrator". Added new actions to replace AcceptInvitation, GetMasterAccount, and DisassociateFromMasterAccount. In Member, replaced MasterId with AdministratorId.
10+
11+
## __Amazon Cognito Identity Provider__
12+
- ### Features
13+
- Documentation updates for cognito-idp
14+
15+
## __Amazon DynamoDB__
16+
- ### Bugfixes
17+
- Fixed bean-based marshalling for model builder types containing complex collections.
18+
19+
## __Amazon ElastiCache__
20+
- ### Features
21+
- This release introduces log delivery of Redis slow log from Amazon ElastiCache.
22+
23+
## __Amazon Forecast Service__
24+
- ### Features
25+
- This release adds EstimatedTimeRemaining minutes field to the DescribeDatasetImportJob, DescribePredictor, DescribeForecast API response which denotes the time remaining to complete the job IN_PROGRESS.
26+
27+
## __Contributors__
28+
Special thanks to the following contributors to this release:
29+
30+
[@ndejaco2](https://github.com/ndejaco2)
131
# __2.16.45__ __2021-04-21__
232
## __AWS CloudFormation__
333
- ### 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.45</version>
55+
<version>2.16.46</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.45</version>
89+
<version>2.16.46</version>
9090
</dependency>
9191
<dependency>
9292
<groupId>software.amazon.awssdk</groupId>
9393
<artifactId>s3</artifactId>
94-
<version>2.16.45</version>
94+
<version>2.16.46</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.45</version>
106+
<version>2.16.46</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.45</version>
23+
<version>2.16.46</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.45</version>
23+
<version>2.16.46</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.45</version>
23+
<version>2.16.46</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.45</version>
23+
<version>2.16.46</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.45</version>
20+
<version>2.16.46</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.45</version>
23+
<version>2.16.46</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.45</version>
20+
<version>2.16.46</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.45</version>
24+
<version>2.16.46</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.45</version>
25+
<version>2.16.46</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.45</version>
24+
<version>2.16.46</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.45</version>
25+
<version>2.16.46</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.45</version>
24+
<version>2.16.46</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: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import java.util.Optional;
3232
import software.amazon.awssdk.codegen.internal.TypeUtils;
3333
import software.amazon.awssdk.core.SdkBytes;
34+
import software.amazon.awssdk.core.SdkField;
3435
import software.amazon.awssdk.core.protocol.MarshallingType;
3536
import software.amazon.awssdk.core.util.SdkAutoConstructList;
3637
import software.amazon.awssdk.core.util.SdkAutoConstructMap;
@@ -615,15 +616,26 @@ public boolean hasBuilder() {
615616
}
616617

617618
@JsonIgnore
618-
public boolean isCollectionWithBuilderMember() {
619-
return (isList() && getListModel().getListMemberModel() != null && getListModel().getListMemberModel().hasBuilder()) ||
620-
(isMap() && getMapModel().getValueModel() != null && getMapModel().getValueModel().hasBuilder());
619+
public boolean containsBuildable() {
620+
return containsBuildable(true);
621621
}
622622

623-
@JsonIgnore
624-
public boolean isCollectionWithNestedBuilderMember() {
625-
return isList() && getListModel().getListMemberModel() != null && getListModel().isMap() &&
626-
getListModel().getListMemberModel().getMapModel().getValueModel().hasBuilder();
623+
private boolean containsBuildable(boolean root) {
624+
if (!root && hasBuilder()) {
625+
return true;
626+
}
627+
628+
if (isList()) {
629+
return getListModel().getListMemberModel().containsBuildable(false);
630+
}
631+
632+
if (isMap()) {
633+
MapModel mapModel = getMapModel();
634+
return mapModel.getKeyModel().containsBuildable(false) ||
635+
mapModel.getValueModel().containsBuildable(false);
636+
}
637+
638+
return false;
627639
}
628640

629641
@JsonIgnore

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

Lines changed: 10 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,21 @@
1515

1616
package software.amazon.awssdk.codegen.poet.model;
1717

18+
import static software.amazon.awssdk.codegen.poet.model.TypeProvider.ShapeTransformation.USE_BUILDER_IMPL;
19+
1820
import com.squareup.javapoet.ClassName;
1921
import com.squareup.javapoet.CodeBlock;
2022
import com.squareup.javapoet.MethodSpec;
2123
import com.squareup.javapoet.ParameterSpec;
22-
import com.squareup.javapoet.ParameterizedTypeName;
2324
import com.squareup.javapoet.TypeName;
24-
import java.nio.ByteBuffer;
25-
import java.util.Collection;
26-
import java.util.Map;
2725
import java.util.Optional;
2826
import java.util.stream.Collectors;
2927
import javax.lang.model.element.Modifier;
3028
import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel;
31-
import software.amazon.awssdk.codegen.model.intermediate.MapModel;
3229
import software.amazon.awssdk.codegen.model.intermediate.MemberModel;
3330
import software.amazon.awssdk.codegen.model.intermediate.ShapeModel;
3431
import software.amazon.awssdk.codegen.poet.PoetExtensions;
32+
import software.amazon.awssdk.codegen.poet.model.TypeProvider.TypeNameOptions;
3533
import software.amazon.awssdk.core.SdkBytes;
3634

3735
/**
@@ -125,8 +123,8 @@ protected CodeBlock copySetterBuilderBody() {
125123
"this.$1N = $1N != null ? $1N.build() : null",
126124
serviceModelCopiers.copyMethodName());
127125
}
128-
if (memberModel.isCollectionWithBuilderMember() || memberModel.isCollectionWithNestedBuilderMember()) {
129-
return copySetterBody("this.$1N = $2T.$3N($1N)", null, serviceModelCopiers.builderCopyMethodName());
126+
if (memberModel.containsBuildable()) {
127+
return copySetterBody("this.$1N = $2T.$3N($1N)", null, serviceModelCopiers.copyFromBuilderMethodName());
130128
}
131129
return copySetterBody();
132130
}
@@ -170,60 +168,11 @@ protected ParameterSpec memberAsParameter() {
170168
}
171169

172170
protected ParameterSpec memberAsBeanStyleParameter() {
173-
if (memberModel.hasBuilder()) {
174-
TypeName builderName = poetExtensions.getModelClass(memberModel.getC2jShape()).nestedClass("BuilderImpl");
175-
return ParameterSpec.builder(builderName, fieldName()).build();
176-
}
177-
178-
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-
192-
MemberModel listMember = memberModel.getListModel().getListMemberModel();
193-
194-
if (hasBuilder(listMember)) {
195-
TypeName memberName = poetExtensions.getModelClass(listMember.getC2jShape()).nestedClass("BuilderImpl");
196-
TypeName listType = ParameterizedTypeName.get(ClassName.get(Collection.class), memberName);
197-
return ParameterSpec.builder(listType, fieldName()).build();
198-
} else if (listMember.isSdkBytesType()) {
199-
TypeName listType = ParameterizedTypeName.get(Collection.class, ByteBuffer.class);
200-
return ParameterSpec.builder(listType, fieldName()).build();
201-
}
202-
}
203-
204-
if (memberModel.isMap()) {
205-
MemberModel keyModel = memberModel.getMapModel().getKeyModel();
206-
TypeName keyType = typeProvider.getTypeNameForSimpleType(keyModel.getVariable().getVariableType());
207-
MemberModel valueModel = memberModel.getMapModel().getValueModel();
208-
TypeName valueType = null;
209-
210-
if (hasBuilder(valueModel)) {
211-
valueType = poetExtensions.getModelClass(valueModel.getC2jShape()).nestedClass("BuilderImpl");
212-
} else if (valueModel.isSdkBytesType()) {
213-
valueType = TypeName.get(ByteBuffer.class);
214-
}
215-
216-
if (valueType != null) {
217-
TypeName mapType = ParameterizedTypeName.get(ClassName.get(Map.class), keyType, valueType);
218-
return ParameterSpec.builder(mapType, fieldName()).build();
219-
}
220-
}
221-
222-
if (memberModel.isSdkBytesType()) {
223-
return ParameterSpec.builder(ByteBuffer.class, fieldName()).build();
224-
}
225-
226-
return memberAsParameter();
171+
TypeName type = typeProvider.typeName(memberModel, new TypeNameOptions().shapeTransformation(USE_BUILDER_IMPL)
172+
.useSubtypeWildcardsForCollections(true)
173+
.useCollectionForList(true)
174+
.useByteBufferTypes(true));
175+
return ParameterSpec.builder(type, fieldName()).build();
227176
}
228177

229178
protected ShapeModel shapeModel() {
@@ -259,9 +208,4 @@ private CodeBlock copySetterBody(String copyAssignment, String regularAssignment
259208
.build())
260209
.orElseGet(() -> CodeBlock.builder().addStatement(regularAssignment, fieldName()).build());
261210
}
262-
263-
private boolean hasBuilder(MemberModel model) {
264-
return model != null && model.hasBuilder();
265-
}
266-
267211
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class AccessorsFactory {
3939
this.shapeModel = shapeModel;
4040
this.typeProvider = typeProvider;
4141
this.intermediateModel = intermediateModel;
42-
this.getterHelper = new BeanGetterHelper(poetExtensions, typeProvider);
42+
this.getterHelper = new BeanGetterHelper(poetExtensions, new ServiceModelCopiers(intermediateModel), typeProvider);
4343
}
4444

4545
public MethodSpec beanStyleGetter(MemberModel memberModel) {

0 commit comments

Comments
 (0)