Skip to content

Commit aabd35e

Browse files
authored
Add @mutable and @NotThreadSafe to model Builders (#6096)
* Add @mutable and @NotThreadSafe to model builders (including request) * Update codegen test generated files * Add changelog
1 parent 7009f86 commit aabd35e

File tree

51 files changed

+206
-0
lines changed

Some content is hidden

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

51 files changed

+206
-0
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "bugfix",
3+
"category": "AWS SDK for Java v2",
4+
"contributor": "",
5+
"description": "Add `@Mutable` and `@NotThreadSafe` to model Builders"
6+
}

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535
import java.util.Set;
3636
import java.util.function.Consumer;
3737
import javax.lang.model.element.Modifier;
38+
import software.amazon.awssdk.annotations.Mutable;
39+
import software.amazon.awssdk.annotations.NotThreadSafe;
3840
import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration;
3941
import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel;
4042
import software.amazon.awssdk.codegen.model.intermediate.MemberModel;
@@ -83,6 +85,8 @@ public ClassName builderImplName() {
8385
public TypeSpec builderInterface() {
8486
TypeSpec.Builder builder = TypeSpec.interfaceBuilder(builderInterfaceName())
8587
.addSuperinterfaces(builderSuperInterfaces())
88+
.addAnnotation(Mutable.class)
89+
.addAnnotation(NotThreadSafe.class)
8690
.addModifiers(PUBLIC);
8791

8892
shapeModel.getNonStreamingMembers()

codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/alltypesrequest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
import java.util.stream.Collectors;
1717
import java.util.stream.Stream;
1818
import software.amazon.awssdk.annotations.Generated;
19+
import software.amazon.awssdk.annotations.Mutable;
20+
import software.amazon.awssdk.annotations.NotThreadSafe;
1921
import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration;
2022
import software.amazon.awssdk.core.SdkBytes;
2123
import software.amazon.awssdk.core.SdkField;
@@ -1661,6 +1663,8 @@ private static <T> BiConsumer<Object, T> setter(BiConsumer<Builder, T> s) {
16611663
return (obj, val) -> s.accept((Builder) obj, val);
16621664
}
16631665

1666+
@Mutable
1667+
@NotThreadSafe
16641668
public interface Builder extends JsonProtocolTestsRequest.Builder, SdkPojo, CopyableBuilder<Builder, AllTypesRequest> {
16651669
/**
16661670
* Sets the value of the StringMember property for this object.

codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/alltypesresponse.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
import java.util.stream.Collectors;
1717
import java.util.stream.Stream;
1818
import software.amazon.awssdk.annotations.Generated;
19+
import software.amazon.awssdk.annotations.Mutable;
20+
import software.amazon.awssdk.annotations.NotThreadSafe;
1921
import software.amazon.awssdk.core.SdkBytes;
2022
import software.amazon.awssdk.core.SdkField;
2123
import software.amazon.awssdk.core.SdkPojo;
@@ -1660,6 +1662,8 @@ private static <T> BiConsumer<Object, T> setter(BiConsumer<Builder, T> s) {
16601662
return (obj, val) -> s.accept((Builder) obj, val);
16611663
}
16621664

1665+
@Mutable
1666+
@NotThreadSafe
16631667
public interface Builder extends JsonProtocolTestsResponse.Builder, SdkPojo, CopyableBuilder<Builder, AllTypesResponse> {
16641668
/**
16651669
* Sets the value of the StringMember property for this object.

codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/alltypesunionstructure.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
import java.util.stream.Collectors;
2020
import java.util.stream.Stream;
2121
import software.amazon.awssdk.annotations.Generated;
22+
import software.amazon.awssdk.annotations.Mutable;
23+
import software.amazon.awssdk.annotations.NotThreadSafe;
2224
import software.amazon.awssdk.core.SdkBytes;
2325
import software.amazon.awssdk.core.SdkField;
2426
import software.amazon.awssdk.core.SdkPojo;
@@ -2301,6 +2303,8 @@ private static <T> BiConsumer<Object, T> setter(BiConsumer<Builder, T> s) {
23012303
return (obj, val) -> s.accept((Builder) obj, val);
23022304
}
23032305

2306+
@Mutable
2307+
@NotThreadSafe
23042308
public interface Builder extends SdkPojo, CopyableBuilder<Builder, AllTypesUnionStructure> {
23052309
/**
23062310
* Sets the value of the StringMember property for this object.

codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/basetype.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
import java.util.function.BiConsumer;
1212
import java.util.function.Function;
1313
import software.amazon.awssdk.annotations.Generated;
14+
import software.amazon.awssdk.annotations.Mutable;
15+
import software.amazon.awssdk.annotations.NotThreadSafe;
1416
import software.amazon.awssdk.core.SdkField;
1517
import software.amazon.awssdk.core.SdkPojo;
1618
import software.amazon.awssdk.core.protocol.MarshallLocation;
@@ -163,6 +165,8 @@ private static <T> BiConsumer<Object, T> setter(BiConsumer<Builder, T> s) {
163165
return (obj, val) -> s.accept((Builder) obj, val);
164166
}
165167

168+
@Mutable
169+
@NotThreadSafe
166170
public interface Builder extends SdkPojo, CopyableBuilder<Builder, BaseType> {
167171
/**
168172
* Sets the value of the BaseMember property for this object.

codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/deprecatedrenamerequest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
import java.util.function.Consumer;
1212
import java.util.function.Function;
1313
import software.amazon.awssdk.annotations.Generated;
14+
import software.amazon.awssdk.annotations.Mutable;
15+
import software.amazon.awssdk.annotations.NotThreadSafe;
1416
import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration;
1517
import software.amazon.awssdk.core.SdkField;
1618
import software.amazon.awssdk.core.SdkPojo;
@@ -171,6 +173,8 @@ private static <T> BiConsumer<Object, T> setter(BiConsumer<Builder, T> s) {
171173
return (obj, val) -> s.accept((Builder) obj, val);
172174
}
173175

176+
@Mutable
177+
@NotThreadSafe
174178
public interface Builder extends JsonProtocolTestsRequest.Builder, SdkPojo, CopyableBuilder<Builder, DeprecatedRenameRequest> {
175179
/**
176180
* Sets the value of the NewNameNoDeprecation property for this object.

codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/deprecatedrenameresponse.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import java.util.function.BiConsumer;
1111
import java.util.function.Function;
1212
import software.amazon.awssdk.annotations.Generated;
13+
import software.amazon.awssdk.annotations.Mutable;
14+
import software.amazon.awssdk.annotations.NotThreadSafe;
1315
import software.amazon.awssdk.core.SdkField;
1416
import software.amazon.awssdk.core.SdkPojo;
1517
import software.amazon.awssdk.core.protocol.MarshallLocation;
@@ -158,6 +160,8 @@ private static <T> BiConsumer<Object, T> setter(BiConsumer<Builder, T> s) {
158160
return (obj, val) -> s.accept((Builder) obj, val);
159161
}
160162

163+
@Mutable
164+
@NotThreadSafe
161165
public interface Builder extends JsonProtocolTestsResponse.Builder, SdkPojo,
162166
CopyableBuilder<Builder, DeprecatedRenameResponse> {
163167
/**

codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/emptymodeledexception.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import java.util.List;
55
import java.util.Map;
66
import software.amazon.awssdk.annotations.Generated;
7+
import software.amazon.awssdk.annotations.Mutable;
8+
import software.amazon.awssdk.annotations.NotThreadSafe;
79
import software.amazon.awssdk.awscore.exception.AwsErrorDetails;
810
import software.amazon.awssdk.core.SdkField;
911
import software.amazon.awssdk.core.SdkPojo;
@@ -52,6 +54,8 @@ private static Map<String, SdkField<?>> memberNameToFieldInitializer() {
5254
return Collections.emptyMap();
5355
}
5456

57+
@Mutable
58+
@NotThreadSafe
5559
public interface Builder extends SdkPojo, CopyableBuilder<Builder, EmptyModeledException>, JsonProtocolTestsException.Builder {
5660
@Override
5761
Builder awsErrorDetails(AwsErrorDetails awsErrorDetails);

codegen/src/test/resources/software/amazon/awssdk/codegen/poet/model/eventone.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import java.util.function.Consumer;
1313
import java.util.function.Function;
1414
import software.amazon.awssdk.annotations.Generated;
15+
import software.amazon.awssdk.annotations.Mutable;
16+
import software.amazon.awssdk.annotations.NotThreadSafe;
1517
import software.amazon.awssdk.core.SdkField;
1618
import software.amazon.awssdk.core.SdkPojo;
1719
import software.amazon.awssdk.core.protocol.MarshallLocation;
@@ -148,6 +150,8 @@ public void accept(EventStreamOperationResponseHandler.Visitor visitor) {
148150
throw new UnsupportedOperationException();
149151
}
150152

153+
@Mutable
154+
@NotThreadSafe
151155
public interface Builder extends SdkPojo, CopyableBuilder<Builder, EventOne> {
152156
/**
153157
* Sets the value of the Foo property for this object.

0 commit comments

Comments
 (0)