Skip to content

Conversation

@adityamparikh
Copy link

adityamparikh and others added 3 commits February 2, 2026 17:09
Migrate all 77 modules from Spring Boot 2.3-3.1 to Spring Boot 4.0.0
with Spring Cloud Stream 5.0.0 and Spring Cloud 2025.1.0 (Oakwood).

Key changes:
- Centralize POM hierarchy: all modules inherit from root parent
- javax.* -> jakarta.* namespace migration
- EmbeddedKafkaRule (JUnit 4) -> @embeddedkafka / EmbeddedKafkaKraftBroker
- Kafka Streams 4.0: KStream.branch() -> split().branch() API
- TopologyTestDriver: ConsumerRecordFactory -> TestInputTopic/TestOutputTopic
- Spring Cloud Stream 5.0: serdeError -> deserializationExceptionHandler
- spring.cloud.stream.function.definition -> spring.cloud.function.definition
- spring.profiles -> spring.config.activate.on-profile
- KafkaTestUtils method signatures: int timeouts -> Duration
- Boot 4 modular auto-config package relocations
- Kotlin stdlib-jdk8 -> kotlin-stdlib
- @SpyBean -> @MockitoSpyBean
- Spring Security lambda DSL migration
- Remove hardcoded dependency versions in favor of BOM management
- Update Confluent, Avro, Testcontainers, and other third-party deps

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: adityamparikh <aditya.m.parikh@gmail.com>
Add Gradle build files as a dual-build overlay on top of the Spring Boot 4.0
migration. Both Maven and Gradle builds coexist, allowing gradual adoption.

Key changes:
- gradle/libs.versions.toml: Version catalog with Boot 4.0.0, Spring Cloud
  2025.1.0, Kotlin 2.2.0, and all shared dependencies
- Root build.gradle.kts: Shared subproject config with dependency management,
  Java 17 toolchain, spring-boot-jackson2 bridge for Jackson 2/3 coexistence
- settings.gradle.kts: All module includes with Spring/Confluent repos
- Gradle 8.14 wrapper (required for Boot 4.0.0 compatibility)
- Per-module build.gradle.kts for all 77 subprojects
- Avro code generation via com.github.davidmc24.gradle.plugin.avro for 7 modules
- Tests disabled for modules requiring external infrastructure (Couchbase,
  Kinesis/Kinesalite) matching Maven's skipTests configuration
- JUnit platform launcher alignment for standalone library modules

Signed-off-by: Aditya Parikh <adityamparikh@gmail.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: adityamparikh <aditya.m.parikh@gmail.com>
- Replace removed dependencies: junit-vintage-engine, prometheus-rsocket-spring,
  spring-cloud-stream-schema, spring-cloud-stream-dependencies BOM
- Add Avro Gradle plugin to kafka-e2e-kotlin modules for code generation
- Use kotlin-stdlib instead of kotlin-stdlib-jdk8 (Kotlin 2.x)
- Add spring-boot-jdbc, spring-boot-transaction, spring-boot-kafka test deps
  to testing-demo for Boot 4 modular auto-configuration
- Add junit-platform-launcher to image-thumbnail-processor for JUnit alignment
- Skip tests for couchbase modules (matching Maven's skipTests config)
- Skip test compilation for kinesis-to-webflux (old AWS SDK 1.x incompatible)

Signed-off-by: Aditya Parikh <adityamparikh@gmail.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: adityamparikh <aditya.m.parikh@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant