Skip to content

Repository files navigation

java-migration-tools

Recettes OpenRewrite déclaratives LCL, packagées dans META-INF/rewrite/, déployées sur Nexus et consommées via -Drewrite.recipeArtifactCoordinates.

Recettes

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)

Garanties de ciblage

  • AddProperty ne supporte pas filePattern → sous-recettes dédiées avec preconditions + org.openrewrite.FindSourceFiles.
  • **/application.properties : seul ce fichier est modifié ; XD19.properties, connecteur*.properties, etc. ne sont jamais touchés.
  • **/application.y*ml : couvre .yml ET .yaml ; logback.yaml et autres YAML techniques ne sont jamais touchés.
  • AddDependency : version toujours renseignée (sélecteurs semver 3.5.x, 1.x).
  • rewrite-maven-plugin 6.43.0 (jamais 6.27–6.29 : régression NPE Semver/AddDependency).

Build, tests, déploiement

# 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 deploy

Test end-to-end sur le microservice factice

cd 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.

Exécution sur un microservice cible (coordonnées Nexus)

Workflow standard : dryRun → inspection de target/rewrite/rewrite.patchrun.

# 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.MigrationJava25

Combinable en un seul passage : -Drewrite.activeRecipes=com.lcl.rewrite.IntegrerPrometheus,com.lcl.rewrite.IntegrerLclParent

Points de vigilance connus

  • MigrationJava25Test télécharge des artefacts pour la résolution semver : premier run plus long.
  • Dans IntegrerPrometheusTest#ajouteLesDependancesAuPom, les versions résolues par 3.5.x/1.x dépendent du miroir → assertions par contains() et non par texte figé.
  • Si MergeYaml produit 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).

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages