Skip to content

Commit 5af32f0

Browse files
committed
Refactor, add test
1 parent 3803f67 commit 5af32f0

File tree

5 files changed

+24
-12
lines changed

5 files changed

+24
-12
lines changed

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

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import static software.amazon.awssdk.codegen.internal.Constant.EVENT_PUBLISHER_PARAM_NAME;
2727
import static software.amazon.awssdk.codegen.poet.client.ClientClassUtils.addS3ArnableFieldCode;
2828
import static software.amazon.awssdk.codegen.poet.client.ClientClassUtils.applySignerOverrideMethod;
29+
import static software.amazon.awssdk.codegen.poet.client.ClientClassUtils.transformServiceId;
2930
import static software.amazon.awssdk.codegen.poet.client.SyncClientClass.addRequestModifierCode;
3031
import static software.amazon.awssdk.codegen.poet.client.SyncClientClass.getProtocolSpecs;
3132

@@ -290,11 +291,6 @@ private boolean hasOperationWithEventStreamOutput() {
290291
return model.getOperations().values().stream().anyMatch(OperationModel::hasEventStreamOutput);
291292
}
292293

293-
private String transformServiceId(String serviceId) {
294-
// According to User Agent 2.0 spec, replace spaces with underscores
295-
return serviceId.replace(" ", "_");
296-
}
297-
298294
private MethodSpec nameMethod() {
299295
return MethodSpec.methodBuilder("serviceName")
300296
.addAnnotation(Override.class)

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,4 +280,9 @@ public static MethodSpec updateRetryStrategyClientConfigurationMethod() {
280280
builder.addStatement("configuration.option($T.CONFIGURED_RETRY_CONFIGURATOR, null)", SdkClientOption.class);
281281
return builder.build();
282282
}
283+
284+
// According to User Agent 2.0 spec, replace spaces with underscores
285+
static String transformServiceId(String serviceId) {
286+
return serviceId.replace(" ", "_");
287+
}
283288
}

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

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import static software.amazon.awssdk.codegen.poet.PoetUtils.classNameFromFqcn;
2424
import static software.amazon.awssdk.codegen.poet.client.ClientClassUtils.addS3ArnableFieldCode;
2525
import static software.amazon.awssdk.codegen.poet.client.ClientClassUtils.applySignerOverrideMethod;
26+
import static software.amazon.awssdk.codegen.poet.client.ClientClassUtils.transformServiceId;
2627

2728
import com.squareup.javapoet.ClassName;
2829
import com.squareup.javapoet.CodeBlock;
@@ -255,11 +256,6 @@ private Stream<MethodSpec> operations(OperationModel opModel) {
255256
return methods.stream();
256257
}
257258

258-
private String transformServiceId(String serviceId) {
259-
// According to User Agent 2.0 spec, replace spaces with underscores
260-
return serviceId.replace(" ", "_");
261-
}
262-
263259
private MethodSpec traditionalMethod(OperationModel opModel) {
264260
MethodSpec.Builder method = SyncClientInterface.operationMethodSignature(model, opModel)
265261
.addAnnotation(Override.class);

codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/specs/ServiceVersionInfoSpec.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,9 @@
3030

3131
public class ServiceVersionInfoSpec implements ClassSpec {
3232
private final PoetExtension poetExtension;
33-
private final IntermediateModel model;
3433

3534
public ServiceVersionInfoSpec(IntermediateModel model) {
3635
this.poetExtension = new PoetExtension(model);
37-
this.model = model;
3836
}
3937

4038
@Override

test/codegen-generated-classes-test/src/test/java/software/amazon/awssdk/services/BusinessMetricsUserAgentTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
import software.amazon.awssdk.regions.Region;
4848
import software.amazon.awssdk.services.protocolrestjson.ProtocolRestJsonAsyncClient;
4949
import software.amazon.awssdk.services.protocolrestjson.ProtocolRestJsonAsyncClientBuilder;
50+
import software.amazon.awssdk.services.protocolrestjson.internal.ServiceVersionInfo;
5051
import software.amazon.awssdk.services.protocolrestjson.model.PaginatedOperationWithResultKeyResponse;
5152
import software.amazon.awssdk.services.protocolrestjson.paginators.PaginatedOperationWithResultKeyPublisher;
5253
import software.amazon.awssdk.services.restjsonendpointproviders.RestJsonEndpointProvidersAsyncClient;
@@ -181,4 +182,20 @@ public ExecutionAttributes executionAttributes() {
181182
return executionAttributes;
182183
}
183184
}
185+
186+
@Test
187+
void validate_serviceUserAgent_format() {
188+
ProtocolRestJsonAsyncClientBuilder clientBuilder = asyncClientBuilderForProtocolRestJson();
189+
190+
ProtocolRestJsonAsyncClient client = clientBuilder
191+
.region(Region.US_WEST_2)
192+
.credentialsProvider(CREDENTIALS_PROVIDER)
193+
.overrideConfiguration(c -> c.addExecutionInterceptor(interceptor))
194+
.build();
195+
196+
client.headOperation();
197+
198+
String userAgent = assertAndGetUserAgentString();
199+
assertThat(userAgent).contains("AmazonProtocolRestJson#" + ServiceVersionInfo.VERSION);
200+
}
184201
}

0 commit comments

Comments
 (0)