diff --git a/docs/utilities/idempotency.md b/docs/utilities/idempotency.md
index 5392b8d4c..4d59f97f4 100644
--- a/docs/utilities/idempotency.md
+++ b/docs/utilities/idempotency.md
@@ -879,7 +879,7 @@ When creating the `DynamoDBPersistenceStore`, you can set a custom [`DynamoDbCli
```java
DynamoDbClient.builder()
.credentialsProvider(EnvironmentVariableCredentialsProvider.create())
- .httpClient(UrlConnectionHttpClient.builder().build())
+ .httpClient(AwsCrtHttpClient.builder().build())
.region(Region.of(System.getenv(AWS_REGION_ENV)))
.build();
```
@@ -1073,7 +1073,7 @@ To unit test your function with DynamoDB Local, you can refer to this guide to [
// Initialize DynamoDBClient
client = DynamoDbClient.builder()
- .httpClient(UrlConnectionHttpClient.builder().build())
+ .httpClient(AwsCrtHttpClient.builder().build())
.region(Region.EU_WEST_1)
.endpointOverride(URI.create("http://localhost:" + port))
.credentialsProvider(StaticCredentialsProvider.create(
@@ -1151,7 +1151,7 @@ To unit test your function with DynamoDB Local, you can refer to this guide to [
public App() {
DynamoDbClientBuilder ddbBuilder = DynamoDbClient.builder()
.credentialsProvider(EnvironmentVariableCredentialsProvider.create())
- .httpClient(UrlConnectionHttpClient.builder().build());
+ .httpClient(AwsCrtHttpClient.builder().build());
if (System.getenv("AWS_SAM_LOCAL") != null) {
ddbBuilder.endpointOverride(URI.create("http://dynamo:8000"));
diff --git a/docs/utilities/large_messages.md b/docs/utilities/large_messages.md
index c0c1cd599..3df50b15e 100644
--- a/docs/utilities/large_messages.md
+++ b/docs/utilities/large_messages.md
@@ -370,7 +370,7 @@ To interact with S3, the utility creates a default S3 Client :
=== "Default S3 Client"
```java
S3Client client = S3Client.builder()
- .httpClient(UrlConnectionHttpClient.builder().build())
+ .httpClient(AwsCrtHttpClient.builder().build())
.region(Region.of(System.getenv(AWS_REGION_ENV)))
.build();
```
diff --git a/examples/powertools-examples-batch/pom.xml b/examples/powertools-examples-batch/pom.xml
index 947f146b3..4badf6915 100644
--- a/examples/powertools-examples-batch/pom.xml
+++ b/examples/powertools-examples-batch/pom.xml
@@ -14,7 +14,7 @@
11
11
1.9.20.1
- 2.21.1
+ 2.22.0
@@ -50,7 +50,7 @@
software.amazon.awssdk
- url-connection-client
+ aws-crt-client
${sdk.version}
diff --git a/examples/powertools-examples-batch/src/main/java/org/demo/batch/dynamo/DynamoDBWriter.java b/examples/powertools-examples-batch/src/main/java/org/demo/batch/dynamo/DynamoDBWriter.java
index fc1b0747b..2daefb7e3 100644
--- a/examples/powertools-examples-batch/src/main/java/org/demo/batch/dynamo/DynamoDBWriter.java
+++ b/examples/powertools-examples-batch/src/main/java/org/demo/batch/dynamo/DynamoDBWriter.java
@@ -16,7 +16,7 @@
import software.amazon.awssdk.enhanced.dynamodb.model.BatchWriteItemEnhancedRequest;
import software.amazon.awssdk.enhanced.dynamodb.model.BatchWriteResult;
import software.amazon.awssdk.enhanced.dynamodb.model.WriteBatch;
-import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
+import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
public class DynamoDBWriter implements RequestHandler {
@@ -30,7 +30,7 @@ public class DynamoDBWriter implements RequestHandler {
public DynamoDBWriter() {
random = new SecureRandom();
DynamoDbClient dynamoDbClient = DynamoDbClient.builder()
- .httpClientBuilder(UrlConnectionHttpClient.builder())
+ .httpClientBuilder(AwsCrtHttpClient.builder())
.build();
enhancedClient = DynamoDbEnhancedClient.builder()
diff --git a/examples/powertools-examples-batch/src/main/java/org/demo/batch/kinesis/KinesisBatchSender.java b/examples/powertools-examples-batch/src/main/java/org/demo/batch/kinesis/KinesisBatchSender.java
index dadead1a2..38a7e14eb 100644
--- a/examples/powertools-examples-batch/src/main/java/org/demo/batch/kinesis/KinesisBatchSender.java
+++ b/examples/powertools-examples-batch/src/main/java/org/demo/batch/kinesis/KinesisBatchSender.java
@@ -14,7 +14,7 @@
import org.slf4j.LoggerFactory;
import org.demo.batch.model.Product;
import software.amazon.awssdk.core.SdkBytes;
-import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
+import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.services.kinesis.KinesisClient;
import software.amazon.awssdk.services.kinesis.model.PutRecordsRequest;
import software.amazon.awssdk.services.kinesis.model.PutRecordsRequestEntry;
@@ -36,7 +36,7 @@ public class KinesisBatchSender implements RequestHandler {
public SqsBatchSender() {
sqsClient = SqsClient.builder()
- .httpClient(UrlConnectionHttpClient.create())
+ .httpClient(AwsCrtHttpClient.create())
.build();
random = new SecureRandom();
objectMapper = new ObjectMapper();
diff --git a/examples/powertools-examples-parameters/src/main/java/org/demo/parameters/ParametersFunction.java b/examples/powertools-examples-parameters/src/main/java/org/demo/parameters/ParametersFunction.java
index 9c3c422cf..fb9baf39b 100644
--- a/examples/powertools-examples-parameters/src/main/java/org/demo/parameters/ParametersFunction.java
+++ b/examples/powertools-examples-parameters/src/main/java/org/demo/parameters/ParametersFunction.java
@@ -22,19 +22,15 @@
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.net.URL;
import java.util.HashMap;
import java.util.Map;
-import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import software.amazon.lambda.powertools.parameters.secrets.SecretsParam;
import software.amazon.lambda.powertools.parameters.secrets.SecretsProvider;
import software.amazon.lambda.powertools.parameters.ssm.SSMParam;
import software.amazon.lambda.powertools.parameters.ssm.SSMProvider;
+import software.amazon.lambda.powertools.parameters.transform.TransformationManager;
public class ParametersFunction implements RequestHandler {
private static final Logger log = LoggerFactory.getLogger(ParametersFunction.class);
@@ -49,9 +45,11 @@ public class ParametersFunction implements RequestHandler log.info("- {}={}\n", key, value));
-
- log.info("\n=============== Secrets Manager ===============");
- log.info("secretjson:");
- secretJson.forEach((key, value) -> log.info("- {}={}\n", key, value));
- log.info("secretjsonobj={}\n", secretJsonObj);
-
Map headers = new HashMap<>();
headers.put("Content-Type", "application/json");
headers.put("X-Custom-Header", "application/json");
APIGatewayProxyResponseEvent response = new APIGatewayProxyResponseEvent()
.withHeaders(headers);
- try {
- final String pageContents = this.getPageContents("https://checkip.amazonaws.com");
- String output = String.format("{ \"message\": \"hello world\", \"location\": \"%s\" }", pageContents);
+ String output = "{ \"message\": \"hello world\"}";
- return response
- .withStatusCode(200)
- .withBody(output);
- } catch (IOException e) {
- return response
- .withBody("{}")
- .withStatusCode(500);
- }
+ return response
+ .withStatusCode(200)
+ .withBody(output);
}
- private String getPageContents(String address) throws IOException {
- URL url = new URL(address);
- try (BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"))) {
- return br.lines().collect(Collectors.joining(System.lineSeparator()));
- }
- }
}
diff --git a/examples/powertools-examples-parameters/src/main/resources/log4j2.xml b/examples/powertools-examples-parameters/src/main/resources/log4j2.xml
index 033da8a11..454d7faf1 100644
--- a/examples/powertools-examples-parameters/src/main/resources/log4j2.xml
+++ b/examples/powertools-examples-parameters/src/main/resources/log4j2.xml
@@ -2,11 +2,11 @@
-
+
-
+
diff --git a/examples/powertools-examples-parameters/template.yaml b/examples/powertools-examples-parameters/template.yaml
index 9d3bf8b0e..8e51b5461 100644
--- a/examples/powertools-examples-parameters/template.yaml
+++ b/examples/powertools-examples-parameters/template.yaml
@@ -1,7 +1,7 @@
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
- validation demo
+ parameters demo
Globals:
Function:
@@ -19,9 +19,11 @@ Resources:
Handler: org.demo.parameters.ParametersFunction::handleRequest
MemorySize: 512
Tracing: Active
+ Timeout: 60
Environment:
Variables:
LOG_LEVEL: INFO
+ JAVA_TOOL_OPTIONS: -XX:+TieredCompilation -XX:TieredStopAtLevel=1
Policies:
- AWSSecretsManagerGetSecretValuePolicy:
SecretArn: !Ref UserPwd
diff --git a/pom.xml b/pom.xml
index a4df4116a..a56731165 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,7 +90,7 @@
2.22.0
2.0.7
2.15.3
- 2.21.0
+ 2.23.9
2.14.0
2.1.3
UTF-8
@@ -185,6 +185,11 @@
url-connection-client
${aws.sdk.version}
+
+ software.amazon.awssdk
+ aws-crt-client
+ ${aws.sdk.version}
+
io.burt
jmespath-jackson
diff --git a/powertools-cloudformation/pom.xml b/powertools-cloudformation/pom.xml
index e3e4748d6..d5cfa61fe 100644
--- a/powertools-cloudformation/pom.xml
+++ b/powertools-cloudformation/pom.xml
@@ -40,7 +40,7 @@
software.amazon.awssdk
- url-connection-client
+ aws-crt-client
com.amazonaws
diff --git a/powertools-cloudformation/src/main/java/software/amazon/lambda/powertools/cloudformation/AbstractCustomResourceHandler.java b/powertools-cloudformation/src/main/java/software/amazon/lambda/powertools/cloudformation/AbstractCustomResourceHandler.java
index 7f5b6bb24..95404fd33 100644
--- a/powertools-cloudformation/src/main/java/software/amazon/lambda/powertools/cloudformation/AbstractCustomResourceHandler.java
+++ b/powertools-cloudformation/src/main/java/software/amazon/lambda/powertools/cloudformation/AbstractCustomResourceHandler.java
@@ -22,7 +22,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import software.amazon.awssdk.http.SdkHttpClient;
-import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
+import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
/**
* Handler base class providing core functionality for sending responses to custom CloudFormation resources after
@@ -40,7 +40,7 @@ public abstract class AbstractCustomResourceHandler
* Creates a new Handler that uses the default HTTP client for communicating with custom CloudFormation resources.
*/
protected AbstractCustomResourceHandler() {
- this.client = UrlConnectionHttpClient.create();
+ this.client = AwsCrtHttpClient.create();
}
/**
diff --git a/powertools-e2e-tests/handlers/idempotency/src/main/java/software/amazon/lambda/powertools/e2e/Function.java b/powertools-e2e-tests/handlers/idempotency/src/main/java/software/amazon/lambda/powertools/e2e/Function.java
index e4c2f2b9a..d098e657a 100644
--- a/powertools-e2e-tests/handlers/idempotency/src/main/java/software/amazon/lambda/powertools/e2e/Function.java
+++ b/powertools-e2e-tests/handlers/idempotency/src/main/java/software/amazon/lambda/powertools/e2e/Function.java
@@ -21,7 +21,7 @@
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.TimeZone;
-import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
+import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.lambda.powertools.idempotency.Idempotency;
@@ -36,7 +36,7 @@ public class Function implements RequestHandler {
public Function() {
this(DynamoDbClient
.builder()
- .httpClient(UrlConnectionHttpClient.builder().build())
+ .httpClient(AwsCrtHttpClient.builder().build())
.region(Region.of(System.getenv("AWS_REGION")))
.build());
}
diff --git a/powertools-e2e-tests/handlers/largemessage/src/main/java/software/amazon/lambda/powertools/e2e/Function.java b/powertools-e2e-tests/handlers/largemessage/src/main/java/software/amazon/lambda/powertools/e2e/Function.java
index 36cb9fcd2..34166fe1c 100644
--- a/powertools-e2e-tests/handlers/largemessage/src/main/java/software/amazon/lambda/powertools/e2e/Function.java
+++ b/powertools-e2e-tests/handlers/largemessage/src/main/java/software/amazon/lambda/powertools/e2e/Function.java
@@ -22,7 +22,7 @@
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
-import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
+import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
@@ -40,7 +40,7 @@ public class Function implements RequestHandler {
public Function() {
if (client == null) {
client = DynamoDbClient.builder()
- .httpClient(UrlConnectionHttpClient.builder().build())
+ .httpClient(AwsCrtHttpClient.builder().build())
.region(Region.of(System.getenv("AWS_REGION")))
.build();
}
diff --git a/powertools-e2e-tests/handlers/largemessage_idempotent/src/main/java/software/amazon/lambda/powertools/e2e/Function.java b/powertools-e2e-tests/handlers/largemessage_idempotent/src/main/java/software/amazon/lambda/powertools/e2e/Function.java
index 5269b37c9..89ef7f2d1 100644
--- a/powertools-e2e-tests/handlers/largemessage_idempotent/src/main/java/software/amazon/lambda/powertools/e2e/Function.java
+++ b/powertools-e2e-tests/handlers/largemessage_idempotent/src/main/java/software/amazon/lambda/powertools/e2e/Function.java
@@ -26,7 +26,7 @@
import java.util.HashMap;
import java.util.Map;
import java.util.TimeZone;
-import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
+import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
@@ -49,7 +49,7 @@ public class Function implements RequestHandler {
public Function() {
this(DynamoDbClient
.builder()
- .httpClient(UrlConnectionHttpClient.builder().build())
+ .httpClient(AwsCrtHttpClient.builder().build())
.region(Region.of(System.getenv("AWS_REGION")))
.build());
}
diff --git a/powertools-e2e-tests/pom.xml b/powertools-e2e-tests/pom.xml
index 9d84ce9f2..09b16a269 100644
--- a/powertools-e2e-tests/pom.xml
+++ b/powertools-e2e-tests/pom.xml
@@ -90,7 +90,7 @@
software.amazon.awssdk
- url-connection-client
+ aws-crt-client
test
diff --git a/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/BatchE2ET.java b/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/BatchE2ET.java
index c5f74594d..a4cf0045f 100644
--- a/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/BatchE2ET.java
+++ b/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/BatchE2ET.java
@@ -33,7 +33,7 @@
import org.junit.jupiter.api.Timeout;
import software.amazon.awssdk.core.SdkBytes;
import software.amazon.awssdk.http.SdkHttpClient;
-import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
+import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
@@ -52,7 +52,7 @@
import software.amazon.lambda.powertools.utilities.JsonConfig;
public class BatchE2ET {
- private static final SdkHttpClient httpClient = UrlConnectionHttpClient.builder().build();
+ private static final SdkHttpClient httpClient = AwsCrtHttpClient.builder().build();
private static final Region region = Region.of(System.getProperty("AWS_DEFAULT_REGION", "eu-west-1"));
private static Infrastructure infrastructure;
private static String functionName;
diff --git a/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/LargeMessageE2ET.java b/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/LargeMessageE2ET.java
index 548a710b8..664a2aad0 100644
--- a/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/LargeMessageE2ET.java
+++ b/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/LargeMessageE2ET.java
@@ -23,7 +23,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import software.amazon.awssdk.http.SdkHttpClient;
-import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
+import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
@@ -38,7 +38,7 @@
public class LargeMessageE2ET {
private static final Logger LOG = LoggerFactory.getLogger(LargeMessageE2ET.class);
- private static final SdkHttpClient httpClient = UrlConnectionHttpClient.builder().build();
+ private static final SdkHttpClient httpClient = AwsCrtHttpClient.builder().build();
private static final Region region = Region.of(System.getProperty("AWS_DEFAULT_REGION", "eu-west-1"));
private static final S3Client s3Client = S3Client.builder()
diff --git a/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/LargeMessageIdempotentE2ET.java b/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/LargeMessageIdempotentE2ET.java
index ef342ea13..d56d570da 100644
--- a/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/LargeMessageIdempotentE2ET.java
+++ b/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/LargeMessageIdempotentE2ET.java
@@ -33,7 +33,7 @@
import org.slf4j.LoggerFactory;
import software.amazon.awssdk.core.sync.RequestBody;
import software.amazon.awssdk.http.SdkHttpClient;
-import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
+import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
@@ -49,7 +49,7 @@
public class LargeMessageIdempotentE2ET {
private static final Logger LOG = LoggerFactory.getLogger(LargeMessageIdempotentE2ET.class);
- private static final SdkHttpClient httpClient = UrlConnectionHttpClient.builder().build();
+ private static final SdkHttpClient httpClient = AwsCrtHttpClient.builder().build();
private static final Region region = Region.of(System.getProperty("AWS_DEFAULT_REGION", "eu-west-1"));
private static final S3Client s3Client = S3Client.builder()
diff --git a/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/testutils/Infrastructure.java b/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/testutils/Infrastructure.java
index 28a0f2bb4..5c53f1dbb 100644
--- a/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/testutils/Infrastructure.java
+++ b/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/testutils/Infrastructure.java
@@ -65,7 +65,7 @@
import software.amazon.awscdk.services.sqs.Queue;
import software.amazon.awssdk.core.waiters.WaiterResponse;
import software.amazon.awssdk.http.SdkHttpClient;
-import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
+import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.cloudformation.CloudFormationClient;
import software.amazon.awssdk.services.cloudformation.model.Capability;
@@ -138,7 +138,7 @@ private Infrastructure(Builder builder) {
this.synthesize();
- this.httpClient = UrlConnectionHttpClient.builder().build();
+ this.httpClient = AwsCrtHttpClient.builder().build();
this.region = Region.of(System.getProperty("AWS_DEFAULT_REGION", "eu-west-1"));
this.account = StsClient.builder()
.httpClient(httpClient)
diff --git a/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/testutils/lambda/LambdaInvoker.java b/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/testutils/lambda/LambdaInvoker.java
index cf45076bf..30585275a 100644
--- a/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/testutils/lambda/LambdaInvoker.java
+++ b/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/testutils/lambda/LambdaInvoker.java
@@ -20,7 +20,7 @@
import java.time.Instant;
import software.amazon.awssdk.core.SdkBytes;
import software.amazon.awssdk.http.SdkHttpClient;
-import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
+import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.lambda.LambdaClient;
import software.amazon.awssdk.services.lambda.model.InvokeRequest;
@@ -28,7 +28,7 @@
import software.amazon.awssdk.services.lambda.model.LogType;
public class LambdaInvoker {
- private static final SdkHttpClient httpClient = UrlConnectionHttpClient.builder().build();
+ private static final SdkHttpClient httpClient = AwsCrtHttpClient.builder().build();
private static final Region region = Region.of(System.getProperty("AWS_DEFAULT_REGION", "eu-west-1"));
private static final LambdaClient lambda = LambdaClient.builder()
.httpClient(httpClient)
diff --git a/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/testutils/metrics/MetricsFetcher.java b/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/testutils/metrics/MetricsFetcher.java
index 00728f451..e7384c969 100644
--- a/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/testutils/metrics/MetricsFetcher.java
+++ b/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/testutils/metrics/MetricsFetcher.java
@@ -29,7 +29,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import software.amazon.awssdk.http.SdkHttpClient;
-import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
+import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.cloudwatch.CloudWatchClient;
import software.amazon.awssdk.services.cloudwatch.model.Dimension;
@@ -46,7 +46,7 @@
public class MetricsFetcher {
private static final Logger LOG = LoggerFactory.getLogger(MetricsFetcher.class);
- private static final SdkHttpClient httpClient = UrlConnectionHttpClient.builder().build();
+ private static final SdkHttpClient httpClient = AwsCrtHttpClient.builder().build();
private static final Region region = Region.of(System.getProperty("AWS_DEFAULT_REGION", "eu-west-1"));
private static final CloudWatchClient cloudwatch = CloudWatchClient.builder()
.httpClient(httpClient)
diff --git a/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/testutils/tracing/TraceFetcher.java b/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/testutils/tracing/TraceFetcher.java
index 2b5b6e15b..dc4c21d2a 100644
--- a/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/testutils/tracing/TraceFetcher.java
+++ b/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/testutils/tracing/TraceFetcher.java
@@ -34,7 +34,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import software.amazon.awssdk.http.SdkHttpClient;
-import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
+import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.xray.XRayClient;
import software.amazon.awssdk.services.xray.model.BatchGetTracesRequest;
@@ -53,7 +53,7 @@ public class TraceFetcher {
private static final ObjectMapper MAPPER =
new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
private static final Logger LOG = LoggerFactory.getLogger(TraceFetcher.class);
- private static final SdkHttpClient httpClient = UrlConnectionHttpClient.builder().build();
+ private static final SdkHttpClient httpClient = AwsCrtHttpClient.builder().build();
private static final Region region = Region.of(System.getProperty("AWS_DEFAULT_REGION", "eu-west-1"));
private static final XRayClient xray = XRayClient.builder()
.httpClient(httpClient)
diff --git a/powertools-idempotency/pom.xml b/powertools-idempotency/pom.xml
index fd53cd9e2..592c5cf0a 100644
--- a/powertools-idempotency/pom.xml
+++ b/powertools-idempotency/pom.xml
@@ -64,10 +64,10 @@
+
software.amazon.awssdk
- url-connection-client
- ${aws.sdk.version}
+ aws-crt-client
@@ -112,6 +112,12 @@
[1.12,2.0)
test
+
+
+ software.amazon.awssdk
+ url-connection-client
+ test
+
io.github.ganadist.sqlite4java
diff --git a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/DynamoDBPersistenceStore.java b/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/DynamoDBPersistenceStore.java
index 054f61ef3..cf0d41c1c 100644
--- a/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/DynamoDBPersistenceStore.java
+++ b/powertools-idempotency/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/DynamoDBPersistenceStore.java
@@ -29,7 +29,7 @@
import org.slf4j.LoggerFactory;
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
import software.amazon.awssdk.core.client.config.SdkAdvancedClientOption;
-import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
+import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
@@ -94,7 +94,7 @@ private DynamoDBPersistenceStore(String tableName,
String idempotencyDisabledEnv = System.getenv().get(Constants.IDEMPOTENCY_DISABLED_ENV);
if (idempotencyDisabledEnv == null || "false".equalsIgnoreCase(idempotencyDisabledEnv)) {
this.dynamoDbClient = DynamoDbClient.builder()
- .httpClient(UrlConnectionHttpClient.builder().build())
+ .httpClient(AwsCrtHttpClient.builder().build())
.overrideConfiguration(ClientOverrideConfiguration.builder()
.putAdvancedOption(SdkAdvancedClientOption.USER_AGENT_SUFFIX,
UserAgentConfigurator.getUserAgent(IDEMPOTENCY)).build())
@@ -419,7 +419,7 @@ public Builder withValidationAttr(String validationAttr) {
/**
* Custom {@link DynamoDbClient} used to query DynamoDB (optional).
- * The default one uses {@link UrlConnectionHttpClient} as a http client and
+ * The default one uses {@link AwsCrtHttpClient} as a http client and
* add com.amazonaws.xray.interceptors.TracingInterceptor (X-Ray) if available in the classpath.
*
* @param dynamoDbClient the {@link DynamoDbClient} instance to use
diff --git a/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/DynamoDBConfig.java b/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/DynamoDBConfig.java
index 66ddb53ac..8775a3c20 100644
--- a/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/DynamoDBConfig.java
+++ b/powertools-idempotency/src/test/java/software/amazon/lambda/powertools/idempotency/DynamoDBConfig.java
@@ -23,7 +23,7 @@
import org.junit.jupiter.api.BeforeAll;
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
-import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
+import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.awssdk.services.dynamodb.model.AttributeDefinition;
@@ -55,7 +55,7 @@ public static void setupDynamo() {
}
client = DynamoDbClient.builder()
- .httpClient(UrlConnectionHttpClient.builder().build())
+ .httpClient(AwsCrtHttpClient.builder().build())
.region(Region.EU_WEST_1)
.endpointOverride(URI.create("http://localhost:" + port))
.credentialsProvider(StaticCredentialsProvider.create(
diff --git a/powertools-large-messages/pom.xml b/powertools-large-messages/pom.xml
index 4206183de..5c9c07d25 100644
--- a/powertools-large-messages/pom.xml
+++ b/powertools-large-messages/pom.xml
@@ -77,10 +77,8 @@
software.amazon.awssdk
- url-connection-client
- ${aws.sdk.version}
+ aws-crt-client
-
org.junit.jupiter
diff --git a/powertools-large-messages/src/main/java/software/amazon/lambda/powertools/largemessages/LargeMessageConfig.java b/powertools-large-messages/src/main/java/software/amazon/lambda/powertools/largemessages/LargeMessageConfig.java
index 6ad529496..8688fa52a 100644
--- a/powertools-large-messages/src/main/java/software/amazon/lambda/powertools/largemessages/LargeMessageConfig.java
+++ b/powertools-large-messages/src/main/java/software/amazon/lambda/powertools/largemessages/LargeMessageConfig.java
@@ -16,7 +16,7 @@
import static software.amazon.lambda.powertools.common.internal.LambdaConstants.AWS_REGION_ENV;
-import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
+import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.S3ClientBuilder;
@@ -74,7 +74,7 @@ void resetS3Client() {
public S3Client getS3Client() {
if (this.s3Client == null) {
S3ClientBuilder s3ClientBuilder = S3Client.builder()
- .httpClient(UrlConnectionHttpClient.builder().build())
+ .httpClient(AwsCrtHttpClient.builder().build())
.region(Region.of(System.getenv(AWS_REGION_ENV)));
this.s3Client = s3ClientBuilder.build();
}
diff --git a/powertools-parameters/pom.xml b/powertools-parameters/pom.xml
index 6c90e30a8..bcc912138 100644
--- a/powertools-parameters/pom.xml
+++ b/powertools-parameters/pom.xml
@@ -41,7 +41,7 @@
software.amazon.awssdk
- url-connection-client
+ aws-crt-client
diff --git a/powertools-parameters/powertools-parameters-appconfig/src/main/java/software/amazon/lambda/powertools/parameters/appconfig/AppConfigProviderBuilder.java b/powertools-parameters/powertools-parameters-appconfig/src/main/java/software/amazon/lambda/powertools/parameters/appconfig/AppConfigProviderBuilder.java
index dadacb843..8732d422c 100644
--- a/powertools-parameters/powertools-parameters-appconfig/src/main/java/software/amazon/lambda/powertools/parameters/appconfig/AppConfigProviderBuilder.java
+++ b/powertools-parameters/powertools-parameters-appconfig/src/main/java/software/amazon/lambda/powertools/parameters/appconfig/AppConfigProviderBuilder.java
@@ -17,7 +17,7 @@
import software.amazon.awssdk.core.SdkSystemSetting;
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
import software.amazon.awssdk.core.client.config.SdkAdvancedClientOption;
-import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
+import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.appconfigdata.AppConfigDataClient;
import software.amazon.lambda.powertools.common.internal.UserAgentConfigurator;
@@ -55,7 +55,7 @@ public AppConfigProvider build() {
// Create a AppConfigDataClient if we haven't been given one
if (client == null) {
client = AppConfigDataClient.builder()
- .httpClientBuilder(UrlConnectionHttpClient.builder())
+ .httpClientBuilder(AwsCrtHttpClient.builder())
.region(Region.of(System.getenv(SdkSystemSetting.AWS_REGION.environmentVariable())))
.overrideConfiguration(ClientOverrideConfiguration.builder()
.putAdvancedOption(SdkAdvancedClientOption.USER_AGENT_SUFFIX,
diff --git a/powertools-parameters/powertools-parameters-dynamodb/src/main/java/software/amazon/lambda/powertools/parameters/dynamodb/DynamoDbProviderBuilder.java b/powertools-parameters/powertools-parameters-dynamodb/src/main/java/software/amazon/lambda/powertools/parameters/dynamodb/DynamoDbProviderBuilder.java
index 6b6610ba1..e77f24535 100644
--- a/powertools-parameters/powertools-parameters-dynamodb/src/main/java/software/amazon/lambda/powertools/parameters/dynamodb/DynamoDbProviderBuilder.java
+++ b/powertools-parameters/powertools-parameters-dynamodb/src/main/java/software/amazon/lambda/powertools/parameters/dynamodb/DynamoDbProviderBuilder.java
@@ -17,7 +17,7 @@
import software.amazon.awssdk.core.SdkSystemSetting;
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
import software.amazon.awssdk.core.client.config.SdkAdvancedClientOption;
-import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
+import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.lambda.powertools.common.internal.UserAgentConfigurator;
@@ -37,7 +37,7 @@ public class DynamoDbProviderBuilder {
static DynamoDbClient createClient() {
return DynamoDbClient.builder()
- .httpClientBuilder(UrlConnectionHttpClient.builder())
+ .httpClientBuilder(AwsCrtHttpClient.builder())
.region(Region.of(System.getenv(SdkSystemSetting.AWS_REGION.environmentVariable())))
.overrideConfiguration(ClientOverrideConfiguration.builder()
.putAdvancedOption(SdkAdvancedClientOption.USER_AGENT_SUFFIX,
diff --git a/powertools-parameters/powertools-parameters-dynamodb/src/test/java/software/amazon/lambda/powertools/parameters/dynamodb/DynamoDbProviderE2ETest.java b/powertools-parameters/powertools-parameters-dynamodb/src/test/java/software/amazon/lambda/powertools/parameters/dynamodb/DynamoDbProviderE2ETest.java
index 2695938d8..bcc318228 100644
--- a/powertools-parameters/powertools-parameters-dynamodb/src/test/java/software/amazon/lambda/powertools/parameters/dynamodb/DynamoDbProviderE2ETest.java
+++ b/powertools-parameters/powertools-parameters-dynamodb/src/test/java/software/amazon/lambda/powertools/parameters/dynamodb/DynamoDbProviderE2ETest.java
@@ -20,7 +20,7 @@
import java.util.Map;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
-import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
+import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.awssdk.services.dynamodb.model.AttributeValue;
import software.amazon.awssdk.services.dynamodb.model.PutItemRequest;
@@ -45,7 +45,7 @@ public class DynamoDbProviderE2ETest {
public DynamoDbProviderE2ETest() {
// Create a DDB client to inject test data into our test tables
ddbClient = DynamoDbClient.builder()
- .httpClientBuilder(UrlConnectionHttpClient.builder())
+ .httpClientBuilder(AwsCrtHttpClient.builder())
.build();
@@ -105,7 +105,7 @@ public void TestGetValues() {
private DynamoDbProvider makeProvider(String tableName) {
return new DynamoDbProvider(new CacheManager(), null, DynamoDbClient.builder()
- .httpClientBuilder(UrlConnectionHttpClient.builder()).build(),
+ .httpClientBuilder(AwsCrtHttpClient.builder()).build(),
tableName);
}
diff --git a/powertools-parameters/powertools-parameters-secrets/src/main/java/software/amazon/lambda/powertools/parameters/secrets/SecretsProviderBuilder.java b/powertools-parameters/powertools-parameters-secrets/src/main/java/software/amazon/lambda/powertools/parameters/secrets/SecretsProviderBuilder.java
index 125425200..32220dab9 100644
--- a/powertools-parameters/powertools-parameters-secrets/src/main/java/software/amazon/lambda/powertools/parameters/secrets/SecretsProviderBuilder.java
+++ b/powertools-parameters/powertools-parameters-secrets/src/main/java/software/amazon/lambda/powertools/parameters/secrets/SecretsProviderBuilder.java
@@ -17,7 +17,7 @@
import software.amazon.awssdk.core.SdkSystemSetting;
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
import software.amazon.awssdk.core.client.config.SdkAdvancedClientOption;
-import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
+import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
import software.amazon.lambda.powertools.common.internal.UserAgentConfigurator;
@@ -37,7 +37,7 @@ public class SecretsProviderBuilder {
private static SecretsManagerClient createClient() {
return SecretsManagerClient.builder()
- .httpClientBuilder(UrlConnectionHttpClient.builder())
+ .httpClientBuilder(AwsCrtHttpClient.builder())
.region(Region.of(System.getenv(SdkSystemSetting.AWS_REGION.environmentVariable())))
.overrideConfiguration(ClientOverrideConfiguration.builder()
.putAdvancedOption(SdkAdvancedClientOption.USER_AGENT_SUFFIX,
diff --git a/powertools-parameters/powertools-parameters-ssm/src/main/java/software/amazon/lambda/powertools/parameters/ssm/SSMProviderBuilder.java b/powertools-parameters/powertools-parameters-ssm/src/main/java/software/amazon/lambda/powertools/parameters/ssm/SSMProviderBuilder.java
index 3b4fff1b3..5e3244a3b 100644
--- a/powertools-parameters/powertools-parameters-ssm/src/main/java/software/amazon/lambda/powertools/parameters/ssm/SSMProviderBuilder.java
+++ b/powertools-parameters/powertools-parameters-ssm/src/main/java/software/amazon/lambda/powertools/parameters/ssm/SSMProviderBuilder.java
@@ -17,7 +17,7 @@
import software.amazon.awssdk.core.SdkSystemSetting;
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
import software.amazon.awssdk.core.client.config.SdkAdvancedClientOption;
-import software.amazon.awssdk.http.urlconnection.UrlConnectionHttpClient;
+import software.amazon.awssdk.http.crt.AwsCrtHttpClient;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.ssm.SsmClient;
import software.amazon.lambda.powertools.common.internal.UserAgentConfigurator;
@@ -35,7 +35,7 @@ public class SSMProviderBuilder {
private static SsmClient createClient() {
return SsmClient.builder()
- .httpClientBuilder(UrlConnectionHttpClient.builder())
+ .httpClientBuilder(AwsCrtHttpClient.builder())
.region(Region.of(System.getenv(SdkSystemSetting.AWS_REGION.environmentVariable())))
.overrideConfiguration(ClientOverrideConfiguration.builder()
.putAdvancedOption(SdkAdvancedClientOption.USER_AGENT_SUFFIX,