From cdfdbf485ccaa82284513e1b775a3eb69a0577f3 Mon Sep 17 00:00:00 2001 From: Jerome Van Der Linden Date: Mon, 24 Jun 2024 12:01:03 +0200 Subject: [PATCH 1/3] remove java 1.8 relics --- .github/workflows/pr_build.yml | 2 +- .github/workflows/publish.yml | 2 +- .github/workflows/run-e2e-tests.yml | 7 +- .github/workflows/spotbugs.yml | 2 +- README.md | 88 +------------ docs/core/tracing.md | 72 +---------- docs/index.md | 120 ++---------------- docs/utilities/idempotency.md | 70 +--------- docs/utilities/parameters.md | 80 +----------- .../powertools-examples-validation/pom.xml | 24 +--- pom.xml | 5 +- powertools-e2e-tests/handlers/pom.xml | 8 +- powertools-e2e-tests/pom.xml | 4 +- .../powertools/testutils/JavaRuntime.java | 2 - .../powertools-logging-logback/pom.xml | 4 +- 15 files changed, 41 insertions(+), 449 deletions(-) diff --git a/.github/workflows/pr_build.yml b/.github/workflows/pr_build.yml index 634a4ee0f..1ff2dc48b 100644 --- a/.github/workflows/pr_build.yml +++ b/.github/workflows/pr_build.yml @@ -51,7 +51,7 @@ jobs: strategy: max-parallel: 5 matrix: - java: [8, 11, 17, 21] + java: [11, 17, 21] name: Java ${{ matrix.java }} env: JAVA: ${{ matrix.java }} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index d2d47b308..68c4d2e52 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -13,7 +13,7 @@ jobs: uses: actions/setup-java@5ffc13f4174014e2d4d4572b3d74c3fa61aeb2c2 # v3.11.0 with: distribution: 'corretto' - java-version: 8 + java-version: 11 server-id: ossrh server-username: MAVEN_USERNAME server-password: MAVEN_PASSWORD diff --git a/.github/workflows/run-e2e-tests.yml b/.github/workflows/run-e2e-tests.yml index 13c84befe..86d66156b 100644 --- a/.github/workflows/run-e2e-tests.yml +++ b/.github/workflows/run-e2e-tests.yml @@ -33,7 +33,7 @@ jobs: strategy: max-parallel: 4 matrix: - java: [ 8, 11, 17, 21 ] + java: [ 11, 17, 21 ] name: End-to-end tests java${{ matrix.java }} env: AWS_DEFAULT_REGION: eu-west-1 @@ -54,12 +54,7 @@ jobs: with: role-to-assume: ${{ secrets.AWS_ROLE_ARN_TO_ASSUME }} aws-region: ${{ env.AWS_DEFAULT_REGION }} - - - name: Build with Maven Java 8 - if: ${{ matrix.java == '8' }} # If 8 exclude the examples directory - run: mvn -DskipTests install --file pom.xml -pl '!software.amazon.lambda.examples:powertools-examples-idempotency,!software.amazon.lambda.examples:powertools-examples-batch,!software.amazon.lambda.examples:powertools-examples-cloudformation,!software.amazon.lambda.examples:powertools-examples-core-utilities-cdk,!software.amazon.lambda.examples:powertools-examples-core-utilities-sam,!software.amazon.lambda.examples:powertools-examples-core-utilities-serverless,!software.amazon.lambda.examples:powertools-examples-core-utilities-terraform,!software.amazon.lambda.examples:powertools-examples-parameters,!software.amazon.lambda.examples:powertools-examples-serialization,!software.amazon.lambda.examples:powertools-examples-validation,!software.amazon.lambda.examples:cdk,!software.amazon.lambda:powertools-examples' - name: Build with Maven - if: ${{ matrix.java != '8' }} # If not 8 don't exclude the examples directory run: mvn -DskipTests install --file pom.xml - name: Run e2e test with Maven run: mvn -Pe2e -B verify --file powertools-e2e-tests/pom.xml diff --git a/.github/workflows/spotbugs.yml b/.github/workflows/spotbugs.yml index f0d50d8c5..a75cba8f1 100644 --- a/.github/workflows/spotbugs.yml +++ b/.github/workflows/spotbugs.yml @@ -24,7 +24,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 - - name: Setup java JDK 1.8 + - name: Setup java JDK 11 uses: actions/setup-java@5ffc13f4174014e2d4d4572b3d74c3fa61aeb2c2 # v3.11.0 with: distribution: 'corretto' diff --git a/README.md b/README.md index 83b026d15..bf04b54b1 100644 --- a/README.md +++ b/README.md @@ -38,10 +38,10 @@ Powertools for AWS Lambda (Java) is available in Maven Central. You can use your ``` -Next, configure the aspectj-maven-plugin to compile-time weave (CTW) the aws-lambda-powertools-java aspects into your project. A different configuration is needed for projects on Java 8. +Next, configure the aspectj-maven-plugin to compile-time weave (CTW) the aws-lambda-powertools-java aspects into your project.
- Maven - Java 11 and newer + Maven ```xml @@ -52,9 +52,9 @@ Next, configure the aspectj-maven-plugin to compile-time weave (CTW) the aws-lam aspectj-maven-plugin 1.13.1 - 1.8 - 1.8 - 1.8 + 11 + 11 + 11 software.amazon.lambda @@ -85,51 +85,7 @@ Next, configure the aspectj-maven-plugin to compile-time weave (CTW) the aws-lam
-Maven - Java 8 - -```xml - - - ... - - org.codehaus.mojo - aspectj-maven-plugin - 1.14.0 - - 1.8 - 1.8 - 1.8 - - - software.amazon.lambda - powertools-logging - - - software.amazon.lambda - powertools-tracing - - - software.amazon.lambda - powertools-metrics - - - - - - - compile - - - - - ... - - -``` -
- -
-Gradle - Java 11+ +Gradle ```groovy @@ -160,38 +116,9 @@ Next, configure the aspectj-maven-plugin to compile-time weave (CTW) the aws-lam ```
-
-Gradle - Java 8 - -```groovy - plugins { - id 'java' - id 'io.freefair.aspectj.post-compile-weaving' version '6.6.3' - } - - // the freefair aspect plugins targets gradle 7.6.1 - // https://docs.freefair.io/gradle-plugins/6.6.3/reference/ - wrapper { - gradleVersion = "7.6.1" - } - - repositories { - mavenCentral() - } - - dependencies { - aspect 'software.amazon.lambda:powertools-logging:{{ powertools.version }}' - aspect 'software.amazon.lambda:powertools-tracing:{{ powertools.version }}' - aspect 'software.amazon.lambda:powertools-metrics:{{ powertools.version }}' - } - - sourceCompatibility = 1.8 - targetCompatibility = 1.8 -``` -
### Java Compatibility -Powertools for AWS Lambda (Java) supports all Java version from 8 up to 21 as well as the +Powertools for AWS Lambda (Java) supports all Java version from 11 up to 21 as well as the [corresponding Lambda runtimes](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html). For the modules that provide annotations, Powertools for AWS Lambda (Java) leverages the **aspectj** library. You may need to add the good version of `aspectjrt` to your dependencies based on the JDK used for building your function: @@ -209,7 +136,6 @@ You may need to add the good version of `aspectjrt` to your dependencies based o | JDK version | aspectj version | |-------------|-----------------| -| `1.8` | `1.9.7` | | `11-17` | `1.9.20.1` | | `21` | `1.9.21` | diff --git a/docs/core/tracing.md b/docs/core/tracing.md index 17e81b867..4cb06fc29 100644 --- a/docs/core/tracing.md +++ b/docs/core/tracing.md @@ -17,9 +17,7 @@ a provides functionality to reduce the overhead of performing common tracing tas ## Install -Depending on your version of Java (either Java 1.8 or 11+), the configuration slightly changes. - -=== "Maven Java 11+" +=== "Maven" ```xml hl_lines="3-7 16 18 24-27" @@ -64,52 +62,7 @@ Depending on your version of Java (either Java 1.8 or 11+), the configuration sl ``` -=== "Maven Java 1.8" - - ```xml hl_lines="3-7 16 18 24-27" - - ... - - software.amazon.lambda - powertools-tracing - {{ powertools.version }} - - ... - - ... - - - - ... - - org.codehaus.mojo - aspectj-maven-plugin - 1.14.0 - - 1.8 - 1.8 - 1.8 - - - software.amazon.lambda - powertools-tracing - - - - - - - compile - - - - - ... - - - ``` - -=== "Gradle Java 11+" +=== "Gradle" ```groovy hl_lines="3 11" plugins { @@ -129,27 +82,6 @@ Depending on your version of Java (either Java 1.8 or 11+), the configuration sl targetCompatibility = 11 ``` -=== "Gradle Java 1.8" - - ```groovy hl_lines="3 11" - plugins { - id 'java' - id 'io.freefair.aspectj.post-compile-weaving' version '6.6.3' - } - - repositories { - mavenCentral() - } - - dependencies { - aspect 'software.amazon.lambda:powertools-tracing:{{ powertools.version }}' - } - - sourceCompatibility = 1.8 - targetCompatibility = 1.8 - ``` - - ## Initialization Before your use this utility, your AWS Lambda function [must have permissions](https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html#services-xray-permissions) to send traces to AWS X-Ray. diff --git a/docs/index.md b/docs/index.md index 1c5dfac85..9092adc09 100644 --- a/docs/index.md +++ b/docs/index.md @@ -86,9 +86,7 @@ Powertools for AWS Lambda (Java) dependencies are available in Maven Central. Yo * [Maven](https://maven.apache.org/) * [Gradle](https://gradle.org) -Depending on your version of Java (either Java 1.8 or 11+), the configuration slightly changes. - -=== "Maven Java 11+" +=== "Maven" ```xml @@ -151,70 +149,7 @@ Depending on your version of Java (either Java 1.8 or 11+), the configuration sl ``` -=== "Maven Java 1.8" - - ```xml - - ... - - software.amazon.lambda - powertools-tracing - {{ powertools.version }} - - - software.amazon.lambda - powertools-logging - {{ powertools.version }} - - - software.amazon.lambda - powertools-metrics - {{ powertools.version }} - - ... - - ... - - - - ... - - org.codehaus.mojo - aspectj-maven-plugin - 1.14.0 - - 1.8 - 1.8 - 1.8 - - - software.amazon.lambda - powertools-tracing - - - software.amazon.lambda - powertools-logging - - - software.amazon.lambda - powertools-metrics - - - - - - - compile - - - - - ... - - - ``` - -=== "Gradle Java 11+" +=== "Gradle" ```groovy @@ -243,36 +178,6 @@ Depending on your version of Java (either Java 1.8 or 11+), the configuration sl targetCompatibility = 11 ``` -=== "Gradle Java 1.8" - - ```groovy - - plugins { - id 'java' - id 'io.freefair.aspectj.post-compile-weaving' version '6.6.3' - } - - // the freefair aspect plugins targets gradle 7.6.1 - // https://docs.freefair.io/gradle-plugins/6.6.3/reference/ - wrapper { - gradleVersion = "7.6.1" - } - - - repositories { - mavenCentral() - } - - dependencies { - aspect 'software.amazon.lambda:powertools-logging:{{ powertools.version }}' - aspect 'software.amazon.lambda:powertools-tracing:{{ powertools.version }}' - aspect 'software.amazon.lambda:powertools-metrics:{{ powertools.version }}' - } - - sourceCompatibility = 1.8 - targetCompatibility = 1.8 - ``` - ???+ tip "Why a different configuration?" Powertools for AWS Lambda (Java) is using [AspectJ](https://eclipse.dev/aspectj/doc/released/progguide/starting.html) internally to handle annotations. Recently, in order to support Java 17 we had to move to `dev.aspectj:aspectj-maven-plugin` because @@ -281,7 +186,7 @@ Depending on your version of Java (either Java 1.8 or 11+), the configuration sl while `dev.aspectj:aspectj-maven-plugin` is based on AspectJ 1.9.8, compiled for Java 11+. ### Java Compatibility -Powertools for AWS Lambda (Java) supports all Java version from 8 up to 21 as well as the +Powertools for AWS Lambda (Java) supports all Java version from 11 up to 21 as well as the [corresponding Lambda runtimes](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html). For the following modules, Powertools for AWS Lambda (Java) leverages the **aspectj** library to provide annotations: @@ -308,7 +213,6 @@ Use the following [dependency matrix](https://github.com/eclipse-aspectj/aspectj | JDK version | aspectj version | |-------------|-----------------| -| `1.8` | `1.9.7` | | `11-17` | `1.9.20.1` | | `21` | `1.9.21` | @@ -317,13 +221,13 @@ Use the following [dependency matrix](https://github.com/eclipse-aspectj/aspectj !!! info **Explicit parameters take precedence over environment variables.** -| Environment variable | Description | Utility | -| ------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | -| **POWERTOOLS_SERVICE_NAME** | Sets service name used for tracing namespace, metrics dimension and structured logging | All | -| **POWERTOOLS_METRICS_NAMESPACE** | Sets namespace used for metrics | [Metrics](./core/metrics) | -| **POWERTOOLS_LOGGER_SAMPLE_RATE** | Debug log sampling | [Logging](./core/logging) | -| **POWERTOOLS_LOG_LEVEL** | Sets logging level | [Logging](./core/logging) | -| **POWERTOOLS_LOGGER_LOG_EVENT** | Enables/Disables whether to log the incoming event when using the aspect | [Logging](./core/logging) | -| **POWERTOOLS_TRACER_CAPTURE_RESPONSE** | Enables/Disables tracing mode to capture method response | [Tracing](./core/tracing) | -| **POWERTOOLS_TRACER_CAPTURE_ERROR** | Enables/Disables tracing mode to capture method error | [Tracing](./core/tracing) | +| Environment variable | Description | Utility | +|----------------------------------------|----------------------------------------------------------------------------------------|---------------------------| +| **POWERTOOLS_SERVICE_NAME** | Sets service name used for tracing namespace, metrics dimension and structured logging | All | +| **POWERTOOLS_METRICS_NAMESPACE** | Sets namespace used for metrics | [Metrics](./core/metrics) | +| **POWERTOOLS_LOGGER_SAMPLE_RATE** | Debug log sampling | [Logging](./core/logging) | +| **POWERTOOLS_LOG_LEVEL** | Sets logging level | [Logging](./core/logging) | +| **POWERTOOLS_LOGGER_LOG_EVENT** | Enables/Disables whether to log the incoming event when using the aspect | [Logging](./core/logging) | +| **POWERTOOLS_TRACER_CAPTURE_RESPONSE** | Enables/Disables tracing mode to capture method response | [Tracing](./core/tracing) | +| **POWERTOOLS_TRACER_CAPTURE_ERROR** | Enables/Disables tracing mode to capture method error | [Tracing](./core/tracing) | diff --git a/docs/utilities/idempotency.md b/docs/utilities/idempotency.md index f4defbdfd..240752a55 100644 --- a/docs/utilities/idempotency.md +++ b/docs/utilities/idempotency.md @@ -26,9 +26,8 @@ times with the same parameters**. This makes idempotent operations safe to retry ## Getting started ### Installation -Depending on your version of Java (either Java 1.8 or 11+), the configuration slightly changes. -=== "Maven Java 11+" +=== "Maven" ```xml hl_lines="3-7 16 18 24-27" @@ -73,52 +72,7 @@ Depending on your version of Java (either Java 1.8 or 11+), the configuration sl ``` -=== "Maven Java 1.8" - - ```xml hl_lines="3-7 16 18 24-27" - - ... - - software.amazon.lambda - powertools-idempotency-dynamodb - {{ powertools.version }} - - ... - - ... - - - - ... - - org.codehaus.mojo - aspectj-maven-plugin - 1.14.0 - - 1.8 - 1.8 - 1.8 - - - software.amazon.lambda - powertools-idempotency-dynamodb - - - - - - - compile - - - - - ... - - - ``` - -=== "Gradle Java 11+" +=== "Gradle" ```groovy hl_lines="3 11" plugins { @@ -138,26 +92,6 @@ Depending on your version of Java (either Java 1.8 or 11+), the configuration sl targetCompatibility = 11 // or higher ``` -=== "Gradle Java 1.8" - - ```groovy hl_lines="3 11" - plugins { - id 'java' - id 'io.freefair.aspectj.post-compile-weaving' version '6.6.3' - } - - repositories { - mavenCentral() - } - - dependencies { - aspect 'software.amazon.lambda:powertools-idempotency-dynamodb:{{ powertools.version }}' - } - - sourceCompatibility = 1.8 - targetCompatibility = 1.8 - ``` - ### Required resources Before getting started, you need to create a persistent storage layer where the idempotency utility can store its state - your Lambda functions will need read and write access to it. diff --git a/docs/utilities/parameters.md b/docs/utilities/parameters.md index 46c7e8071..ab9c04c64 100644 --- a/docs/utilities/parameters.md +++ b/docs/utilities/parameters.md @@ -26,10 +26,9 @@ package: You can easily mix and match parameter providers within the same project for different needs. -Depending on which Java version you are using, you configuration will differ. Note that you must also provide -the concrete parameters module you want to use below - see the TODOs! +Note that you must provide the concrete parameters module you want to use below - see the TODOs! -=== "Maven Java 11+" +=== "Maven" ```xml hl_lines="4-12 17 24 30-34" @@ -81,59 +80,7 @@ the concrete parameters module you want to use below - see the TODOs! ``` -=== "Maven Java 1.8" - - ```xml hl_lines="4-12 17 24 30-34" - - ... - - software.amazon.lambda - - - powertools-parameters-secrets - powertools-parameters-ssm - powertools-parameters-dynamodb - powertools-parameters-appconfig - - {{ powertools.version }} - - ... - - ... - - - - ... - - org.codehaus.mojo - aspectj-maven-plugin - 1.14.0 - - 1.8 - 1.8 - 1.8 - - - - software.amazon.lambda - powertools-parameters-secrets - - - - - - - compile - - - - - ... - - - ``` - -=== "Gradle Java 11+" +=== "Gradle" ```groovy hl_lines="3 11 12" plugins { @@ -154,27 +101,6 @@ the concrete parameters module you want to use below - see the TODOs! targetCompatibility = 11 // or higher ``` -=== "Gradle Java 1.8" - - ```groovy hl_lines="3 11 12" - plugins { - id 'java' - id 'io.freefair.aspectj.post-compile-weaving' version '6.6.3' - } - - repositories { - mavenCentral() - } - - // TODO! Provide an aspectLibrary for each of the parameters module(s) you want to use here - dependencies { - aspect 'software.amazon.lambda:powertools-parameters-secrets:{{ powertools.version }}' - } - - sourceCompatibility = 1.8 - targetCompatibility = 1.8 - ``` - **IAM Permissions** This utility requires additional permissions to work as expected. See the table below: diff --git a/examples/powertools-examples-validation/pom.xml b/examples/powertools-examples-validation/pom.xml index f2f6e1f08..d1973f3df 100644 --- a/examples/powertools-examples-validation/pom.xml +++ b/examples/powertools-examples-validation/pom.xml @@ -22,8 +22,8 @@ Powertools for AWS Lambda (Java) - Examples - Validation - 1.8 - 1.8 + 11 + 11 1.9.20.1 @@ -113,24 +113,4 @@ - - - - jdk8 - - (,11) - - - 1.9.7 - - - diff --git a/pom.xml b/pom.xml index d96c51d2f..4fec43175 100644 --- a/pom.xml +++ b/pom.xml @@ -64,8 +64,8 @@ - 1.8 - 1.8 + 11 + 11 3.1.2 2.20.0 2.23.1 @@ -661,7 +661,6 @@ false - com.puppycrawl.tools diff --git a/powertools-e2e-tests/handlers/pom.xml b/powertools-e2e-tests/handlers/pom.xml index 1bf26f871..b55cf436a 100644 --- a/powertools-e2e-tests/handlers/pom.xml +++ b/powertools-e2e-tests/handlers/pom.xml @@ -12,8 +12,8 @@ 2.0.0-SNAPSHOT UTF-8 - 1.8 - 1.8 + 11 + 11 1.2.2 1.1.2 @@ -192,9 +192,9 @@ - jdk8to16 + jdk11to16 - [1.8,16] + [11,16] 1.9.7 diff --git a/powertools-e2e-tests/pom.xml b/powertools-e2e-tests/pom.xml index f4aaf3715..a0935e57e 100644 --- a/powertools-e2e-tests/pom.xml +++ b/powertools-e2e-tests/pom.xml @@ -28,8 +28,8 @@ Powertools for AWS Lambda (Java)End-To-End Tests - 1.8 - 1.8 + 11 + 11 10.3.0 2.130.0 diff --git a/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/testutils/JavaRuntime.java b/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/testutils/JavaRuntime.java index c75682949..53d35e86d 100644 --- a/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/testutils/JavaRuntime.java +++ b/powertools-e2e-tests/src/test/java/software/amazon/lambda/powertools/testutils/JavaRuntime.java @@ -17,8 +17,6 @@ import software.amazon.awscdk.services.lambda.Runtime; public enum JavaRuntime { - JAVA8("java8", Runtime.JAVA_8, "1.8"), - JAVA8AL2("java8.al2", Runtime.JAVA_8_CORRETTO, "1.8"), JAVA11("java11", Runtime.JAVA_11, "11"), JAVA17("java17", Runtime.JAVA_17, "17"), JAVA21("java21", Runtime.JAVA_21, "21"); diff --git a/powertools-logging/powertools-logging-logback/pom.xml b/powertools-logging/powertools-logging-logback/pom.xml index c43526dd4..11fc85b72 100644 --- a/powertools-logging/powertools-logging-logback/pom.xml +++ b/powertools-logging/powertools-logging-logback/pom.xml @@ -28,9 +28,7 @@ ch.qos.logback logback-classic - - 1.5.5 - provided + 1.5.5 com.sun.mail From 719054626c8af7b9c134da5c68a73a0104dac872 Mon Sep 17 00:00:00 2001 From: Jerome Van Der Linden Date: Mon, 24 Jun 2024 12:09:38 +0200 Subject: [PATCH 2/3] fix --- .../powertools/testutils/Infrastructure.java | 4 +--- .../persistence/BasePersistenceStore.java | 24 +++++++++---------- 2 files changed, 13 insertions(+), 15 deletions(-) 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..bce4bbf98 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 @@ -517,9 +517,7 @@ private JavaRuntime mapRuntimeVersion(String environmentVariableName) { if (javaVersion == null) { throw new IllegalArgumentException(environmentVariableName + " is not set"); } - if (javaVersion.startsWith("8")) { - ret = JavaRuntime.JAVA8AL2; - } else if (javaVersion.startsWith("11")) { + if (javaVersion.startsWith("11")) { ret = JavaRuntime.JAVA11; } else if (javaVersion.startsWith("17")) { ret = JavaRuntime.JAVA17; diff --git a/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java index bafbcbd42..8b08434ba 100644 --- a/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java +++ b/powertools-idempotency/powertools-idempotency-core/src/main/java/software/amazon/lambda/powertools/idempotency/persistence/BasePersistenceStore.java @@ -14,20 +14,12 @@ package software.amazon.lambda.powertools.idempotency.persistence; +import static software.amazon.lambda.powertools.common.internal.LambdaConstants.LAMBDA_FUNCTION_NAME_ENV; + import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectWriter; import io.burt.jmespath.Expression; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import software.amazon.lambda.powertools.idempotency.IdempotencyConfig; -import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyItemAlreadyExistsException; -import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyItemNotFoundException; -import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyKeyException; -import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyValidationException; -import software.amazon.lambda.powertools.idempotency.internal.cache.LRUCache; -import software.amazon.lambda.powertools.utilities.JsonConfig; - import java.math.BigInteger; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; @@ -41,8 +33,15 @@ import java.util.Spliterators; import java.util.stream.Stream; import java.util.stream.StreamSupport; - -import static software.amazon.lambda.powertools.common.internal.LambdaConstants.LAMBDA_FUNCTION_NAME_ENV; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import software.amazon.lambda.powertools.idempotency.IdempotencyConfig; +import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyItemAlreadyExistsException; +import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyItemNotFoundException; +import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyKeyException; +import software.amazon.lambda.powertools.idempotency.exceptions.IdempotencyValidationException; +import software.amazon.lambda.powertools.idempotency.internal.cache.LRUCache; +import software.amazon.lambda.powertools.utilities.JsonConfig; /** * Persistence layer that will store the idempotency result. @@ -315,6 +314,7 @@ String generateHash(JsonNode data) { return String.format("%032x", new BigInteger(1, digest)); } + @SuppressWarnings("java:S4790") // Usage of MessageDigest is OK private MessageDigest getHashAlgorithm() { MessageDigest hashAlgorithm; try { From 9397970f170ab2270356a02324d4292f41c657d2 Mon Sep 17 00:00:00 2001 From: Jerome Van Der Linden Date: Tue, 25 Jun 2024 17:40:05 +0200 Subject: [PATCH 3/3] remove java 1.8 relics --- docs/utilities/large_messages.md | 71 +------------------ docs/utilities/validation.md | 71 +------------------ .../kotlin/build.gradle.kts | 2 +- 3 files changed, 5 insertions(+), 139 deletions(-) diff --git a/docs/utilities/large_messages.md b/docs/utilities/large_messages.md index 2f974c3b5..29244de98 100644 --- a/docs/utilities/large_messages.md +++ b/docs/utilities/large_messages.md @@ -94,9 +94,7 @@ of amazon-sns-java-extended-client-lib. ## Install -Depending on your version of Java (either Java 1.8 or 11+), the configuration slightly changes. - -=== "Maven Java 11+" +=== "Maven" ```xml hl_lines="3-7 16 18 24-27" @@ -141,52 +139,7 @@ Depending on your version of Java (either Java 1.8 or 11+), the configuration sl ``` -=== "Maven Java 1.8" - - ```xml hl_lines="3-7 16 18 24-27" - - ... - - software.amazon.lambda - powertools-large-messages - {{ powertools.version }} - - ... - - ... - - - - ... - - org.codehaus.mojo - aspectj-maven-plugin - 1.14.0 - - 1.8 - 1.8 - 1.8 - - - software.amazon.lambda - powertools-large-messages - - - - - - - compile - - - - - ... - - - ``` - -=== "Gradle Java 11+" +=== "Gradle" ```groovy hl_lines="3 11" plugins { @@ -206,26 +159,6 @@ Depending on your version of Java (either Java 1.8 or 11+), the configuration sl targetCompatibility = 11 // or higher ``` -=== "Gradle Java 1.8" - - ```groovy hl_lines="3 11" - plugins { - id 'java' - id 'io.freefair.aspectj.post-compile-weaving' version '6.6.3' - } - - repositories { - mavenCentral() - } - - dependencies { - aspect 'software.amazon.lambda:powertools-large-messages:{{ powertools.version }}' - } - - sourceCompatibility = 1.8 - targetCompatibility = 1.8 - ``` - ## Permissions As the utility interacts with Amazon S3, the lambda function must have the following permissions diff --git a/docs/utilities/validation.md b/docs/utilities/validation.md index dfd97e0d4..cc1c71bda 100644 --- a/docs/utilities/validation.md +++ b/docs/utilities/validation.md @@ -12,9 +12,8 @@ This utility provides JSON Schema validation for payloads held within events and * JMESPath support validate only a sub part of the event ## Install -Depending on your version of Java (either Java 1.8 or 11+), the configuration slightly changes. -=== "Maven Java 11+" +=== "Maven" ```xml hl_lines="3-7 16 18 24-27" ... @@ -58,52 +57,7 @@ Depending on your version of Java (either Java 1.8 or 11+), the configuration sl ``` -=== "Maven Java 1.8" - - ```xml hl_lines="3-7 16 18 24-27" - - ... - - software.amazon.lambda - powertools-validation - {{ powertools.version }} - - ... - - ... - - - - ... - - org.codehaus.mojo - aspectj-maven-plugin - 1.14.0 - - 1.8 - 1.8 - 1.8 - - - software.amazon.lambda - powertools-validation - - - - - - - compile - - - - - ... - - - ``` - -=== "Gradle Java 11+" +=== "Gradle" ```groovy hl_lines="3 11" plugins { @@ -123,27 +77,6 @@ Depending on your version of Java (either Java 1.8 or 11+), the configuration sl targetCompatibility = 11 // or higher ``` -=== "Gradle Java 1.8" - - ```groovy hl_lines="3 11" - plugins { - id 'java' - id 'io.freefair.aspectj.post-compile-weaving' version '6.6.3' - } - - repositories { - mavenCentral() - } - - dependencies { - aspect 'software.amazon.lambda:powertools-validation:{{ powertools.version }}' - } - - sourceCompatibility = 1.8 - targetCompatibility = 1.8 - ``` - - ## Validating events You can validate inbound and outbound events using `@Validation` annotation. diff --git a/examples/powertools-examples-core-utilities/kotlin/build.gradle.kts b/examples/powertools-examples-core-utilities/kotlin/build.gradle.kts index b37ef6d31..3c84ce7f4 100644 --- a/examples/powertools-examples-core-utilities/kotlin/build.gradle.kts +++ b/examples/powertools-examples-core-utilities/kotlin/build.gradle.kts @@ -18,7 +18,7 @@ dependencies { aspect("software.amazon.lambda:powertools-tracing:2.0.0-SNAPSHOT") aspect("software.amazon.lambda:powertools-logging-log4j:2.0.0-SNAPSHOT") aspect("software.amazon.lambda:powertools-metrics:2.0.0-SNAPSHOT") - implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.10") + implementation("org.jetbrains.kotlin:kotlin-stdlib:1.9.24") } kotlin {