-
Notifications
You must be signed in to change notification settings - Fork 17
feat: spring-boot-4x support, includes spring-kafka 4x #934
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this 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 adds support for Spring Boot 4.x and Spring Kafka 4.x by creating new dedicated modules (stove-spring-4x-testing-e2e and stove-spring-4x-testing-e2e-kafka) alongside the existing Spring Boot 2.x/3.x modules. The changes include compatibility adjustments for API differences between versions and a working example application.
Key Changes
- Added type constraints (
K : Any, V : Any) toTestSystemKafkaInterceptorfor Spring Kafka 4.x compatibility - Created new Spring 4x modules with updated APIs (using
BeanRegistrarDslinstead ofBeanDefinitionDsl) - Implemented
KafkaTemplateCompatibilityto handle Spring Kafka 4.x'sCompletableFuture-based send API - Added Jackson 3 support (
tools.jackson) for Spring Boot 4.x example - Included comprehensive test suites for Kafka with string and protobuf serialization
Reviewed changes
Copilot reviewed 42 out of 43 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
starters/spring/stove-spring-testing-e2e-kafka/src/main/kotlin/com/trendyol/stove/testing/e2e/kafka/TestSystemInterceptor.kt |
Added non-nullable type constraints to generic parameters |
starters/spring/stove-spring-4x-testing-e2e/src/main/kotlin/com/trendyol/stove/testing/e2e/BaseApplicationContextInitializer.kt |
New bean registration API using BeanRegistrarDsl |
starters/spring/stove-spring-4x-testing-e2e-kafka/src/main/kotlin/com/trendyol/stove/testing/e2e/kafka/KafkaTemplateCompatibility.kt |
Compatibility layer for async send operations |
starters/spring/stove-spring-4x-testing-e2e-kafka/src/main/kotlin/com/trendyol/stove/testing/e2e/kafka/TestSystemInterceptor.kt |
Spring 4x version with updated type constraints |
examples/spring-4x-example/ |
Complete example application demonstrating Spring Boot 4.x with Kafka |
gradle/libs.versions.toml |
Added Spring Boot 4.x and Jackson 3 dependencies |
settings.gradle.kts |
Registered new modules in project structure |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
...pring-4x-kafka-tests/src/test/kotlin/com/trendyol/stove/testing/e2e/kafka/stringserde/app.kt
Show resolved
Hide resolved
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #934 +/- ##
==========================================
+ Coverage 76.82% 78.00% +1.17%
==========================================
Files 91 111 +20
Lines 2969 3655 +686
Branches 242 306 +64
==========================================
+ Hits 2281 2851 +570
- Misses 561 624 +63
- Partials 127 180 +53 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
PR: Add Spring Boot 4.x support and improve DX
Summary
Add Spring Boot 4.x support with unified modules and improve developer experience.
Changes
Spring Boot 4.x Support
stove-spring-testing-e2eandstove-spring-testing-e2e-kafkamodules now support Spring Boot 2.7+, 3.x, and 4.xsendCompatible()to handle Kafka API differences across versionsDeveloper Experience
KafkaSystemOptions.opsnow defaults todefaultKafkaOps()