Skip to main content

8.49.0 release (2025-03-28)

Total recipe count: 3086

info

This changelog only shows what recipes have been added, removed, or changed. OpenRewrite may do releases that do not include these types of changes. To see these changes, please go to the releases page.

New Recipes

Removed Recipes

  • org.openrewrite.apache.poi.ReplaceSetBoldweightWithSetBoldRecipes: Replace Font.setBoldweight(short) or equivalent with Font.setBold(boolean).

  • org.openrewrite.apache.poi.ReplaceSetBoldweightWithSetBoldRecipes$ReplaceSetBoldweightBoldWithSetBoldTrueRecipe: Replace Font.setBoldweight(Font.BOLDWEIGHT_BOLD) or equivalent with Font.setBold(true).

  • org.openrewrite.apache.poi.ReplaceSetBoldweightWithSetBoldRecipes$ReplaceSetBoldweightNormalWithSetBoldFalseRecipe: Replace Font.setBoldweight(Font.BOLDWEIGHT_NORMAL) or equivalent with Font.setBold(false).

  • org.openrewrite.apache.poi.ReplaceSetCellTypeRecipes: Replace Cell.setCellType(int) with equivalent Cell.setCellType(CellType).

  • org.openrewrite.apache.poi.ReplaceSetCellTypeRecipes$ReplaceSetCellTypeBlankRecipe: Replace Cell.setCellType(Cell.CELL_TYPE_BLANK) with Cell.setCellType(CellType.BLANK).

  • org.openrewrite.apache.poi.ReplaceSetCellTypeRecipes$ReplaceSetCellTypeBooleanRecipe: Replace Cell.setCellType(Cell.CELL_TYPE_BOOLEAN) with Cell.setCellType(CellType.BOOLEAN).

  • org.openrewrite.apache.poi.ReplaceSetCellTypeRecipes$ReplaceSetCellTypeErrorRecipe: Replace Cell.setCellType(Cell.CELL_TYPE_ERROR) with Cell.setCellType(CellType.ERROR).

  • org.openrewrite.apache.poi.ReplaceSetCellTypeRecipes$ReplaceSetCellTypeFormulaRecipe: Replace Cell.setCellType(Cell.CELL_TYPE_FORMULA) with Cell.setCellType(CellType.FORMULA).

  • org.openrewrite.apache.poi.ReplaceSetCellTypeRecipes$ReplaceSetCellTypeNumericRecipe: Replace Cell.setCellType(Cell.CELL_TYPE_NUMERIC) with Cell.setCellType(CellType.NUMERIC).

  • org.openrewrite.apache.poi.ReplaceSetCellTypeRecipes$ReplaceSetCellTypeStringRecipe: Replace Cell.setCellType(Cell.CELL_TYPE_STRING) with Cell.setCellType(CellType.STRING).

  • org.openrewrite.codemods.migrate.react.ClassComponentToFunctionComponent: Class components are still going to be supported by React for the foreseeable future. However, it is no longer recommended to write new components in class-style.

    This recipe will convert class components to function components using react-declassify

  • org.openrewrite.java.migrate.jakarta.BeanValidationMessages: Migrate javax.validation.constraints messages found in Java files to jakarta.validation.constraints equivalents.

  • org.openrewrite.java.spring.boot3.SpringBoot3BestPractices: Applies best practices to Spring Boot 3 applications.

Changed Recipes

  • org.openrewrite.text.FindMultiselect was changed:
    • Old Options:
      • filePattern: { type: String, required: true }
      • find: { type: String, required: true }
      • regex: { type: Boolean, required: false }
      • regexOptions: { type: Set, required: false }
    • New Options:
      • filePattern: { type: String, required: false }
      • find: { type: String, required: true }
      • regex: { type: Boolean, required: false }
      • regexOptions: { type: Set, required: false }
  • org.openrewrite.gradle.AddProperty was changed:
    • Old Options:
      • filePattern: { type: String, required: true }
      • key: { type: String, required: true }
      • overwrite: { type: Boolean, required: true }
      • value: { type: String, required: true }
    • New Options:
      • filePattern: { type: String, required: false }
      • key: { type: String, required: true }
      • overwrite: { type: Boolean, required: true }
      • value: { type: String, required: true }
  • org.openrewrite.java.AddOrUpdateAnnotationAttribute was changed:
    • Old Options:
      • addOnly: { type: Boolean, required: true }
      • annotationType: { type: String, required: true }
      • appendArray: { type: Boolean, required: true }
      • attributeName: { type: String, required: false }
      • attributeValue: { type: String, required: true }
      • oldAttributeValue: { type: String, required: true }
    • New Options:
      • addOnly: { type: Boolean, required: false }
      • annotationType: { type: String, required: true }
      • appendArray: { type: Boolean, required: false }
      • attributeName: { type: String, required: false }
      • attributeValue: { type: String, required: false }
      • oldAttributeValue: { type: String, required: false }
  • org.openrewrite.java.search.FindMissingTypes was changed:
    • Old Options:
      • None
    • New Options:
      • checkDocumentation: { type: boolean, required: false }
  • org.openrewrite.java.dependencies.DependencyList was changed:
    • Old Options:
      • includeTransitive: { type: boolean, required: true }
      • scope: { type: Scope, required: true }
      • validateResolvable: { type: boolean, required: true }
    • New Options:
      • includeTransitive: { type: boolean, required: false }
      • scope: { type: Scope, required: false }
      • validateResolvable: { type: boolean, required: false }
  • org.openrewrite.java.dependencies.DependencyVulnerabilityCheck was changed:
    • Old Options:
      • maximumUpgradeDelta: { type: UpgradeDelta, required: false }
      • overrideTransitive: { type: Boolean, required: false }
      • scope: { type: String, required: false }
    • New Options:
      • maximumUpgradeDelta: { type: UpgradeDelta, required: false }
      • overrideTransitive: { type: Boolean, required: false }
      • overrideVulnerabilityDatabase: { type: URI, required: false }
      • scope: { type: String, required: false }