diff --git a/.changes/next-release/feature-AWSSDKforJavav2-890d71f.json b/.changes/next-release/feature-AWSSDKforJavav2-890d71f.json new file mode 100644 index 000000000000..86f2e341a48f --- /dev/null +++ b/.changes/next-release/feature-AWSSDKforJavav2-890d71f.json @@ -0,0 +1,6 @@ +{ + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "This update replaces the default `apache-client` runtime dependency of service clients with the new `apache5-client`. This means that service clients will now use the `Apache5HttClient` by default if no HTTP client is explicitly configured on the service client builder. The SDK version is also updates to `2.42.0` to reflect this change in default client." +} diff --git a/services/cloudfront/src/test/java/software/amazon/awssdk/services/cloudfront/CloudFrontUtilitiesIntegrationTest.java b/services/cloudfront/src/test/java/software/amazon/awssdk/services/cloudfront/CloudFrontUtilitiesIntegrationTest.java index 15c30c812a3b..b5c924f326e2 100644 --- a/services/cloudfront/src/test/java/software/amazon/awssdk/services/cloudfront/CloudFrontUtilitiesIntegrationTest.java +++ b/services/cloudfront/src/test/java/software/amazon/awssdk/services/cloudfront/CloudFrontUtilitiesIntegrationTest.java @@ -25,7 +25,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardOpenOption; -import java.security.Key; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.PrivateKey; @@ -51,7 +50,7 @@ import software.amazon.awssdk.http.SdkHttpClient; import software.amazon.awssdk.http.SdkHttpMethod; import software.amazon.awssdk.http.SdkHttpRequest; -import software.amazon.awssdk.http.apache.ApacheHttpClient; +import software.amazon.awssdk.http.apache5.Apache5HttpClient; import software.amazon.awssdk.services.cloudfront.cookie.CookiesForCannedPolicy; import software.amazon.awssdk.services.cloudfront.cookie.CookiesForCustomPolicy; import software.amazon.awssdk.services.cloudfront.internal.utils.SigningUtils; @@ -144,7 +143,7 @@ static Stream keyCases() throws Exception { @Test void unsignedUrl_shouldReturn403Response() throws Exception { - SdkHttpClient client = ApacheHttpClient.create(); + SdkHttpClient client = Apache5HttpClient.create(); HttpExecuteResponse response = client.prepareRequest(HttpExecuteRequest.builder() .request(SdkHttpRequest.builder() @@ -169,7 +168,7 @@ void getSignedUrlWithCannedPolicy_producesValidUrl(KeyTestCase testCase) throws .keyPairId(testCase.keyPairId) .expirationDate(expirationDate).build(); SignedUrl signedUrl = cloudFrontUtilities.getSignedUrlWithCannedPolicy(request); - SdkHttpClient client = ApacheHttpClient.create(); + SdkHttpClient client = Apache5HttpClient.create(); HttpExecuteResponse response = client.prepareRequest(HttpExecuteRequest.builder() .request(signedUrl.createHttpGetRequest()) .build()).call(); @@ -188,7 +187,7 @@ void getSignedUrlWithCannedPolicy_withExpiredDate_shouldReturn403Response(KeyTes .privateKey(testCase.privateKey) .keyPairId(testCase.keyPairId) .expirationDate(expirationDate)); - SdkHttpClient client = ApacheHttpClient.create(); + SdkHttpClient client = Apache5HttpClient.create(); HttpExecuteResponse response = client.prepareRequest(HttpExecuteRequest.builder() .request(signedUrl.createHttpGetRequest()) .build()).call(); @@ -209,7 +208,7 @@ void getSignedUrlWithCustomPolicy_producesValidUrl(KeyTestCase testCase) throws .expirationDate(expirationDate) .activeDate(activeDate).build(); SignedUrl signedUrl = cloudFrontUtilities.getSignedUrlWithCustomPolicy(request); - SdkHttpClient client = ApacheHttpClient.create(); + SdkHttpClient client = Apache5HttpClient.create(); HttpExecuteResponse response = client.prepareRequest(HttpExecuteRequest.builder() .request(signedUrl.createHttpGetRequest()) .build()).call(); @@ -229,7 +228,7 @@ void getSignedUrlWithCustomPolicy_withFutureActiveDate_shouldReturn403Response() .keyPairId(rsaKeyPairId) .expirationDate(expirationDate) .activeDate(activeDate)); - SdkHttpClient client = ApacheHttpClient.create(); + SdkHttpClient client = Apache5HttpClient.create(); HttpExecuteResponse response = client.prepareRequest(HttpExecuteRequest.builder() .request(signedUrl.createHttpGetRequest()) .build()).call(); @@ -247,7 +246,7 @@ void getCookiesForCannedPolicy_producesValidCookies(KeyTestCase testCase) throws .keyPairId(testCase.keyPairId) .expirationDate(expirationDate)); - SdkHttpClient client = ApacheHttpClient.create(); + SdkHttpClient client = Apache5HttpClient.create(); HttpExecuteResponse response = client.prepareRequest(HttpExecuteRequest.builder() .request(cookies.createHttpGetRequest()) .build()).call(); @@ -268,7 +267,7 @@ void getCookiesForCannedPolicy_withExpiredDate_shouldReturn403Response() throws .expirationDate(expirationDate).build(); CookiesForCannedPolicy cookies = cloudFrontUtilities.getCookiesForCannedPolicy(request); - SdkHttpClient client = ApacheHttpClient.create(); + SdkHttpClient client = Apache5HttpClient.create(); HttpExecuteResponse response = client.prepareRequest(HttpExecuteRequest.builder() .request(cookies.createHttpGetRequest()) .build()).call(); @@ -288,7 +287,7 @@ void getCookiesForCustomPolicy_producesValidCookies(KeyTestCase testCase) throws .expirationDate(expirationDate) .activeDate(activeDate)); - SdkHttpClient client = ApacheHttpClient.create(); + SdkHttpClient client = Apache5HttpClient.create(); HttpExecuteResponse response = client.prepareRequest(HttpExecuteRequest.builder() .request(cookies.createHttpGetRequest()) .build()).call(); @@ -311,7 +310,7 @@ void getCookiesForCustomPolicy_withFutureActiveDate_shouldReturn403Response() th .activeDate(activeDate).build(); CookiesForCustomPolicy cookies = cloudFrontUtilities.getCookiesForCustomPolicy(request); - SdkHttpClient client = ApacheHttpClient.create(); + SdkHttpClient client = Apache5HttpClient.create(); HttpExecuteResponse response = client.prepareRequest(HttpExecuteRequest.builder() .request(cookies.createHttpGetRequest()) .build()).call(); @@ -345,7 +344,7 @@ void getSignedUrlWithCustomPolicy_shouldAllowQueryParametersWhenUsingWildcard(Ke URI modifiedUri = URI.create(urlWithDynamicParam); - SdkHttpClient client = ApacheHttpClient.create(); + SdkHttpClient client = Apache5HttpClient.create(); HttpExecuteResponse response = client.prepareRequest(HttpExecuteRequest.builder() .request(SdkHttpRequest.builder() .encodedPath(modifiedUri.getRawPath() + "?" + modifiedUri.getRawQuery()) @@ -382,7 +381,7 @@ void getSignedUrlWithCustomPolicy_wildCardPath(KeyTestCase testCase) throws Exce URI modifiedUri = URI.create(signedUrl.url().replace("/specific-file","/other-file")); - SdkHttpClient client = ApacheHttpClient.create(); + SdkHttpClient client = Apache5HttpClient.create(); HttpExecuteResponse response = client.prepareRequest(HttpExecuteRequest.builder() .request(SdkHttpRequest.builder() .encodedPath(modifiedUri.getRawPath() + "?" + modifiedUri.getRawQuery()) @@ -418,7 +417,7 @@ void getSignedUrlWithCustomPolicy_wildCardPolicyResource_allowsAnyPath(KeyTestCa URI modifiedUri = URI.create(signedUrl.url().replace("/s3ObjectKey","/foo/other-file")); - SdkHttpClient client = ApacheHttpClient.create(); + SdkHttpClient client = Apache5HttpClient.create(); HttpExecuteResponse response = client.prepareRequest(HttpExecuteRequest.builder() .request(SdkHttpRequest.builder() .encodedPath(modifiedUri.getRawPath() + "?" + modifiedUri.getRawQuery()) diff --git a/services/dynamodb/src/it/java/software/amazon/awssdk/services/dynamodb/SignersIntegrationTest.java b/services/dynamodb/src/it/java/software/amazon/awssdk/services/dynamodb/SignersIntegrationTest.java index e933e6b4f30c..758027150e37 100644 --- a/services/dynamodb/src/it/java/software/amazon/awssdk/services/dynamodb/SignersIntegrationTest.java +++ b/services/dynamodb/src/it/java/software/amazon/awssdk/services/dynamodb/SignersIntegrationTest.java @@ -37,7 +37,7 @@ import software.amazon.awssdk.http.SdkHttpClient; import software.amazon.awssdk.http.SdkHttpFullRequest; import software.amazon.awssdk.http.SdkHttpMethod; -import software.amazon.awssdk.http.apache.ApacheHttpClient; +import software.amazon.awssdk.http.apache5.Apache5HttpClient; import software.amazon.awssdk.services.dynamodb.model.AttributeDefinition; import software.amazon.awssdk.services.dynamodb.model.AttributeValue; import software.amazon.awssdk.services.dynamodb.model.CreateTableRequest; @@ -132,7 +132,7 @@ public void sign_WithoutUsingSdkClient_ThroughExecutionAttributes() throws Excep // sign the request SdkHttpFullRequest signedRequest = signer.sign(httpFullRequest, constructExecutionAttributes()); - SdkHttpClient httpClient = ApacheHttpClient.builder().build(); + SdkHttpClient httpClient = Apache5HttpClient.builder().build(); HttpExecuteRequest request = HttpExecuteRequest.builder() .request(signedRequest) @@ -156,7 +156,7 @@ public void test_SignMethod_WithModeledParam_And_WithoutUsingSdkClient() throws // sign the request SdkHttpFullRequest signedRequest = signer.sign(httpFullRequest, constructSignerParams()); - SdkHttpClient httpClient = ApacheHttpClient.builder().build(); + SdkHttpClient httpClient = Apache5HttpClient.builder().build(); HttpExecuteRequest request = HttpExecuteRequest.builder() .request(signedRequest) diff --git a/services/pom.xml b/services/pom.xml index 2aea829762f6..389ed031637f 100644 --- a/services/pom.xml +++ b/services/pom.xml @@ -522,7 +522,7 @@ ${awsjavasdk.version} - apache-client + apache5-client software.amazon.awssdk ${awsjavasdk.version} runtime diff --git a/services/s3/pom.xml b/services/s3/pom.xml index e9d9ef59f70e..d3914d78cf80 100644 --- a/services/s3/pom.xml +++ b/services/s3/pom.xml @@ -197,6 +197,12 @@ ${awsjavasdk.version} test + + software.amazon.awssdk + apache-client + ${awsjavasdk.version} + test + io.netty netty-transport diff --git a/services/s3control/src/it/java/software.amazon.awssdk.services.s3control/S3AccessPointsIntegrationTest.java b/services/s3control/src/it/java/software.amazon.awssdk.services.s3control/S3AccessPointsIntegrationTest.java index ef5feb77f8f2..039f6b1eacd2 100644 --- a/services/s3control/src/it/java/software.amazon.awssdk.services.s3control/S3AccessPointsIntegrationTest.java +++ b/services/s3control/src/it/java/software.amazon.awssdk.services.s3control/S3AccessPointsIntegrationTest.java @@ -30,7 +30,7 @@ import software.amazon.awssdk.http.HttpExecuteResponse; import software.amazon.awssdk.http.SdkHttpClient; import software.amazon.awssdk.http.SdkHttpRequest; -import software.amazon.awssdk.http.apache.ApacheHttpClient; +import software.amazon.awssdk.http.apache5.Apache5HttpClient; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.GetObjectRequest; @@ -144,7 +144,7 @@ private void testAccessPointPresigning(String accessPointArn, String key) throws .key(key))) .httpRequest(); - try (SdkHttpClient client = ApacheHttpClient.create()) { + try (SdkHttpClient client = Apache5HttpClient.create()) { client.prepareRequest(HttpExecuteRequest.builder() .request(presignedPut) .contentStreamProvider(() -> new StringInputStream(data)) diff --git a/services/s3control/src/it/java/software.amazon.awssdk.services.s3control/S3MrapIntegrationTest.java b/services/s3control/src/it/java/software.amazon.awssdk.services.s3control/S3MrapIntegrationTest.java index 3fac572e29d9..1d38b036fdf4 100644 --- a/services/s3control/src/it/java/software.amazon.awssdk.services.s3control/S3MrapIntegrationTest.java +++ b/services/s3control/src/it/java/software.amazon.awssdk.services.s3control/S3MrapIntegrationTest.java @@ -44,7 +44,7 @@ import software.amazon.awssdk.http.HttpExecuteRequest; import software.amazon.awssdk.http.HttpExecuteResponse; import software.amazon.awssdk.http.SdkHttpRequest; -import software.amazon.awssdk.http.apache.ApacheHttpClient; +import software.amazon.awssdk.http.apache5.Apache5HttpClient; import software.amazon.awssdk.http.auth.aws.signer.SignerConstant; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3.S3AsyncClient; @@ -314,7 +314,7 @@ private String applyPresignedUrl(PresignedRequest presignedRequest, String conte builder.contentStreamProvider(() -> new StringInputStream(content)); } HttpExecuteRequest request = builder.build(); - HttpExecuteResponse response = ApacheHttpClient.create().prepareRequest(request).call(); + HttpExecuteResponse response = Apache5HttpClient.create().prepareRequest(request).call(); return response.responseBody() .map(stream -> invokeSafely(() -> IoUtils.toUtf8String(stream))) .orElseThrow(() -> new IOException("No input stream"));