8.49.0 release (2025-03-28)
Total recipe count: 3086
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
- io.quarkus.updates.core.quarkus321.TlsRegistrySplitPackagesFix:
- io.quarkus.updates.minio.minio38.UpdateAll:
- io.quarkus.updates.minio.minio38.UpdateProperties:
- io.quarkus.updates.quarkiverse.minio.minio38.AdjustURLPropertyValue: Adjust quarkus.minio.url property key to quarkus.minio.host.
- org.openrewrite.apache.poi.ReplaceSetBoldweightWithSetBold: Replace
Font.setBoldweight(short)
or equivalent withFont.setBold(boolean)
. - org.openrewrite.apache.poi.ReplaceSetCellType:
Cell.setCellType()
can be configured with either an integer or a theCellType
enumeration. It is clearer and less error-prone to use theCellType
enumeration, so this recipe converts allsetCellType()
calls to use it. - org.openrewrite.java.logging.CatchBlockLogLevel: Sometimes exceptions are caught and logged at the wrong log level. This will set the log level of logging statements within a catch block not containing an exception to "warn", and the log level of logging statements containing an exception to "error". This supports SLF4J, Log4J1, Log4j2, and Logback.
- org.openrewrite.java.logging.logback.ConfigureLoggerLevel: Within logback.xml configuration files sets the specified log level for a particular class. Will not create a logback.xml if one does not already exist.
- org.openrewrite.java.migrate.jakarta.UpdateAnnotationAttributeJavaxToJakarta: Replace
javax
withjakarta
in annotation attributes for matching annotation signatures. - org.openrewrite.java.migrate.jakarta.UpdateApacheCommonsEmailDependencies: Update Apache Commons Email to Email2 for Jakarta.
- org.openrewrite.java.migrate.jakarta.UpdateApacheShiroDependencies: Update Apache Shiro Dependencies to 2.0.x.
- org.openrewrite.java.migrate.jakarta.UpdateEclipseLinkDependencies: Update EclipseLink Dependencies to 4.x.
- org.openrewrite.java.migrate.jakarta.UpdateJerseyDependencies: Update GlassFish Jersey Dependencies to 3.1.x.
- org.openrewrite.java.migrate.jakarta.UpdateYassonDependencies: Update Eclipse Yasson Dependencies to 3.0.x.
- org.openrewrite.java.spring.boot3.SpringBoot33BestPractices: Applies best practices to Spring Boot 3 applications.
- org.openrewrite.java.testing.mockito.PowerMockitoWhenNewToMockito: Replaces
PowerMockito.whenNew
calls with respectiveMockito.whenConstructed
calls. - software.amazon.awssdk.v2migration.DateToInstant: Convert Date to Instant by calling Date#toInstant
- software.amazon.awssdk.v2migration.S3PutObjectRequestToV2: Transform V1 S3 PutObjectRequest to V2, as well as methods that take it as an argument.
- tech.picnic.errorprone.refasterrules.FileRulesRecipes$FileMkDirsFileExistsRecipe: Invoke
File#mkdirs()
beforeFile#exists()
to avoid concurrency issues - tech.picnic.errorprone.refasterrules.FileRulesRecipes$PathToFileMkDirsFilesExistsRecipe: Invoke
File#mkdirs()
beforeFiles#exists(Path, LinkOption...)
to avoid concurrency issues
Removed Recipes
-
org.openrewrite.apache.poi.ReplaceSetBoldweightWithSetBoldRecipes: Replace
Font.setBoldweight(short)
or equivalent withFont.setBold(boolean)
. -
org.openrewrite.apache.poi.ReplaceSetBoldweightWithSetBoldRecipes$ReplaceSetBoldweightBoldWithSetBoldTrueRecipe: Replace
Font.setBoldweight(Font.BOLDWEIGHT_BOLD)
or equivalent withFont.setBold(true)
. -
org.openrewrite.apache.poi.ReplaceSetBoldweightWithSetBoldRecipes$ReplaceSetBoldweightNormalWithSetBoldFalseRecipe: Replace
Font.setBoldweight(Font.BOLDWEIGHT_NORMAL)
or equivalent withFont.setBold(false)
. -
org.openrewrite.apache.poi.ReplaceSetCellTypeRecipes: Replace
Cell.setCellType(int)
with equivalentCell.setCellType(CellType)
. -
org.openrewrite.apache.poi.ReplaceSetCellTypeRecipes$ReplaceSetCellTypeBlankRecipe: Replace
Cell.setCellType(Cell.CELL_TYPE_BLANK)
withCell.setCellType(CellType.BLANK)
. -
org.openrewrite.apache.poi.ReplaceSetCellTypeRecipes$ReplaceSetCellTypeBooleanRecipe: Replace
Cell.setCellType(Cell.CELL_TYPE_BOOLEAN)
withCell.setCellType(CellType.BOOLEAN)
. -
org.openrewrite.apache.poi.ReplaceSetCellTypeRecipes$ReplaceSetCellTypeErrorRecipe: Replace
Cell.setCellType(Cell.CELL_TYPE_ERROR)
withCell.setCellType(CellType.ERROR)
. -
org.openrewrite.apache.poi.ReplaceSetCellTypeRecipes$ReplaceSetCellTypeFormulaRecipe: Replace
Cell.setCellType(Cell.CELL_TYPE_FORMULA)
withCell.setCellType(CellType.FORMULA)
. -
org.openrewrite.apache.poi.ReplaceSetCellTypeRecipes$ReplaceSetCellTypeNumericRecipe: Replace
Cell.setCellType(Cell.CELL_TYPE_NUMERIC)
withCell.setCellType(CellType.NUMERIC)
. -
org.openrewrite.apache.poi.ReplaceSetCellTypeRecipes$ReplaceSetCellTypeStringRecipe: Replace
Cell.setCellType(Cell.CELL_TYPE_STRING)
withCell.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 tojakarta.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 }
- Old Options:
- 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 }
- Old Options:
- 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 }
- Old Options:
- org.openrewrite.java.search.FindMissingTypes was changed:
- Old Options:
None
- New Options:
checkDocumentation: { type: boolean, required: false }
- Old Options:
- 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 }
- Old Options:
- 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 }
- Old Options: