8.83.0 release (2026-05-21)
Total recipe count: 4364
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.
Corresponding CLI version
- Stable CLI version
v3.57.16 - Staging CLI version:
v3.57.16
New Recipes
- org.apache.camel.upgrade.camel419.CamelMigrationRecipe: Migrates
camel 4.18application tocamel 4.19. - org.apache.camel.upgrade.camel419.Pom419TestInfraRecipe: Removes
test-jar from camel-test-infra-* dependencies as they no longer produce separate test-JAR artifacts. - org.apache.camel.upgrade.camel419.XmlDsl419SagaRecipe: Apache Camel XML DSL migration from version 4.18 to 4.19. Converts saga compensation and completion child elements to attributes.
- org.apache.camel.upgrade.camel419.YamlDsl419RoutePolicyRecipe: Apache Camel YAML DSL migration from version 4.18 to 4.19. Renames routePolicy to routePolicyRef.
- org.apache.camel.upgrade.camel419.YamlDsl419SagaRecipe: Apache Camel YAML DSL migration from version 4.18 to 4.19. Flattens saga compensation and completion nested uri to direct values.
- org.apache.camel.upgrade.camel419.migrateGroovyXml: camel-groovy-xml has been removed and moved into camel-groovy. Changes the dependency from camel-groovy-xml to camel-groovy.
- org.apache.camel.upgrade.camel419.removedComponents: The camel-test module has been removed from camel-bom.
- org.apache.camel.upgrade.camel420.CamelMigrationRecipe: Migrates
camel 4.19application tocamel 4.20. - org.apache.camel.upgrade.camel420.migratePulsarUris: Apache Pulsar client upgraded from 4.1.3 to 4.2.0. Per PIP-457, V1 topic names are no longer supported. Migrates from V1 format (persistent://tenant/cluster/namespace/topic) to V2 format (persistent://tenant/namespace/topic). Removes the cluster segment. Only transforms URIs where the topic name does NOT contain slashes. URIs with slashes in topic names are left unchanged to avoid ambiguity between V1 and V2 formats. Works across Java, XML DSL, and YAML DSL.
- org.apache.camel.upgrade.customRecipes.ChangeComponentUriRecipe: Transforms component URIs using regular expressions with capturing groups. Automatically handles Java, XML DSL, and YAML DSL.
- org.apache.camel.upgrade.customRecipes.internal.ChangeJavaComponentUriRecipe: Transforms component URIs in Java code using regular expressions with capturing groups.
- org.apache.camel.upgrade.customRecipes.internal.ChangeXmlComponentUriRecipe: Transforms component URIs in XML DSL using regular expressions with capturing groups.
- org.apache.camel.upgrade.customRecipes.internal.ChangeYamlComponentUriRecipe: Transforms component URIs in YAML DSL using regular expressions with capturing groups.
- org.openrewrite.apache.httpclient5.MigrateAuthSchemeCredentials: Rewrites
AuthExchange#update(BasicScheme, Credentials)toBasicScheme#initPreemptive(Credentials)followed byAuthExchange#select(AuthScheme). Unwraps leftoverAuthOption#getAuthScheme()calls (now onAuthSchemeafter the type rename) to the receiver itself. Otherupdate/setCredentials/getCredentialscall sites are flagged separately byAddCommentToMethodInvocations. - org.openrewrite.apache.httpclient5.MigrateAuthState: Migrate Apache HttpClient 4.x
AuthStateand related types to the HttpClient 5.xAuthExchangeAPI, including theAuthProtocolStateenum,AuthOptionqueue elements, and credential-handling call sites. - org.openrewrite.github.security.PinGitHubActionsToSha: Replaces mutable tag or branch references in GitHub Actions
uses:declarations with immutable commit SHAs. A static mapping of well-known actions is checked first; if the action is not found, the GitHub API is used to resolve the reference at recipe run time. By default only third-party actions are pinned; setpinOfficialActionsto include actions from theactionsandgithuborganizations. To pin only a specific allow-list of actions, setincludedActions. - org.openrewrite.gradle.gradle9.RewriteSpreadAllInConfigurationsBlock: Gradle 9 throws
Cannot mutate the dependencies of configuration ':all' after the configuration was resolved.when aconfigurations { }closure uses Groovy's spread-dot formall*.<method>(args). Rewrite each such call to the closure formconfigurations.all { <method>(args) }, which preserves eager-allsemantics but is accepted by Gradle 9. Only applied when every statement in theconfigurations { }block uses the spread form; mixed blocks are left untouched for manual review. - org.openrewrite.gradle.gradle9.UseJavaExtensionBlock: Gradle 9 removed the
JavaPluginConvention(deprecated in 8.2). Top-levelsourceCompatibilityandtargetCompatibilityassignments in a Groovy build script previously delegated to that convention object and stop working in Gradle 9. Move them into thejava { }extension block, normalizing values toJavaVersion.VERSION_<n>and adding the missing counterpart so both properties are set explicitly. See the Gradle upgrade guide for more information. - org.openrewrite.gradle.gradle9.UseMainClassProperty: The
mainproperty onJavaExectasks was deprecated in Gradle 7.1 and removed in Gradle 9.0. Use themainClassproperty instead. See the Gradle upgrade guide for more information. - org.openrewrite.gradle.gradle9.UseMainClassPropertyForApplication: The
mainClassNameproperty on theapplicationextension was deprecated in Gradle 6.4 and removed in Gradle 9.0. Useapplication { mainClass = ... }instead. Top-levelmainClassNameassignments are wrapped in anapplicationblock. See the Gradle upgrade guide for more information. - org.openrewrite.gradle.gradle9.UseVersionClosure: Converts
version = { ... }assignment syntax toversion { ... }closure call syntax in Gradle dependency declarations. The assignment form is not valid Gradle DSL; the closure form invokes the version spec method directly. - org.openrewrite.java.micronaut.Micronaut4to5Migration: This recipe will apply changes required for migrating from Micronaut 4 to Micronaut 5. Micronaut 5 raises the Java baseline to 25 and ships a number of artifact/plugin renames; see the upstream migration guide for the full list of breaking changes.
- org.openrewrite.java.micronaut.UpdateBuildPlugins5: This recipe will update the Micronaut Gradle build plugins to 5.x and migrate the Shadow plugin from
com.github.johnrengelman.shadowtocom.gradleup.shadow9.x. - org.openrewrite.java.spring.MarkAdditionalSpringConfigFiles: Attach a
SpringConfigFilemarker to YAML/properties files matching the provided glob patterns so that Spring property recipes such asChangeSpringPropertyKey,DeleteSpringProperty,ChangeSpringPropertyValue, andCommentOutSpringPropertyKeywill visit files that live outside standard resource source sets. Files that already pass theSourceSet-based check are skipped to avoid redundant markers. - org.openrewrite.java.spring.doc.MigrateSpringFoxSecurityConfiguration: Replace
@Beanmethods that returnspringfox.documentation.swagger.web.SecurityConfigurationwith the equivalentspringdoc.swagger-ui.*configuration properties. Only literal builder arguments are migrated; beans with non-literal arguments or unsupported builder methods (apiKey,apiKeyName,apiKeyVehicle,additionalQueryStringParams) are left untouched for manual review. If no Spring application configuration file exists, the bean is left in place to avoid silently dropping configuration. - org.openrewrite.java.testing.junit6.MigrateJUnitPioneerToJupiter: Migrates
@DefaultLocale,@DefaultTimeZone,@SetSystemProperty,@ClearSystemProperty,@RestoreSystemProperties(and their@Reads.../@Writes...companions) from JUnit Pioneer to the native equivalents added in JUnit Jupiter 6.1. Thejunit-pioneerdependency is not removed since other Pioneer features (e.g.@RetryingTest,@CartesianTest) have no Jupiter equivalent. - org.openrewrite.java.testing.junit6.RemoveJreOther: JUnit 6.1 deprecated
JRE.OTHERin favor ofint/int[]annotation attributes. This recipe removesJRE.OTHERentries from@EnabledOnJreand@DisabledOnJrearray values when other JRE constants remain. LoneJRE.OTHERusages are left untouched because they have no mechanical replacement; review them manually. - org.openrewrite.maven.ReproducibleBuilds: Configure a Maven project for reproducible builds: pin dependency and plugin versions, set
project.build.outputTimestamp, set explicit UTF-8 source encoding, and upgrade core plugins to versions that honor the output timestamp. - org.openrewrite.maven.cleanup.AddProjectBuildOutputTimestamp: Adds the
project.build.outputTimestampproperty, which Maven uses to make build outputs reproducible by stamping archive entries with a fixed timestamp instead of the current time. An existing value is preserved. See Configuring for Reproducible Builds.