3838import software .amazon .awssdk .protocols .json .JsonOperationMetadata ;
3939import software .amazon .awssdk .retries .api .RetryStrategy ;
4040import software .amazon .awssdk .services .querytojsoncompatible .internal .QueryToJsonCompatibleServiceClientConfigurationBuilder ;
41+ import software .amazon .awssdk .services .querytojsoncompatible .internal .ServiceVersionUserAgent ;
4142import software .amazon .awssdk .services .querytojsoncompatible .model .APostOperationRequest ;
4243import software .amazon .awssdk .services .querytojsoncompatible .model .APostOperationResponse ;
4344import software .amazon .awssdk .services .querytojsoncompatible .model .InvalidInputException ;
@@ -57,7 +58,7 @@ final class DefaultQueryToJsonCompatibleAsyncClient implements QueryToJsonCompat
5758 private static final Logger log = LoggerFactory .getLogger (DefaultQueryToJsonCompatibleAsyncClient .class );
5859
5960 private static final AwsProtocolMetadata protocolMetadata = AwsProtocolMetadata .builder ()
60- .serviceProtocol (AwsServiceProtocol .AWS_JSON ).build ();
61+ .serviceProtocol (AwsServiceProtocol .AWS_JSON ).build ();
6162
6263 private final AsyncClientHandler clientHandler ;
6364
@@ -67,7 +68,8 @@ final class DefaultQueryToJsonCompatibleAsyncClient implements QueryToJsonCompat
6768
6869 protected DefaultQueryToJsonCompatibleAsyncClient (SdkClientConfiguration clientConfiguration ) {
6970 this .clientHandler = new AwsAsyncClientHandler (clientConfiguration );
70- this .clientConfiguration = clientConfiguration .toBuilder ().option (SdkClientOption .SDK_CLIENT , this ).build ();
71+ this .clientConfiguration = clientConfiguration .toBuilder ().option (SdkClientOption .SDK_CLIENT , this )
72+ .option (SdkClientOption .API_METADATA , ServiceVersionUserAgent .USER_AGENT ).build ();
7173 this .protocolFactory = init (AwsJsonProtocolFactory .builder ()).build ();
7274 }
7375
@@ -99,43 +101,43 @@ protected DefaultQueryToJsonCompatibleAsyncClient(SdkClientConfiguration clientC
99101 public CompletableFuture <APostOperationResponse > aPostOperation (APostOperationRequest aPostOperationRequest ) {
100102 SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration (aPostOperationRequest , this .clientConfiguration );
101103 List <MetricPublisher > metricPublishers = resolveMetricPublishers (clientConfiguration , aPostOperationRequest
102- .overrideConfiguration ().orElse (null ));
104+ .overrideConfiguration ().orElse (null ));
103105 MetricCollector apiCallMetricCollector = metricPublishers .isEmpty () ? NoOpMetricCollector .create () : MetricCollector
104- .create ("ApiCall" );
106+ .create ("ApiCall" );
105107 try {
106108 apiCallMetricCollector .reportMetric (CoreMetric .SERVICE_ID , "QueryToJsonCompatibleService" );
107109 apiCallMetricCollector .reportMetric (CoreMetric .OPERATION_NAME , "APostOperation" );
108110 JsonOperationMetadata operationMetadata = JsonOperationMetadata .builder ().hasStreamingSuccessResponse (false )
109- .isPayloadJson (true ).build ();
111+ .isPayloadJson (true ).build ();
110112
111113 HttpResponseHandler <APostOperationResponse > responseHandler = protocolFactory .createResponseHandler (
112- operationMetadata , APostOperationResponse ::builder );
114+ operationMetadata , APostOperationResponse ::builder );
113115 Function <String , Optional <ExceptionMetadata >> exceptionMetadataMapper = errorCode -> {
114116 if (errorCode == null ) {
115117 return Optional .empty ();
116118 }
117119 switch (errorCode ) {
118- case "InvalidInput" :
119- return Optional .of (ExceptionMetadata .builder ().errorCode ("InvalidInput" ).httpStatusCode (400 )
120- .exceptionBuilderSupplier (InvalidInputException ::builder ).build ());
121- default :
122- return Optional .empty ();
120+ case "InvalidInput" :
121+ return Optional .of (ExceptionMetadata .builder ().errorCode ("InvalidInput" ).httpStatusCode (400 )
122+ .exceptionBuilderSupplier (InvalidInputException ::builder ).build ());
123+ default :
124+ return Optional .empty ();
123125 }
124126 };
125127 HttpResponseHandler <AwsServiceException > errorResponseHandler = createErrorResponseHandler (protocolFactory ,
126- operationMetadata , exceptionMetadataMapper );
128+ operationMetadata , exceptionMetadataMapper );
127129 String hostPrefix = "{StringMember}-foo." ;
128130 HostnameValidator .validateHostnameCompliant (aPostOperationRequest .stringMember (), "StringMember" ,
129- "aPostOperationRequest" );
131+ "aPostOperationRequest" );
130132 String resolvedHostExpression = String .format ("%s-foo." , aPostOperationRequest .stringMember ());
131133
132134 CompletableFuture <APostOperationResponse > executeFuture = clientHandler
133- .execute (new ClientExecutionParams <APostOperationRequest , APostOperationResponse >()
134- .withOperationName ("APostOperation" ).withProtocolMetadata (protocolMetadata )
135- .withMarshaller (new APostOperationRequestMarshaller (protocolFactory ))
136- .withResponseHandler (responseHandler ).withErrorResponseHandler (errorResponseHandler )
137- .withRequestConfiguration (clientConfiguration ).withMetricCollector (apiCallMetricCollector )
138- .hostPrefixExpression (resolvedHostExpression ).withInput (aPostOperationRequest ));
135+ .execute (new ClientExecutionParams <APostOperationRequest , APostOperationResponse >()
136+ .withOperationName ("APostOperation" ).withProtocolMetadata (protocolMetadata )
137+ .withMarshaller (new APostOperationRequestMarshaller (protocolFactory ))
138+ .withResponseHandler (responseHandler ).withErrorResponseHandler (errorResponseHandler )
139+ .withRequestConfiguration (clientConfiguration ).withMetricCollector (apiCallMetricCollector )
140+ .hostPrefixExpression (resolvedHostExpression ).withInput (aPostOperationRequest ));
139141 CompletableFuture <APostOperationResponse > whenCompleted = executeFuture .whenComplete ((r , e ) -> {
140142 metricPublishers .forEach (p -> p .publish (apiCallMetricCollector .collect ()));
141143 });
@@ -159,12 +161,12 @@ public final String serviceName() {
159161
160162 private <T extends BaseAwsJsonProtocolFactory .Builder <T >> T init (T builder ) {
161163 return builder .clientConfiguration (clientConfiguration )
162- .defaultServiceExceptionSupplier (QueryToJsonCompatibleException ::builder ).protocol (AwsJsonProtocol .AWS_JSON )
163- .protocolVersion ("1.1" ).hasAwsQueryCompatible (true );
164+ .defaultServiceExceptionSupplier (QueryToJsonCompatibleException ::builder ).protocol (AwsJsonProtocol .AWS_JSON )
165+ .protocolVersion ("1.1" ).hasAwsQueryCompatible (true );
164166 }
165167
166168 private static List <MetricPublisher > resolveMetricPublishers (SdkClientConfiguration clientConfiguration ,
167- RequestOverrideConfiguration requestOverrideConfiguration ) {
169+ RequestOverrideConfiguration requestOverrideConfiguration ) {
168170 List <MetricPublisher > publishers = null ;
169171 if (requestOverrideConfiguration != null ) {
170172 publishers = requestOverrideConfiguration .metricPublishers ();
@@ -208,7 +210,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request,
208210 return configuration .build ();
209211 }
210212 QueryToJsonCompatibleServiceClientConfigurationBuilder serviceConfigBuilder = new QueryToJsonCompatibleServiceClientConfigurationBuilder (
211- configuration );
213+ configuration );
212214 for (SdkPlugin plugin : plugins ) {
213215 plugin .configureClient (serviceConfigBuilder );
214216 }
@@ -217,7 +219,7 @@ private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request,
217219 }
218220
219221 private HttpResponseHandler <AwsServiceException > createErrorResponseHandler (BaseAwsJsonProtocolFactory protocolFactory ,
220- JsonOperationMetadata operationMetadata , Function <String , Optional <ExceptionMetadata >> exceptionMetadataMapper ) {
222+ JsonOperationMetadata operationMetadata , Function <String , Optional <ExceptionMetadata >> exceptionMetadataMapper ) {
221223 return protocolFactory .createErrorResponseHandler (operationMetadata , exceptionMetadataMapper );
222224 }
223225
0 commit comments