Spring Modulith 2.0
When upgrading to Spring Modulith 2.0, refer to the Spring Modulith 2.0.0 Release Notes for newly introduced APIs, deprecated APIs, and breaking changes. Spring Modulith 2.0 is the release line for Spring Boot 4.0, and the Spring Boot 4.0 upgrade recipe chains this recipe.
The io.arconia.rewrite.spring.modulith2.UpgradeSpringModulith_2_0 recipe automates most of the changes introduced in Spring Modulith 2.0. You can use it to update your project to the latest Spring Modulith 2.0.x release.
The recipe will:
-
Upgrade all
org.springframework.modulithdependencies to the 2.0.x release line. -
Rename Spring Modulith configuration properties that were deprecated with a replacement: the event publication registry properties moved beneath
spring.modulith.events, and the misspelled staleness check-interval and resubmission keys were corrected. -
Replace the removed
org.springframework.modulith.ApplicationModuleListenerannotation with its successor in theorg.springframework.modulith.eventspackage.
See its entry in the Recipe Catalog for the full list of recipes this upgrade applies, each with its options and a before/after example.
Run the Recipe
You can apply this recipe with any OpenRewrite-compatible tool. The tabs below show three of them: the Arconia CLI, the OpenRewrite Gradle plugin, and the OpenRewrite Maven plugin. See Running Recipes for a comparison of when to pick each one.
-
Arconia CLI
-
Gradle
-
Maven
arconia rewrite run --recipe-name io.arconia.rewrite.spring.modulith2.UpgradeSpringModulith_2_0
First, create an init.gradle file in your project root with the following content.
initscript {
repositories {
gradlePluginPortal()
}
dependencies {
classpath("org.openrewrite:plugin:latest.release")
}
}
rootProject {
plugins.apply(org.openrewrite.gradle.RewritePlugin)
dependencies {
rewrite("io.arconia.migrations:rewrite-spring:latest.release")
}
// Remove when project repositories are disabled
afterEvaluate {
if (repositories.isEmpty()) {
repositories {
mavenCentral()
}
}
}
configurations.named("rewrite") {
canBeConsumed = false
}
}
Then, run the following command.
./gradlew rewriteRun \
--init-script init.gradle \
--no-parallel \
-DactiveRecipe=io.arconia.rewrite.spring.modulith2.UpgradeSpringModulith_2_0
You can remove the init.gradle file afterwards.
./mvnw -U org.openrewrite.maven:rewrite-maven-plugin:run \
-Drewrite.recipeArtifactCoordinates=io.arconia.migrations:rewrite-spring:LATEST \
-Drewrite.activeRecipes=io.arconia.rewrite.spring.modulith2.UpgradeSpringModulith_2_0