Skip to content

Commit f480c5b

Browse files
committed
Update to Spring-Boot 4.4.0-SNAPSHOT / Kotlin 2.2.0-RC
1 parent 2fe5ac0 commit f480c5b

File tree

4 files changed

+71
-22
lines changed

4 files changed

+71
-22
lines changed

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,20 @@ Running S3Mock in unit tests is still supported by using [TestContainers](https:
139139
* S3Mock will use the baseline Spring chooses to support.
140140
* The Docker container will run Java 25 LTS.
141141

142+
## 5.0.0 - PLANNED
143+
144+
* Features and fixes
145+
* TBD
146+
* Refactorings
147+
* AWS has deprecated SDK for Java v1, and will remove support EOY 2025.
148+
* Remove Java v1.
149+
* JUnit 4.x deprecation
150+
* Remove JUnit 4.x support.
151+
* Version updates
152+
* Bump Spring Boot version to 4.x
153+
* Bump Spring Framework version to 7.x
154+
* Bump java version from 17 to 25
155+
142156
# CURRENT - 4.x - THIS VERSION IS UNDER ACTIVE DEVELOPMENT
143157
Version 4.x is JDK17 LTS bytecode compatible, with Docker and JUnit / direct Java integration.
144158

pom.xml

Lines changed: 42 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,40 @@
6565
<url>https://github.com/adobe/S3Mock/tree/main</url>
6666
</scm>
6767

68+
<repositories>
69+
<!-- TODO: remove after upgrading to Spring Boot 4 release in November -->
70+
<repository>
71+
<id>spring-milestones</id>
72+
<name>Spring Milestone Repository</name>
73+
<url>https://repo.spring.io/milestone</url>
74+
</repository>
75+
<repository>
76+
<id>spring-snapshots</id>
77+
<name>Spring Snapshot Repository</name>
78+
<url>https://repo.spring.io/snapshot</url>
79+
<snapshots>
80+
<enabled>true</enabled>
81+
</snapshots>
82+
</repository>
83+
</repositories>
84+
85+
<pluginRepositories>
86+
<!-- TODO: remove after upgrading to Spring Boot 4 release in November -->
87+
<pluginRepository>
88+
<id>spring-milestones</id>
89+
<name>Spring Milestone Repository</name>
90+
<url>https://repo.spring.io/milestone</url>
91+
</pluginRepository>
92+
<pluginRepository>
93+
<id>spring-snapshots</id>
94+
<name>Spring Snapshot Repository</name>
95+
<url>https://repo.spring.io/snapshot</url>
96+
<snapshots>
97+
<enabled>true</enabled>
98+
</snapshots>
99+
</pluginRepository>
100+
</pluginRepositories>
101+
68102
<distributionManagement>
69103
<repository>
70104
<id>ossrh</id>
@@ -77,11 +111,13 @@
77111
</distributionManagement>
78112

79113
<properties>
80-
<java.version>17</java.version>
81-
<kotlin.version>2.1.21</kotlin.version>
114+
<!-- TODO: Upgrade to Java 25 release in November -->
115+
<java.version>21</java.version>
116+
<!-- TODO: Upgrade to Kotlin 2.2.0 after release -->
117+
<kotlin.version>2.2.0-RC</kotlin.version>
82118
<kotlin.compiler.jvmTarget>${java.version}</kotlin.compiler.jvmTarget>
83-
<kotlin.compiler.apiVersion>2.1</kotlin.compiler.apiVersion>
84-
<kotlin.compiler.languageVersion>2.1</kotlin.compiler.languageVersion>
119+
<kotlin.compiler.apiVersion>2.2</kotlin.compiler.apiVersion>
120+
<kotlin.compiler.languageVersion>2.2</kotlin.compiler.languageVersion>
85121

86122
<aws-v2.version>2.31.50</aws-v2.version>
87123

@@ -127,7 +163,8 @@
127163
<!-- Run Docker build by default -->
128164
<skipDocker>false</skipDocker>
129165
<sortpom-maven-plugin.version>4.0.0</sortpom-maven-plugin.version>
130-
<spring-boot.version>3.5.0</spring-boot.version>
166+
<!-- TODO: update to 4.0.0 after Spring Boot 4 release in November -->
167+
<spring-boot.version>4.0.0-SNAPSHOT</spring-boot.version>
131168
<testcontainers.version>1.21.1</testcontainers.version>
132169
<testng.version>7.11.0</testng.version>
133170
<xmlunit-assertj3.version>2.10.2</xmlunit-assertj3.version>

server/src/main/java/com/adobe/testing/s3mock/S3MockConfiguration.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR;
2121

2222
import com.adobe.testing.s3mock.dto.ErrorResponse;
23-
import com.adobe.testing.s3mock.dto.Region;
2423
import com.adobe.testing.s3mock.service.BucketService;
2524
import com.adobe.testing.s3mock.service.MultipartService;
2625
import com.adobe.testing.s3mock.service.ObjectService;

server/src/main/java/com/adobe/testing/s3mock/util/HeaderUtil.java

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -136,15 +136,14 @@ public static Map<String, String> encryptionHeadersFrom(HttpHeaders headers) {
136136
private static Map<String, String> parseHeadersToMap(HttpHeaders headers,
137137
Predicate<String> matcher) {
138138
return headers
139-
.entrySet()
139+
.headerSet()
140140
.stream()
141141
.map(
142142
entry -> {
143143
if (matcher.test(entry.getKey())
144-
&& entry.getValue() != null
145144
&& !entry.getValue().isEmpty()
146-
&& isNotBlank(entry.getValue().get(0))) {
147-
return new SimpleEntry<>(entry.getKey(), entry.getValue().get(0));
145+
&& isNotBlank(entry.getValue().getFirst())) {
146+
return new SimpleEntry<>(entry.getKey(), entry.getValue().getFirst());
148147
} else {
149148
return null;
150149
}
@@ -227,17 +226,17 @@ public static Map<String, String> checksumHeaderFrom(
227226

228227
@Nullable
229228
public static ChecksumAlgorithm checksumAlgorithmFromHeader(HttpHeaders headers) {
230-
if (headers.containsKey(X_AMZ_CHECKSUM_SHA256)) {
229+
if (headers.containsHeader(X_AMZ_CHECKSUM_SHA256)) {
231230
return ChecksumAlgorithm.SHA256;
232-
} else if (headers.containsKey(X_AMZ_CHECKSUM_SHA1)) {
231+
} else if (headers.containsHeader(X_AMZ_CHECKSUM_SHA1)) {
233232
return ChecksumAlgorithm.SHA1;
234-
} else if (headers.containsKey(X_AMZ_CHECKSUM_CRC32)) {
233+
} else if (headers.containsHeader(X_AMZ_CHECKSUM_CRC32)) {
235234
return ChecksumAlgorithm.CRC32;
236-
} else if (headers.containsKey(X_AMZ_CHECKSUM_CRC32C)) {
235+
} else if (headers.containsHeader(X_AMZ_CHECKSUM_CRC32C)) {
237236
return ChecksumAlgorithm.CRC32C;
238-
} else if (headers.containsKey(X_AMZ_CHECKSUM_CRC64NVME)) {
237+
} else if (headers.containsHeader(X_AMZ_CHECKSUM_CRC64NVME)) {
239238
return ChecksumAlgorithm.CRC64NVME;
240-
} else if (headers.containsKey(X_AMZ_CHECKSUM_ALGORITHM)) {
239+
} else if (headers.containsHeader(X_AMZ_CHECKSUM_ALGORITHM)) {
241240
var checksumAlgorithm = headers.getFirst(X_AMZ_CHECKSUM_ALGORITHM);
242241
return ChecksumAlgorithm.fromString(checksumAlgorithm);
243242
} else {
@@ -247,7 +246,7 @@ public static ChecksumAlgorithm checksumAlgorithmFromHeader(HttpHeaders headers)
247246

248247
@Nullable
249248
public static ChecksumAlgorithm checksumAlgorithmFromSdk(HttpHeaders headers) {
250-
if (headers.containsKey(X_AMZ_SDK_CHECKSUM_ALGORITHM)) {
249+
if (headers.containsHeader(X_AMZ_SDK_CHECKSUM_ALGORITHM)) {
251250
return ChecksumAlgorithm.fromString(headers.getFirst(X_AMZ_SDK_CHECKSUM_ALGORITHM));
252251
} else {
253252
return null;
@@ -256,15 +255,15 @@ public static ChecksumAlgorithm checksumAlgorithmFromSdk(HttpHeaders headers) {
256255

257256
@Nullable
258257
public static String checksumFrom(HttpHeaders headers) {
259-
if (headers.containsKey(X_AMZ_CHECKSUM_SHA256)) {
258+
if (headers.containsHeader(X_AMZ_CHECKSUM_SHA256)) {
260259
return headers.getFirst(X_AMZ_CHECKSUM_SHA256);
261-
} else if (headers.containsKey(X_AMZ_CHECKSUM_SHA1)) {
260+
} else if (headers.containsHeader(X_AMZ_CHECKSUM_SHA1)) {
262261
return headers.getFirst(X_AMZ_CHECKSUM_SHA1);
263-
} else if (headers.containsKey(X_AMZ_CHECKSUM_CRC32)) {
262+
} else if (headers.containsHeader(X_AMZ_CHECKSUM_CRC32)) {
264263
return headers.getFirst(X_AMZ_CHECKSUM_CRC32);
265-
} else if (headers.containsKey(X_AMZ_CHECKSUM_CRC32C)) {
264+
} else if (headers.containsHeader(X_AMZ_CHECKSUM_CRC32C)) {
266265
return headers.getFirst(X_AMZ_CHECKSUM_CRC32C);
267-
} else if (headers.containsKey(X_AMZ_CHECKSUM_CRC64NVME)) {
266+
} else if (headers.containsHeader(X_AMZ_CHECKSUM_CRC64NVME)) {
268267
return headers.getFirst(X_AMZ_CHECKSUM_CRC64NVME);
269268
}
270269
return null;

0 commit comments

Comments
 (0)