diff --git a/.github/workflows/maven-ci-and-prb.yml b/.github/workflows/maven-ci-and-prb.yml
index 4d5c41a4a..7b560b840 100644
--- a/.github/workflows/maven-ci-and-prb.yml
+++ b/.github/workflows/maven-ci-and-prb.yml
@@ -48,8 +48,8 @@ jobs:
- name: Set up JDK
uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
with:
- java-version: 21
- distribution: 'temurin'
+ java-version: 25
+ distribution: 'oracle'
cache: 'maven'
- name: Build with Maven
run: ./mvnw -B -V -Dstyle.color=always clean verify
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7d0f67b85..023705338 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,8 +8,9 @@ Whenever a 3rd party library is updated, S3Mock will update it's MINOR version.
* [PLANNED - 5.x - RELEASE TBD](#planned---5x---release-tbd)
* [Planned changes](#planned-changes)
* [CURRENT - 4.x - THIS VERSION IS UNDER ACTIVE DEVELOPMENT](#current---4x---this-version-is-under-active-development)
+ * [4.11.0 - PLANNED](#4110---planned)
* [4.10.0 - PLANNED](#4100---planned)
- * [4.9.0 - PLANNED](#490---planned)
+ * [4.9.0](#490)
* [4.8.0](#480)
* [4.7.0](#470)
* [4.6.0](#460)
@@ -148,24 +149,43 @@ Running S3Mock in unit tests is still supported by using [TestContainers](https:
# CURRENT - 4.x - THIS VERSION IS UNDER ACTIVE DEVELOPMENT
Version 4.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Java integration.
-**The current major version 4 will receive new features, dependency updates and bug fixes on a continuous basis.**
+**The current major version 4 will receive new features, dependency updates and bug fixes on a continuous basis. We usually follow the Spring Boot release cycle.**
-## 4.10.0 - PLANNED
+## 4.11.0 - PLANNED
Version 4.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Java integration.
+**This is the last currently planned minor release of 4.x.**
+
* Features and fixes
* TBD
* Refactorings
* TBD
* Version updates (deliverable dependencies)
+ * Update to Spring Boot 3.5.8
+ * Planned release November 20th 2025
+ * TBD: link to milestone
+* Version updates (build dependencies)
* TBD
+
+## 4.10.0 - PLANNED
+Version 4.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Java integration.
+
+* Features and fixes
+ * TBD
+* Refactorings
+ * TBD
+* Version updates (deliverable dependencies)
+ * Update to Spring Boot 3.5.7
+ * Planned release October 23rd 2025
+ * https://github.com/spring-projects/spring-boot/milestone/399
* Version updates (build dependencies)
* TBD
-## 4.9.0 - PLANNED
+## 4.9.0
Version 4.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Java integration.
* Features and fixes
+ * Remove Content-Type expectation from PutBucketVersioning (Fixes #2635)
* Let S3Mock validate bucket names according to AWS rules
* Refactorings
* Let TaggingHeaderConverter convert XML tags
@@ -177,11 +197,21 @@ Version 4.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Jav
* Build: update Google Checkstyle to the latest version and fix violations.
* Build: use ktlint-maven-plugin to validate Kotlin code style.
* Version updates (deliverable dependencies)
- * TBD
+ * Bump spring-boot.version from 3.5.5 to 3.5.6
+ * Bump aws-v2.version from 2.32.31 to 2.33.12
+ * Bump aws.version from 1.12.788 to 1.12.791
* Version updates (build dependencies)
+ * Bump Java 21 to Java 25 to build S3Mock.
+ * Bump kotlin.version from 2.2.10 to 2.2.20
+ * Bump aws.sdk.kotlin:s3-jvm from 1.5.26 to 1.5.41
+ * Bump org.xmlunit:xmlunit-assertj3 from 2.10.3 to 2.10.4
+ * Bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.3 to 3.5.4
+ * Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.5.3 to 3.5.4
* Bump com.puppycrawl.tools:checkstyle from 11.0.0 to 11.0.1
+ * Bump digital.pragmatech.testing:spring-test-profiler from 0.0.11 to 0.0.12
* Bump actions/stale from 9.1.0 to 10.0.0
- * Bump github/codeql-action from 3.29.11 to 3.30.1
+ * Bump github/codeql-action from 3.29.11 to 3.30.3
+ * Bump step-security/harden-runner from 2.13.0 to 2.13.1
* Bump maven from 3.9.9 to 3.9.11
* Bump maven wrapper from 3.3.2 to 3.3.3
diff --git a/README.md b/README.md
index 5d40695da..0f75e8de4 100755
--- a/README.md
+++ b/README.md
@@ -64,6 +64,7 @@
* [Contributing](#contributing)
* [Licensing](#licensing)
* [Powered by](#powered-by)
+ * [Star History](#star-history)
## S3Mock
diff --git a/docker/pom.xml b/docker/pom.xml
index 2c0644a0b..358ee8dd2 100644
--- a/docker/pom.xml
+++ b/docker/pom.xml
@@ -22,7 +22,7 @@
com.adobe.testing
s3mock-parent
- 4.8.1-SNAPSHOT
+ 4.9.0-SNAPSHOT
s3mock-docker
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index 5726cb0a6..c1449dd1b 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -22,7 +22,7 @@
com.adobe.testing
s3mock-parent
- 4.8.1-SNAPSHOT
+ 4.9.0-SNAPSHOT
s3mock-integration-tests
diff --git a/integration-tests/src/test/kotlin/com/adobe/testing/s3mock/its/VersionsIT.kt b/integration-tests/src/test/kotlin/com/adobe/testing/s3mock/its/VersionsIT.kt
index 5b0a5cc16..3527d8111 100644
--- a/integration-tests/src/test/kotlin/com/adobe/testing/s3mock/its/VersionsIT.kt
+++ b/integration-tests/src/test/kotlin/com/adobe/testing/s3mock/its/VersionsIT.kt
@@ -238,14 +238,15 @@ internal class VersionsIT : S3TestBase() {
RequestBody.fromFile(UPLOAD_FILE),
).versionId()
- s3Client
- .putObject(
- {
- it.bucket(bucketName)
- it.key(UPLOAD_FILE_NAME)
- },
- RequestBody.fromFile(UPLOAD_FILE),
- ).versionId()
+ val versionId =
+ s3Client
+ .putObject(
+ {
+ it.bucket(bucketName)
+ it.key(UPLOAD_FILE_NAME)
+ },
+ RequestBody.fromFile(UPLOAD_FILE),
+ ).versionId()
s3Client
.deleteObject {
@@ -255,6 +256,11 @@ internal class VersionsIT : S3TestBase() {
assertThat(it.deleteMarker()).isEqualTo(true)
}
+ val listObjectVersions = s3Client.listObjectVersions { it.bucket(bucketName) }
+ assertThat(listObjectVersions.hasVersions()).isTrue
+ assertThat(listObjectVersions.versions()[0].key()).isEqualTo(UPLOAD_FILE_NAME)
+ assertThat(listObjectVersions.versions()[0].versionId()).isEqualTo(versionId)
+
assertThatThrownBy {
s3Client.getObject {
it.bucket(bucketName)
diff --git a/pom.xml b/pom.xml
index 0f27905c6..35551f171 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@
com.adobe.testing
s3mock-parent
- 4.8.1-SNAPSHOT
+ 4.9.0-SNAPSHOT
pom
S3Mock - Parent
diff --git a/server/pom.xml b/server/pom.xml
index 3380e5f7f..60d53078a 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -22,7 +22,7 @@
com.adobe.testing
s3mock-parent
- 4.8.1-SNAPSHOT
+ 4.9.0-SNAPSHOT
s3mock
diff --git a/server/src/main/java/com/adobe/testing/s3mock/BucketController.java b/server/src/main/java/com/adobe/testing/s3mock/BucketController.java
index d4259e51a..d8f1628ad 100644
--- a/server/src/main/java/com/adobe/testing/s3mock/BucketController.java
+++ b/server/src/main/java/com/adobe/testing/s3mock/BucketController.java
@@ -231,8 +231,7 @@ public ResponseEntity getVersioningConfiguration(@PathV
},
params = {
VERSIONING
- },
- consumes = APPLICATION_XML_VALUE
+ }
)
@S3Verified(year = 2025)
public ResponseEntity putVersioningConfiguration(
diff --git a/testsupport/common/pom.xml b/testsupport/common/pom.xml
index 76d4d7581..17a96cc16 100644
--- a/testsupport/common/pom.xml
+++ b/testsupport/common/pom.xml
@@ -22,7 +22,7 @@
com.adobe.testing
s3mock-testsupport-reactor
- 4.8.1-SNAPSHOT
+ 4.9.0-SNAPSHOT
s3mock-testsupport-common
diff --git a/testsupport/junit4/pom.xml b/testsupport/junit4/pom.xml
index 3ffd6ed24..9bae31de6 100644
--- a/testsupport/junit4/pom.xml
+++ b/testsupport/junit4/pom.xml
@@ -22,7 +22,7 @@
com.adobe.testing
s3mock-testsupport-reactor
- 4.8.1-SNAPSHOT
+ 4.9.0-SNAPSHOT
s3mock-junit4
diff --git a/testsupport/junit5/pom.xml b/testsupport/junit5/pom.xml
index 047076779..cc7152a8e 100644
--- a/testsupport/junit5/pom.xml
+++ b/testsupport/junit5/pom.xml
@@ -22,7 +22,7 @@
com.adobe.testing
s3mock-testsupport-reactor
- 4.8.1-SNAPSHOT
+ 4.9.0-SNAPSHOT
s3mock-junit5
diff --git a/testsupport/pom.xml b/testsupport/pom.xml
index 683507ce3..3acf3ebef 100644
--- a/testsupport/pom.xml
+++ b/testsupport/pom.xml
@@ -22,7 +22,7 @@
com.adobe.testing
s3mock-parent
- 4.8.1-SNAPSHOT
+ 4.9.0-SNAPSHOT
s3mock-testsupport-reactor
diff --git a/testsupport/testcontainers/pom.xml b/testsupport/testcontainers/pom.xml
index 85cbde21d..968df2dd8 100644
--- a/testsupport/testcontainers/pom.xml
+++ b/testsupport/testcontainers/pom.xml
@@ -22,7 +22,7 @@
com.adobe.testing
s3mock-testsupport-reactor
- 4.8.1-SNAPSHOT
+ 4.9.0-SNAPSHOT
s3mock-testcontainers
diff --git a/testsupport/testng/pom.xml b/testsupport/testng/pom.xml
index 25c3921e7..699284240 100644
--- a/testsupport/testng/pom.xml
+++ b/testsupport/testng/pom.xml
@@ -22,7 +22,7 @@
com.adobe.testing
s3mock-testsupport-reactor
- 4.8.1-SNAPSHOT
+ 4.9.0-SNAPSHOT
s3mock-testng