Skip to content

Commit

Permalink
Re-use HttpResponseHandler headers
Browse files Browse the repository at this point in the history
WHAT?

- Re-use `HttpResponseHandler.X_AMZN_REQUEST_ID_HEADER` in
  `AwsXmlResponseTransformer` instead of duplicating this header name.
- Re-use `HttpResponseHandler.X_AMZN_REQUEST_ID_HEADER_ALTERNATE` in
  `ExceptionTranslationInterceptor` instead of duplicating this header
  name.
- Re-use `HttpResponseHandler.X_AMZ_ID_2_HEADER` in
  `AwsXmlErrorUnmarshaller` instead of duplicating this header name.

WHY?

Don't repeat yourself.

HOW?

Successful build of:

- `./mvnw clean install -pl :aws-query-protocol -am`
- `./mvnw clean install -pl :aws-xml-protocol -am`
- `./mvnw clean install -pl :s3 -am`
  • Loading branch information
marcogrcr committed May 20, 2022
1 parent be46a4b commit 8a4cee1
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@

package software.amazon.awssdk.protocols.query.internal.unmarshall;

import static software.amazon.awssdk.core.http.HttpResponseHandler.X_AMZN_REQUEST_ID_HEADERS;
import static software.amazon.awssdk.core.http.HttpResponseHandler.X_AMZ_ID_2_HEADER;
import static software.amazon.awssdk.utils.FunctionalUtils.invokeSafely;

import java.time.Duration;
Expand All @@ -27,7 +29,6 @@
import software.amazon.awssdk.awscore.exception.AwsServiceException;
import software.amazon.awssdk.core.SdkBytes;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.http.HttpResponseHandler;
import software.amazon.awssdk.core.interceptor.ExecutionAttributes;
import software.amazon.awssdk.core.interceptor.SdkExecutionAttribute;
import software.amazon.awssdk.http.SdkHttpFullResponse;
Expand All @@ -40,8 +41,6 @@
*/
@SdkInternalApi
public final class AwsXmlErrorUnmarshaller {
private static final String X_AMZ_ID_2_HEADER = "x-amz-id-2";

private final List<ExceptionMetadata> exceptions;
private final Supplier<SdkPojo> defaultExceptionSupplier;

Expand Down Expand Up @@ -179,7 +178,7 @@ private String getRequestId(SdkHttpFullResponse response, XmlElement document) {
}

private String matchRequestIdHeaders(SdkHttpFullResponse response) {
return HttpResponseHandler.X_AMZN_REQUEST_ID_HEADERS.stream()
return X_AMZN_REQUEST_ID_HEADERS.stream()
.map(h -> response.firstMatchingHeader(h))
.filter(Optional::isPresent)
.map(Optional::get)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
package software.amazon.awssdk.protocols.xml.internal.unmarshall;

import static software.amazon.awssdk.awscore.util.AwsHeader.AWS_REQUEST_ID;
import static software.amazon.awssdk.core.http.HttpResponseHandler.X_AMZN_REQUEST_ID_HEADER;

import java.util.HashMap;
import java.util.Map;
Expand All @@ -38,8 +39,6 @@
public final class AwsXmlResponseTransformer<T extends AwsResponse>
implements Function<AwsXmlUnmarshallingContext, T> {

private static final String X_AMZN_REQUEST_ID_HEADER = "x-amzn-RequestId";

private final XmlProtocolUnmarshaller unmarshaller;
private final Function<SdkHttpFullResponse, SdkPojo> pojoSupplier;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@

package software.amazon.awssdk.services.s3.internal.handlers;

import static software.amazon.awssdk.core.http.HttpResponseHandler.X_AMZN_REQUEST_ID_HEADER_ALTERNATE;

import java.util.Optional;
import software.amazon.awssdk.annotations.SdkInternalApi;
import software.amazon.awssdk.awscore.exception.AwsErrorDetails;
Expand Down Expand Up @@ -46,7 +48,7 @@ public Throwable modifyException(Context.FailedExecution context, ExecutionAttri

String requestIdFromHeader = exception.awsErrorDetails()
.sdkHttpResponse()
.firstMatchingHeader("x-amz-request-id")
.firstMatchingHeader(X_AMZN_REQUEST_ID_HEADER_ALTERNATE)
.orElse(null);

String requestId = Optional.ofNullable(exception.requestId()).orElse(requestIdFromHeader);
Expand Down

0 comments on commit 8a4cee1

Please sign in to comment.