diff --git a/core/aws-core/pom.xml b/core/aws-core/pom.xml
index a22dd889b9e8..f7756efbcf40 100644
--- a/core/aws-core/pom.xml
+++ b/core/aws-core/pom.xml
@@ -191,6 +191,12 @@
${awsjavasdk.version}
test
+
+ software.amazon.awssdk
+ apache5-client
+ ${awsjavasdk.version}-PREVIEW
+ test
+
org.assertj
assertj-core
diff --git a/core/sdk-core/pom.xml b/core/sdk-core/pom.xml
index 55e89524cd00..b08b5904d0dd 100644
--- a/core/sdk-core/pom.xml
+++ b/core/sdk-core/pom.xml
@@ -112,6 +112,12 @@
${awsjavasdk.version}
test
+
+ software.amazon.awssdk
+ apache5-client
+ ${awsjavasdk.version}-PREVIEW
+ test
+
org.junit.jupiter
junit-jupiter
diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/loader/ClasspathSdkHttpServiceProvider.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/loader/ClasspathSdkHttpServiceProvider.java
index 468adab2cb3f..e5f4248cf2b0 100644
--- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/loader/ClasspathSdkHttpServiceProvider.java
+++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/loader/ClasspathSdkHttpServiceProvider.java
@@ -38,9 +38,10 @@ final class ClasspathSdkHttpServiceProvider implements SdkHttpServiceProvider
static final Map SYNC_HTTP_SERVICES_PRIORITY =
ImmutableMap.builder()
- .put("software.amazon.awssdk.http.apache.ApacheSdkHttpService", 1)
- .put("software.amazon.awssdk.http.urlconnection.UrlConnectionSdkHttpService", 2)
- .put("software.amazon.awssdk.http.crt.AwsCrtSdkHttpService", 3)
+ .put("software.amazon.awssdk.http.apache5.Apache5SdkHttpService", 1)
+ .put("software.amazon.awssdk.http.apache.ApacheSdkHttpService", 2)
+ .put("software.amazon.awssdk.http.urlconnection.UrlConnectionSdkHttpService", 3)
+ .put("software.amazon.awssdk.http.crt.AwsCrtSdkHttpService", 4)
.build();
static final Map ASYNC_HTTP_SERVICES_PRIORITY =
diff --git a/services/pom.xml b/services/pom.xml
index 5a1a72db06bd..5a2841d3ea9b 100644
--- a/services/pom.xml
+++ b/services/pom.xml
@@ -521,6 +521,12 @@
${awsjavasdk.version}
runtime
+
+ apache5-client
+ software.amazon.awssdk
+ ${awsjavasdk.version}-PREVIEW
+ runtime
+
netty-nio-client
software.amazon.awssdk
diff --git a/test/codegen-generated-classes-test/pom.xml b/test/codegen-generated-classes-test/pom.xml
index 71e6ee14e459..4b72669e7f8a 100644
--- a/test/codegen-generated-classes-test/pom.xml
+++ b/test/codegen-generated-classes-test/pom.xml
@@ -235,6 +235,12 @@
${awsjavasdk.version}
test
+
+ software.amazon.awssdk
+ apache5-client
+ ${awsjavasdk.version}-PREVIEW
+ test
+
org.assertj
assertj-core
diff --git a/test/module-path-tests/pom.xml b/test/module-path-tests/pom.xml
index e271c08de9f0..f9fb35f1731c 100644
--- a/test/module-path-tests/pom.xml
+++ b/test/module-path-tests/pom.xml
@@ -59,6 +59,11 @@
apache-client
${awsjavasdk.version}
+
+ software.amazon.awssdk
+ apache5-client
+ ${awsjavasdk.version}-PREVIEW
+
software.amazon.awssdk
netty-nio-client
diff --git a/test/protocol-tests/pom.xml b/test/protocol-tests/pom.xml
index ccb9278d2857..f6d2178ca71a 100644
--- a/test/protocol-tests/pom.xml
+++ b/test/protocol-tests/pom.xml
@@ -93,6 +93,12 @@
${awsjavasdk.version}
runtime
+
+ software.amazon.awssdk
+ apache5-client
+ ${awsjavasdk.version}-PREVIEW
+ runtime
+
software.amazon.awssdk
http-client-spi
diff --git a/test/s3-benchmarks/src/main/java/software/amazon/awssdk/s3benchmarks/s3express/S3BenchmarkRunner.java b/test/s3-benchmarks/src/main/java/software/amazon/awssdk/s3benchmarks/s3express/S3BenchmarkRunner.java
index 5822de568e1b..705c0a6c6b79 100644
--- a/test/s3-benchmarks/src/main/java/software/amazon/awssdk/s3benchmarks/s3express/S3BenchmarkRunner.java
+++ b/test/s3-benchmarks/src/main/java/software/amazon/awssdk/s3benchmarks/s3express/S3BenchmarkRunner.java
@@ -21,6 +21,8 @@
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
import software.amazon.awssdk.core.metrics.CoreMetric;
import software.amazon.awssdk.http.HttpMetric;
+import software.amazon.awssdk.http.apache.ApacheHttpClient;
+import software.amazon.awssdk.http.apache5.Apache5HttpClient;
import software.amazon.awssdk.http.nio.netty.NettyNioAsyncHttpClient;
import software.amazon.awssdk.metrics.MetricLevel;
import software.amazon.awssdk.metrics.MetricPublisher;
@@ -67,12 +69,13 @@ public static void runBenchmarks(boolean useS3Express) {
S3Client s3Client = S3BenchmarkTestUtils.s3ClientBuilder(region)
.credentialsProvider(credentialsProvider)
+ .httpClient(ApacheHttpClient.create())
.overrideConfiguration(o -> o.addMetricPublisher(
metricPublisher(cloudwatchClient,
namespacePrefix + "/SmallObject/Apache")))
.build();
- LOGGER.info(() -> "Running small objects benchmark, 64Kb data, 5 buckets, 200 iterations");
+ LOGGER.info(() -> "Running small objects benchmark with Apache4 Http Client, 64Kb data, 5 buckets, 200 iterations");
BenchmarkConfig smallObjectSyncConfig = BenchmarkConfig.builder()
.region(region)
.credentialsProvider(credentialsProvider)
@@ -93,7 +96,7 @@ public static void runBenchmarks(boolean useS3Express) {
namespacePrefix + "/MediumObject/Apache")))
.build();
- LOGGER.info(() -> "Running medium objects benchmark, 1024Kb data, 5 buckets, 200 iterations");
+ LOGGER.info(() -> "Running medium objects benchmark with Apache4 Http Client, 1024Kb data, 5 buckets, 200 iterations");
BenchmarkConfig largeObjectSyncConfig = BenchmarkConfig.builder()
.region(region)
.credentialsProvider(credentialsProvider)
@@ -108,6 +111,33 @@ public static void runBenchmarks(boolean useS3Express) {
s3Client.close();
+ s3Client = S3BenchmarkTestUtils.s3ClientBuilder(region)
+ .credentialsProvider(credentialsProvider)
+ .httpClient(Apache5HttpClient.create())
+ .overrideConfiguration(o -> o.addMetricPublisher(
+ metricPublisher(cloudwatchClient,
+ namespacePrefix + "/SmallObject/Apache5")))
+ .build();
+
+ LOGGER.info(() -> "Running small objects benchmark with Apache5 Http Client, 64Kb data, 5 buckets, 200 iterations");
+ syncBenchmark = new S3PutGetDeleteSyncBenchmark(smallObjectSyncConfig, s3Client);
+ syncBenchmark.run();
+ s3Client.close();
+
+ s3Client = S3BenchmarkTestUtils.s3ClientBuilder(region)
+ .credentialsProvider(credentialsProvider)
+ .httpClient(Apache5HttpClient.create())
+ .overrideConfiguration(o -> o.addMetricPublisher(
+ metricPublisher(cloudwatchClient,
+ namespacePrefix + "/MediumObject/Apache5")))
+ .build();
+
+ LOGGER.info(() -> "Running medium objects benchmark with Apache5 Http Client, 1024Kb data, 5 buckets, 200 iterations");
+ syncBenchmark = new S3PutGetDeleteSyncBenchmark(largeObjectSyncConfig, s3Client);
+ syncBenchmark.run();
+ s3Client.close();
+
+
S3AsyncClient s3AsyncClient = S3BenchmarkTestUtils.s3AsyncClientBuilder(region)
.credentialsProvider(credentialsProvider)
.overrideConfiguration(o -> o.addMetricPublisher(
diff --git a/test/sdk-native-image-test/pom.xml b/test/sdk-native-image-test/pom.xml
index f212169f97e4..e05d3cb154b6 100644
--- a/test/sdk-native-image-test/pom.xml
+++ b/test/sdk-native-image-test/pom.xml
@@ -67,6 +67,11 @@
${awsjavasdk.version}
+
+ software.amazon.awssdk
+ apache5-client
+ ${awsjavasdk.version}-PREVIEW
+
org.slf4j
diff --git a/test/stability-tests/pom.xml b/test/stability-tests/pom.xml
index ed89867b0dd1..66fd0cd4c826 100644
--- a/test/stability-tests/pom.xml
+++ b/test/stability-tests/pom.xml
@@ -59,6 +59,12 @@
${awsjavasdk.version}
test
+
+ software.amazon.awssdk
+ apache5-client
+ ${awsjavasdk.version}-PREVIEW
+ test
+
software.amazon.awssdk
netty-nio-client
diff --git a/test/tests-coverage-reporting/pom.xml b/test/tests-coverage-reporting/pom.xml
index 94556f27211a..6eb43a1f40ea 100644
--- a/test/tests-coverage-reporting/pom.xml
+++ b/test/tests-coverage-reporting/pom.xml
@@ -157,6 +157,11 @@
software.amazon.awssdk
${awsjavasdk.version}
+
+ apache-client
+ software.amazon.awssdk
+ ${awsjavasdk.version}
+
aws-crt-client
software.amazon.awssdk