Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
6eb37c3
spring boot 3.4 and 3.5 properties
Aug 20, 2025
6fb0170
Spring Boot 3.4 and 3.5 recipes
Aug 20, 2025
b1fd9fa
Update src/main/resources/META-INF/rewrite/spring-boot-34-properties.yml
timtebeek Aug 21, 2025
f4a87ed
Spring Boot 3.5 and Spring Cloud 2025
Aug 21, 2025
a179d90
Merge remote-tracking branch 'origin/763-sb-properties' into 763-sb-p…
Aug 21, 2025
2eaba0d
Merge branch 'main' into 763-sb-properties
sruffatti Aug 22, 2025
804331d
Spring Boot 3.5 and Spring Cloud 2025
Aug 22, 2025
96876ca
removed a temporary unit test
Aug 22, 2025
653dfb4
removed a temporary unit test
Aug 22, 2025
a55ca44
Spring boot 3.4 properties recipe and removed Spring boot 3.5 recipes
Aug 25, 2025
c50cd2a
spring boot 35
Aug 25, 2025
20831ea
Spring Boot 3.5 and Spring Cloud 2025
Aug 25, 2025
4b0b381
Merge branch 'main' into spring-boot-35
timtebeek Aug 26, 2025
c84b043
Merge branch 'openrewrite:main' into spring-boot-35
sruffatti Aug 27, 2025
b2f8e46
Merge branch 'openrewrite:main' into spring-boot-35
sruffatti Aug 28, 2025
14c27ea
Minimal test to trigger yaml recipe validation
timtebeek Aug 30, 2025
b5503ea
Merge branch 'main' into spring-boot-35
timtebeek Aug 30, 2025
311b76a
Add a minimal test to show changed dependency version
timtebeek Sep 2, 2025
1f8385a
Add a test for the Spring Cloud property renames
timtebeek Sep 2, 2025
bb4fa18
Use missing import
timtebeek Sep 2, 2025
4ac3c92
Merge branch 'main' into spring-boot-35
timtebeek Sep 2, 2025
9ae6f7d
Merge branch 'openrewrite:main' into spring-boot-35
sruffatti Sep 2, 2025
2a1461c
added except parameter to avoid sub-property key in spring cloud 2025…
Sep 3, 2025
dab0a26
Merge branch 'openrewrite:main' into spring-boot-35
sruffatti Sep 3, 2025
bb33350
Merge branch 'openrewrite:main' into spring-boot-35
sruffatti Sep 5, 2025
3151318
Add a minor clarifying comment
timtebeek Sep 8, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ plugins {
group = "org.openrewrite.recipe"
description = "Eliminate legacy Spring patterns and migrate between major Spring Boot versions. Automatically."

val springBootVersions: List<String> = listOf("1_5", "2_1", "2_2", "2_3", "2_4", "2_5", "2_6", "2_7", "3_0", "3_2", "3_3", "3_4")
val springBootVersions: List<String> = listOf("1_5", "2_1", "2_2", "2_3", "2_4", "2_5", "2_6", "2_7", "3_0", "3_2", "3_3", "3_4", "3_5")
val springSecurityVersions: List<String> = listOf("5_7", "5_8", "6_2")

val sourceSetNames: Map<String, List<String>> = mapOf(
Expand Down
108 changes: 108 additions & 0 deletions src/main/resources/META-INF/rewrite/spring-boot-35-properties.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
#
# Copyright 2025 the original author or authors.
# <p>
# Licensed under the Moderne Source Available License (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# <p>
# https://docs.moderne.io/licensing/moderne-source-available-license
# <p>
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# This file is automatically generated by the GeneratePropertiesMigratorConfiguration class.
# Do not edit this file manually. Update the Spring Boot property metadata upstream instead.
---
type: specs.openrewrite.org/v1beta/recipe
name: org.openrewrite.java.spring.boot3.SpringBootProperties_3_5
displayName: Migrate Spring Boot properties to 3.5
description: Migrate properties found in `application.properties` and `application.yml`.
tags:
- spring
- boot
recipeList:
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: management.promethus.metrics.export.pushgateway.base-url
newPropertyKey: management.prometheus.metrics.export.pushgateway.address
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.codec.log-request-details
newPropertyKey: spring.http.codecs.log-request-details
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.codec.max-in-memory-size
newPropertyKey: spring.http.codecs.max-in-memory-size
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.graphql.path
newPropertyKey: spring.graphql.http.path
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.graphql.sse.timeout
newPropertyKey: spring.graphql.http.sse.timeout
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.groovy.template.configuration.auto-escape
newPropertyKey: spring.groovy.template.auto-escape
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.groovy.template.configuration.auto-indent
newPropertyKey: spring.groovy.template.auto-indent
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.groovy.template.configuration.auto-indent-string
newPropertyKey: spring.groovy.template.auto-indent-string
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.groovy.template.configuration.auto-new-line
newPropertyKey: spring.groovy.template.auto-new-line
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.groovy.template.configuration.base-template-class
newPropertyKey: spring.groovy.template.base-template-class
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.groovy.template.configuration.cache-templates
newPropertyKey: spring.groovy.template.cache
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.groovy.template.configuration.declaration-encoding
newPropertyKey: spring.groovy.template.declaration-encoding
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.groovy.template.configuration.expand-empty-elements
newPropertyKey: spring.groovy.template.expand-empty-elements
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.groovy.template.configuration.locale
newPropertyKey: spring.groovy.template.locale
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.groovy.template.configuration.new-line-string
newPropertyKey: spring.groovy.template.new-line-string
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.groovy.template.configuration.resource-loader-path
newPropertyKey: spring.groovy.template.resource-loader-path
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.groovy.template.configuration.use-double-quotes
newPropertyKey: spring.groovy.template.use-double-quotes
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.mvc.converters.preferred-json-mapper
newPropertyKey: spring.http.converters.preferred-json-mapper

- org.openrewrite.java.spring.CommentOutSpringPropertyKey:
propertyKey: management.signalfx.metrics.export.access-token
comment: "This property is deprecated: Deprecated in Micrometer 1.15.0"
- org.openrewrite.java.spring.CommentOutSpringPropertyKey:
propertyKey: management.signalfx.metrics.export.batch-size
comment: "This property is deprecated: Deprecated in Micrometer 1.15.0"
- org.openrewrite.java.spring.CommentOutSpringPropertyKey:
propertyKey: management.signalfx.metrics.export.connect-timeout
comment: "This property is deprecated: Deprecated in Micrometer 1.15.0"
- org.openrewrite.java.spring.CommentOutSpringPropertyKey:
propertyKey: management.signalfx.metrics.export.enabled
comment: "This property is deprecated: Deprecated in Micrometer 1.15.0"
- org.openrewrite.java.spring.CommentOutSpringPropertyKey:
propertyKey: management.signalfx.metrics.export.published-histogram-type
comment: "This property is deprecated: Deprecated in Micrometer 1.15.0"
- org.openrewrite.java.spring.CommentOutSpringPropertyKey:
propertyKey: management.signalfx.metrics.export.read-timeout
comment: "This property is deprecated: Deprecated in Micrometer 1.15.0"
- org.openrewrite.java.spring.CommentOutSpringPropertyKey:
propertyKey: management.signalfx.metrics.export.source
comment: "This property is deprecated: Deprecated in Micrometer 1.15.0"
- org.openrewrite.java.spring.CommentOutSpringPropertyKey:
propertyKey: management.signalfx.metrics.export.step
comment: "This property is deprecated: Deprecated in Micrometer 1.15.0"
- org.openrewrite.java.spring.CommentOutSpringPropertyKey:
propertyKey: management.signalfx.metrics.export.uri
comment: "This property is deprecated: Deprecated in Micrometer 1.15.0"
51 changes: 51 additions & 0 deletions src/main/resources/META-INF/rewrite/spring-boot-35.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#
# Copyright 2025 the original author or authors.
# <p>
# Licensed under the Moderne Source Available License (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# <p>
# https://docs.moderne.io/licensing/moderne-source-available-license
# <p>
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

---
type: specs.openrewrite.org/v1beta/recipe
name: org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_5
displayName: Migrate to Spring Boot 3.5
description: >-
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.
tags:
- spring
- boot
recipeList:
- org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_4
- org.openrewrite.java.spring.boot3.SpringBootProperties_3_5
- org.openrewrite.java.spring.cloud2025.UpgradeSpringCloud_2025
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
groupId: org.springframework.boot
artifactId: "*"
newVersion: 3.5.x
overrideManagedVersion: false
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
groupId: org.springframework.boot
artifactId: spring-boot-dependencies
newVersion: 3.5.x
overrideManagedVersion: true
- org.openrewrite.maven.UpgradePluginVersion:
groupId: org.springframework.boot
artifactId: spring-boot-maven-plugin
newVersion: 3.5.x
- org.openrewrite.maven.UpgradeParentVersion:
groupId: org.springframework.boot
artifactId: spring-boot-starter-parent
newVersion: 3.5.x
- org.openrewrite.gradle.plugins.UpgradePluginVersion:
pluginIdPattern: org.springframework.boot
newVersion: 3.5.x
209 changes: 209 additions & 0 deletions src/main/resources/META-INF/rewrite/spring-cloud-2025.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,209 @@
#
# Copyright 2025 the original author or authors.
# <p>
# Licensed under the Moderne Source Available License (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# <p>
# https://docs.moderne.io/licensing/moderne-source-available-license
# <p>
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

---
type: specs.openrewrite.org/v1beta/recipe
name: org.openrewrite.java.spring.cloud2025.UpgradeSpringCloud_2025
displayName: Migrate to Spring Cloud 2025
description: Migrate applications to the latest Spring Cloud 2025 (Northfields) release.
tags:
- spring
- cloud
recipeList:
# Do not chain previous versions of Spring Cloud; leave inclusion up to Spring Boot migrations to avoid duplicates
- org.openrewrite.java.spring.cloud2025.DependencyUpgrades
- org.openrewrite.java.spring.cloud2025.SpringCloudGatewayDeprecatedModulesAndStarters
- org.openrewrite.java.spring.cloud2025.SpringCloudGatewayProperties
- org.openrewrite.java.spring.cloud2025.SpringCloudGatewayWebfluxProperties
- org.openrewrite.java.spring.cloud2025.SpringCloudGatewayProxyWebfluxProperties
- org.openrewrite.java.spring.cloud2025.SpringCloudGatewayWebMvcProperties
- org.openrewrite.java.spring.cloud2025.SpringCloudGatewayProxyWebMvcProperties

---
type: specs.openrewrite.org/v1beta/recipe
name: org.openrewrite.java.spring.cloud2025.DependencyUpgrades
displayName: Upgrade dependencies to Spring Cloud 2025
description: Upgrade dependencies to Spring Cloud 2025 from prior 2024.x version.
tags:
- spring
- cloud
recipeList:
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
groupId: org.springframework.cloud
artifactId: "*"
newVersion: 4.3.x
overrideManagedVersion: false
- org.openrewrite.maven.UpgradeParentVersion:
groupId: org.springframework.cloud
artifactId: spring-cloud-starter-parent
newVersion: 2025.0.x
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
groupId: org.springframework.cloud
artifactId: spring-cloud-dependencies
newVersion: 2025.0.x
overrideManagedVersion: false

# circuitbreaker, kubernetes & task follow a different versioning scheme
# https://docs.spring.io/spring-cloud-release/reference/2025.0/
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
groupId: org.springframework.cloud
artifactId: spring-cloud-starter-circuitbreaker-*
newVersion: 3.3.x
overrideManagedVersion: false
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
groupId: org.springframework.cloud
artifactId: spring-cloud-circuitbreaker-*
newVersion: 3.3.x
overrideManagedVersion: false
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
groupId: org.springframework.cloud
artifactId: spring-cloud-starter-kubernetes-*
newVersion: 3.3.x
overrideManagedVersion: false
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
groupId: org.springframework.cloud
artifactId: spring-cloud-kubernetes-*
newVersion: 3.3.x
overrideManagedVersion: false
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
groupId: org.springframework.cloud
artifactId: spring-cloud-starter-task-*
newVersion: 3.3.x
overrideManagedVersion: false
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
groupId: org.springframework.cloud
artifactId: spring-cloud-task-*
newVersion: 3.3.x
overrideManagedVersion: false

---
type: specs.openrewrite.org/v1beta/recipe
name: org.openrewrite.java.spring.cloud2025.SpringCloudGatewayDeprecatedModulesAndStarters
displayName: Migrate to New Spring Cloud Gateway Modules and Starters
description: Migrate to new Spring Cloud Gateway modules and starters for Spring Cloud 2025
tags:
- spring
- cloud
recipeList:
- org.openrewrite.java.dependencies.ChangeDependency:
oldGroupId: org.springframework.cloud
oldArtifactId: spring-cloud-gateway-server
newArtifactId: spring-cloud-gateway-server-webflux
- org.openrewrite.java.dependencies.ChangeDependency:
oldGroupId: org.springframework.cloud
oldArtifactId: spring-cloud-gateway-server-mvc
newArtifactId: spring-cloud-gateway-server-webmvc
- org.openrewrite.java.dependencies.ChangeDependency:
oldGroupId: org.springframework.cloud
oldArtifactId: spring-cloud-starter-gateway-server
newArtifactId: spring-cloud-starter-gateway-server-webflux
- org.openrewrite.java.dependencies.ChangeDependency:
oldGroupId: org.springframework.cloud
oldArtifactId: spring-cloud-starter-gateway-server-mvc
newArtifactId: spring-cloud-starter-gateway-server-webmvc
- org.openrewrite.java.dependencies.ChangeDependency:
oldGroupId: org.springframework.cloud
oldArtifactId: spring-cloud-gateway-mvc
newArtifactId: spring-cloud-gateway-proxyexchange-webmvc
- org.openrewrite.java.dependencies.ChangeDependency:
oldGroupId: org.springframework.cloud
oldArtifactId: spring-cloud-gateway-webflux
newArtifactId: spring-cloud-gateway-proxyexchange-webflux

---
type: specs.openrewrite.org/v1beta/recipe
name: org.openrewrite.java.spring.cloud2025.SpringCloudGatewayProperties
displayName: Migrate Spring Cloud Gateway Properties
description: Migrate Spring Cloud Gateway properties for Spring Cloud 2025 release.
tags:
- spring
- cloud
recipeList:
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.cloud.gateway
newPropertyKey: spring.cloud.gateway.server.webflux
except: ["proxy"]
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.cloud.gateway.mvc
newPropertyKey: spring.cloud.gateway.server.webmvc

---
type: specs.openrewrite.org/v1beta/recipe
name: org.openrewrite.java.spring.cloud2025.SpringCloudGatewayWebfluxProperties
displayName: Migrate Spring Cloud Gateway Webflux Properties
description: Migrate Spring Cloud Gateway Webflux properties for Spring Cloud 2025 release.
tags:
- spring
- cloud
preconditions:
- org.openrewrite.java.dependencies.search.ModuleHasDependency:
groupIdPattern: org.springframework.cloud
artifactIdPattern: spring-cloud-gateway-webflux
recipeList:
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.cloud.gateway.proxy
newPropertyKey: spring.cloud.gateway.proxy-exchange.webflux

---
type: specs.openrewrite.org/v1beta/recipe
name: org.openrewrite.java.spring.cloud2025.SpringCloudGatewayProxyWebfluxProperties
displayName: Migrate Spring Cloud Gateway Proxy Webflux Properties
description: Migrate Spring Cloud Gateway Proxy Webflux properties for Spring Cloud 2025 release.
tags:
- spring
- cloud
preconditions:
- org.openrewrite.java.dependencies.search.ModuleHasDependency:
groupIdPattern: org.springframework.cloud
artifactIdPattern: spring-cloud-gateway-proxyexchange-webflux
recipeList:
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.cloud.gateway.proxy
newPropertyKey: spring.cloud.gateway.proxy-exchange.webflux

---
type: specs.openrewrite.org/v1beta/recipe
name: org.openrewrite.java.spring.cloud2025.SpringCloudGatewayWebMvcProperties
displayName: Migrate Spring Cloud Gateway WebMvc Properties
description: Migrate Spring Cloud Gateway WebMvc properties for Spring Cloud 2025 release.
tags:
- spring
- cloud
preconditions:
- org.openrewrite.java.dependencies.search.ModuleHasDependency:
groupIdPattern: org.springframework.cloud
artifactIdPattern: spring-cloud-gateway-mvc
recipeList:
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.cloud.gateway.proxy
newPropertyKey: spring.cloud.gateway.proxy-exchange.webmvc

---
type: specs.openrewrite.org/v1beta/recipe
name: org.openrewrite.java.spring.cloud2025.SpringCloudGatewayProxyWebMvcProperties
displayName: Migrate Spring Cloud Gateway Proxy WebMvc Properties
description: Migrate Spring Cloud Gateway Proxy WebMvc properties for Spring Cloud 2025 release.
tags:
- spring
- cloud
preconditions:
- org.openrewrite.java.dependencies.search.ModuleHasDependency:
groupIdPattern: org.springframework.cloud
artifactIdPattern: spring-cloud-gateway-proxyexchange-webmvc
recipeList:
- org.openrewrite.java.spring.ChangeSpringPropertyKey:
oldPropertyKey: spring.cloud.gateway.proxy
newPropertyKey: spring.cloud.gateway.proxy-exchange-webmvc
Loading