8.52.0 release (2025-05-07)
Total recipe count: 3738
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
- io.moderne.java.spring.boot3.RemoveTestRestTemplateEnableRedirectsOptionRecipe: The
TestRestTemplatenow uses the same follow redirects settings as the regular RestTemplate. TheHttpOption.ENABLE_REDIRECTSoption has also been deprecated. This recipe removes the option from theTestRestTemplateconstructor arguments. - io.moderne.java.spring.boot3.ReplaceTaskExecutorNameByApplicationTaskExecutorName: Spring Boot 3.5 removed the bean name
taskExecutor. Where this bean name is used, the recipe replaces the bean name toapplicationTaskExecutor. This also includes instances where the developer provided their own bean namedtaskExecutor. This also includes scenarios where JSR-250's@Resourceannotation is used. - io.moderne.java.spring.boot3.ResolveTaskExecutorFromContext: Use bean name
applicationTaskExecutorinstead oftaskExecutorwhen resolvingTaskExecutorBean from application context - io.moderne.java.spring.boot3.SpringBootProperties_3_5: Migrate properties found in
application.propertiesandapplication.yml. - io.moderne.java.spring.boot3.UpgradeSpringBoot_3_5: Migrate applications to the latest Spring Boot 3.5 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs, and migrate configuration settings that have changes between versions. This recipe will also chain additional framework migrations (Spring Framework, Spring Data, etc) that are required as part of the migration to Spring Boot 3.5.
- org.apache.camel.upgrade.UpdatePropertiesAndYamlKeys: Update properties and yaml configurations file.
- org.apache.camel.upgrade.camel411.CamelMigrationRecipe: Migrates
camel 4.10application tocamel 4.11. - org.apache.camel.upgrade.camel411.platformHttpFilterStrategy: PlatformHttpHeaderFilterStrategy is removed, use HttpHeaderFilterStrategy instead.
- org.apache.camel.upgrade.camel411.removedDependencies: Removed deprecated components (camel-etcd3).
- org.apache.camel.upgrade.camel411.removedLightweight: Removed deprecated configuration properties (camel.main.lightweight).
- org.apache.camel.upgrade.customRecipes.PropertiesAndYamlKeyUpdate: Update Apache Camel configurations keys
- org.openrewrite.apache.httpclient5.CredentialsStoreClear: Migrates
BasicCredentialsProvidermethodsclearto the newCredentialsStoreinterface. - org.openrewrite.apache.httpclient5.CredentialsStoreSetCredentials: Migrates
BasicCredentialsProvidermethodssetCredentialsto the newCredentialsStoreinterface. - org.openrewrite.gradle.search.ModuleHasPlugin: Searches for Gradle Projects (modules) that have a plugin matching the specified id or implementing class. Places a
SearchResultmarker on all sources within a project with a matching plugin. This recipe is intended to be used as a precondition for other recipes. For example this could be used to limit the application of a spring boot migration to only projects that apply the spring dependency management plugin, limiting unnecessary upgrading. If the search result you want is instead just the build.gradle(.kts) file applying the plugin, use theFindPluginsrecipe instead. - org.openrewrite.java.ReplaceMethodInvocationWithConstant: Replace all method invocations matching the method pattern with the specified constant.
- org.openrewrite.java.logging.slf4j.WrapExpensiveLogStatementsInConditionals: When trace, debug and info log statements use methods for constructing log messages, those methods are called regardless of whether the log level is enabled. This recipe encapsulates those log statements in an
ifstatement that checks the log level before calling the log method. It then bundles surrounding log statements with the same log level into theifstatement to improve readability of the resulting code. - org.openrewrite.java.migrate.AccessController: The Security Manager API is unsupported in Java 24. This recipe will remove the usage of
java.security.AccessController. - org.openrewrite.java.migrate.RemoveSecurityManager: The Security Manager API is unsupported in Java 24. This recipe will remove the usage of
java.security.SecurityManager. - org.openrewrite.java.migrate.RemoveSecurityPolicy: The Security Manager API is unsupported in Java 24. This recipe will remove the use of
java.security.Policy. - org.openrewrite.java.migrate.SystemGetSecurityManagerToNull: The Security Manager API is unsupported in Java 24. This recipe will replace
System.getSecurityManager()withnullto make its behavior more obvious and try to simplify execution paths afterwards. - org.openrewrite.java.migrate.UpgradeToJava25: This recipe will apply changes commonly needed when migrating to Java 25. This recipe will also replace deprecated API with equivalents when there is a clear migration strategy. Build files will also be updated to use Java 25 as the target/source and plugins will be also be upgraded to versions that are compatible with Java 25.
- org.openrewrite.java.recipes.ReorderTestMethods: Reorders
RewriteTestmethods to placedefaultsfirst, followed by any@DocumentExamples. - org.openrewrite.java.spring.boot3.AddValidToNestedConfigProperties: Adds
@Validannotation to fields in@ConfigurationPropertiesclasses that contain nested properties with validation constraints. - org.openrewrite.java.spring.boot3.ReplaceRestTemplateBuilderRequestFactoryMethod:
RestTemplateBuilder.requestFactory(java.util.function.Function)was deprecated since Spring Boot 3.4, in favor ofrequestFactoryBuilder(ClientHttpRequestFactoryBuilder). - org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_4: Migrate applications to the latest Spring Boot 3.4 release. This recipe will modify an application's build files, make changes to deprecated/preferred APIs.
- org.openrewrite.maven.search.ModuleHasPlugin: Searches for Maven modules that have a plugin matching the specified groupId and artifactId. Places a
SearchResultmarker on all sources within a module with a matching plugin. This recipe is intended to be used as a precondition for other recipes. For example this could be used to limit the application of a spring boot migration to only projects that apply the spring boot plugin, limiting unnecessary upgrading. If the search result you want is instead just the build.gradle(.kts) file applying the plugin, use theFindPluginsrecipe instead. - org.openrewrite.search.RepositoryContainsFile: Intended to be used primarily as a precondition for other recipes, this recipe checks if a repository contains a specific file or files matching a pattern. If present all files in the repository are marked with a
SearchResultmarker. If you want to get only the matching file as a search result, useFindSourceFilesinstead. - org.openrewrite.staticanalysis.CustomImportOrder: Updates and reorders Java import declarations according to group and order settings compatible with the Checkstyle 'CustomImportOrder' check.
- software.amazon.awssdk.v2migration.AddS3EventNotificationDependency: This recipe will add the Java v2 S3 Event Notification dependency if v1 S3EventNotification is used
- software.amazon.awssdk.v2migration.ChangeS3EventNotificationTypes: Change SDK S3EventNotification types from v1 to v2.
- software.amazon.awssdk.v2migration.S3EventNotificationMethodToV2: S3 Event Notification method to v2
- software.amazon.awssdk.v2migration.S3EventNotificationMethodsToV2: Change S3EventNotification methods to v2.
Removed Recipes
- io.moderne.java.spring.framework.UpgradeSpringFramework_6_2: Migrate applications to the latest Spring Framework 6.2 release.
Changed Recipes
- org.openrewrite.text.Find was changed:
- Old Options:
caseSensitive: { type: Boolean, required: false }description: { type: Boolean, required: false }dotAll: { type: Boolean, required: false }filePattern: { type: String, required: false }find: { type: String, required: true }multiline: { type: Boolean, required: false }regex: { type: Boolean, required: false }
- New Options:
caseSensitive: { type: Boolean, required: false }contextSize: { type: Integer, required: false }description: { type: Boolean, required: false }dotAll: { type: Boolean, required: false }filePattern: { type: String, required: false }find: { type: String, required: true }multiline: { type: Boolean, required: false }regex: { type: Boolean, required: false }
- Old Options:
- org.openrewrite.staticanalysis.AddSerialVersionUidToSerializable was changed:
- Old Options:
None
- New Options:
uid: { type: String, required: false }
- Old Options:
- org.apache.camel.upgrade.customRecipes.ChangePropertyKeyWithCaseChange was changed:
- Old Options:
newPrefix: { type: String, required: true }oldPropertyKey: { type: String, required: true }
- New Options:
exclusions: { type: List, required: true }newPrefix: { type: String, required: true }oldPropertyKey: { type: String, required: true }
- Old Options: