Skip to content

Commit ebf0fda

Browse files
committed
Various renaming. Create default values for waiterOverrideConfiguration
1 parent 6edb663 commit ebf0fda

File tree

30 files changed

+394
-218
lines changed

30 files changed

+394
-218
lines changed

codegen/src/main/java/software/amazon/awssdk/codegen/docs/WaiterDocs.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import java.util.concurrent.ScheduledExecutorService;
2222
import software.amazon.awssdk.codegen.model.intermediate.OperationModel;
2323
import software.amazon.awssdk.codegen.model.service.WaiterDefinition;
24-
import software.amazon.awssdk.core.waiters.PollingStrategy;
24+
import software.amazon.awssdk.core.waiters.WaiterOverrideConfiguration;
2525

2626
public final class WaiterDocs {
2727

@@ -98,28 +98,28 @@ public static CodeBlock waiterCreateMethodJavadoc(ClassName className) {
9898

9999
public static CodeBlock waiterBuilderPollingStrategy() {
100100
String javadocs = new DocumentationBuilder()
101-
.description("Defines a {@link $T} to use when polling a resource")
102-
.param("pollingStrategy", "the polling strategy to set")
101+
.description("Defines overrides to the default SDK waiter configuration that should be used for waiters created "
102+
+ "from this builder")
103+
.param("overrideConfiguration", "the override configuration to set")
103104
.returns("a reference to this object so that method calls can be chained together.")
104105
.build();
105106

106107
return CodeBlock.builder()
107-
.add(javadocs, ClassName.get(PollingStrategy.class))
108+
.add(javadocs)
108109
.build();
109110
}
110111

111112
public static CodeBlock waiterBuilderPollingStrategyConsumerBuilder() {
112113
String javadocs = new DocumentationBuilder()
113-
.description("This is a convenient method to pass the configuration of the {@link $T} without the need to "
114+
.description("This is a convenient method to pass the override configuration without the need to "
114115
+ "create an instance manually via {@link $T.builder()}")
115-
.param("pollingStrategy", "the polling strategy to set")
116-
.see("#pollingStrategy(PollingStrategy)")
116+
.param("overrideConfiguration", "The consumer that will configure the overrideConfiguration")
117+
.see("#overrideConfiguration(WaiterOverrideConfiguration)")
117118
.returns("a reference to this object so that method calls can be chained together.")
118119
.build();
119120

120121
return CodeBlock.builder()
121-
.add(javadocs, ClassName.get(PollingStrategy.class),
122-
ClassName.get(PollingStrategy.class))
122+
.add(javadocs, ClassName.get(WaiterOverrideConfiguration.class))
123123
.build();
124124
}
125125

codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientClass.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ private MethodSpec waiterImplMethod() {
345345
.addModifiers(Modifier.PUBLIC)
346346
.addAnnotation(Override.class)
347347
.addStatement("return $T.builder().client(this)"
348-
+ ".executorService(executorService).build()",
348+
+ ".scheduledExecutorService(executorService).build()",
349349
poetExtensions.getAsyncWaiterInterface())
350350
.returns(poetExtensions.getAsyncWaiterInterface())
351351
.build();

codegen/src/main/java/software/amazon/awssdk/codegen/poet/waiters/AsyncWaiterClassSpec.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ protected void additionalTypeSpecModification(TypeSpec.Builder type) {
111111
@Override
112112
protected void additionalBuilderTypeSpecModification(TypeSpec.Builder type) {
113113
type.addField(ClassName.get(ScheduledExecutorService.class), "executorService", PRIVATE);
114-
type.addMethod(MethodSpec.methodBuilder("executorService")
114+
type.addMethod(MethodSpec.methodBuilder("scheduledExecutorService")
115115
.addModifiers(Modifier.PUBLIC)
116116
.addAnnotation(Override.class)
117117
.addParameter(ClassName.get(ScheduledExecutorService.class), "executorService")

codegen/src/main/java/software/amazon/awssdk/codegen/poet/waiters/AsyncWaiterInterfaceSpec.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ protected ParameterizedTypeName getWaiterResponseType(OperationModel opModel) {
6969

7070
@Override
7171
protected void additionalBuilderTypeSpecModification(TypeSpec.Builder type) {
72-
type.addMethod(MethodSpec.methodBuilder("executorService")
72+
type.addMethod(MethodSpec.methodBuilder("scheduledExecutorService")
7373
.addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT)
7474
.addParameter(ClassName.get(ScheduledExecutorService.class), "executorService")
7575
.addJavadoc(WaiterDocs.waiterBuilderScheduledExecutorServiceJavadoc())

codegen/src/main/java/software/amazon/awssdk/codegen/poet/waiters/BaseWaiterClassSpec.java

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@
5757
import software.amazon.awssdk.core.ApiName;
5858
import software.amazon.awssdk.core.internal.waiters.WaiterAttribute;
5959
import software.amazon.awssdk.core.retry.backoff.FixedDelayBackoffStrategy;
60-
import software.amazon.awssdk.core.waiters.PollingStrategy;
6160
import software.amazon.awssdk.core.waiters.WaiterAcceptor;
61+
import software.amazon.awssdk.core.waiters.WaiterOverrideConfiguration;
6262
import software.amazon.awssdk.core.waiters.WaiterState;
6363
import software.amazon.awssdk.utils.AttributeMap;
6464
import software.amazon.awssdk.utils.SdkAutoCloseable;
@@ -177,27 +177,27 @@ private CodeBlock waiterFieldInitialization(Map.Entry<String, WaiterDefinition>
177177
String waiterKey = waiterDefinition.getKey();
178178
String waiterName = lowercaseFirstChar(waiterKey);
179179
WaiterDefinition waiter = waiterDefinition.getValue();
180-
String pollingStrategyVarName = waiterName + "Strategy";
180+
String overrideConfigurationVarName = waiterName + "Strategy";
181181
OperationModel opModel = operationModel(waiter);
182182
CodeBlock.Builder codeBlockBuilder = CodeBlock
183183
.builder()
184-
.addStatement("$T $N = builder.pollingStrategy == null ? $T.builder().maxAttempts($L)"
185-
+ ".backoffStrategy($T.create($T.ofSeconds($L))).build() : builder.pollingStrategy",
186-
PollingStrategy.class,
187-
pollingStrategyVarName,
188-
PollingStrategy.class,
184+
.addStatement("$T $N = builder.overrideConfiguration == null ? $T.builder().maxAttempts($L)"
185+
+ ".backoffStrategy($T.create($T.ofSeconds($L))).build() : builder.overrideConfiguration",
186+
WaiterOverrideConfiguration.class,
187+
overrideConfigurationVarName,
188+
WaiterOverrideConfiguration.class,
189189
waiter.getMaxAttempts(),
190190
FixedDelayBackoffStrategy.class,
191191
Duration.class,
192192
waiter.getDelay());
193193

194194

195195
String waiterFieldName = waiterFieldName(waiterKey);
196-
codeBlockBuilder.add("this.$L = $T.builder($T.class).pollingStrategy($L).acceptors($LAcceptors())",
196+
codeBlockBuilder.add("this.$L = $T.builder($T.class).overrideConfiguration($L).acceptors($LAcceptors())",
197197
waiterFieldName,
198198
waiterClassName,
199199
ClassName.get(modelPackage, opModel.getReturnType().getReturnType()),
200-
pollingStrategyVarName,
200+
overrideConfigurationVarName,
201201
waiterFieldName);
202202

203203
additionalWaiterConfig().ifPresent(codeBlockBuilder::add);
@@ -226,7 +226,8 @@ private TypeSpec builder() {
226226
.addModifiers(PUBLIC, STATIC, FINAL)
227227
.addSuperinterface(interfaceClassName().nestedClass("Builder"))
228228
.addField(clientClassName(), "client", PRIVATE)
229-
.addField(ClassName.get(PollingStrategy.class), "pollingStrategy", PRIVATE);
229+
.addField(ClassName.get(WaiterOverrideConfiguration.class),
230+
"overrideConfiguration", PRIVATE);
230231

231232
additionalBuilderTypeSpecModification(builder);
232233
builder.addMethods(builderMethods());
@@ -238,11 +239,11 @@ private TypeSpec builder() {
238239

239240
private List<MethodSpec> builderMethods() {
240241
List<MethodSpec> methods = new ArrayList<>();
241-
methods.add(MethodSpec.methodBuilder("pollingStrategy")
242+
methods.add(MethodSpec.methodBuilder("overrideConfiguration")
242243
.addModifiers(Modifier.PUBLIC)
243244
.addAnnotation(Override.class)
244-
.addParameter(ClassName.get(PollingStrategy.class), "pollingStrategy")
245-
.addStatement("this.pollingStrategy = pollingStrategy")
245+
.addParameter(ClassName.get(WaiterOverrideConfiguration.class), "overrideConfiguration")
246+
.addStatement("this.overrideConfiguration = overrideConfiguration")
246247
.addStatement("return this")
247248
.returns(interfaceClassName().nestedClass("Builder"))
248249
.build());

codegen/src/main/java/software/amazon/awssdk/codegen/poet/waiters/BaseWaiterInterfaceSpec.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
import software.amazon.awssdk.codegen.model.service.WaiterDefinition;
3636
import software.amazon.awssdk.codegen.poet.ClassSpec;
3737
import software.amazon.awssdk.codegen.poet.PoetUtils;
38-
import software.amazon.awssdk.core.waiters.PollingStrategy;
38+
import software.amazon.awssdk.core.waiters.WaiterOverrideConfiguration;
3939
import software.amazon.awssdk.utils.SdkAutoCloseable;
4040

4141
/**
@@ -167,23 +167,23 @@ private TypeSpec builderInterface() {
167167

168168
private List<MethodSpec> builderMethods() {
169169
List<MethodSpec> builderMethods = new ArrayList<>();
170-
builderMethods.add(MethodSpec.methodBuilder("pollingStrategy")
170+
builderMethods.add(MethodSpec.methodBuilder("overrideConfiguration")
171171
.addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT)
172-
.addParameter(ClassName.get(PollingStrategy.class), "pollingStrategy")
172+
.addParameter(ClassName.get(WaiterOverrideConfiguration.class), "overrideConfiguration")
173173
.addJavadoc(WaiterDocs.waiterBuilderPollingStrategy())
174174
.returns(className().nestedClass("Builder"))
175175
.build());
176176
ParameterizedTypeName parameterizedTypeName =
177177
ParameterizedTypeName.get(ClassName.get(Consumer.class),
178-
ClassName.get(PollingStrategy.class).nestedClass("Builder"));
179-
builderMethods.add(MethodSpec.methodBuilder("pollingStrategy")
178+
ClassName.get(WaiterOverrideConfiguration.class).nestedClass("Builder"));
179+
builderMethods.add(MethodSpec.methodBuilder("overrideConfiguration")
180180
.addModifiers(Modifier.PUBLIC, Modifier.DEFAULT)
181-
.addParameter(parameterizedTypeName, "pollingStrategy")
181+
.addParameter(parameterizedTypeName, "overrideConfiguration")
182182
.addJavadoc(WaiterDocs.waiterBuilderPollingStrategyConsumerBuilder())
183183
.addStatement("$T.Builder builder = $T.builder()",
184-
PollingStrategy.class, PollingStrategy.class)
185-
.addStatement("pollingStrategy.accept(builder)")
186-
.addStatement("return pollingStrategy(builder.build())")
184+
WaiterOverrideConfiguration.class, WaiterOverrideConfiguration.class)
185+
.addStatement("overrideConfiguration.accept(builder)")
186+
.addStatement("return overrideConfiguration(builder.build())")
187187
.returns(className().nestedClass("Builder"))
188188
.build());
189189
builderMethods.add(MethodSpec.methodBuilder("client")

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,6 @@ private static List<MetricPublisher> resolveMetricPublishers(SdkClientConfigurat
352352

353353
@Override
354354
public QueryAsyncWaiter waiter() {
355-
return QueryAsyncWaiter.builder().client(this).executorService(executorService).build();
355+
return QueryAsyncWaiter.builder().client(this).scheduledExecutorService(executorService).build();
356356
}
357357
}

codegen/src/test/resources/software/amazon/awssdk/codegen/poet/waiters/query-async-waiter-class.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
import software.amazon.awssdk.core.internal.waiters.WaiterAttribute;
1818
import software.amazon.awssdk.core.retry.backoff.FixedDelayBackoffStrategy;
1919
import software.amazon.awssdk.core.waiters.AsyncWaiter;
20-
import software.amazon.awssdk.core.waiters.PollingStrategy;
2120
import software.amazon.awssdk.core.waiters.WaiterAcceptor;
21+
import software.amazon.awssdk.core.waiters.WaiterOverrideConfiguration;
2222
import software.amazon.awssdk.core.waiters.WaiterResponse;
2323
import software.amazon.awssdk.core.waiters.WaiterState;
2424
import software.amazon.awssdk.services.query.QueryAsyncClient;
@@ -63,11 +63,11 @@ private DefaultQueryAsyncWaiter(DefaultBuilder builder) {
6363
this.executorService = builder.executorService;
6464
}
6565
managedResources = attributeMapBuilder.build();
66-
PollingStrategy postOperationSuccessStrategy = builder.pollingStrategy == null ? PollingStrategy.builder()
67-
.maxAttempts(40).backoffStrategy(FixedDelayBackoffStrategy.create(Duration.ofSeconds(1))).build()
68-
: builder.pollingStrategy;
66+
WaiterOverrideConfiguration postOperationSuccessStrategy = builder.overrideConfiguration == null ? WaiterOverrideConfiguration
67+
.builder().maxAttempts(40).backoffStrategy(FixedDelayBackoffStrategy.create(Duration.ofSeconds(1))).build()
68+
: builder.overrideConfiguration;
6969
this.postOperationSuccessWaiter = AsyncWaiter.builder(APostOperationResponse.class)
70-
.pollingStrategy(postOperationSuccessStrategy).acceptors(postOperationSuccessWaiterAcceptors())
70+
.overrideConfiguration(postOperationSuccessStrategy).acceptors(postOperationSuccessWaiterAcceptors())
7171
.scheduledExecutorService(executorService).build();
7272
}
7373

@@ -118,22 +118,22 @@ private <T extends QueryRequest> T applyWaitersUserAgent(T request) {
118118
public static final class DefaultBuilder implements QueryAsyncWaiter.Builder {
119119
private QueryAsyncClient client;
120120

121-
private PollingStrategy pollingStrategy;
121+
private WaiterOverrideConfiguration overrideConfiguration;
122122

123123
private ScheduledExecutorService executorService;
124124

125125
private DefaultBuilder() {
126126
}
127127

128128
@Override
129-
public QueryAsyncWaiter.Builder executorService(ScheduledExecutorService executorService) {
129+
public QueryAsyncWaiter.Builder scheduledExecutorService(ScheduledExecutorService executorService) {
130130
this.executorService = executorService;
131131
return this;
132132
}
133133

134134
@Override
135-
public QueryAsyncWaiter.Builder pollingStrategy(PollingStrategy pollingStrategy) {
136-
this.pollingStrategy = pollingStrategy;
135+
public QueryAsyncWaiter.Builder overrideConfiguration(WaiterOverrideConfiguration overrideConfiguration) {
136+
this.overrideConfiguration = overrideConfiguration;
137137
return this;
138138
}
139139

codegen/src/test/resources/software/amazon/awssdk/codegen/poet/waiters/query-async-waiter-interface.java

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import java.util.function.Consumer;
66
import software.amazon.awssdk.annotations.Generated;
77
import software.amazon.awssdk.annotations.SdkPublicApi;
8-
import software.amazon.awssdk.core.waiters.PollingStrategy;
8+
import software.amazon.awssdk.core.waiters.WaiterOverrideConfiguration;
99
import software.amazon.awssdk.core.waiters.WaiterResponse;
1010
import software.amazon.awssdk.services.query.QueryAsyncClient;
1111
import software.amazon.awssdk.services.query.model.APostOperationRequest;
@@ -79,30 +79,31 @@ interface Builder {
7979
* the executorService to set
8080
* @return a reference to this object so that method calls can be chained together.
8181
*/
82-
Builder executorService(ScheduledExecutorService executorService);
82+
Builder scheduledExecutorService(ScheduledExecutorService executorService);
8383

8484
/**
85-
* Defines a {@link PollingStrategy} to use when polling a resource
85+
* Defines overrides to the default SDK waiter configuration that should be used for waiters created from this
86+
* builder
8687
*
87-
* @param pollingStrategy
88-
* the polling strategy to set
88+
* @param overrideConfiguration
89+
* the override configuration to set
8990
* @return a reference to this object so that method calls can be chained together.
9091
*/
91-
Builder pollingStrategy(PollingStrategy pollingStrategy);
92+
Builder overrideConfiguration(WaiterOverrideConfiguration overrideConfiguration);
9293

9394
/**
94-
* This is a convenient method to pass the configuration of the {@link PollingStrategy} without the need to
95-
* create an instance manually via {@link PollingStrategy.builder()}
95+
* This is a convenient method to pass the override configuration without the need to create an instance
96+
* manually via {@link WaiterOverrideConfiguration.builder()}
9697
*
97-
* @param pollingStrategy
98-
* the polling strategy to set
98+
* @param overrideConfiguration
99+
* The consumer that will configure the overrideConfiguration
99100
* @return a reference to this object so that method calls can be chained together.
100-
* @see #pollingStrategy(PollingStrategy)
101+
* @see #overrideConfiguration(WaiterOverrideConfiguration)
101102
*/
102-
default Builder pollingStrategy(Consumer<PollingStrategy.Builder> pollingStrategy) {
103-
PollingStrategy.Builder builder = PollingStrategy.builder();
104-
pollingStrategy.accept(builder);
105-
return pollingStrategy(builder.build());
103+
default Builder overrideConfiguration(Consumer<WaiterOverrideConfiguration.Builder> overrideConfiguration) {
104+
WaiterOverrideConfiguration.Builder builder = WaiterOverrideConfiguration.builder();
105+
overrideConfiguration.accept(builder);
106+
return overrideConfiguration(builder.build());
106107
}
107108

108109
/**

0 commit comments

Comments
 (0)