diff --git a/CHANGELOG.md b/CHANGELOG.md index 738eace1c..20a04c488 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,12 @@ This project follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) fo ## [Unreleased] +## [1.20.1] - 2025-04-08 + +* docs: fix 2 typos (#1739) by @ntestor +* docs: Correct XML formatting for Maven configuration in Large Messages utility docs (#1796) by @jreijn +* fix: Load version.properties file as resource stream to fix loading when packaged as jar (#1813) by @phipag + ## [1.20.0] - 2025-03-25 * feat(cfn-custom-resource): Add optional 'reason' field for detailed failure reporting (#1758) by @moizsh diff --git a/README.md b/README.md index 0edd22e07..49f11d663 100644 --- a/README.md +++ b/README.md @@ -20,17 +20,17 @@ Powertools for AWS Lambda (Java) is available in Maven Central. You can use your software.amazon.lambda powertools-tracing - 1.20.0 + 1.20.1 software.amazon.lambda powertools-logging - 1.20.0 + 1.20.1 software.amazon.lambda powertools-metrics - 1.20.0 + 1.20.1 ... @@ -217,7 +217,7 @@ More info [here](https://github.com/aws-powertools/powertools-lambda-java/pull/1 ## Examples -See the latest release of the **[examples](https://github.com/aws-powertools/powertools-lambda-java/tree/v1.20.0/examples)** for example projects showcasing usage of different utilities. +See the latest release of the **[examples](https://github.com/aws-powertools/powertools-lambda-java/tree/v1.20.1/examples)** for example projects showcasing usage of different utilities. Have a demo project to contribute which showcase usage of different utilities from powertools? We are happy to accept it [here](CONTRIBUTING.md#security-issue-notifications). diff --git a/docs/core/logging.md b/docs/core/logging.md index 30ae20a76..5a2eaf143 100644 --- a/docs/core/logging.md +++ b/docs/core/logging.md @@ -152,7 +152,7 @@ Powertools for AWS Lambda (Java) extends the functionality of Log4J. Below is an !!! info "LambdaJsonLayout is now deprecated" - Configuring utiltiy using `` plugin is deprecated now. While utility still supports the old configuration, we strongly recommend upgrading the + Configuring utility using `` plugin is deprecated now. While utility still supports the old configuration, we strongly recommend upgrading the `log4j2.xml` configuration to `JsonTemplateLayout` instead. [JsonTemplateLayout](https://logging.apache.org/log4j/2.x/manual/json-template-layout.html) is recommended way of doing structured logging. Please follow [this guide](#upgrade-to-jsontemplatelayout-from-deprecated-lambdajsonlayout-configuration-in-log4j2xml) for upgrade steps. diff --git a/docs/utilities/large_messages.md b/docs/utilities/large_messages.md index c4947a6e8..39aaf45c8 100644 --- a/docs/utilities/large_messages.md +++ b/docs/utilities/large_messages.md @@ -105,44 +105,44 @@ Depending on your version of Java (either Java 1.8 or 11+), the configuration sl === "Maven Java 11+" ```xml hl_lines="3-7 16 18 24-27" -... - -software.amazon.lambda -powertools-large-messages -{{ powertools.version }} - -... + ... + + software.amazon.lambda + powertools-large-messages + {{ powertools.version }} + + ... ... - -... - -dev.aspectj -aspectj-maven-plugin -1.13.1 - -11 -11 -11 - - -software.amazon.lambda -powertools-large-messages - - - - - - -compile - - - - -... - + + ... + + dev.aspectj + aspectj-maven-plugin + 1.13.1 + + 11 + 11 + 11 + + + software.amazon.lambda + powertools-large-messages + + + + + + + compile + + + + + ... + ``` @@ -416,4 +416,4 @@ If you need to customize this `S3Client`, you can leverage the `LargeMessageConf It gives more control, especially when dealing with partial failures with SQS (see the batch module). - The new module only provides an annotation, an equivalent to the `SqsUtils` class is not available anymore in this new version. -Finally, if you are still using the `powertools-sqs` library for batch processing, consider moving to `powertools-batch` at the same time to remove the dependency on this library completely; it has been deprecated and will be removed in v2. \ No newline at end of file +Finally, if you are still using the `powertools-sqs` library for batch processing, consider moving to `powertools-batch` at the same time to remove the dependency on this library completely; it has been deprecated and will be removed in v2. diff --git a/docs/utilities/parameters.md b/docs/utilities/parameters.md index 85d30d77e..c221e3a88 100644 --- a/docs/utilities/parameters.md +++ b/docs/utilities/parameters.md @@ -580,7 +580,7 @@ You could specify a different provider as long as it extends `BaseProvider` and/ } ``` - In this case ```SecretsProvider``` will be used to retrieve a raw value that is then trasformed into the target Object by using ```JsonTransformer```. + In this case ```SecretsProvider``` will be used to retrieve a raw value that is then transformed into the target Object by using ```JsonTransformer```. To show the convenience of the annotation compare the following two code snippets. diff --git a/examples/pom.xml b/examples/pom.xml index 492f14efd..e115be665 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -20,7 +20,7 @@ software.amazon.lambda powertools-examples - 1.20.0 + 1.20.1 pom Powertools for AWS Lambda (Java) library Examples diff --git a/examples/powertools-examples-batch/pom.xml b/examples/powertools-examples-batch/pom.xml index 9c5695dba..49a7238ce 100644 --- a/examples/powertools-examples-batch/pom.xml +++ b/examples/powertools-examples-batch/pom.xml @@ -5,7 +5,7 @@ 4.0.0 software.amazon.lambda.examples - 1.20.0 + 1.20.1 powertools-examples-batch jar Powertools for AWS Lambda (Java) library Examples - Batch diff --git a/examples/powertools-examples-cloudformation/pom.xml b/examples/powertools-examples-cloudformation/pom.xml index dd06c6e5c..fad22a2e8 100644 --- a/examples/powertools-examples-cloudformation/pom.xml +++ b/examples/powertools-examples-cloudformation/pom.xml @@ -3,7 +3,7 @@ 4.0.0 software.amazon.lambda.examples - 1.20.0 + 1.20.1 powertools-examples-cloudformation jar diff --git a/examples/powertools-examples-core/cdk/infra/pom.xml b/examples/powertools-examples-core/cdk/infra/pom.xml index a128fc8be..eacb00d3f 100644 --- a/examples/powertools-examples-core/cdk/infra/pom.xml +++ b/examples/powertools-examples-core/cdk/infra/pom.xml @@ -4,7 +4,7 @@ 4.0.0 software.amazon.lambda.examples cdk - 1.20.0 + 1.20.1 UTF-8 2.178.1 diff --git a/examples/powertools-examples-core/gradle/build.gradle b/examples/powertools-examples-core/gradle/build.gradle index 282c5319e..1b32d4704 100644 --- a/examples/powertools-examples-core/gradle/build.gradle +++ b/examples/powertools-examples-core/gradle/build.gradle @@ -28,8 +28,8 @@ dependencies { implementation 'com.fasterxml.jackson.core:jackson-databind:2.17.2' implementation 'com.amazonaws:aws-lambda-java-events:3.11.0' implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.17.2' - aspect 'software.amazon.lambda:powertools-tracing:1.20.0' - aspect 'software.amazon.lambda:powertools-logging:1.20.0' - aspect 'software.amazon.lambda:powertools-metrics:1.20.0' + aspect 'software.amazon.lambda:powertools-tracing:1.20.1' + aspect 'software.amazon.lambda:powertools-logging:1.20.1' + aspect 'software.amazon.lambda:powertools-metrics:1.20.1' } diff --git a/examples/powertools-examples-core/kotlin/build.gradle.kts b/examples/powertools-examples-core/kotlin/build.gradle.kts index 94dcbe071..82f37b27b 100644 --- a/examples/powertools-examples-core/kotlin/build.gradle.kts +++ b/examples/powertools-examples-core/kotlin/build.gradle.kts @@ -14,9 +14,9 @@ dependencies { implementation("com.fasterxml.jackson.core:jackson-databind:2.17.2") implementation("com.amazonaws:aws-lambda-java-events:3.11.0") implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.17.2") - aspect("software.amazon.lambda:powertools-tracing:1.19.0") - aspect("software.amazon.lambda:powertools-logging:1.19.0") - aspect("software.amazon.lambda:powertools-metrics:1.19.0") + aspect("software.amazon.lambda:powertools-tracing:1.20.1") + aspect("software.amazon.lambda:powertools-logging:1.20.1") + aspect("software.amazon.lambda:powertools-metrics:1.20.1") testImplementation("junit:junit:4.13.2") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") } diff --git a/examples/powertools-examples-core/sam/pom.xml b/examples/powertools-examples-core/sam/pom.xml index ede67bba4..1ae1feee4 100644 --- a/examples/powertools-examples-core/sam/pom.xml +++ b/examples/powertools-examples-core/sam/pom.xml @@ -3,7 +3,7 @@ 4.0.0 software.amazon.lambda.examples - 1.20.0 + 1.20.1 powertools-examples-core-sam jar diff --git a/examples/powertools-examples-core/serverless/pom.xml b/examples/powertools-examples-core/serverless/pom.xml index 6857c8b79..d8f1895d8 100644 --- a/examples/powertools-examples-core/serverless/pom.xml +++ b/examples/powertools-examples-core/serverless/pom.xml @@ -3,7 +3,7 @@ 4.0.0 software.amazon.lambda.examples - 1.20.0 + 1.20.1 powertools-examples-core-serverless jar diff --git a/examples/powertools-examples-core/terraform/pom.xml b/examples/powertools-examples-core/terraform/pom.xml index 9f02e1d99..d9be62aa4 100644 --- a/examples/powertools-examples-core/terraform/pom.xml +++ b/examples/powertools-examples-core/terraform/pom.xml @@ -3,7 +3,7 @@ 4.0.0 software.amazon.lambda.examples - 1.20.0 + 1.20.1 powertools-examples-core-terraform jar diff --git a/examples/powertools-examples-idempotency/pom.xml b/examples/powertools-examples-idempotency/pom.xml index 7d8c27a8f..ea00e7178 100644 --- a/examples/powertools-examples-idempotency/pom.xml +++ b/examples/powertools-examples-idempotency/pom.xml @@ -17,7 +17,7 @@ 4.0.0 software.amazon.lambda.examples - 1.20.0 + 1.20.1 powertools-examples-idempotency jar Powertools for AWS Lambda (Java) library Examples - Idempotency diff --git a/examples/powertools-examples-parameters/pom.xml b/examples/powertools-examples-parameters/pom.xml index 6fa7745ca..22e5717d1 100644 --- a/examples/powertools-examples-parameters/pom.xml +++ b/examples/powertools-examples-parameters/pom.xml @@ -2,7 +2,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 software.amazon.lambda.examples - 1.20.0 + 1.20.1 powertools-examples-parameters jar Powertools for AWS Lambda (Java) library Examples - Parameters diff --git a/examples/powertools-examples-serialization/pom.xml b/examples/powertools-examples-serialization/pom.xml index e5b6637dd..aead4324d 100644 --- a/examples/powertools-examples-serialization/pom.xml +++ b/examples/powertools-examples-serialization/pom.xml @@ -2,7 +2,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 software.amazon.lambda.examples - 1.20.0 + 1.20.1 powertools-examples-serialization jar Powertools for AWS Lambda (Java) library Examples - Serialization diff --git a/examples/powertools-examples-sqs/pom.xml b/examples/powertools-examples-sqs/pom.xml index 8509a12f8..8efac8247 100644 --- a/examples/powertools-examples-sqs/pom.xml +++ b/examples/powertools-examples-sqs/pom.xml @@ -2,7 +2,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 software.amazon.lambda.examples - 1.20.0 + 1.20.1 powertools-examples-sqs jar Powertools for AWS Lambda (Java) library Examples - SQS diff --git a/examples/powertools-examples-validation/pom.xml b/examples/powertools-examples-validation/pom.xml index bb28e2b40..1e10b743c 100644 --- a/examples/powertools-examples-validation/pom.xml +++ b/examples/powertools-examples-validation/pom.xml @@ -16,7 +16,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 software.amazon.lambda.examples - 1.20.0 + 1.20.1 powertools-examples-validation jar Powertools for AWS Lambda (Java) library Examples - Validation diff --git a/mkdocs.yml b/mkdocs.yml index 62bfcfb8d..76750d409 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -93,7 +93,7 @@ extra_javascript: extra: powertools: - version: 1.20.0 # to update after each release (we do not want snapshot version here) + version: 1.20.1 # to update after each release (we do not want snapshot version here) repo_url: https://github.com/aws-powertools/powertools-lambda-java edit_uri: edit/main/docs diff --git a/pom.xml b/pom.xml index 8abbaff92..119535eb1 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ software.amazon.lambda powertools-parent - 1.20.0 + 1.20.1 pom Powertools for AWS Lambda (Java) library Parent diff --git a/powertools-batch/pom.xml b/powertools-batch/pom.xml index bd32c57b6..3fc4e0d72 100644 --- a/powertools-batch/pom.xml +++ b/powertools-batch/pom.xml @@ -6,7 +6,7 @@ software.amazon.lambda powertools-parent - 1.20.0 + 1.20.1 A suite of utilities that makes batch message processing using AWS Lambda easier. diff --git a/powertools-cloudformation/pom.xml b/powertools-cloudformation/pom.xml index 8159366a5..ae367ab74 100644 --- a/powertools-cloudformation/pom.xml +++ b/powertools-cloudformation/pom.xml @@ -24,7 +24,7 @@ powertools-parent software.amazon.lambda - 1.20.0 + 1.20.1 Powertools for AWS Lambda (Java)library Cloudformation diff --git a/powertools-core/pom.xml b/powertools-core/pom.xml index 1bea00f4d..63e6be53b 100644 --- a/powertools-core/pom.xml +++ b/powertools-core/pom.xml @@ -24,7 +24,7 @@ powertools-parent software.amazon.lambda - 1.20.0 + 1.20.1 Powertools for AWS Lambda (Java) library Core diff --git a/powertools-core/src/main/java/software/amazon/lambda/powertools/core/internal/UserAgentConfigurator.java b/powertools-core/src/main/java/software/amazon/lambda/powertools/core/internal/UserAgentConfigurator.java index 354305d33..da6287b70 100644 --- a/powertools-core/src/main/java/software/amazon/lambda/powertools/core/internal/UserAgentConfigurator.java +++ b/powertools-core/src/main/java/software/amazon/lambda/powertools/core/internal/UserAgentConfigurator.java @@ -16,14 +16,13 @@ import static software.amazon.lambda.powertools.core.internal.SystemWrapper.getenv; -import java.io.FileInputStream; import java.io.IOException; -import java.net.URL; +import java.io.InputStream; import java.util.Properties; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; - /** * Can be used to create a string that can server as a User-Agent suffix in requests made with the AWS SDK clients */ @@ -54,32 +53,36 @@ static String getProjectVersion() { return getVersionFromProperties(VERSION_PROPERTIES_FILENAME, VERSION_KEY); } - /** * Retrieves the project version from a properties file. * The file should be in the resources folder. * The version is retrieved from the property with the given key. * - * @param propertyFileName the name of the properties file - * @param versionKey the key of the property that contains the version + * @param propertyFileName + * the name of the properties file + * @param versionKey + * the key of the property that contains the version * @return the version of the project as configured in the given properties file */ static String getVersionFromProperties(String propertyFileName, String versionKey) { - - URL propertiesFileURI = Thread.currentThread().getContextClassLoader().getResource(propertyFileName); - if (propertiesFileURI != null) { - try (FileInputStream fis = new FileInputStream(propertiesFileURI.getPath())) { - Properties properties = new Properties(); - properties.load(fis); - String version = properties.getProperty(versionKey); - if (version != null && !version.isEmpty()) { - return version; - } - } catch (IOException e) { + try (final InputStream is = Thread.currentThread().getContextClassLoader() + .getResourceAsStream(propertyFileName)) { + if (is == null) { LOG.warn("Unable to read {} file. Using default version.", propertyFileName); - LOG.debug("Exception:", e); + return NA; } + + Properties properties = new Properties(); + properties.load(is); + String version = properties.getProperty(versionKey); + if (version != null && !version.isEmpty()) { + return version; + } + } catch (IOException e) { + LOG.warn("Unable to read {} file. Using default version.", propertyFileName); + LOG.debug("Exception:", e); } + return NA; } @@ -90,9 +93,10 @@ static String getVersionFromProperties(String propertyFileName, String versionKe * The PT_EXEC_ENV is automatically retrieved from the AWS_EXECUTION_ENV environment variable. * If it AWS_EXECUTION_ENV is not set, PT_EXEC_ENV defaults to "NA" * - * @param ptFeature a custom feature to be added to the user agent string (e.g. idempotency). - * If null or empty, the default PT_FEATURE is used. - * The default PT_FEATURE is "no-op". + * @param ptFeature + * a custom feature to be added to the user agent string (e.g. idempotency). + * If null or empty, the default PT_FEATURE is used. + * The default PT_FEATURE is "no-op". * @return the user agent string */ public static String getUserAgent(String ptFeature) { diff --git a/powertools-e2e-tests/handlers/pom.xml b/powertools-e2e-tests/handlers/pom.xml index dff3f1caa..75c92a181 100644 --- a/powertools-e2e-tests/handlers/pom.xml +++ b/powertools-e2e-tests/handlers/pom.xml @@ -10,7 +10,7 @@ Fake handlers that use Powertools for AWS Lambda (Java). - 1.20.0 + 1.20.1 UTF-8 1.8 1.8 diff --git a/powertools-e2e-tests/pom.xml b/powertools-e2e-tests/pom.xml index 660b00bb9..c75f6da03 100644 --- a/powertools-e2e-tests/pom.xml +++ b/powertools-e2e-tests/pom.xml @@ -20,7 +20,7 @@ powertools-parent software.amazon.lambda - 1.20.0 + 1.20.1 powertools-e2e-tests diff --git a/powertools-idempotency/pom.xml b/powertools-idempotency/pom.xml index 4fa45699a..d0eef0b5c 100644 --- a/powertools-idempotency/pom.xml +++ b/powertools-idempotency/pom.xml @@ -21,7 +21,7 @@ software.amazon.lambda powertools-parent - 1.20.0 + 1.20.1 powertools-idempotency diff --git a/powertools-large-messages/pom.xml b/powertools-large-messages/pom.xml index bd030714b..635d79146 100644 --- a/powertools-large-messages/pom.xml +++ b/powertools-large-messages/pom.xml @@ -23,7 +23,7 @@ software.amazon.lambda powertools-parent - 1.20.0 + 1.20.1 powertools-large-messages diff --git a/powertools-logging/pom.xml b/powertools-logging/pom.xml index a5cc227de..f0d13d7c5 100644 --- a/powertools-logging/pom.xml +++ b/powertools-logging/pom.xml @@ -24,7 +24,7 @@ powertools-parent software.amazon.lambda - 1.20.0 + 1.20.1 Powertools for AWS Lambda (Java) library Logging diff --git a/powertools-metrics/pom.xml b/powertools-metrics/pom.xml index 04d474d69..b8efd9d72 100644 --- a/powertools-metrics/pom.xml +++ b/powertools-metrics/pom.xml @@ -24,7 +24,7 @@ powertools-parent software.amazon.lambda - 1.20.0 + 1.20.1 Powertools for AWS Lambda (Java) library Metrics diff --git a/powertools-parameters/pom.xml b/powertools-parameters/pom.xml index df27990c7..196124972 100644 --- a/powertools-parameters/pom.xml +++ b/powertools-parameters/pom.xml @@ -21,7 +21,7 @@ powertools-parent software.amazon.lambda - 1.20.0 + 1.20.1 powertools-parameters diff --git a/powertools-serialization/pom.xml b/powertools-serialization/pom.xml index e207c5ba4..a1136b5e7 100644 --- a/powertools-serialization/pom.xml +++ b/powertools-serialization/pom.xml @@ -21,7 +21,7 @@ powertools-parent software.amazon.lambda - 1.20.0 + 1.20.1 powertools-serialization diff --git a/powertools-sqs/pom.xml b/powertools-sqs/pom.xml index b88c1144a..8de480d88 100644 --- a/powertools-sqs/pom.xml +++ b/powertools-sqs/pom.xml @@ -24,7 +24,7 @@ powertools-parent software.amazon.lambda - 1.20.0 + 1.20.1 Powertools for AWS Lambda (Java) library SQS diff --git a/powertools-test-suite/pom.xml b/powertools-test-suite/pom.xml index f823fa4ed..43fc6180b 100644 --- a/powertools-test-suite/pom.xml +++ b/powertools-test-suite/pom.xml @@ -24,7 +24,7 @@ powertools-parent software.amazon.lambda - 1.20.0 + 1.20.1 diff --git a/powertools-tracing/pom.xml b/powertools-tracing/pom.xml index 0c525da06..90b600e06 100644 --- a/powertools-tracing/pom.xml +++ b/powertools-tracing/pom.xml @@ -24,7 +24,7 @@ powertools-parent software.amazon.lambda - 1.20.0 + 1.20.1 Powertools for AWS Lambda (Java) library Tracing diff --git a/powertools-validation/pom.xml b/powertools-validation/pom.xml index 3c14fe642..0b2010d7e 100644 --- a/powertools-validation/pom.xml +++ b/powertools-validation/pom.xml @@ -24,7 +24,7 @@ powertools-parent software.amazon.lambda - 1.20.0 + 1.20.1 Powertools for AWS Lambda (Java) validation library