OpenRewrite est un outil open source de refactoring automatisé, né dans l'écosystème Java. Il analyse le code sous forme d'arbre syntaxique enrichi des types, puis applique des recettes : migrer de Java 8 vers Java 17 ou 21, passer de Spring Boot 2 à 3, remplacer une bibliothèque dépréciée, corriger une vulnérabilité connue, uniformiser un style. Des recettes existent aussi pour Kotlin, Groovy, YAML, XML et, plus récemment, d'autres langages.
Ses points forts :
- Transformations sûres : les recettes raisonnent sur la sémantique du code, pas sur du texte, ce qui limite les faux positifs d'un rechercher-remplacer.
- Catalogue : des centaines de recettes maintenues par la communauté et par Moderne, l'éditeur à l'origine du projet, couvrant les migrations les plus courantes.
- Reproductible : l'exécution s'intègre à Maven ou Gradle et à la CI, donc se rejoue sur chaque branche.
- Composable : on écrit ses propres recettes pour les conventions internes à l'entreprise.
Chez Dernier Cri, OpenRewrite est en exploration dans nos trajectoires de modernisation d'applications Java et Spring : il absorbe la partie mécanique d'une montée de version, et laisse à l'équipe les décisions d'architecture. L'outil ne dispense ni d'une couverture de tests avant de lancer les recettes, ni d'une revue des changements. C'est l'un des leviers que nous évaluons dans notre offre Moderniser et refondre un produit digital, après un diagnostic de notre conseil technologique.