
















Jérôme
Tech Lead/Architecte, Professeur de réécriture à BeauxBâtons

 @jtama ![]()

Recipe
Lossless Syntax Tree
public abstract class Recipe implements Cloneable {
    public abstract String getDisplayName();
    public abstract String getDescription();
    public Set<String> getTags() { ... }
    public List<Recipe> getRecipeList() { ... }
    public TreeVisitor<?, ExecutionContext> getVisitor() { ... }
    public void addDataTable(DataTable<?> dataTable) { ... }
}
✅ Connaître les ingrédients
$ mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \
  -Drewrite.recipeArtifactCoordinates=
    org.openrewrite.recipe:rewrite-testing-frameworks:RELEASE\
  -Drewrite.activeRecipes=
    org.openrewrite.java.testing.junit5.JUnit4to5MigrationDéclaration du plugin
Ajout de la dépendance de la recette
Activation des recettes

✅ Connaître les ingrédients
✅ Savoir où les acheter

✅ Connaître les ingrédients
✅ Savoir où les acheter
✅ Savoir lire le grimoire
---
type: specs.openrewrite.org/v1beta/recipe
name: com.github.jtama.openrewrite.RedIsDead
displayName: Removes that toxic dependency
description: |
  Migrate from AcmeToxic ☠️ to AcmeHealthy 😇,
  removes dependencies and migrates code.
tags:
  - acme
  - toxic
recipeList:
  - com.github.jtama.openrewrite.CaVaCouperCherie
  - org.openrewrite.maven.RemoveDependency:
      groupId: com.github.jtama
      artifactId: toxic-library
  - org.openrewrite.maven.RemoveUnusedProperties:
      propertyPattern: .*toxic\.version
---
type: specs.openrewrite.org/v1beta/recipe
name: com.github.jtama.openrewrite.CaVaCouperCherie
displayName: Ça va vous épater
description: |
  Rech. proj. pr proj. priv. Self Dem. Brt. Poss. S’adr. à l’hô. Mart
tags:
  - acme
preconditions:
  - org.openrewrite.java.search.FindTypes:
      fullyQualifiedTypeName: com.github.jtama.toxic.FooBarUtils
recipeList:
    - org.openrewrite.java.ChangeMethodTargetToStatic:
          methodPattern: com.github.jtama.toxic.BigDecimalUtils valueOf(..)
          fullyQualifiedTargetTypeName: java.math.BigDecimal$ mvn -U org.openrewrite.maven:rewrite-maven-plugin:run \
    -Drewrite.activeRecipes=\
      com.github.jtama.openrewrite.RemovesThatToxicDependencyInclure ce fichier dans un module maven…

✅ Connaître les ingrédients
✅ Savoir où les acheter
✅ Savoir lire le grimoire
✅ Savoir jeter un sort
Demo time !

✅ Connaître les ingrédients
✅ Savoir où les acheter
✅ Savoir lire le grimoire
✅ Savoir jeter un sort
✅ Créer vos propres sorts
Quand on n’a qu’un marteau tout ressemble à un clou.
Composition de recettes complexes.
java preview feature

