diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml
index 417f21c48..a94ace711 100644
--- a/.github/workflows/build-docs.yml
+++ b/.github/workflows/build-docs.yml
@@ -32,7 +32,7 @@ jobs:
environment: Docs
steps:
- name: Checkout Repository
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3
+ uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
with:
fetch-depth: 0
- name: Build
diff --git a/.github/workflows/check-build.yml b/.github/workflows/check-build.yml
index a972084a6..339d6fab8 100644
--- a/.github/workflows/check-build.yml
+++ b/.github/workflows/check-build.yml
@@ -77,9 +77,9 @@ jobs:
steps:
- id: checkout
name: Checkout repository
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Java
- uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165
+ uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e
with:
distribution: corretto
java-version: ${{ matrix.java }}
@@ -94,18 +94,18 @@ jobs:
steps:
- id: checkout
name: Checkout repository
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
fetch-depth: 0
- name: Get changed files
id: changed-files
- uses: tj-actions/changed-files@24d32ffd492484c1d75e0c0b894501ddb9d30d62 # v47.0.0
+ uses: tj-actions/changed-files@e0021407031f5be11a464abee9a0776171c79891 # v47.0.1
with:
files: |
powertools-*/**
pom.xml
- name: Setup GraalVM
- uses: graalvm/setup-graalvm@eec48106e0bf45f2976c2ff0c3e22395cced8243 # v1.4.2
+ uses: graalvm/setup-graalvm@790e28947b79a9c09c3391c0f18bf8d0f102ed69 # v1.4.4
with:
java-version: "21"
distribution: "graalvm"
diff --git a/.github/workflows/check-e2e.yml b/.github/workflows/check-e2e.yml
index 2ddb78ec0..378d48a60 100644
--- a/.github/workflows/check-e2e.yml
+++ b/.github/workflows/check-e2e.yml
@@ -57,9 +57,9 @@ jobs:
- 25
steps:
- - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup java
- uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
+ uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5.1.0
with:
distribution: 'corretto'
java-version: ${{ matrix.java }}
@@ -88,9 +88,9 @@ jobs:
- 25
steps:
- - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup java
- uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
+ uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5.1.0
with:
distribution: 'corretto'
java-version: ${{ matrix.java }}
diff --git a/.github/workflows/check-pmd.yml b/.github/workflows/check-pmd.yml
index 66150821d..7e7dce429 100644
--- a/.github/workflows/check-pmd.yml
+++ b/.github/workflows/check-pmd.yml
@@ -29,9 +29,9 @@ jobs:
id-token: write
steps:
- name: Checkout Repository
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Java
- uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
+ uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5.1.0
with:
java-version: 21
distribution: corretto
diff --git a/.github/workflows/check-spotbugs.yml b/.github/workflows/check-spotbugs.yml
index 8af0e4d9d..c5c8197f9 100644
--- a/.github/workflows/check-spotbugs.yml
+++ b/.github/workflows/check-spotbugs.yml
@@ -41,9 +41,9 @@ jobs:
codecheck:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Java
- uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
+ uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5.1.0
with:
distribution: 'corretto'
java-version: 21
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 20ff19a69..630b91321 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -103,7 +103,7 @@ jobs:
steps:
- id: checkout
name: Checkout repository
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- id: version
name: version
uses: ./.github/actions/version
@@ -112,7 +112,7 @@ jobs:
snapshot: ${{ inputs.snapshot}}
- id: upload_source
name: Upload artifacts
- uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
+ uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
if-no-files-found: error
name: source
@@ -133,11 +133,11 @@ jobs:
steps:
- id: download_source
name: Download artifacts
- uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v4.6.1
+ uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v4.6.1
with:
name: source
- name: Setup Java
- uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165
+ uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e
with:
distribution: corretto
java-version: 21
@@ -168,11 +168,11 @@ jobs:
steps:
- id: download_source
name: Download artifacts
- uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v4.6.1
+ uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v4.6.1
with:
name: source
- name: Setup Java
- uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165
+ uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e
with:
distribution: corretto
java-version: ${{ matrix.java }}
@@ -191,11 +191,11 @@ jobs:
steps:
- id: download_source
name: Download artifacts
- uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v4.6.1
+ uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v4.6.1
with:
name: source
- name: Setup Java
- uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165
+ uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e
with:
distribution: corretto
java-version: 21
@@ -224,12 +224,12 @@ jobs:
steps:
- id: checkout
name: Checkout repository
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
ref: ${{ env.RELEASE_COMMIT }}
- id: download_source
name: Download artifacts
- uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v4.6.1
+ uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v4.6.1
with:
name: source
- id: setup-git
@@ -272,7 +272,7 @@ jobs:
steps:
- id: checkout
name: Checkout repository
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
# Checkout PR branch to make sure we build the version-bumped docs
ref: ci-${{ github.run_id }}
diff --git a/.github/workflows/security-dependencies-check.yml b/.github/workflows/security-dependencies-check.yml
index 1e85d9e96..6729fd304 100644
--- a/.github/workflows/security-dependencies-check.yml
+++ b/.github/workflows/security-dependencies-check.yml
@@ -24,7 +24,7 @@ jobs:
pull-requests: write
steps:
- name: Checkout Repository
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Verify Contents
uses: actions/dependency-review-action@3c4e3dcb1aa7874d2c16be7d79418e9b7efd6261 # v4.8.2
with:
diff --git a/.github/workflows/security-scorecard.yml b/.github/workflows/security-scorecard.yml
index 0944694f7..b91e78c69 100644
--- a/.github/workflows/security-scorecard.yml
+++ b/.github/workflows/security-scorecard.yml
@@ -35,7 +35,7 @@ jobs:
id-token: write
steps:
- name: Checkout Repository
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
+ uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
with:
persist-credentials: false
- name: Run Analysis
@@ -46,12 +46,12 @@ jobs:
publish_results: true
repo_token: ${{ secrets.SCORECARD_TOKEN }}
- name: Upload Results
- uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
+ uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: SARIF file
path: results.sarif
retention-days: 5
- name: Upload to Code-Scanning
- uses: github/codeql-action/upload-sarif@fdbfb4d2750291e159f0156def62b853c2798ca2 # v3.29.5
+ uses: github/codeql-action/upload-sarif@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v3.29.5
with:
sarif_file: results.sarif
diff --git a/README.md b/README.md
index 2644c47ab..4c02e2d1f 100644
--- a/README.md
+++ b/README.md
@@ -22,17 +22,17 @@ Powertools for AWS Lambda (Java) is available in Maven Central. You can use your
software.amazon.lambda
powertools-tracing
- 2.8.0
+ 2.9.0
software.amazon.lambda
powertools-logging-log4j
- 2.8.0
+ 2.9.0
software.amazon.lambda
powertools-metrics
- 2.8.0
+ 2.9.0
...
diff --git a/docs/processes/versioning.md b/docs/processes/versioning.md
index bbb60f507..d20269001 100644
--- a/docs/processes/versioning.md
+++ b/docs/processes/versioning.md
@@ -55,7 +55,7 @@ To see the list of available major versions of Powertools for AWS Lambda and whe
### Version support matrix
-| SDK | Major version | Current Phase | General Availability Date | Notes |
-| -------------------------------- | ------------- | -------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------- |
-| Powertools for AWS Lambda (Java) | 2.x | General Availability | 06/12/2025 | See [Release notes](https://github.com/aws-powertools/powertools-lambda-java/releases/tag/v2.0.0) |
-| Powertools for AWS Lambda (Java) | 1.x | Maintenance | 11/04/2020 | End-of-support: December 12, 2025. See [upgrade guide](https://docs.powertools.aws.dev/lambda/java/latest/upgrade/) |
+| SDK | Major version | Current Phase | General Availability Date | Notes |
+| -------------------------------- | ------------- | -------------------- | ------------------------- | ------------------------------------------------------------------------------------------------- |
+| Powertools for AWS Lambda (Java) | 2.x | General Availability | 06/12/2025 | See [Release notes](https://github.com/aws-powertools/powertools-lambda-java/releases/tag/v2.0.0) |
+| Powertools for AWS Lambda (Java) | 1.x | End-of-life | 11/04/2020 | See [announcement](https://github.com/aws-powertools/powertools-lambda-java/issues/1895) |
diff --git a/docs/upgrade.md b/docs/upgrade.md
index 5b6d16d99..c9662a3db 100644
--- a/docs/upgrade.md
+++ b/docs/upgrade.md
@@ -7,7 +7,7 @@ description: Guide to update between major Powertools for AWS Lambda (Java) vers
!!! warning "End of support notice"
- On December 12th, 2025, Powertools for AWS Lambda (Java) v1 will reach end of support and will no longer receive updates or releases. If you are still using v1, we strongly recommend you to read our upgrade guide and update to the latest version.
+ On December 12th, 2025, Powertools for AWS Lambda (Java) v1 reached end-of-life and will no longer receive updates or releases. If you are still using v1, we strongly recommend you to read our upgrade guide and update to the latest version. Refer to [our announcement](https://github.com/aws-powertools/powertools-lambda-java/issues/1895) for details.
Given our commitment to all of our customers using Powertools for AWS Lambda (Java), we will keep [Maven Central](https://central.sonatype.com/search?q=powertools){target="\_blank"} `v1` releases and a `v1` documentation archive to prevent any disruption.
diff --git a/examples/pom.xml b/examples/pom.xml
index 511cdd5a9..5d191063f 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -20,7 +20,7 @@
software.amazon.lambda
powertools-examples
- 2.8.0
+ 2.9.0
pom
Powertools for AWS Lambda (Java) - Examples
diff --git a/examples/powertools-examples-batch/pom.xml b/examples/powertools-examples-batch/pom.xml
index 6d941a31f..0091fb5ca 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
- 2.8.0
+ 2.9.0
powertools-examples-batch
jar
Powertools for AWS Lambda (Java) - Examples - Batch
@@ -14,7 +14,7 @@
11
11
1.9.20.1
- 2.38.7
+ 2.39.3
diff --git a/examples/powertools-examples-cloudformation/README.md b/examples/powertools-examples-cloudformation/README.md
index b9e58eb82..27e564bf3 100644
--- a/examples/powertools-examples-cloudformation/README.md
+++ b/examples/powertools-examples-cloudformation/README.md
@@ -15,7 +15,7 @@ Run the following in your shell:
```bash
cd infra/sam
sam build
-sam deploy --guided --parameter-overrides BucketNameParam=my-unique-bucket-2.8.0718
+sam deploy --guided --parameter-overrides BucketNameParam=my-unique-bucket-2.9.0718
```
### Deploy with CDK
@@ -32,5 +32,5 @@ To build and deploy this application for the first time, run the following in yo
cd infra/cdk
mvn package
cdk synth
-cdk deploy -c BucketNameParam=my-unique-bucket-2.8.0718
+cdk deploy -c BucketNameParam=my-unique-bucket-2.9.0718
```
\ No newline at end of file
diff --git a/examples/powertools-examples-cloudformation/infra/sam-graalvm/README.md b/examples/powertools-examples-cloudformation/infra/sam-graalvm/README.md
index c2a9e2ffd..3aca1408a 100644
--- a/examples/powertools-examples-cloudformation/infra/sam-graalvm/README.md
+++ b/examples/powertools-examples-cloudformation/infra/sam-graalvm/README.md
@@ -40,7 +40,7 @@ sam build
## Deploy the sample application
```shell
-sam deploy --guided --parameter-overrides BucketNameParam=my-unique-bucket-2.8.0718
+sam deploy --guided --parameter-overrides BucketNameParam=my-unique-bucket-2.9.0718
```
This sample is based on Serverless Application Model (SAM). To deploy it, check out the instructions for getting started with SAM in [the examples directory](../../../README.md)
diff --git a/examples/powertools-examples-cloudformation/pom.xml b/examples/powertools-examples-cloudformation/pom.xml
index 09adbfa18..212c0966b 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
- 2.8.0
+ 2.9.0
powertools-examples-cloudformation
jar
@@ -14,7 +14,7 @@
11
1.4.0
3.16.1
- 2.39.1
+ 2.40.9
1.9.20.1
diff --git a/examples/powertools-examples-core-utilities/cdk/app/pom.xml b/examples/powertools-examples-core-utilities/cdk/app/pom.xml
index 29acef5e2..c02b73026 100644
--- a/examples/powertools-examples-core-utilities/cdk/app/pom.xml
+++ b/examples/powertools-examples-core-utilities/cdk/app/pom.xml
@@ -6,12 +6,12 @@
software.amazon.lambda.examples
- 2.8.0
+ 2.9.0
powertools-examples-core-utilities-cdk
jar
- 2.25.2
+ 2.25.3
11
11
1.9.20.1
diff --git a/examples/powertools-examples-core-utilities/cdk/infra/pom.xml b/examples/powertools-examples-core-utilities/cdk/infra/pom.xml
index 7daf3153f..e3ceb7e65 100644
--- a/examples/powertools-examples-core-utilities/cdk/infra/pom.xml
+++ b/examples/powertools-examples-core-utilities/cdk/infra/pom.xml
@@ -4,7 +4,7 @@
4.0.0
software.amazon.lambda.examples
cdk
- 2.8.0
+ 2.9.0
UTF-8
2.224.0
diff --git a/examples/powertools-examples-core-utilities/gradle/build.gradle b/examples/powertools-examples-core-utilities/gradle/build.gradle
index 6841d20ab..b01fdcfaa 100644
--- a/examples/powertools-examples-core-utilities/gradle/build.gradle
+++ b/examples/powertools-examples-core-utilities/gradle/build.gradle
@@ -29,8 +29,8 @@ dependencies {
implementation 'com.amazonaws:aws-lambda-java-events:3.16.0'
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.2'
implementation 'org.aspectj:aspectjrt:1.9.20.1'
- aspect 'software.amazon.lambda:powertools-tracing:2.8.0'
- aspect 'software.amazon.lambda:powertools-logging-log4j:2.8.0'
- aspect 'software.amazon.lambda:powertools-metrics:2.8.0'
+ aspect 'software.amazon.lambda:powertools-tracing:2.9.0'
+ aspect 'software.amazon.lambda:powertools-logging-log4j:2.9.0'
+ aspect 'software.amazon.lambda:powertools-metrics:2.9.0'
}
diff --git a/examples/powertools-examples-core-utilities/kotlin/build.gradle.kts b/examples/powertools-examples-core-utilities/kotlin/build.gradle.kts
index bc11eb32e..3dae5015e 100644
--- a/examples/powertools-examples-core-utilities/kotlin/build.gradle.kts
+++ b/examples/powertools-examples-core-utilities/kotlin/build.gradle.kts
@@ -15,9 +15,9 @@ dependencies {
implementation("com.amazonaws:aws-lambda-java-events:3.16.0")
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.2")
implementation("org.aspectj:aspectjrt:1.9.20.1")
- aspect("software.amazon.lambda:powertools-tracing:2.8.0")
- aspect("software.amazon.lambda:powertools-logging-log4j:2.8.0")
- aspect("software.amazon.lambda:powertools-metrics:2.8.0")
+ aspect("software.amazon.lambda:powertools-tracing:2.9.0")
+ aspect("software.amazon.lambda:powertools-logging-log4j:2.9.0")
+ aspect("software.amazon.lambda:powertools-metrics:2.9.0")
implementation("org.jetbrains.kotlin:kotlin-stdlib:1.9.24")
}
diff --git a/examples/powertools-examples-core-utilities/sam-graalvm/pom.xml b/examples/powertools-examples-core-utilities/sam-graalvm/pom.xml
index fceb4a322..eea0357e9 100644
--- a/examples/powertools-examples-core-utilities/sam-graalvm/pom.xml
+++ b/examples/powertools-examples-core-utilities/sam-graalvm/pom.xml
@@ -4,12 +4,12 @@
Powertools for AWS Lambda (Java) - Examples - Core Utilities (logging, tracing, metrics) with SAM GraalVM
software.amazon.lambda.examples
- 2.8.0
+ 2.9.0
powertools-examples-core-utilities-sam-graalvm
jar
- 2.25.2
+ 2.25.3
11
11
1.9.20.1
diff --git a/examples/powertools-examples-core-utilities/sam/pom.xml b/examples/powertools-examples-core-utilities/sam/pom.xml
index b8606a227..2d6a00161 100644
--- a/examples/powertools-examples-core-utilities/sam/pom.xml
+++ b/examples/powertools-examples-core-utilities/sam/pom.xml
@@ -4,7 +4,7 @@
Powertools for AWS Lambda (Java) - Examples - Core Utilities (logging, tracing, metrics) with SAM
software.amazon.lambda.examples
- 2.8.0
+ 2.9.0
powertools-examples-core-utilities-sam
jar
diff --git a/examples/powertools-examples-core-utilities/serverless/pom.xml b/examples/powertools-examples-core-utilities/serverless/pom.xml
index d77b0ccd6..26e647dad 100644
--- a/examples/powertools-examples-core-utilities/serverless/pom.xml
+++ b/examples/powertools-examples-core-utilities/serverless/pom.xml
@@ -4,7 +4,7 @@
Powertools for AWS Lambda (Java) - Examples - Core Utilities (logging, tracing, metrics) with Serverless
software.amazon.lambda.examples
- 2.8.0
+ 2.9.0
powertools-examples-core-utilities-serverless
jar
diff --git a/examples/powertools-examples-core-utilities/terraform/pom.xml b/examples/powertools-examples-core-utilities/terraform/pom.xml
index 14c0e223e..4de1e415c 100644
--- a/examples/powertools-examples-core-utilities/terraform/pom.xml
+++ b/examples/powertools-examples-core-utilities/terraform/pom.xml
@@ -1,10 +1,10 @@
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
4.0.0
Powertools for AWS Lambda (Java) - Examples - Core Utilities (logging, tracing, metrics) with Terraform
software.amazon.lambda.examples
- 2.8.0
+ 2.9.0
powertools-examples-core-utilities-terraform
jar
@@ -101,7 +101,8 @@
false
-
+
@@ -126,7 +127,6 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.4
handler
diff --git a/examples/powertools-examples-idempotency/sam-graalvm/pom.xml b/examples/powertools-examples-idempotency/sam-graalvm/pom.xml
index d1c0205ff..0536951aa 100644
--- a/examples/powertools-examples-idempotency/sam-graalvm/pom.xml
+++ b/examples/powertools-examples-idempotency/sam-graalvm/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
- 2.8.0
+ 2.9.0
powertools-examples-idempotency-sam-graalvm
jar
Powertools for AWS Lambda (Java) - Examples - Idempotency GraalVM
diff --git a/examples/powertools-examples-idempotency/sam/pom.xml b/examples/powertools-examples-idempotency/sam/pom.xml
index b90705c67..22d6a9c81 100644
--- a/examples/powertools-examples-idempotency/sam/pom.xml
+++ b/examples/powertools-examples-idempotency/sam/pom.xml
@@ -17,7 +17,7 @@
4.0.0
software.amazon.lambda.examples
- 2.8.0
+ 2.9.0
powertools-examples-idempotency
jar
Powertools for AWS Lambda (Java) - Examples - Idempotency
diff --git a/examples/powertools-examples-kafka/pom.xml b/examples/powertools-examples-kafka/pom.xml
index f4b75722c..d152f46c0 100644
--- a/examples/powertools-examples-kafka/pom.xml
+++ b/examples/powertools-examples-kafka/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
- 2.8.0
+ 2.9.0
powertools-examples-kafka
jar
Powertools for AWS Lambda (Java) - Examples - Kafka
@@ -12,7 +12,7 @@
11
1.9.20.1
1.12.1
- 4.33.0
+ 4.33.1
diff --git a/examples/powertools-examples-kafka/src/main/java/org/demo/kafka/protobuf/ProtobufProduct.java b/examples/powertools-examples-kafka/src/main/java/org/demo/kafka/protobuf/ProtobufProduct.java
index 13d8905f2..2bf5db844 100644
--- a/examples/powertools-examples-kafka/src/main/java/org/demo/kafka/protobuf/ProtobufProduct.java
+++ b/examples/powertools-examples-kafka/src/main/java/org/demo/kafka/protobuf/ProtobufProduct.java
@@ -1,7 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: ProtobufProduct.proto
-// Protobuf Java Version: 4.33.0
+// Protobuf Java Version: 4.33.1
package org.demo.kafka.protobuf;
@@ -19,7 +19,7 @@ public final class ProtobufProduct extends
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
/* major= */ 4,
/* minor= */ 33,
- /* patch= */ 0,
+ /* patch= */ 1,
/* suffix= */ "",
"ProtobufProduct");
}
diff --git a/examples/powertools-examples-kafka/src/main/java/org/demo/kafka/protobuf/ProtobufProductOrBuilder.java b/examples/powertools-examples-kafka/src/main/java/org/demo/kafka/protobuf/ProtobufProductOrBuilder.java
index ae7cb2182..caf17ad50 100644
--- a/examples/powertools-examples-kafka/src/main/java/org/demo/kafka/protobuf/ProtobufProductOrBuilder.java
+++ b/examples/powertools-examples-kafka/src/main/java/org/demo/kafka/protobuf/ProtobufProductOrBuilder.java
@@ -1,7 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: ProtobufProduct.proto
-// Protobuf Java Version: 4.33.0
+// Protobuf Java Version: 4.33.1
package org.demo.kafka.protobuf;
diff --git a/examples/powertools-examples-kafka/src/main/java/org/demo/kafka/protobuf/ProtobufProductOuterClass.java b/examples/powertools-examples-kafka/src/main/java/org/demo/kafka/protobuf/ProtobufProductOuterClass.java
index 4fcac7bd7..ce3214777 100644
--- a/examples/powertools-examples-kafka/src/main/java/org/demo/kafka/protobuf/ProtobufProductOuterClass.java
+++ b/examples/powertools-examples-kafka/src/main/java/org/demo/kafka/protobuf/ProtobufProductOuterClass.java
@@ -1,7 +1,7 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: ProtobufProduct.proto
-// Protobuf Java Version: 4.33.0
+// Protobuf Java Version: 4.33.1
package org.demo.kafka.protobuf;
@@ -13,7 +13,7 @@ private ProtobufProductOuterClass() {}
com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
/* major= */ 4,
/* minor= */ 33,
- /* patch= */ 0,
+ /* patch= */ 1,
/* suffix= */ "",
"ProtobufProductOuterClass");
}
diff --git a/examples/powertools-examples-parameters/sam-graalvm/pom.xml b/examples/powertools-examples-parameters/sam-graalvm/pom.xml
index 6d0c3f4a2..2aaffd9d1 100644
--- a/examples/powertools-examples-parameters/sam-graalvm/pom.xml
+++ b/examples/powertools-examples-parameters/sam-graalvm/pom.xml
@@ -1,14 +1,14 @@
+ 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
- 2.8.0
+ 2.9.0
powertools-examples-parameters-sam-graalvm
jar
Powertools for AWS Lambda (Java) - Examples - Parameters GraalVM
- 2.25.2
+ 2.25.3
11
11
1.9.20.1
@@ -98,8 +98,6 @@
org.apache.maven.plugins
maven-surefire-plugin
-
- 3.5.4
dev.aspectj
@@ -144,7 +142,8 @@
false
-
+
diff --git a/examples/powertools-examples-parameters/sam/pom.xml b/examples/powertools-examples-parameters/sam/pom.xml
index 15d68ffcd..d2c3e68d2 100644
--- a/examples/powertools-examples-parameters/sam/pom.xml
+++ b/examples/powertools-examples-parameters/sam/pom.xml
@@ -1,8 +1,8 @@
+ 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
- 2.8.0
+ 2.9.0
powertools-examples-parameters-sam
jar
Powertools for AWS Lambda (Java) - Examples - Parameters
@@ -72,8 +72,6 @@
org.apache.maven.plugins
maven-surefire-plugin
-
- 3.5.4
dev.aspectj
diff --git a/examples/powertools-examples-serialization/sam-graalvm/pom.xml b/examples/powertools-examples-serialization/sam-graalvm/pom.xml
index 44661fb71..5077c8989 100644
--- a/examples/powertools-examples-serialization/sam-graalvm/pom.xml
+++ b/examples/powertools-examples-serialization/sam-graalvm/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
- 2.8.0
+ 2.9.0
powertools-examples-serialization-sam-graalvm
jar
Powertools for AWS Lambda (Java) - Examples - Serialization GraalVM
diff --git a/examples/powertools-examples-serialization/sam/pom.xml b/examples/powertools-examples-serialization/sam/pom.xml
index 93c60a2cb..cf66c3e14 100644
--- a/examples/powertools-examples-serialization/sam/pom.xml
+++ b/examples/powertools-examples-serialization/sam/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
- 2.8.0
+ 2.9.0
powertools-examples-serialization-sam
jar
Powertools for AWS Lambda (Java) - Examples - Serialization
diff --git a/examples/powertools-examples-validation/pom.xml b/examples/powertools-examples-validation/pom.xml
index 1337bc2ee..2fa8462a5 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
- 2.8.0
+ 2.9.0
powertools-examples-validation
jar
Powertools for AWS Lambda (Java) - Examples - Validation
diff --git a/mkdocs.yml b/mkdocs.yml
index 5f35b96c0..b52b88cca 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -129,7 +129,7 @@ extra_javascript:
extra:
powertools:
- version: 2.8.0
+ version: 2.9.0
version:
provider: mike
default: latest
diff --git a/pom.xml b/pom.xml
index 1e4c3a9fd..e6cf78b14 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,7 +20,7 @@
software.amazon.lambda
powertools-parent
- 2.8.0
+ 2.9.0
pom
Powertools for AWS Lambda (Java) - Parent
@@ -82,10 +82,10 @@
11
11
3.1.2
- 2.25.2
+ 2.25.3
2.0.17
2.20.1
- 2.39.1
+ 2.40.9
2.20.0
2.2.0
UTF-8
@@ -95,7 +95,6 @@
3.14.1
1.9.7
1.13.1
- 3.2.5
0.8.11
1.6.13
3.12.0
@@ -112,10 +111,10 @@
4.1.2
0.6.0
1.12.781
- 2.19.1
+ 2.20.1
1.7.0
5.20.0
- 5.20.0
+ 5.21.0
2.3.0
1.5.0
@@ -625,7 +624,6 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.4
@{argLine}
diff --git a/powertools-batch/pom.xml b/powertools-batch/pom.xml
index 07d11d41c..37cfdf7b2 100644
--- a/powertools-batch/pom.xml
+++ b/powertools-batch/pom.xml
@@ -6,7 +6,7 @@
software.amazon.lambda
powertools-parent
- 2.8.0
+ 2.9.0
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 09e3299fd..cb06dc1f3 100644
--- a/powertools-cloudformation/pom.xml
+++ b/powertools-cloudformation/pom.xml
@@ -24,7 +24,7 @@
powertools-parent
software.amazon.lambda
- 2.8.0
+ 2.9.0
Powertools for AWS Lambda (Java) - Cloudformation
diff --git a/powertools-common/pom.xml b/powertools-common/pom.xml
index f14783b5b..75ef10beb 100644
--- a/powertools-common/pom.xml
+++ b/powertools-common/pom.xml
@@ -24,7 +24,7 @@
powertools-parent
software.amazon.lambda
- 2.8.0
+ 2.9.0
Powertools for AWS Lambda (Java) - Common Internal Utilities
@@ -106,7 +106,6 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.4
-Dorg.graalvm.nativeimage.imagecode=agent
diff --git a/powertools-common/src/main/java/software/amazon/lambda/powertools/common/internal/LambdaConstants.java b/powertools-common/src/main/java/software/amazon/lambda/powertools/common/internal/LambdaConstants.java
index 69fc1283a..4c4e8e9db 100644
--- a/powertools-common/src/main/java/software/amazon/lambda/powertools/common/internal/LambdaConstants.java
+++ b/powertools-common/src/main/java/software/amazon/lambda/powertools/common/internal/LambdaConstants.java
@@ -28,4 +28,6 @@ private LambdaConstants() {
public static final String ROOT_EQUALS = "Root=";
public static final String POWERTOOLS_SERVICE_NAME = "POWERTOOLS_SERVICE_NAME";
public static final String SERVICE_UNDEFINED = "service_undefined";
+ public static final String AWS_LAMBDA_INITIALIZATION_TYPE = "AWS_LAMBDA_INITIALIZATION_TYPE";
+ public static final String ON_DEMAND_INVOCATION_TYPE = "on-demand";
}
diff --git a/powertools-common/src/main/java/software/amazon/lambda/powertools/common/internal/LambdaHandlerProcessor.java b/powertools-common/src/main/java/software/amazon/lambda/powertools/common/internal/LambdaHandlerProcessor.java
index 393835d1e..15bff15d6 100644
--- a/powertools-common/src/main/java/software/amazon/lambda/powertools/common/internal/LambdaHandlerProcessor.java
+++ b/powertools-common/src/main/java/software/amazon/lambda/powertools/common/internal/LambdaHandlerProcessor.java
@@ -93,7 +93,14 @@ protected static void resetServiceName() {
}
public static boolean isColdStart() {
- return isColdStart == null;
+ if (isColdStart != null) {
+ return isColdStart;
+ }
+
+ String initType = System.getenv(LambdaConstants.AWS_LAMBDA_INITIALIZATION_TYPE);
+ isColdStart = LambdaConstants.ON_DEMAND_INVOCATION_TYPE.equals(initType);
+
+ return isColdStart;
}
public static void coldStartDone() {
diff --git a/powertools-common/src/test/java/software/amazon/lambda/powertools/common/internal/LambdaHandlerProcessorTest.java b/powertools-common/src/test/java/software/amazon/lambda/powertools/common/internal/LambdaHandlerProcessorTest.java
index 5c6bdc020..0726a9e77 100644
--- a/powertools-common/src/test/java/software/amazon/lambda/powertools/common/internal/LambdaHandlerProcessorTest.java
+++ b/powertools-common/src/test/java/software/amazon/lambda/powertools/common/internal/LambdaHandlerProcessorTest.java
@@ -216,6 +216,7 @@ void extractContext_notKnownHandler() {
}
@Test
+ @SetEnvironmentVariable(key = LambdaConstants.AWS_LAMBDA_INITIALIZATION_TYPE, value = LambdaConstants.ON_DEMAND_INVOCATION_TYPE)
void isColdStart() {
boolean isColdStart = LambdaHandlerProcessor.isColdStart();
diff --git a/powertools-e2e-tests/handlers/batch/pom.xml b/powertools-e2e-tests/handlers/batch/pom.xml
index f8e0a037f..3e89aadd2 100644
--- a/powertools-e2e-tests/handlers/batch/pom.xml
+++ b/powertools-e2e-tests/handlers/batch/pom.xml
@@ -5,7 +5,7 @@
software.amazon.lambda
e2e-test-handlers-parent
- 2.8.0
+ 2.9.0
e2e-test-handler-batch
diff --git a/powertools-e2e-tests/handlers/idempotency-functional/pom.xml b/powertools-e2e-tests/handlers/idempotency-functional/pom.xml
index 2b53dc275..b5669b21f 100644
--- a/powertools-e2e-tests/handlers/idempotency-functional/pom.xml
+++ b/powertools-e2e-tests/handlers/idempotency-functional/pom.xml
@@ -5,7 +5,7 @@
software.amazon.lambda
e2e-test-handlers-parent
- 2.8.0
+ 2.9.0
e2e-test-handler-idempotency-functional
diff --git a/powertools-e2e-tests/handlers/idempotency-generics/pom.xml b/powertools-e2e-tests/handlers/idempotency-generics/pom.xml
index 76e65edb1..21a658e6c 100644
--- a/powertools-e2e-tests/handlers/idempotency-generics/pom.xml
+++ b/powertools-e2e-tests/handlers/idempotency-generics/pom.xml
@@ -5,7 +5,7 @@
software.amazon.lambda
e2e-test-handlers-parent
- 2.8.0
+ 2.9.0
e2e-test-handler-idempotency-generics
diff --git a/powertools-e2e-tests/handlers/idempotency/pom.xml b/powertools-e2e-tests/handlers/idempotency/pom.xml
index 36181ea01..921599bdb 100644
--- a/powertools-e2e-tests/handlers/idempotency/pom.xml
+++ b/powertools-e2e-tests/handlers/idempotency/pom.xml
@@ -5,7 +5,7 @@
software.amazon.lambda
e2e-test-handlers-parent
- 2.8.0
+ 2.9.0
e2e-test-handler-idempotency
diff --git a/powertools-e2e-tests/handlers/largemessage-functional/pom.xml b/powertools-e2e-tests/handlers/largemessage-functional/pom.xml
index d29017074..ddfe39a5e 100644
--- a/powertools-e2e-tests/handlers/largemessage-functional/pom.xml
+++ b/powertools-e2e-tests/handlers/largemessage-functional/pom.xml
@@ -5,7 +5,7 @@
software.amazon.lambda
e2e-test-handlers-parent
- 2.8.0
+ 2.9.0
e2e-test-handler-largemessage-functional
diff --git a/powertools-e2e-tests/handlers/largemessage/pom.xml b/powertools-e2e-tests/handlers/largemessage/pom.xml
index 53b1e7c10..bee253988 100644
--- a/powertools-e2e-tests/handlers/largemessage/pom.xml
+++ b/powertools-e2e-tests/handlers/largemessage/pom.xml
@@ -5,7 +5,7 @@
software.amazon.lambda
e2e-test-handlers-parent
- 2.8.0
+ 2.9.0
e2e-test-handler-largemessage
diff --git a/powertools-e2e-tests/handlers/largemessage_idempotent/pom.xml b/powertools-e2e-tests/handlers/largemessage_idempotent/pom.xml
index 9f6f23389..5ef7e1963 100644
--- a/powertools-e2e-tests/handlers/largemessage_idempotent/pom.xml
+++ b/powertools-e2e-tests/handlers/largemessage_idempotent/pom.xml
@@ -5,7 +5,7 @@
software.amazon.lambda
e2e-test-handlers-parent
- 2.8.0
+ 2.9.0
e2e-test-handler-large-msg-idempotent
diff --git a/powertools-e2e-tests/handlers/logging-functional/pom.xml b/powertools-e2e-tests/handlers/logging-functional/pom.xml
index 4616af233..4ec6e5008 100644
--- a/powertools-e2e-tests/handlers/logging-functional/pom.xml
+++ b/powertools-e2e-tests/handlers/logging-functional/pom.xml
@@ -5,7 +5,7 @@
software.amazon.lambda
e2e-test-handlers-parent
- 2.8.0
+ 2.9.0
e2e-test-handler-logging-functional
diff --git a/powertools-e2e-tests/handlers/logging-log4j/pom.xml b/powertools-e2e-tests/handlers/logging-log4j/pom.xml
index bba711163..022f029e6 100644
--- a/powertools-e2e-tests/handlers/logging-log4j/pom.xml
+++ b/powertools-e2e-tests/handlers/logging-log4j/pom.xml
@@ -5,7 +5,7 @@
software.amazon.lambda
e2e-test-handlers-parent
- 2.8.0
+ 2.9.0
e2e-test-handler-logging-log4j
diff --git a/powertools-e2e-tests/handlers/logging-logback/pom.xml b/powertools-e2e-tests/handlers/logging-logback/pom.xml
index bd442fe88..f8458db25 100644
--- a/powertools-e2e-tests/handlers/logging-logback/pom.xml
+++ b/powertools-e2e-tests/handlers/logging-logback/pom.xml
@@ -5,7 +5,7 @@
software.amazon.lambda
e2e-test-handlers-parent
- 2.8.0
+ 2.9.0
e2e-test-handler-logging-logback
diff --git a/powertools-e2e-tests/handlers/metrics/pom.xml b/powertools-e2e-tests/handlers/metrics/pom.xml
index 90704c6d9..ddc6ae1bd 100644
--- a/powertools-e2e-tests/handlers/metrics/pom.xml
+++ b/powertools-e2e-tests/handlers/metrics/pom.xml
@@ -5,7 +5,7 @@
software.amazon.lambda
e2e-test-handlers-parent
- 2.8.0
+ 2.9.0
e2e-test-handler-metrics
diff --git a/powertools-e2e-tests/handlers/parameters/pom.xml b/powertools-e2e-tests/handlers/parameters/pom.xml
index 670eeb9c0..fb2deb2aa 100644
--- a/powertools-e2e-tests/handlers/parameters/pom.xml
+++ b/powertools-e2e-tests/handlers/parameters/pom.xml
@@ -5,7 +5,7 @@
software.amazon.lambda
e2e-test-handlers-parent
- 2.8.0
+ 2.9.0
e2e-test-handler-parameters
diff --git a/powertools-e2e-tests/handlers/pom.xml b/powertools-e2e-tests/handlers/pom.xml
index a9d3c3ab5..477b49dc0 100644
--- a/powertools-e2e-tests/handlers/pom.xml
+++ b/powertools-e2e-tests/handlers/pom.xml
@@ -4,7 +4,7 @@
software.amazon.lambda
e2e-test-handlers-parent
- 2.8.0
+ 2.9.0
pom
Handlers for End-to-End tests
Fake handlers that use Powertools for AWS Lambda (Java).
@@ -19,7 +19,7 @@
3.6.1
1.14.1
3.14.1
- 2.39.1
+ 2.40.9
1.9.20.1
true
diff --git a/powertools-e2e-tests/handlers/tracing/pom.xml b/powertools-e2e-tests/handlers/tracing/pom.xml
index 89891df8c..9874ce986 100644
--- a/powertools-e2e-tests/handlers/tracing/pom.xml
+++ b/powertools-e2e-tests/handlers/tracing/pom.xml
@@ -5,7 +5,7 @@
software.amazon.lambda
e2e-test-handlers-parent
- 2.8.0
+ 2.9.0
e2e-test-handler-tracing
diff --git a/powertools-e2e-tests/handlers/validation-alb-event/pom.xml b/powertools-e2e-tests/handlers/validation-alb-event/pom.xml
index 8e5e4dadb..14dbb9b13 100644
--- a/powertools-e2e-tests/handlers/validation-alb-event/pom.xml
+++ b/powertools-e2e-tests/handlers/validation-alb-event/pom.xml
@@ -5,7 +5,7 @@
software.amazon.lambda
e2e-test-handlers-parent
- 2.8.0
+ 2.9.0
e2e-test-handler-validation-alb-event
diff --git a/powertools-e2e-tests/handlers/validation-apigw-event/pom.xml b/powertools-e2e-tests/handlers/validation-apigw-event/pom.xml
index 97e967c3b..290e47b13 100644
--- a/powertools-e2e-tests/handlers/validation-apigw-event/pom.xml
+++ b/powertools-e2e-tests/handlers/validation-apigw-event/pom.xml
@@ -5,7 +5,7 @@
software.amazon.lambda
e2e-test-handlers-parent
- 2.8.0
+ 2.9.0
e2e-test-handler-validation-apigw-event
diff --git a/powertools-e2e-tests/pom.xml b/powertools-e2e-tests/pom.xml
index 484e3b4c2..fec4dec92 100644
--- a/powertools-e2e-tests/pom.xml
+++ b/powertools-e2e-tests/pom.xml
@@ -20,7 +20,7 @@
powertools-parent
software.amazon.lambda
- 2.8.0
+ 2.9.0
powertools-e2e-tests
@@ -214,7 +214,6 @@
org.apache.maven.plugins
maven-failsafe-plugin
- 3.5.4
@@ -241,7 +240,6 @@
org.apache.maven.plugins
maven-failsafe-plugin
- 3.5.4
diff --git a/powertools-e2e-tests/src/test/resources/docker/Dockerfile b/powertools-e2e-tests/src/test/resources/docker/Dockerfile
index 6643760b4..1ceb29aa0 100644
--- a/powertools-e2e-tests/src/test/resources/docker/Dockerfile
+++ b/powertools-e2e-tests/src/test/resources/docker/Dockerfile
@@ -1,5 +1,5 @@
# Use the official AWS SAM base image for Java 25
-FROM public.ecr.aws/sam/build-java25@sha256:af599d010afef63c83a04265dee9adbd4557d94b4a81941f28ae42657af7890d
+FROM public.ecr.aws/sam/build-java25@sha256:bffac7de6e418a93d2aefc1e8e7c79eda0971e7a026725fe618b58ddfba7a128
# Install GraalVM dependencies
RUN curl -4 -L https://download.oracle.com/graalvm/25/latest/graalvm-jdk-25_linux-x64_bin.tar.gz | tar -xvz
diff --git a/powertools-idempotency/pom.xml b/powertools-idempotency/pom.xml
index d15d3445d..cbe2384ba 100644
--- a/powertools-idempotency/pom.xml
+++ b/powertools-idempotency/pom.xml
@@ -21,7 +21,7 @@
software.amazon.lambda
powertools-parent
- 2.8.0
+ 2.9.0
powertools-idempotency
diff --git a/powertools-idempotency/powertools-idempotency-core/pom.xml b/powertools-idempotency/powertools-idempotency-core/pom.xml
index 801664b4a..4cba1956f 100644
--- a/powertools-idempotency/powertools-idempotency-core/pom.xml
+++ b/powertools-idempotency/powertools-idempotency-core/pom.xml
@@ -21,7 +21,7 @@
software.amazon.lambda
powertools-idempotency
- 2.8.0
+ 2.9.0
powertools-idempotency-core
diff --git a/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml b/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml
index a9cf5739b..d223e0d2f 100644
--- a/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml
+++ b/powertools-idempotency/powertools-idempotency-dynamodb/pom.xml
@@ -21,7 +21,7 @@
software.amazon.lambda
powertools-idempotency
- 2.8.0
+ 2.9.0
powertools-idempotency-dynamodb
diff --git a/powertools-kafka/pom.xml b/powertools-kafka/pom.xml
index ad564897f..c71ef94f6 100644
--- a/powertools-kafka/pom.xml
+++ b/powertools-kafka/pom.xml
@@ -21,7 +21,7 @@
powertools-parent
software.amazon.lambda
- 2.8.0
+ 2.9.0
powertools-kafka
@@ -36,7 +36,7 @@
4.1.1
1.12.1
- 4.33.0
+ 4.33.1
1.1.6
diff --git a/powertools-large-messages/pom.xml b/powertools-large-messages/pom.xml
index d72877552..ad5910ec1 100644
--- a/powertools-large-messages/pom.xml
+++ b/powertools-large-messages/pom.xml
@@ -23,7 +23,7 @@
software.amazon.lambda
powertools-parent
- 2.8.0
+ 2.9.0
powertools-large-messages
diff --git a/powertools-logging/pom.xml b/powertools-logging/pom.xml
index ae5788291..200358e0b 100644
--- a/powertools-logging/pom.xml
+++ b/powertools-logging/pom.xml
@@ -21,7 +21,7 @@
powertools-parent
software.amazon.lambda
- 2.8.0
+ 2.9.0
Powertools for AWS Lambda (Java) - Logging
@@ -123,7 +123,6 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.4
-Dorg.graalvm.nativeimage.imagecode=agent
@@ -182,11 +181,11 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.4
JSON
testService
+ on-demand
diff --git a/powertools-logging/powertools-logging-log4j/pom.xml b/powertools-logging/powertools-logging-log4j/pom.xml
index 1cf3bf265..aa4aca181 100644
--- a/powertools-logging/powertools-logging-log4j/pom.xml
+++ b/powertools-logging/powertools-logging-log4j/pom.xml
@@ -7,7 +7,7 @@
powertools-parent
software.amazon.lambda
- 2.8.0
+ 2.9.0
../../pom.xml
@@ -112,7 +112,6 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.4
-Dorg.graalvm.nativeimage.imagecode=agent
@@ -204,12 +203,12 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.4
testLog4j
eu-central-1
<_X_AMZN_TRACE_ID>Root=1-63441c4a-abcdef012345678912345678
+ on-demand
diff --git a/powertools-logging/powertools-logging-logback/pom.xml b/powertools-logging/powertools-logging-logback/pom.xml
index b5a50573d..dbf7f5207 100644
--- a/powertools-logging/powertools-logging-logback/pom.xml
+++ b/powertools-logging/powertools-logging-logback/pom.xml
@@ -6,7 +6,7 @@
powertools-parent
software.amazon.lambda
- 2.8.0
+ 2.9.0
../../pom.xml
@@ -110,7 +110,6 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.4
-Dorg.graalvm.nativeimage.imagecode=agent
@@ -203,12 +202,12 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.4
testLogback
eu-central-1
<_X_AMZN_TRACE_ID>Root=1-63441c4a-abcdef012345678912345678
+ on-demand
diff --git a/powertools-metrics/pom.xml b/powertools-metrics/pom.xml
index 4da0c0a9f..5f6c971e3 100644
--- a/powertools-metrics/pom.xml
+++ b/powertools-metrics/pom.xml
@@ -24,7 +24,7 @@
powertools-parent
software.amazon.lambda
- 2.8.0
+ 2.9.0
Powertools for AWS Lambda (Java) - Metrics
@@ -231,6 +231,7 @@
Lambda
+ on-demand
diff --git a/powertools-metrics/src/main/java/software/amazon/lambda/powertools/metrics/internal/EmfMetricsLogger.java b/powertools-metrics/src/main/java/software/amazon/lambda/powertools/metrics/internal/EmfMetricsLogger.java
index 37f2d193a..611d4dcc6 100644
--- a/powertools-metrics/src/main/java/software/amazon/lambda/powertools/metrics/internal/EmfMetricsLogger.java
+++ b/powertools-metrics/src/main/java/software/amazon/lambda/powertools/metrics/internal/EmfMetricsLogger.java
@@ -164,6 +164,27 @@ public void flush() {
}
} else {
emfLogger.flush();
+
+ // Clear custom dimensions after flush while preserving default dimensions
+ clearCustomDimensions();
+ }
+ }
+
+ private void clearCustomDimensions() {
+ // Reset all dimensions in the EMF logger
+ emfLogger.resetDimensions(false);
+
+ // Re-apply default dimensions if they exist
+ if (!defaultDimensions.isEmpty()) {
+ DimensionSet emfDimensionSet = new DimensionSet();
+ defaultDimensions.forEach((key, value) -> {
+ try {
+ emfDimensionSet.addDimension(key, value);
+ } catch (Exception e) {
+ // Ignore dimension errors
+ }
+ });
+ emfLogger.setDimensions(emfDimensionSet);
}
}
@@ -198,7 +219,8 @@ public void flushMetrics(Consumer metricsConsumer) {
metrics.setNamespace(this.namespace);
}
if (!defaultDimensions.isEmpty()) {
- metrics.setDefaultDimensions(software.amazon.lambda.powertools.metrics.model.DimensionSet.of(defaultDimensions));
+ metrics.setDefaultDimensions(
+ software.amazon.lambda.powertools.metrics.model.DimensionSet.of(defaultDimensions));
}
properties.forEach(metrics::addMetadata);
diff --git a/powertools-metrics/src/test/java/software/amazon/lambda/powertools/metrics/internal/EmfMetricsLoggerTest.java b/powertools-metrics/src/test/java/software/amazon/lambda/powertools/metrics/internal/EmfMetricsLoggerTest.java
index c2238711a..5e597e835 100644
--- a/powertools-metrics/src/test/java/software/amazon/lambda/powertools/metrics/internal/EmfMetricsLoggerTest.java
+++ b/powertools-metrics/src/test/java/software/amazon/lambda/powertools/metrics/internal/EmfMetricsLoggerTest.java
@@ -263,6 +263,65 @@ void shouldAddMetadata() throws Exception {
assertThat(rootNode.get("CustomMetadata").asText()).isEqualTo("MetadataValue");
}
+ @Test
+ void shouldClearMetadataAfterFlush() throws Exception {
+ // Given - Add metadata and flush first time
+ metrics.addMetadata("RequestId", "req-123");
+ metrics.addMetadata("UserAgent", "test-agent");
+ metrics.addMetric("FirstMetric", 1.0);
+ metrics.flush();
+
+ // Capture first flush output and reset for second flush
+ String firstFlushOutput = outputStreamCaptor.toString().trim();
+ outputStreamCaptor.reset();
+
+ // When - Add another metric and flush again using the SAME metrics instance
+ metrics.addMetric("SecondMetric", 2.0);
+ metrics.flush();
+
+ // Then - Verify first flush had metadata
+ JsonNode firstRootNode = objectMapper.readTree(firstFlushOutput);
+ assertThat(firstRootNode.has("RequestId")).isTrue();
+ assertThat(firstRootNode.get("RequestId").asText()).isEqualTo("req-123");
+ assertThat(firstRootNode.has("UserAgent")).isTrue();
+ assertThat(firstRootNode.get("UserAgent").asText()).isEqualTo("test-agent");
+ assertThat(firstRootNode.has("FirstMetric")).isTrue();
+
+ // Verify second flush does NOT have metadata from first flush
+ // The EMF library automatically clears metadata after flush
+ String secondFlushOutput = outputStreamCaptor.toString().trim();
+ JsonNode secondRootNode = objectMapper.readTree(secondFlushOutput);
+
+ // Metadata should be cleared after first flush by the EMF library
+ assertThat(secondRootNode.has("RequestId")).isFalse();
+ assertThat(secondRootNode.has("UserAgent")).isFalse();
+ assertThat(secondRootNode.has("SecondMetric")).isTrue();
+ }
+
+ @Test
+ void shouldInheritMetadataInFlushMetricsMethod() throws Exception {
+ // Given - Add metadata to the main metrics instance
+ metrics.addMetadata("PersistentMetadata", "should-inherit");
+ metrics.addMetadata("GlobalContext", "main-instance");
+
+ // When - Use flushMetrics to create a separate metrics context
+ metrics.flushMetrics(separateMetrics -> {
+ separateMetrics.addMetric("SeparateMetric", 1.0);
+ // Don't add any metadata to the separate instance
+ });
+
+ // Then - The separate metrics context SHOULD inherit metadata from main instance
+ String flushMetricsOutput = outputStreamCaptor.toString().trim();
+ JsonNode rootNode = objectMapper.readTree(flushMetricsOutput);
+
+ // The separate metrics should have inherited metadata (this is expected behavior)
+ assertThat(rootNode.has("PersistentMetadata")).isTrue();
+ assertThat(rootNode.get("PersistentMetadata").asText()).isEqualTo("should-inherit");
+ assertThat(rootNode.has("GlobalContext")).isTrue();
+ assertThat(rootNode.get("GlobalContext").asText()).isEqualTo("main-instance");
+ assertThat(rootNode.has("SeparateMetric")).isTrue();
+ }
+
@Test
void shouldSetDefaultDimensions() throws Exception {
// Given
@@ -547,4 +606,134 @@ void shouldNotFlushSingleMetricWhenDisabled() {
String emfOutput = outputStreamCaptor.toString().trim();
assertThat(emfOutput).isEmpty();
}
+
+ @Test
+ void shouldClearCustomDimensionsAfterFlush() throws Exception {
+ // Given - Set up default dimensions that should persist
+ DimensionSet defaultDimensions = DimensionSet.of("Service", "TestService", "Environment", "Test");
+ metrics.setDefaultDimensions(defaultDimensions);
+
+ // First invocation - add custom dimensions and flush
+ DimensionSet customDimensions = DimensionSet.of("EXAMPLE_KEY", "EXAMPLE_VALUE");
+ metrics.addDimension(customDimensions);
+ metrics.addMetric("SERL", 1.0);
+ metrics.flush();
+
+ // Capture first flush output
+ String firstFlushOutput = outputStreamCaptor.toString().trim();
+ outputStreamCaptor.reset(); // Clear for second flush
+
+ // Second invocation - should NOT have custom dimensions from first invocation
+ metrics.addMetric("Expected", 1.0);
+ metrics.flush();
+
+ // Then - Verify first flush had both default and custom dimensions
+ JsonNode firstRootNode = objectMapper.readTree(firstFlushOutput);
+ assertThat(firstRootNode.has("Service")).isTrue();
+ assertThat(firstRootNode.get("Service").asText()).isEqualTo("TestService");
+ assertThat(firstRootNode.has("Environment")).isTrue();
+ assertThat(firstRootNode.get("Environment").asText()).isEqualTo("Test");
+ assertThat(firstRootNode.has("EXAMPLE_KEY")).isTrue();
+ assertThat(firstRootNode.get("EXAMPLE_KEY").asText()).isEqualTo("EXAMPLE_VALUE");
+ assertThat(firstRootNode.has("SERL")).isTrue();
+
+ // Verify second flush has ONLY default dimensions (custom dimensions should be cleared)
+ String secondFlushOutput = outputStreamCaptor.toString().trim();
+ JsonNode secondRootNode = objectMapper.readTree(secondFlushOutput);
+
+ // Default dimensions should still be present
+ assertThat(secondRootNode.has("Service")).isTrue();
+ assertThat(secondRootNode.get("Service").asText()).isEqualTo("TestService");
+ assertThat(secondRootNode.has("Environment")).isTrue();
+ assertThat(secondRootNode.get("Environment").asText()).isEqualTo("Test");
+
+ // Custom dimensions should be cleared (this is the failing assertion that demonstrates the bug)
+ assertThat(secondRootNode.has("EXAMPLE_KEY")).isFalse();
+ assertThat(secondRootNode.has("Expected")).isTrue();
+
+ // Verify dimensions in CloudWatchMetrics section
+ JsonNode secondDimensions = secondRootNode.get("_aws").get("CloudWatchMetrics").get(0).get("Dimensions").get(0);
+ boolean hasExampleKey = false;
+ boolean hasService = false;
+ boolean hasEnvironment = false;
+
+ for (JsonNode dimension : secondDimensions) {
+ String dimName = dimension.asText();
+ if ("EXAMPLE_KEY".equals(dimName)) {
+ hasExampleKey = true;
+ } else if ("Service".equals(dimName)) {
+ hasService = true;
+ } else if ("Environment".equals(dimName)) {
+ hasEnvironment = true;
+ }
+ }
+
+ // Default dimensions should be in CloudWatchMetrics
+ assertThat(hasService).isTrue();
+ assertThat(hasEnvironment).isTrue();
+ // Custom dimension should NOT be in CloudWatchMetrics (this should fail initially)
+ assertThat(hasExampleKey).isFalse();
+ }
+
+ @Test
+ void shouldHandleEmptyCustomDimensionsGracefully() throws Exception {
+ // Given - Only default dimensions, no custom dimensions
+ metrics.setDefaultDimensions(DimensionSet.of("Service", "TestService"));
+
+ // When - Flush without adding custom dimensions
+ metrics.addMetric("TestMetric", 1.0);
+ metrics.flush();
+ outputStreamCaptor.reset();
+
+ // Second flush
+ metrics.addMetric("TestMetric2", 2.0);
+ metrics.flush();
+
+ // Then - Should work normally with only default dimensions
+ String output = outputStreamCaptor.toString().trim();
+ JsonNode rootNode = objectMapper.readTree(output);
+
+ assertThat(rootNode.has("Service")).isTrue();
+ assertThat(rootNode.get("Service").asText()).isEqualTo("TestService");
+ assertThat(rootNode.has("TestMetric2")).isTrue();
+ }
+
+ @Test
+ void shouldClearCustomDimensionsWhenNoDefaultDimensionsSet() throws Exception {
+ // Given - No default dimensions set
+ metrics.clearDefaultDimensions();
+
+ // When - Add custom dimensions and flush
+ metrics.addDimension("CustomDim", "CustomValue");
+ metrics.addMetric("Metric1", 1.0);
+ metrics.flush();
+ outputStreamCaptor.reset();
+
+ // Second flush without custom dimensions
+ metrics.addMetric("Metric2", 2.0);
+ metrics.flush();
+
+ // Then - Custom dimensions should be cleared
+ String output = outputStreamCaptor.toString().trim();
+ JsonNode rootNode = objectMapper.readTree(output);
+
+ assertThat(rootNode.has("CustomDim")).isFalse();
+ assertThat(rootNode.has("Metric2")).isTrue();
+
+ // Verify no custom dimensions in CloudWatchMetrics section
+ JsonNode dimensionsArray = rootNode.get("_aws").get("CloudWatchMetrics").get(0).get("Dimensions");
+ boolean hasCustomDim = false;
+ if (dimensionsArray != null && dimensionsArray.size() > 0) {
+ JsonNode dimensions = dimensionsArray.get(0);
+ if (dimensions != null) {
+ for (JsonNode dimension : dimensions) {
+ if ("CustomDim".equals(dimension.asText())) {
+ hasCustomDim = true;
+ break;
+ }
+ }
+ }
+ }
+ assertThat(hasCustomDim).isFalse();
+ }
}
diff --git a/powertools-parameters/pom.xml b/powertools-parameters/pom.xml
index a2c4a65dc..124e22186 100644
--- a/powertools-parameters/pom.xml
+++ b/powertools-parameters/pom.xml
@@ -21,7 +21,7 @@
powertools-parent
software.amazon.lambda
- 2.8.0
+ 2.9.0
powertools-parameters
@@ -80,7 +80,6 @@
maven-surefire-plugin
- 3.5.4
eu-central-1
@@ -98,7 +97,6 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.4
-Dorg.graalvm.nativeimage.imagecode=agent
diff --git a/powertools-parameters/powertools-parameters-appconfig/pom.xml b/powertools-parameters/powertools-parameters-appconfig/pom.xml
index ab8ae0e67..406f715d3 100644
--- a/powertools-parameters/powertools-parameters-appconfig/pom.xml
+++ b/powertools-parameters/powertools-parameters-appconfig/pom.xml
@@ -7,7 +7,7 @@
software.amazon.lambda
powertools-parent
- 2.8.0
+ 2.9.0
../../pom.xml
@@ -108,7 +108,6 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.4
-Dorg.graalvm.nativeimage.imagecode=agent
@@ -175,7 +174,6 @@
maven-surefire-plugin
- 3.5.4
eu-central-1
diff --git a/powertools-parameters/powertools-parameters-dynamodb/pom.xml b/powertools-parameters/powertools-parameters-dynamodb/pom.xml
index 76a7b8845..eb5604046 100644
--- a/powertools-parameters/powertools-parameters-dynamodb/pom.xml
+++ b/powertools-parameters/powertools-parameters-dynamodb/pom.xml
@@ -7,7 +7,7 @@
software.amazon.lambda
powertools-parent
- 2.8.0
+ 2.9.0
../../pom.xml
@@ -109,7 +109,6 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.4
-Dorg.graalvm.nativeimage.imagecode=agent
@@ -176,7 +175,6 @@
maven-surefire-plugin
- 3.5.4
eu-central-1
diff --git a/powertools-parameters/powertools-parameters-secrets/pom.xml b/powertools-parameters/powertools-parameters-secrets/pom.xml
index fbe4905be..b9535269e 100644
--- a/powertools-parameters/powertools-parameters-secrets/pom.xml
+++ b/powertools-parameters/powertools-parameters-secrets/pom.xml
@@ -7,7 +7,7 @@
software.amazon.lambda
powertools-parent
- 2.8.0
+ 2.9.0
../../pom.xml
@@ -109,7 +109,6 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.4
-Dorg.graalvm.nativeimage.imagecode=agent
@@ -176,7 +175,6 @@
maven-surefire-plugin
- 3.5.4
eu-central-1
diff --git a/powertools-parameters/powertools-parameters-ssm/pom.xml b/powertools-parameters/powertools-parameters-ssm/pom.xml
index c9de1db51..e0253e10b 100644
--- a/powertools-parameters/powertools-parameters-ssm/pom.xml
+++ b/powertools-parameters/powertools-parameters-ssm/pom.xml
@@ -7,7 +7,7 @@
software.amazon.lambda
powertools-parent
- 2.8.0
+ 2.9.0
../../pom.xml
@@ -98,7 +98,6 @@
maven-surefire-plugin
- 3.5.4
eu-central-1
@@ -123,7 +122,6 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.4
-Dorg.graalvm.nativeimage.imagecode=agent
diff --git a/powertools-parameters/powertools-parameters-tests/pom.xml b/powertools-parameters/powertools-parameters-tests/pom.xml
index 3bcd4d604..fa2542730 100644
--- a/powertools-parameters/powertools-parameters-tests/pom.xml
+++ b/powertools-parameters/powertools-parameters-tests/pom.xml
@@ -6,7 +6,7 @@
software.amazon.lambda
powertools-parent
- 2.8.0
+ 2.9.0
../../pom.xml
@@ -110,7 +110,6 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.4
-Dorg.graalvm.nativeimage.imagecode=agent
diff --git a/powertools-serialization/pom.xml b/powertools-serialization/pom.xml
index c1eea4df7..81603cd4f 100644
--- a/powertools-serialization/pom.xml
+++ b/powertools-serialization/pom.xml
@@ -21,7 +21,7 @@
powertools-parent
software.amazon.lambda
- 2.8.0
+ 2.9.0
powertools-serialization
@@ -107,7 +107,6 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.4
-Dorg.graalvm.nativeimage.imagecode=agent
diff --git a/powertools-tracing/pom.xml b/powertools-tracing/pom.xml
index ed2596059..545633c50 100644
--- a/powertools-tracing/pom.xml
+++ b/powertools-tracing/pom.xml
@@ -24,7 +24,7 @@
powertools-parent
software.amazon.lambda
- 2.8.0
+ 2.9.0
Powertools for AWS Lambda (Java) - Tracing
@@ -129,6 +129,20 @@
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ on-demand
+
+
+
+
+
+
generate-graalvm-files
@@ -137,7 +151,6 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.4
-Dorg.graalvm.nativeimage.imagecode=agent
diff --git a/powertools-validation/pom.xml b/powertools-validation/pom.xml
index 37063cf6d..8dfce6b6a 100644
--- a/powertools-validation/pom.xml
+++ b/powertools-validation/pom.xml
@@ -24,7 +24,7 @@
powertools-parent
software.amazon.lambda
- 2.8.0
+ 2.9.0
Powertools for AWS Lambda (Java) - Validation