Java Recipe best practices
Recipe ID
org.openrewrite.java.recipes.JavaRecipeBestPracticesArtifact
org.openrewrite.recipe:rewrite-rewriteBest practices for Java recipe development.
Usage
This recipe has no required configuration options. You’ll need the Moderne CLI configured before running the command below.
mod run . --recipe org.openrewrite.java.recipes.JavaRecipeBestPracticesIf the recipe isn’t available locally, install it with:
mod config recipes jar install org.openrewrite.recipe:rewrite-rewrite:0.29.0Definition
This recipe runs the following recipes in order.
- Add a blank line around fields with annotations
org.openrewrite.java.recipes.BlankLinesAroundFieldsWithAnnotations - Correctly spaced descriptions
org.openrewrite.java.recipes.CorrectlySpacedDescriptions - Use a standard name for
ExecutionContextorg.openrewrite.java.recipes.ExecutionContextParameterName - Use
J.Literal.isLiteralValue(expression, null)org.openrewrite.java.recipes.IsLiteralNullRecipe - Find missing
@Optionexamplevaluesorg.openrewrite.java.recipes.MissingOptionExample - Recipe classes should not have mutable
staticfieldsorg.openrewrite.java.recipes.NoMutableStaticFieldsInRecipes - Use of
@EqualsAndHashCodeonRecipeorg.openrewrite.java.recipes.RecipeEqualsAndHashCodeCallSuper - Recipe classes should be public
org.openrewrite.java.recipes.RecipeClassesShouldBePublic - Reorder
maybeRemoveImportbeforemaybeAddImportorg.openrewrite.java.recipes.RemoveImportBeforeAddImport - Replace
getDisplayName()andgetDescription()methods with fieldsorg.openrewrite.java.recipes.UseDisplayNameAndDescriptionFields - Replace
getEstimatedEffortPerOccurrence()method with fieldorg.openrewrite.java.recipes.UseEstimatedEffortPerOccurrenceField - Use
StringUtilsutility methodsorg.openrewrite.java.recipes.UseStringUtilsRecipes - Replace
getTags()method with fieldorg.openrewrite.java.recipes.UseTagsField - Use
JavaTemplate.apply()static methodorg.openrewrite.java.recipes.UseJavaTemplateStaticApply - Use
Tree.randomId()in LST constructorsorg.openrewrite.java.recipes.UseTreeRandomId - Use
visitwith parent cursor when calling from another visitororg.openrewrite.java.recipes.UseVisitWithParentCursor - Fix missing braces
org.openrewrite.staticanalysis.NeedBraces - Remove
System.out#printlnstatementsorg.openrewrite.staticanalysis.RemoveSystemOutPrintln - Remove
@NlsRewriteannotations fromRecipeclassesorg.openrewrite.java.recipes.RemoveNlsRewriteAnnotations
Data tables
Structured output this recipe can produce.
- Source files that had resultsSource files that were modified by the recipe run.
org.openrewrite.table.SourcesFileResults - Source files that had search resultsSearch results that were found during the recipe run.
org.openrewrite.table.SearchResults - Source files that errored on a recipeThe details of all errors produced by a recipe run.
org.openrewrite.table.SourcesFileErrors - Recipe performanceStatistics used in analyzing the performance of recipes.
org.openrewrite.table.RecipeRunStats