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
-