Skip to content

Conversation

@raynigon
Copy link
Owner

@raynigon raynigon commented Jan 8, 2026

No description provided.

@raynigon raynigon force-pushed the maintenance/spring-boot-4-upgrade branch from eb3579e to 2aea9d3 Compare January 8, 2026 10:19
@raynigon raynigon requested a review from Copilot January 8, 2026 10:19
Copy link

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 pull request upgrades the project from Spring Boot 3 to Spring Boot 4, which includes a major migration from Jackson 2.x (com.fasterxml.jackson) to Jackson 3.x (tools.jackson). The changes also update test dependencies (Groovy 5.0.3, Spock 2.4) and bump the project version to 4.0.0-SNAPSHOT.

Key Changes

  • Migration from Jackson 2.x to Jackson 3.x with complete package namespace changes
  • Updated Spring Boot from 3.5.7 to 4.0.1
  • Replaced deprecated Jackson APIs (JsonSerializer/JsonDeserializer → ValueSerializer/ValueDeserializer, SerializerProvider → SerializationContext)
  • Updated test framework dependencies and migrated tests to use RestClient instead of TestRestTemplate

Reviewed changes

Copilot reviewed 30 out of 30 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
buildSrc/build.gradle.kts Updates Spring Boot Gradle plugin to 4.0.1
buildSrc/src/main/kotlin/unit-api.test.gradle.kts Updates Groovy to 5.0.3 and Spock to 2.4, adds JUnit platform launcher
buildSrc/src/main/kotlin/unit-api.spring-conventions.gradle.kts Updates Spock Spring integration to 2.4
unit-api-jackson/build.gradle Migrates Jackson dependency from com.fasterxml to tools.jackson 3.0.3
unit-api-jackson/src/main/java/.../serializer/QuantitySerializer.java Migrates to ValueSerializer API and SerializationContext
unit-api-jackson/src/main/java/.../deserializer/QuantityDeserializer.java Migrates to ValueDeserializer API
unit-api-jackson/src/main/java/.../deserializer/extractor/*.java Updates to use tools.jackson packages and new API methods
unit-api-jackson/src/main/java/.../exception/*.java Updates exception hierarchy from JsonMappingException to DatabindException/InvalidFormatException
unit-api-jackson/src/main/java/.../config/UnitApiFeature.java Updates FormatFeature import to tools.jackson
unit-api-jackson/src/main/java/.../UnitApiModule.java Updates module imports to tools.jackson
unit-api-jackson/src/test/groovy/.../QuantitySerializerSpec.groovy Migrates tests to JsonMapper.builder() pattern, updates mocks for new API
unit-api-jackson/src/test/groovy/.../helpers/DummyContext.groovy Updates deserialization context construction for new API
unit-api-jackson/src/test/groovy/.../exception/UnitExceptionSpec.groovy Updates exception tests for new error message format
unit-api-jackson/src/test/groovy/.../deserializer/*.groovy Updates imports and method calls for new Jackson API
spring-boot-jackson-starter/build.gradle Adds RestClient dependency for testing
spring-boot-jackson-starter/src/test/groovy/.../*.groovy Migrates tests from TestRestTemplate to RestClient
spring-boot-springdoc-starter/src/test/groovy/.../UnitApiPropertyCustomizerSpec.groovy Adds SimpleType test helper with containedTypeName method
spring-boot-jpa-starter/src/test/groovy/.../QuantityTypeSpec.groovy Renames static imports to avoid conflicts
gradle.properties Updates version to 4.0.0-SNAPSHOT

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Collaborator

@Grannath Grannath left a comment

Choose a reason for hiding this comment

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

I am a little worried about those references to the old Jackson libraries. Can we test this somehow with a "real" runtime classpath?

@raynigon
Copy link
Owner Author

raynigon commented Jan 9, 2026

@Grannath The Annotations are still the old ones, there are no new annotations for jackson3.

What do you mean by "real" runtime?
Thats what the Integration tests are for, arent they?

@raynigon raynigon enabled auto-merge January 9, 2026 12:37
@raynigon raynigon merged commit 4afe16f into main Jan 9, 2026
7 of 9 checks passed
@raynigon raynigon deleted the maintenance/spring-boot-4-upgrade branch January 9, 2026 12:40
@raynigon raynigon added the housekeeping Refactoring, cleanup, etc. label Jan 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

housekeeping Refactoring, cleanup, etc.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants