Skip to content

Conversation

afranken
Copy link
Member

@afranken afranken commented Jun 13, 2025

Description

  • Refactorings
    • S3Mock in Kotlin
    • AWS has deprecated SDK for Java v1, and will remove support EOY 2025.
      • Remove Java SDK v1.
    • JUnit 4.x deprecation
      • Remove JUnit 4.x support.
  • Version updates
    • Bump Spring Boot version to 4.x
    • Bump Spring Framework version to 7.x
    • Bump java version from 17 to 25

See
https://github.com/spring-projects/spring-boot/milestones
4.0.0-M3 -> SEPT-18
4.0.0-RC1 -> OCT-23
4.0.0 -> NOV-20

Related Issue

Tasks

  • I have signed the CLA.
  • I have written tests and verified that they fail without my change.

@afranken afranken changed the title Update to Spring-Boot 4.4.0-SNAPSHOT / Kotlin 2.2.0-RC Update to Spring-Boot 4 / Kotlin 2.2.x Jun 14, 2025
@afranken afranken changed the title Update to Spring-Boot 4 / Kotlin 2.2.x S3Mock 5.0.0 Jun 14, 2025
@afranken afranken force-pushed the spring-boot-4-snapshot branch 2 times, most recently from 96b0b36 to bae04ef Compare June 15, 2025 21:55
@afranken afranken force-pushed the spring-boot-4-snapshot branch 3 times, most recently from 9fe17d9 to 43f93c7 Compare June 23, 2025 15:52
@afranken afranken force-pushed the spring-boot-4-snapshot branch from 43f93c7 to 19d18e1 Compare July 8, 2025 13:58
@afranken afranken self-assigned this Jul 8, 2025
@afranken afranken force-pushed the spring-boot-4-snapshot branch from 19d18e1 to df27879 Compare July 9, 2025 12:01
@afranken afranken force-pushed the spring-boot-4-snapshot branch 2 times, most recently from 6452122 to 2647136 Compare August 29, 2025 23:27
@afranken afranken force-pushed the spring-boot-4-snapshot branch from 2647136 to 05dcfcf Compare September 2, 2025 13:02
@afranken afranken force-pushed the spring-boot-4-snapshot branch 2 times, most recently from ae3d683 to 89504f0 Compare September 9, 2025 11:16
@afranken afranken requested a review from Copilot September 9, 2025 13:40
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR upgrades S3Mock to version 5.0.0 with significant modernization and removal of deprecated components. The upgrade focuses on removing AWS SDK v1 support, dropping JUnit 4 compatibility, migrating utility classes to Kotlin, and updating to newer Spring Boot and framework versions.

  • Removes AWS SDK for Java v1 dependencies and related code as it reaches end-of-support
  • Eliminates JUnit 4 support module and references
  • Updates property naming conventions to use consistent com.adobe.testing.s3mock.store.* prefixes

Reviewed Changes

Copilot reviewed 48 out of 48 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
pom.xml Updates parent version to 5.0.0-SNAPSHOT, removes AWS SDK v1 dependencies, upgrades Spring Boot to 4.0.0-M2
testsupport/pom.xml Removes junit4 module from build
testsupport/common/pom.xml Removes AWS SDK v1 dependency
testsupport/junit5/src/main/java/com/adobe/testing/s3mock/junit5/S3MockExtension.java Removes AWS SDK v1 client support from parameter resolution
testsupport/common/src/main/java/com/adobe/testing/s3mock/testsupport/common/S3MockStarter.java Removes deprecated AWS SDK v1 client creation methods, updates property constants
server/src/main/resources/application.properties Updates property names to use new naming convention
server/src/main/kotlin/com/adobe/testing/s3mock/util/*.kt Migrates utility classes from Java to Kotlin
server/src/main/java/com/adobe/testing/s3mock/S3MockApplication.java Removes legacy property translation code

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@afranken afranken force-pushed the spring-boot-4-snapshot branch 3 times, most recently from 6b0e93e to b01627c Compare September 9, 2025 13:57
@afranken afranken force-pushed the spring-boot-4-snapshot branch from 8334f77 to 9d79c93 Compare September 12, 2025 15:55
Also adds serialization / deserialization tests for internal data
structures BucketMetadata, S3ObjectMetadata and S3ObjectVersions
Add private backing field and public accessors to non-mutable versions.
Also: use Kotlin Regex, the API is simpler than Java's Pattern API.
Also, execute 20 requests in parallel instead of 100.
Sometimes, the S3Mock ITs would fail with OOMs because they are
configured to use only 256MB or ram, which is too low for 100 concurrent
requests using Spring MVC without virtual threads or coroutines.
We now return all headers for get object calls with range.
We already configure kotlin.compiler.jvmTarget in the <properties>.
Sometimes, the default of 1 minute is not sufficient.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant