Migrate to Spring Boot 4.0 modular starters
Recipe ID
org.openrewrite.java.spring.boot4.MigrateToModularStartersArtifact
org.openrewrite.recipe:rewrite-springAdds the necessary Spring Boot 4.0 starter dependencies based on package usage. Spring Boot 4.0 has a modular design requiring explicit starters for each feature. This recipe detects feature usage via package imports and adds the appropriate starters. Note: Higher-level starters (like data-jpa) include lower-level ones (like jdbc) transitively, so only the highest-level detected starter is added for each technology.
Usage
This recipe has no required configuration options. You’ll need the Moderne CLI configured before running the command below.
mod run . --recipe org.openrewrite.java.spring.boot4.MigrateToModularStartersIf the recipe isn’t available locally, install it with:
mod config recipes jar install org.openrewrite.recipe:rewrite-spring:6.36.0Definition
This recipe runs the following recipes in order.
- Add Gradle or Maven dependency
org.openrewrite.java.dependencies.AddDependency - Add Gradle or Maven dependency
org.openrewrite.java.dependencies.AddDependency - Add Gradle or Maven dependency
org.openrewrite.java.dependencies.AddDependency - Add
spring-boot-starter-data-mongodb-testfor imperative MongoDB testsorg.openrewrite.java.spring.boot4.AddSpringBootStarterDataMongoDbTest - Add
spring-boot-starter-data-mongodb-reactive-testfor reactive MongoDB testsorg.openrewrite.java.spring.boot4.AddSpringBootStarterDataMongoDbReactiveTest - Add Gradle or Maven dependency
org.openrewrite.java.dependencies.AddDependency - Change Gradle or Maven dependency
org.openrewrite.java.dependencies.ChangeDependency - Change Gradle or Maven dependency
org.openrewrite.java.dependencies.ChangeDependency - Add
spring-boot-starter-flywayif using Flywayorg.openrewrite.java.spring.boot4.AddSpringBootStarterFlyway - Change Gradle or Maven dependency
org.openrewrite.java.dependencies.ChangeDependency - Change Gradle or Maven dependency
org.openrewrite.java.dependencies.ChangeDependency - Add Gradle or Maven dependency
org.openrewrite.java.dependencies.AddDependency - Add Gradle or Maven dependency
org.openrewrite.java.dependencies.AddDependency - Add Gradle or Maven dependency
org.openrewrite.java.dependencies.AddDependency - Add Gradle or Maven dependency
org.openrewrite.java.dependencies.AddDependency - Add Gradle or Maven dependency
org.openrewrite.java.dependencies.AddDependency - Add Gradle or Maven dependency
org.openrewrite.java.dependencies.AddDependency - Add Gradle or Maven dependency
org.openrewrite.java.dependencies.AddDependency - Migrate packages to modular starters
org.openrewrite.java.spring.boot4.MigrateAutoconfigurePackages
Data tables
Structured output this recipe can produce.
- Source files that had resultsSource files that were modified by the recipe run.
org.openrewrite.table.SourcesFileResults - Source files that had search resultsSearch results that were found during the recipe run.
org.openrewrite.table.SearchResults - Source files that errored on a recipeThe details of all errors produced by a recipe run.
org.openrewrite.table.SourcesFileErrors - Recipe performanceStatistics used in analyzing the performance of recipes.
org.openrewrite.table.RecipeRunStats