Recettes OpenRewrite déclaratives LCL, packagées dans META-INF/rewrite/,
déployées sur Nexus et consommées via -Drewrite.recipeArtifactCoordinates.
| Recette | Rôle |
|---|---|
com.lcl.rewrite.IntegrerPrometheus |
Actuator + micrometer-registry-prometheus (runtime) + config standard dans application.properties et application.y*ml uniquement |
com.lcl.rewrite.IntegrerLclParent |
ChangeParentPom vers com.lcl:lcl-parent + RemoveRedundantDependencyVersions |
com.lcl.rewrite.MigrationJava25 |
Wrapper de org.openrewrite.java.migrate.UpgradeToJava25 (rewrite-migrate-java) |
AddPropertyne supporte pasfilePattern→ sous-recettes dédiées avecpreconditions+org.openrewrite.FindSourceFiles.**/application.properties: seul ce fichier est modifié ;XD19.properties,connecteur*.properties, etc. ne sont jamais touchés.**/application.y*ml: couvre.ymlET.yaml;logback.yamlet autres YAML techniques ne sont jamais touchés.AddDependency:versiontoujours renseignée (sélecteurs semver3.5.x,1.x).rewrite-maven-plugin6.43.0 (jamais 6.27–6.29 : régression NPE Semver/AddDependency).
# Tests (RewriteTest) — nécessite l'accès Nexus/Central via settings.xml
mvn clean test
# Hors réseau LCL uniquement : installer un lcl-parent factice pour
# IntegrerLclParentTest (sinon com.lcl:lcl-parent est irrésolvable)
mvn install:install-file -DgroupId=com.lcl -DartifactId=lcl-parent \
-Dversion=1.0.0 -Dpackaging=pom -Dfile=test-projects/lcl-parent-factice.pom
# Déploiement Nexus
mvn clean deploycd test-projects/microservice-factice
mvn org.openrewrite.maven:rewrite-maven-plugin:6.43.0:dryRun \
-Drewrite.recipeArtifactCoordinates=com.cl.outil:java-migration-tools:1.0.0 \
-Drewrite.activeRecipes=com.lcl.rewrite.IntegrerPrometheus
# Vérifier target/rewrite/rewrite.patch : seuls pom.xml,
# application.properties et application.yaml doivent apparaître.Workflow standard : dryRun → inspection de target/rewrite/rewrite.patch → run.
# 1) IntegrerPrometheus
mvn org.openrewrite.maven:rewrite-maven-plugin:6.43.0:dryRun \
-Drewrite.recipeArtifactCoordinates=com.cl.outil:java-migration-tools:1.0.0 \
-Drewrite.activeRecipes=com.lcl.rewrite.IntegrerPrometheus
mvn org.openrewrite.maven:rewrite-maven-plugin:6.43.0:run \
-Drewrite.recipeArtifactCoordinates=com.cl.outil:java-migration-tools:1.0.0 \
-Drewrite.activeRecipes=com.lcl.rewrite.IntegrerPrometheus
# 2) IntegrerLclParent
mvn org.openrewrite.maven:rewrite-maven-plugin:6.43.0:dryRun \
-Drewrite.recipeArtifactCoordinates=com.cl.outil:java-migration-tools:1.0.0 \
-Drewrite.activeRecipes=com.lcl.rewrite.IntegrerLclParent
mvn org.openrewrite.maven:rewrite-maven-plugin:6.43.0:run \
-Drewrite.recipeArtifactCoordinates=com.cl.outil:java-migration-tools:1.0.0 \
-Drewrite.activeRecipes=com.lcl.rewrite.IntegrerLclParent
# 3) MigrationJava25
mvn org.openrewrite.maven:rewrite-maven-plugin:6.43.0:dryRun \
-Drewrite.recipeArtifactCoordinates=com.cl.outil:java-migration-tools:1.0.0 \
-Drewrite.activeRecipes=com.lcl.rewrite.MigrationJava25
mvn org.openrewrite.maven:rewrite-maven-plugin:6.43.0:run \
-Drewrite.recipeArtifactCoordinates=com.cl.outil:java-migration-tools:1.0.0 \
-Drewrite.activeRecipes=com.lcl.rewrite.MigrationJava25Combinable en un seul passage :
-Drewrite.activeRecipes=com.lcl.rewrite.IntegrerPrometheus,com.lcl.rewrite.IntegrerLclParent
MigrationJava25Testtélécharge des artefacts pour la résolution semver : premier run plus long.- Dans
IntegrerPrometheusTest#ajouteLesDependancesAuPom, les versions résolues par3.5.x/1.xdépendent du miroir → assertions parcontains()et non par texte figé. - Si
MergeYamlproduit un ordre/indentation légèrement différent selon la version du BOM, ajuster le bloc « after » des tests YAML à partir de la sortie réelle du premier run (le diff surefire donne le texte exact).