diff --git a/CHANGELOG.md b/CHANGELOG.md index ab023816d..68258f4df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,9 +9,11 @@ * [Changelog](#changelog) * [PLANNED - 5.x - RELEASE TBD](#planned---5x---release-tbd) - * [Planned changes](#planned-changes) + * [Planned changes](#planned-changes) * [CURRENT - 4.x - THIS VERSION IS UNDER ACTIVE DEVELOPMENT](#current---4x---this-version-is-under-active-development) - * [4.0.0](#400) + * [4.1.1 - PLANNED](#411---planned) + * [4.1.0 - PLANNED](#410---planned) + * [4.0.0](#400) * [DEPRECATED - 3.x](#deprecated---3x) * [3.12.0](#3120) * [3.11.0](#3110) @@ -113,11 +115,13 @@ Running S3Mock in unit tests is still supported by using [TestContainers](https: **Once 5.x is released, 4.x may receive bug fixes and features, this will be best-effort only.** -### Planned changes +## Planned changes * Features and fixes * TBD * Refactorings + * AWS has deprecated SDK for Java v1, and will remove support EOY 2025. + * S3Mock will remove usage of Java v1 early 2026. * Looking to Remove unit test modules. This enables * Refactoring S3Mock to a "standard" Spring Boot application. * Removal of workarounds to use `S3MockApplication#start` from a static context @@ -133,24 +137,76 @@ Version 4.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Jav **The current major version 4 will receive new features, dependency updates and bug fixes on a continuous basis.** -### 4.0.0 +## 4.1.1 - PLANNED +Version 4.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Java integration. + +* Features and fixes + * Content-Encoding: aws-chunked should not be stored (fixes #2218) +* Refactorings + * TBD +* Version updates (deliverable dependencies) + * TBD +* Version updates (build dependencies) + * TBD + +## 4.1.0 - PLANNED +Version 4.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Java integration. * Features and fixes + * Support Browser-Based Uploads Using POST (fixes #2200) + * https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-UsingHTTPPOST.html +* Refactorings + * TBD +* Version updates (deliverable dependencies) + * TBD +* Version updates (build dependencies) + * TBD + +## 4.0.0 +Version 4.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Java integration. + +* Features and fixes + * Basic support for versions in API (fixes #64) * Allow overriding headers in head object * Implement If-(Un)modified-Since handling (fixes #829) * Close all InputStreams and OutputStreams + * Add AWS SDK V1 deprecation notice + * AWS has deprecated SDK for Java v1, and will remove support EOY 2025. + * S3Mock will remove usage of Java v1 early 2026. * Refactorings * Use Tomcat instead of Jetty as the application container (fixes #2136) * "FROM" in Dockerfile did not match "as" * Delete files on shutdown using a `DisposableBean` instead of `File#deleteOnExit()` * Version updates (deliverable dependencies) - * Bump spring-boot.version from 3.3.5 to 3.4.1 -* Version updates (build dependencies) - * Bump github/codeql-action from 3.27.6 to 3.27.9 - * Bump actions/upload-artifact from 4.4.3 to 4.5.0 - * Bump actions/setup-java from 4.5.0 to 4.6.0 - * Bump com.puppycrawl.tools:checkstyle from 10.20.2 to 10.21.0 + * Bump spring-boot.version from 3.3.5 to 3.4.4 * Jackson 2.18.2 to 2.17.2 (remove override, use Spring-Boot supplied version) + * Bump aws-v2.version from 2.29.29 to 2.31.17 + * Bump aws.version from 1.12.779 to 1.12.780 + * Bump aws.sdk.kotlin:s3-jvm from 1.4.41 to 1.4.59 + * Bump kotlin.version from 2.1.0 to 2.1.20 + * Bump testcontainers.version from 1.20.4 to 1.20.6 + * Bump org.testng:testng from 7.10.2 to 7.11.0 + * Bump aws.version from 1.12.780 to 1.12.782 + * Bump alpine from 3.21.0 to 3.21.3 in /docker +* Version updates (build dependencies) + * Bump org.apache.maven.plugins:maven-compiler-plugin from 3.13.0 to 3.14.0 + * Bump org.apache.maven.plugins:maven-clean-plugin from 3.4.0 to 3.4.1 + * Bump org.apache.maven.plugins:maven-install-plugin from 3.1.3 to 3.1.4 + * Bump org.apache.maven.plugins:maven-deploy-plugin from 3.1.3 to 3.1.4 + * Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.5.2 to 3.5.3 + * Bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.2 to 3.5.3 + * Bump io.fabric8:docker-maven-plugin from 0.45.1 to 0.46.0 + * Bump org.jacoco:jacoco-maven-plugin from 0.8.12 to 0.8.13 + * Bump license-maven-plugin-git.version from 4.6 to 5.0.0 + * Bump github/codeql-action from 3.27.6 to 3.28.15 + * Bump docker/setup-qemu-action from 3.2.0 to 3.6.0 + * Bump actions/upload-artifact from 4.4.3 to 4.6.2 + * Bump actions/setup-java from 4.5.0 to 4.7.0 + * Bump actions/dependency-review-action from 4.5.0 to 4.6.0 + * Bump step-security/harden-runner from 2.10.2 to 2.11.1 + * Bump ossf/scorecard-action from 2.4.0 to 2.4.1 + * Bump com.puppycrawl.tools:checkstyle from 10.20.2 to 10.23.0 + * Bump advanced-security/sbom-generator-action from 0.0.1 to 0.0.2 # DEPRECATED - 3.x diff --git a/README.md b/README.md index c95d0dc52..732533b55 100755 --- a/README.md +++ b/README.md @@ -102,7 +102,7 @@ Of these [operations of the Amazon S3 API](https://docs.aws.amazon.com/AmazonS3/ | [GetBucketReplication](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketReplication.html) | :x: | | | [GetBucketRequestPayment](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketRequestPayment.html) | :x: | | | [GetBucketTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html) | :x: | | -| [GetBucketVersioning](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html) | :x: | | +| [GetBucketVersioning](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html) | :white_check_mark: | | | [GetBucketWebsite](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketWebsite.html) | :x: | | | [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) | :white_check_mark: | | | [GetObjectAcl](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html) | :white_check_mark: | | @@ -143,7 +143,7 @@ Of these [operations of the Amazon S3 API](https://docs.aws.amazon.com/AmazonS3/ | [PutBucketReplication](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html) | :x: | | | [PutBucketRequestPayment](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketRequestPayment.html) | :x: | | | [PutBucketTagging](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html) | :x: | | -| [PutBucketVersioning](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html) | :x: | | +| [PutBucketVersioning](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html) | :white_check_mark: | | | [PutBucketWebsite](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketWebsite.html) | :x: | | | [PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) | :white_check_mark: | | | [PutObjectAcl](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAcl.html) | :white_check_mark: | | diff --git a/build-config/src/main/resources/build-config/checkstyle.xml b/build-config/src/main/resources/build-config/checkstyle.xml index be380256a..dce275c58 100644 --- a/build-config/src/main/resources/build-config/checkstyle.xml +++ b/build-config/src/main/resources/build-config/checkstyle.xml @@ -1,7 +1,7 @@ + + Enabled + Enabled + diff --git a/server/src/test/resources/com/adobe/testing/s3mock/dto/VersioningConfigurationTest_testSerialization.xml b/server/src/test/resources/com/adobe/testing/s3mock/dto/VersioningConfigurationTest_testSerialization.xml new file mode 100644 index 000000000..f0e725408 --- /dev/null +++ b/server/src/test/resources/com/adobe/testing/s3mock/dto/VersioningConfigurationTest_testSerialization.xml @@ -0,0 +1,21 @@ + + + + Suspended + diff --git a/testsupport/common/pom.xml b/testsupport/common/pom.xml index 8034ffca7..b7b6d1e5d 100644 --- a/testsupport/common/pom.xml +++ b/testsupport/common/pom.xml @@ -31,13 +31,21 @@ S3Mock - Testsupport - Common + + com.amazonaws + aws-java-sdk-s3 + com.adobe.testing s3mock - com.amazonaws - aws-java-sdk-s3 + software.amazon.awssdk + s3 + + + software.amazon.awssdk + url-connection-client org.assertj @@ -72,13 +80,5 @@ aws-xml-protocol test - - software.amazon.awssdk - s3 - - - software.amazon.awssdk - url-connection-client - diff --git a/testsupport/common/src/main/java/com/adobe/testing/s3mock/testsupport/common/S3MockStarter.java b/testsupport/common/src/main/java/com/adobe/testing/s3mock/testsupport/common/S3MockStarter.java index 5c589ff23..772ed66cb 100644 --- a/testsupport/common/src/main/java/com/adobe/testing/s3mock/testsupport/common/S3MockStarter.java +++ b/testsupport/common/src/main/java/com/adobe/testing/s3mock/testsupport/common/S3MockStarter.java @@ -1,5 +1,5 @@ /* - * Copyright 2017-2023 Adobe. + * Copyright 2017-2025 Adobe. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -93,7 +93,9 @@ public S3Client createS3ClientV2() { * server using HTTPS. * * @return The {@link AmazonS3} instance. + * @deprecated The AWS SDK for Java 1.x entered maintenance mode starting July 31, 2024 and will reach end of support on December 31, 2025. For more information, see https://aws.amazon.com/blogs/developer/the-aws-sdk-for-java-1-x-is-in-maintenance-mode-effective-july-31-2024/ */ + @Deprecated(since = "4.0.0", forRemoval = true) public AmazonS3 createS3Client() { return createS3Client("us-east-1"); } @@ -105,7 +107,9 @@ public AmazonS3 createS3Client() { * @param region Region to define regional endpoint. * * @return The {@link AmazonS3} instance. + * @deprecated The AWS SDK for Java 1.x entered maintenance mode starting July 31, 2024 and will reach end of support on December 31, 2025. For more information, see https://aws.amazon.com/blogs/developer/the-aws-sdk-for-java-1-x-is-in-maintenance-mode-effective-july-31-2024/ */ + @Deprecated(since = "4.0.0", forRemoval = true) public AmazonS3 createS3Client(final String region) { var credentials = new BasicAWSCredentials("foo", "bar"); diff --git a/testsupport/junit4/pom.xml b/testsupport/junit4/pom.xml index 72e9e338d..2dcd57748 100644 --- a/testsupport/junit4/pom.xml +++ b/testsupport/junit4/pom.xml @@ -48,6 +48,7 @@ org.springframework.boot spring-boot-starter-actuator + test diff --git a/testsupport/junit5/pom.xml b/testsupport/junit5/pom.xml index 620c4e35f..72f2a1318 100644 --- a/testsupport/junit5/pom.xml +++ b/testsupport/junit5/pom.xml @@ -36,15 +36,15 @@ s3mock-testsupport-common + + org.junit.jupiter + junit-jupiter-api + org.assertj assertj-core test - - org.junit.jupiter - junit-jupiter-api - org.junit.jupiter diff --git a/testsupport/testcontainers/pom.xml b/testsupport/testcontainers/pom.xml index 714b95961..b28ded361 100644 --- a/testsupport/testcontainers/pom.xml +++ b/testsupport/testcontainers/pom.xml @@ -31,11 +31,6 @@ S3Mock - Testsupport - Testcontainers - - com.adobe.testing - s3mock - test - com.adobe.testing @@ -48,6 +43,15 @@ + + org.testcontainers + testcontainers + + + com.adobe.testing + s3mock + test + org.assertj assertj-core @@ -63,10 +67,6 @@ junit-jupiter test - - org.testcontainers - testcontainers - software.amazon.awssdk aws-query-protocol diff --git a/testsupport/testng/pom.xml b/testsupport/testng/pom.xml index d4f6e38ba..31404bd02 100644 --- a/testsupport/testng/pom.xml +++ b/testsupport/testng/pom.xml @@ -35,15 +35,15 @@ com.adobe.testing s3mock-testsupport-common + + org.testng + testng + org.assertj assertj-core test - - org.testng - testng -