diff --git a/default/generated/spring-boot/spring-boot-2.x-to-3.0-dependencies.yaml b/default/generated/spring-boot/spring-boot-2.x-to-3.0-dependencies.yaml new file mode 100644 index 00000000..16b955a8 --- /dev/null +++ b/default/generated/spring-boot/spring-boot-2.x-to-3.0-dependencies.yaml @@ -0,0 +1,302 @@ +- ruleID: spring-boot-2.x-to-3.0-dependencies-00001 + category: mandatory + effort: 5 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.dependency: + name: org.springframework.cloud.spring-cloud-bus + upperbound: 3.99.999 + description: Spring Boot 3.0 must use at least spring-cloud-bus 4.0.x + message: "In order to use spring-cloud-bus along with Spring Boot 3, spring-cloud-bus must be upgraded at least to version 4.0.x" + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Spring Cloud - Supported versions and releases' + url: https://github.com/spring-cloud/spring-cloud-release/wiki/Supported-Versions#supported-releases + +- ruleID: spring-boot-2.x-to-3.0-dependencies-00002 + category: mandatory + effort: 5 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.dependency: + nameregex: org.springframework.cloud.spring-cloud-circuitbreaker* + upperbound: 2.99.999 + description: Spring Boot 3.0 must use at least spring-cloud-circuitbreaker 3.0.x + message: | + In order to use spring-cloud-circuitbreaker along with Spring Boot 3, spring-cloud-circuitbreaker must be upgraded at least to version 3.0.x + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Spring Cloud - Supported versions and releases' + url: https://github.com/spring-cloud/spring-cloud-release/wiki/Supported-Versions#supported-releases + +- ruleID: spring-boot-2.x-to-3.0-dependencies-00003 + category: mandatory + effort: 5 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.dependency: + nameregex: org.springframework.cloud.spring-cloud-commons + upperbound: 3.99.999 + description: Spring Boot 3.0 must use at least spring-cloud-commons 4.0.x + message: | + In order to use spring-cloud-commons along with Spring Boot 3, spring-cloud-commons must be upgraded at least to version 4.0.x + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Spring Cloud - Supported versions and releases' + url: https://github.com/spring-cloud/spring-cloud-release/wiki/Supported-Versions#supported-releases + +- ruleID: spring-boot-2.x-to-3.0-dependencies-00004 + category: mandatory + effort: 5 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.dependency: + nameregex: org.springframework.cloud.spring-cloud-config* + upperbound: 4.0.9999 + description: Spring Boot 3.0 must use at least spring-cloud-config 4.1.x + message: | + In order to use spring-cloud-config along with Spring Boot 3, spring-cloud-config must be upgraded at least to version 4.1.x + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Spring Cloud - Supported versions and releases' + url: https://github.com/spring-cloud/spring-cloud-release/wiki/Supported-Versions#supported-releases + +- ruleID: spring-boot-2.x-to-3.0-dependencies-00005 + category: mandatory + effort: 5 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.dependency: + nameregex: org.springframework.cloud.spring-cloud-consul* + upperbound: 3.99.999 + description: Spring Boot 3.0 must use at least spring-cloud-consul 4.0.x + message: | + In order to use spring-cloud-consul along with Spring Boot 3, spring-cloud-consul must be upgraded at least to version 4.0.x + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Spring Cloud - Supported versions and releases' + url: https://github.com/spring-cloud/spring-cloud-release/wiki/Supported-Versions#supported-releases + +- ruleID: spring-boot-2.x-to-3.0-dependencies-00006 + category: mandatory + effort: 5 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.dependency: + nameregex: org.springframework.cloud.spring-cloud-contract + upperbound: 3.99.999 + description: Spring Boot 3.0 must use at least spring-cloud-contract 4.0.x + message: | + In order to use spring-cloud-contract along with Spring Boot 3, spring-cloud-contract must be upgraded at least to version 4.0.x + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Spring Cloud - Supported versions and releases' + url: https://github.com/spring-cloud/spring-cloud-release/wiki/Supported-Versions#supported-releases + +- ruleID: spring-boot-2.x-to-3.0-dependencies-00007 + category: mandatory + effort: 5 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.dependency: + name: org.springframework.cloud.spring-cloud-function-core + upperbound: 3.99.999 + description: Spring Boot 3.0 must use at least spring-cloud-function 4.0.x + message: | + In order to use spring-cloud-function along with Spring Boot 3, spring-cloud-function must be upgraded at least to version 4.0.x + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Spring Cloud - Supported versions and releases' + url: https://github.com/spring-cloud/spring-cloud-release/wiki/Supported-Versions#supported-releases + +- ruleID: spring-boot-2.x-to-3.0-dependencies-00008 + category: mandatory + effort: 5 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.dependency: + nameregex: org.springframework.cloud.spring-cloud-gateway.* + upperbound: 3.99.999 + description: Spring Boot 3.0 must use at least spring-cloud-gateway 4.0.x + message: | + In order to use spring-cloud-gateway along with Spring Boot 3, spring-cloud-gateway must be upgraded at least to version 4.0.x + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Spring Cloud - Supported versions and releases' + url: https://github.com/spring-cloud/spring-cloud-release/wiki/Supported-Versions#supported-releases + +- ruleID: spring-boot-2.x-to-3.0-dependencies-00009 + category: mandatory + effort: 5 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.dependency: + nameregex: org.springframework.cloud.spring-cloud-kubernetes + upperbound: 2.99.999 + description: Spring Boot 3.0 must use at least spring-cloud-kubernetes 3.0.x + message: | + In order to use spring-cloud-kubernetes along with Spring Boot 3, spring-cloud-kubernetes must be upgraded at least to version 3.0.x + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Spring Cloud - Supported versions and releases' + url: https://github.com/spring-cloud/spring-cloud-release/wiki/Supported-Versions#supported-releases + +- ruleID: spring-boot-2.x-to-3.0-dependencies-00010 + category: mandatory + effort: 5 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.dependency: + nameregex: org.springframework.cloud.spring-cloud-netflix.* + upperbound: 3.99.999 + description: Spring Boot 3.0 must use at least spring-cloud-netflix 4.0.x + message: | + In order to use spring-cloud-netflix along with Spring Boot 3, spring-cloud-netflix must be upgraded at least to version 4.0.x + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Spring Cloud - Supported versions and releases' + url: https://github.com/spring-cloud/spring-cloud-release/wiki/Supported-Versions#supported-releases + +- ruleID: spring-boot-2.x-to-3.0-dependencies-00011 + category: mandatory + effort: 5 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.dependency: + nameregex: org.springframework.cloud.spring-cloud-openfeign + upperbound: 3.99.999 + description: Spring Boot 3.0 must use at least spring-cloud-openfeign 4.0.x + message: | + In order to use spring-cloud-openfeign along with Spring Boot 3, spring-cloud-openfeign must be upgraded at least to version 4.0.x + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Spring Cloud - Supported versions and releases' + url: https://github.com/spring-cloud/spring-cloud-release/wiki/Supported-Versions#supported-releases + +- ruleID: spring-boot-2.x-to-3.0-dependencies-00012 + category: mandatory + effort: 5 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.dependency: + nameregex: org.springframework.cloud.spring-cloud-stream + upperbound: 3.99.999 + description: Spring Boot 3.0 must use at least spring-cloud-stream 4.0.x + message: | + In order to use spring-cloud-stream along with Spring Boot 3, spring-cloud-stream must be upgraded at least to version 4.0.x + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Spring Cloud - Supported versions and releases' + url: https://github.com/spring-cloud/spring-cloud-release/wiki/Supported-Versions#supported-releases + +- ruleID: spring-boot-2.x-to-3.0-dependencies-00013 + category: mandatory + effort: 5 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.dependency: + nameregex: org.springframework.cloud.spring-cloud-task + upperbound: 2.99.999 + description: Spring Boot 3.0 must use at least spring-cloud-task 3.0.x + message: | + In order to use spring-cloud-task along with Spring Boot 3, spring-cloud-task must be upgraded at least to version 3.0.x + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Spring Cloud - Supported versions and releases' + url: https://github.com/spring-cloud/spring-cloud-release/wiki/Supported-Versions#supported-releases + +- ruleID: spring-boot-2.x-to-3.0-dependencies-00014 + category: mandatory + effort: 5 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.dependency: + nameregex: org.springframework.cloud.spring-cloud-vault + upperbound: 3.99.999 + description: Spring Boot 3.0 must use at least spring-cloud-vault 4.0.x + message: | + In order to use spring-cloud-vault along with Spring Boot 3, spring-cloud-vault must be upgraded at least to version 4.0.x + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Spring Cloud - Supported versions and releases' + url: https://github.com/spring-cloud/spring-cloud-release/wiki/Supported-Versions#supported-releases + +- ruleID: spring-boot-2.x-to-3.0-dependencies-00015 + category: mandatory + effort: 5 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.dependency: + nameregex: org.springframework.cloud.spring-cloud-zookeeper + upperbound: 3.99.999 + description: Spring Boot 3.0 must use at least spring-cloud-zookeeper 4.0.x + message: | + In order to use spring-cloud-zookeeper along with Spring Boot 3, spring-cloud-zookeeper must be upgraded at least to version 4.0.x + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Spring Cloud - Supported versions and releases' + url: https://github.com/spring-cloud/spring-cloud-release/wiki/Supported-Versions#supported-releases + +- ruleID: spring-boot-2.x-to-3.0-dependencies-00016 + category: mandatory + effort: 5 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.dependency: + name: org.springframework.cloud.spring-cloud-dependencies + upperbound: 2021.9999.9999 + description: Spring Boot 3.0 must use at least Spring Cloud 2022 + message: | + In order to use Spring Cloud along with Spring Boot 3, Spring Cloud must be upgraded at least to version 2022 + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Spring Cloud - Adding Spring Cloud to an existing Spring Cloud application' + url: https://spring.io/projects/spring-cloud diff --git a/default/generated/spring-boot/spring-boot-2.x-to-3.0-removals.yaml b/default/generated/spring-boot/spring-boot-2.x-to-3.0-removals.yaml new file mode 100644 index 00000000..c70a53ff --- /dev/null +++ b/default/generated/spring-boot/spring-boot-2.x-to-3.0-removals.yaml @@ -0,0 +1,3748 @@ +- ruleID: spring-boot-2.x-to-3.0-removals-00010 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.jdbc.AbstractDataSourceInitializer + location: IMPORT + description: AbstractDataSourceInitializer has been removed in Spring Boot 3.0. + message: | + The class `AbstractDataSourceInitializer` has been removed in Spring Boot 3.0. + This class was previously used to initialize a `DataSource` with SQL scripts. To migrate: + + 1. **Replace Type Usages**: If your code directly references `AbstractDataSourceInitializer` + (e.g., as a superclass or declared type), update those references to use `DataSourceScriptDatabaseInitializer`. + + 2. **Adjust Method Calls**: Review method overrides or calls associated with `AbstractDataSourceInitializer` + and adapt them for `DataSourceScriptDatabaseInitializer`. The new class has updated methods for improved + SQL script initialization. + + 3. **Refactor Configuration**: If your application uses custom configuration to manage `AbstractDataSourceInitializer`, + ensure the configuration aligns with the new `DataSourceScriptDatabaseInitializer` API. This may involve + adapting bean definitions or properties. + + By following these steps, you can transition to the modern `DataSourceScriptDatabaseInitializer` class, which provides + enhanced functionality and aligns with Spring Boot 3.0's updated practices for SQL script initialization. + + links: + - title: 'Spring Boot 3.0 Migration Guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'DataSourceScriptDatabaseInitializer API Documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/jdbc/init/DataSourceScriptDatabaseInitializer.html + +- ruleID: spring-boot-2.x-to-3.0-removals-00020 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.jdbc.AbstractDataSourceInitializer + location: INHERITANCE + description: AbstractDataSourceInitializer inheritance is no longer supported in Spring Boot 3.0. + message: | + The class `AbstractDataSourceInitializer` has been removed in Spring Boot 3.0. + If your application extends `AbstractDataSourceInitializer`, refactor your code to use + `DataSourceScriptDatabaseInitializer` or an equivalent custom solution. + + The new `DataSourceScriptDatabaseInitializer` class provides a more modern and flexible API + for initializing a `DataSource` with SQL scripts. Evaluate whether extending the class is still + necessary or if using its composition features directly suffices. + + Migration Steps: + - Replace `extends AbstractDataSourceInitializer` with `DataSourceScriptDatabaseInitializer`. + - Update any overridden methods or class-level configurations to align with the new class. + - Review documentation to configure `DataSourceScriptDatabaseInitializer` correctly. + + This migration ensures compatibility with Spring Boot 3.0 and takes advantage of improvements in + SQL script initialization practices. + + links: + - title: 'Spring Boot 3.0 Migration Guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'DataSourceScriptDatabaseInitializer API Documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/jdbc/init/DataSourceScriptDatabaseInitializer.html + + +- ruleID: spring-boot-2.x-to-3.0-removals-00030 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.batch.BatchDataSourceInitializer + location: TYPE + description: BatchDataSourceInitializer has been removed in Spring Boot 3.0 + message: | + The class `BatchDataSourceInitializer` has been removed in Spring Boot 3.0. + It was previously used to initialize a `DataSource` for batch processing in Spring Batch. + + To migrate, replace usages of `BatchDataSourceInitializer` with `BatchDataSourceScriptDatabaseInitializer`. + The new `BatchDataSourceScriptDatabaseInitializer` provides improved support for batch-specific database + initialization scripts, aligning with updated practices in Spring Boot 3.0. + + Steps for migration: + - Replace any instantiation or autowiring of `BatchDataSourceInitializer` with `BatchDataSourceScriptDatabaseInitializer`. + - Verify the configuration of your batch initialization scripts to ensure compatibility with the new class. + - Update your `application.properties` or `application.yml` if needed, to use the updated settings for database initialization. + + Refer to the migration guide and API documentation for additional details and examples. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'BatchDataSourceScriptDatabaseInitializer API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/batch/BatchDataSourceScriptDatabaseInitializer.html + + +- ruleID: spring-boot-2.x-to-3.0-removals-00040 + category: mandatory + effort: 4 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.context.config.ConfigFileApplicationListener + location: TYPE + description: ConfigFileApplicationListener has been removed in Spring Boot 3.0 + message: | + The class `ConfigFileApplicationListener` has been removed in Spring Boot 3.0. + This class was previously used for processing configuration files during application startup. + + To migrate, replace usages of `ConfigFileApplicationListener` with `ConfigDataEnvironmentPostProcessor`. + The new `ConfigDataEnvironmentPostProcessor` is part of Spring Boot's revamped `ConfigData` API, + which offers better support for handling configuration data across different environments. + + Steps for migration: + 1. Remove references to `ConfigFileApplicationListener` in your code, as it is no longer supported. + 2. If you were customizing or extending its behavior, migrate to the `ConfigDataEnvironmentPostProcessor` and + use the `ConfigData` API to handle configuration data. + 3. Review your configuration file handling, as the `ConfigData` API introduces changes in how property sources + and profiles are loaded. Ensure compatibility with the updated processing logic. + + Refer to the migration guide and API documentation for examples and further details. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#config-data-api + - title: 'ConfigDataEnvironmentPostProcessor API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/context/config/ConfigDataEnvironmentPostProcessor.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00050 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.elasticsearch.ElasticsearchRestHealthIndicator + location: TYPE + description: ElasticsearchRestHealthIndicator has been removed in Spring Boot 3.0 + message: | + The class `ElasticsearchRestHealthIndicator` has been removed in Spring Boot 3.0. + This class was used for health checks in applications using Elasticsearch. + + To migrate, replace usages of `ElasticsearchRestHealthIndicator` with `ElasticsearchRestClientHealthIndicator`. + The new `ElasticsearchRestClientHealthIndicator` works with the `ElasticsearchRestClient` and provides updated + health-check functionality for Elasticsearch in Spring Boot 3.0. + + If you were directly instantiating `ElasticsearchRestHealthIndicator`, update your configuration to use the + `ElasticsearchRestClientHealthIndicator` and ensure your Elasticsearch client setup aligns with the changes in Spring Boot 3.0. + + If you were relying on Spring Boot's auto-configuration, verify your `ElasticsearchRestClient` setup in the application + context, as the auto-configured health indicator now uses the new class. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'ElasticsearchRestClientHealthIndicator API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/actuate/elasticsearch/ElasticsearchRestClientHealthIndicator.html + + +- ruleID: spring-boot-2.x-to-3.0-removals-00060 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.integration.IntegrationDataSourceInitializer + location: TYPE + description: IntegrationDataSourceInitializer has been removed in Spring Boot 3.0 + message: | + The class `IntegrationDataSourceInitializer` has been removed in Spring Boot 3.0. + It was previously used for initializing an `IntegrationDataSource` with SQL scripts. + + To migrate, replace usages of `IntegrationDataSourceInitializer` with `IntegrationDataSourceScriptDatabaseInitializer`. + The new class provides enhanced support for initializing an `IntegrationDataSource` in line with modern + Spring Boot conventions. + + Steps for migration: + 1. Remove all references to `IntegrationDataSourceInitializer` in your code. + 2. Use `IntegrationDataSourceScriptDatabaseInitializer` instead. This class can be used + to initialize your integration-related data sources with the appropriate SQL scripts. + 3. Update your configurations and scripts to align with the new initializer's API and behavior. + 4. Test your application thoroughly to ensure compatibility and proper data source initialization. + + Refer to the migration guide and the API documentation for additional guidance and examples. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'IntegrationDataSourceScriptDatabaseInitializer API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/integration/IntegrationDataSourceScriptDatabaseInitializer.html + + +#--------------------------------------------------------- +- ruleID: spring-boot-2.x-to-3.0-removals-00070 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.session.JdbcSessionDataSourceInitializer + location: TYPE + description: JdbcSessionDataSourceInitializer has been removed in Spring Boot 3.0 + message: | + The class `JdbcSessionDataSourceInitializer` has been removed in Spring Boot 3.0. + This class was previously used to initialize `JdbcSessionDataSource` for session management with SQL scripts. + + To migrate, replace usages of `JdbcSessionDataSourceInitializer` with `JdbcSessionDataSourceScriptDatabaseInitializer`. + The new class aligns with updated Spring Boot practices for initializing `JdbcSessionDataSource` instances using SQL scripts. + + Steps for migration: + 1. Search your codebase for any references to `JdbcSessionDataSourceInitializer` and remove them. + 2. Replace these references with `JdbcSessionDataSourceScriptDatabaseInitializer`. + 3. Update your configuration or initialization logic to use the new class's API. + 4. Verify the SQL scripts and ensure compatibility with `JdbcSessionDataSourceScriptDatabaseInitializer`. + 5. Test session management thoroughly to confirm proper initialization and behavior. + + For more details, consult the migration guide and the updated API documentation. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'JdbcSessionDataSourceScriptDatabaseInitializer API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/session/JdbcSessionDataSourceScriptDatabaseInitializer.html + +- ruleID: spring-boot-2.x-to-3.0-removals-00080 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.quartz.QuartzDataSourceInitializer + location: TYPE + description: QuartzDataSourceInitializer has been removed in Spring Boot 3.0 + message: | + The class `QuartzDataSourceInitializer` has been removed in Spring Boot 3.0. + Previously, this class was used for initializing a Quartz `DataSource` with SQL scripts. + + To migrate, replace usages of `QuartzDataSourceInitializer` with `QuartzDataSourceScriptDatabaseInitializer`. + The new class aligns with updated Spring Boot practices for initializing Quartz `DataSource` instances. + + Steps for migration: + 1. Identify all references to `QuartzDataSourceInitializer` in your code. + 2. Replace these references with `QuartzDataSourceScriptDatabaseInitializer`. + 3. Update your configuration or initialization logic to accommodate the API changes in the new class. + 4. Verify the SQL scripts and ensure they are compatible with `QuartzDataSourceScriptDatabaseInitializer`. + 5. Test Quartz job scheduling to confirm proper initialization and behavior. + + Note: The new `QuartzDataSourceScriptDatabaseInitializer` provides improved support for database script execution, + aligning with modern Spring Boot practices. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'QuartzDataSourceScriptDatabaseInitializer API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/quartz/QuartzDataSourceScriptDatabaseInitializer.html + +- ruleID: spring-boot-2.x-to-3.0-removals-00090 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy + location: TYPE + description: SpringPhysicalNamingStrategy has been removed in Spring Boot 3.0 + message: | + The class `SpringPhysicalNamingStrategy` has been removed in Spring Boot 3.0. + This class was previously used for defining naming strategies for Hibernate entities, + converting Java entity names to database table and column names. + + To migrate, replace usages of `SpringPhysicalNamingStrategy` with `CamelCaseToUnderscoresNamingStrategy`: + 1. Identify all occurrences of `SpringPhysicalNamingStrategy` in your codebase, including JPA or Hibernate configurations. + 2. Update your Hibernate configuration or `application.properties`/`application.yml` files to use `CamelCaseToUnderscoresNamingStrategy` instead. + 3. If you were customizing `SpringPhysicalNamingStrategy`, ensure that the custom logic is ported to a new naming strategy class or implemented using `CamelCaseToUnderscoresNamingStrategy`. + + Example migration: + Replace: + spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy + With: + spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.CamelCaseToUnderscoresNamingStrategy + + Note: `CamelCaseToUnderscoresNamingStrategy` follows the same logic of converting camel-case names to underscore-separated names + but aligns with modern Spring Boot naming practices. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#hibernate-and-jpa + - title: 'CamelCaseToUnderscoresNamingStrategy API documentation' + url: https://docs.jboss.org/hibernate/orm/6.6/javadocs/org/hibernate/boot/model/naming/CamelCaseToUnderscoresNamingStrategy.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00100 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.web.reactive.WebFluxProperties.Cookie + location: TYPE + description: WebFluxProperties.Cookie has been removed in Spring Boot 3.0. + message: | + The class `WebFluxProperties.Cookie` has been removed in Spring Boot 3.0. + To migrate, use the `Cookie` class directly from the appropriate package. + + Spring Boot 3 introduces changes to how WebFlux cookie settings are configured. + Instead of using `WebFluxProperties.Cookie`, you can directly reference the `Cookie` class to configure cookie settings. + + Update your code to: + 1. Replace references to `WebFluxProperties.Cookie` with `Cookie`. + 2. Ensure that your configuration and settings for cookies, such as their name, path, and security attributes, are properly configured using the `Cookie` class. + + Example usage in your configuration: + ```java + import org.springframework.boot.web.servlet.Cookie; + + Cookie cookie = new Cookie("name", "value"); + cookie.setMaxAge(3600); + cookie.setPath("/"); + ``` + + If you were using the `WebFluxProperties.Cookie` class for advanced WebFlux-specific cookie configurations, you should review your application and adapt it to use the new `Cookie` class appropriately in your reactive setup. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide + - title: 'Cookie class documentation' + url: https://docs.spring.io/spring-boot/docs/3.0.0-M4/api/org/springframework/boot/web/server/Cookie.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00110 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.web.reactive.WebFluxProperties.Session + location: TYPE + description: WebFluxProperties.Session has been removed in Spring Boot 3.0. + message: | + The class `WebFluxProperties.Session` has been removed in Spring Boot 3.0. + To migrate, replace usages of `WebFluxProperties.Session` with `server.reactive.session` configuration. + + In Spring Boot 3, the session-related configuration for WebFlux applications has been moved to a new location: `server.reactive.session`. + This change provides more flexibility in how session settings are configured for reactive applications. + + To migrate: + 1. Replace any references to `WebFluxProperties.Session` with the appropriate configuration under `server.reactive.session`. + 2. You can now configure properties like session timeout, cookie settings, and others directly through the `server.reactive.session` section in your `application.properties` or `application.yml`. + + Example migration: + + If you had the following configuration in Spring Boot 2: + ```java + @Configuration + public class WebFluxConfig { + @Bean + public WebFluxProperties.Session sessionConfig() { + WebFluxProperties.Session session = new WebFluxProperties.Session(); + session.setTimeout(Duration.ofMinutes(30)); + return session; + } + } + ``` + + You should update it to use the `server.reactive.session` properties, like so: + ```yaml + server: + reactive: + session: + timeout: 30m + ``` + + Review your `application.properties` or `application.yml` and replace any references to `WebFluxProperties.Session` with the new configuration format under `server.reactive.session`. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide + - title: 'Reactive session configuration documentation' + url: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#reactive-web-session + +# DataSourceInitializationMode does not seem to be present in Spring Boot 3? +#- ruleID: spring-boot-2.x-to-3.0-removed-00010 +# category: mandatory +# effort: 3 +# labels: +# - konveyor.io/source=spring-boot2 +# - konveyor.io/target=spring-boot3+ +# when: +# java.referenced: +# pattern: org.springframework.boot.jdbc.DataSourceInitializationMode +# location: TYPE +# description: DataSourceInitializationMode has been removed in Spring Boot 3.0. +# message: | +# The class `DataSourceInitializationMode` has been removed in Spring Boot 3.0. +# To migrate, replace usages of `DataSourceInitializationMode` with `DatabaseInitializationMode`. +# +# In Spring Boot 3, the `DataSourceInitializationMode` class has been renamed to `DatabaseInitializationMode`, which represents the same concept of controlling how database initialization is handled. +# +# To migrate: +# 1. Replace all occurrences of `DataSourceInitializationMode` with `DatabaseInitializationMode`. +# 2. Update your configuration to use `DatabaseInitializationMode` where applicable (e.g., in annotations, beans, or properties). +# +# Example migration: +# +# If you had the following configuration in Spring Boot 2: +# ```java +# @Configuration +# public class DatabaseConfig { +# @Bean +# public DataSource dataSource() { +# DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create(); +# dataSourceBuilder.initializationMode(DataSourceInitializationMode.ALWAYS); +# return dataSourceBuilder.build(); +# } +# } +# ``` +# +# You should update it to use the new `DatabaseInitializationMode` like so: +# ```java +# @Configuration +# public class DatabaseConfig { +# @Bean +# public DataSource dataSource() { +# DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create(); +# dataSourceBuilder.initializationMode(DatabaseInitializationMode.ALWAYS); +# return dataSourceBuilder.build(); +# } +# } +# ``` +# +# Be sure to also check any property files (such as `application.properties` or `application.yml`) where `DataSourceInitializationMode` might be referenced and replace it with `DatabaseInitializationMode`. +# +# links: +# - title: 'Spring Boot 3.0 migration guide' +# url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide +# - title: 'DatabaseInitializationMode API documentation' +# url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/jdbc/DataSourceInitializationMode.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00120 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.autoconfigure.endpoint.expose.IncludeExcludeEndpointFilter.DefaultIncludes + location: TYPE + description: IncludeExcludeEndpointFilter.DefaultIncludes has been removed in Spring Boot 3.0. + message: | + The class `IncludeExcludeEndpointFilter.DefaultIncludes` has been removed in Spring Boot 3.0. + To migrate, replace usages of `IncludeExcludeEndpointFilter.DefaultIncludes` with `EndpointExposure`. + + In Spring Boot 3, the `DefaultIncludes` class in `IncludeExcludeEndpointFilter` has been replaced by `EndpointExposure`, which provides more flexible configuration for controlling which endpoints are exposed or excluded. + + To migrate: + 1. Replace all references to `IncludeExcludeEndpointFilter.DefaultIncludes` with `EndpointExposure`. + 2. Update your configuration to use `EndpointExposure` to control which endpoints should be exposed. + + Example migration: + + If you had the following configuration in Spring Boot 2: + ```java + @Configuration + public class ActuatorConfig { + @Bean + public IncludeExcludeEndpointFilter includeExcludeEndpointFilter() { + return new IncludeExcludeEndpointFilter( + new IncludeExcludeEndpointFilter.DefaultIncludes()); + } + } + ``` + + You should update it to use `EndpointExposure` like so: + ```java + @Configuration + public class ActuatorConfig { + @Bean + public EndpointExposure endpointExposure() { + return EndpointExposure.ALL; + } + } + ``` + + Also, check any properties files (such as `application.properties` or `application.yml`) where `IncludeExcludeEndpointFilter.DefaultIncludes` might be referenced and replace it with `EndpointExposure`. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide + - title: 'EndpointExposure API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/actuate/autoconfigure/endpoint/expose/EndpointExposure.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00130 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.web.reactive.WebFluxProperties.SameSite + location: TYPE + description: WebFluxProperties.SameSite has been removed in Spring Boot 3.0. + message: | + The class `WebFluxProperties.SameSite` has been removed in Spring Boot 3.0. + To migrate, replace usages of `WebFluxProperties.SameSite` with `Cookie.SameSite`. + + In Spring Boot 3, cookie settings have been streamlined, and the `SameSite` attribute is now configured using `Cookie.SameSite`. This class provides a more consistent and flexible way to define the SameSite policy for cookies used in the application. + + To migrate: + 1. Replace references to `WebFluxProperties.SameSite` with `Cookie.SameSite`. + 2. Update your code to configure cookies according to the new `Cookie.SameSite` enum values. + + Example migration: + + If you had the following configuration in Spring Boot 2: + ```java + @Configuration + public class WebConfig { + @Bean + public WebFluxProperties webFluxProperties() { + WebFluxProperties properties = new WebFluxProperties(); + properties.setSameSite(WebFluxProperties.SameSite.LAX); + return properties; + } + } + ``` + + You should update it to use `Cookie.SameSite` like so: + ```java + @Configuration + public class WebConfig { + @Bean + public ServerHttpCookieManager serverHttpCookieManager() { + ServerHttpCookieManager cookieManager = new ServerHttpCookieManager(); + cookieManager.setSameSite(Cookie.SameSite.LAX); + return cookieManager; + } + } + ``` + + Also, check any properties files (such as `application.properties` or `application.yml`) where `WebFluxProperties.SameSite` might be referenced and replace it with `Cookie.SameSite`. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide + - title: 'Cookie.SameSite API documentation' + url: https://docs.spring.io/spring-boot/docs/3.0.0-M4/api/org/springframework/boot/web/server/Cookie.SameSite.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00140 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.autoconfigure.web.server.LocalManagementPort + location: TYPE + description: LocalManagementPort has been removed in Spring Boot 3.0. + message: | + The class `LocalManagementPort` from `org.springframework.boot.actuate.autoconfigure.web.server` has been removed in Spring Boot 3.0. + To migrate, replace usages of `LocalManagementPort` from `org.springframework.boot.actuate.autoconfigure.web.server` with the new `LocalManagementPort` from `org.springframework.boot.test.web.server`. + + The class `org.springframework.boot.test.web.server.LocalManagementPort` is the new location for managing the local management port in test configurations. + + To migrate: + 1. Replace any references to `org.springframework.boot.actuate.autoconfigure.web.server.LocalManagementPort` with `org.springframework.boot.test.web.server.LocalManagementPort`. + 2. Update any code or configuration files that use `LocalManagementPort` accordingly. + + Example migration: + + If you had the following configuration in Spring Boot 2: + ```java + @Configuration + public class WebConfig { + @Value("${local.management.port}") + private int managementPort; + + @Bean + public LocalManagementPort localManagementPort() { + return new LocalManagementPort(managementPort); + } + } + ``` + + You should update it to use `org.springframework.boot.test.web.server.LocalManagementPort` like so: + ```java + @Configuration + public class WebConfig { + @Value("${local.management.port}") + private int managementPort; + + @Bean + public LocalManagementPort localManagementPort() { + return new LocalManagementPort(managementPort); + } + } + ``` + + Ensure that you import the correct class: + ```java + import org.springframework.boot.test.web.server.LocalManagementPort; + ``` + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide + - title: 'LocalManagementPort API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/test/web/server/LocalManagementPort.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00150 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.rsocket.context.LocalRSocketServerPort + location: TYPE + description: LocalRSocketServerPort has been removed in Spring Boot 3.0. + message: | + The class `LocalRSocketServerPort` from `org.springframework.boot.rsocket.context` has been removed in Spring Boot 3.0. + To migrate, replace usages of `LocalRSocketServerPort` from `org.springframework.boot.rsocket.context` with the new `LocalRSocketServerPort` from `org.springframework.boot.test.rsocket`. + + The class `org.springframework.boot.test.rsocket.LocalRSocketServerPort` provides similar functionality for managing the local RSocket server port in test configurations. + + To migrate: + 1. Replace any references to `org.springframework.boot.rsocket.context.LocalRSocketServerPort` with `org.springframework.boot.test.rsocket.LocalRSocketServerPort`. + 2. Update any code or configuration files that use `LocalRSocketServerPort` accordingly. + + Example migration: + + If you had the following configuration in Spring Boot 2: + ```java + @Configuration + public class RSocketConfig { + @Value("${rsocket.server.port}") + private int serverPort; + + @Bean + public LocalRSocketServerPort localRSocketServerPort() { + return new LocalRSocketServerPort(serverPort); + } + } + ``` + + You should update it to use `org.springframework.boot.test.rsocket.LocalRSocketServerPort` like so: + ```java + @Configuration + public class RSocketConfig { + @Value("${rsocket.server.port}") + private int serverPort; + + @Bean + public LocalRSocketServerPort localRSocketServerPort() { + return new LocalRSocketServerPort(serverPort); + } + } + ``` + + Ensure that you import the correct class: + ```java + import org.springframework.boot.test.rsocket.LocalRSocketServerPort; + ``` + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide + - title: 'LocalRSocketServerPort API documentation' + url: https://docs.spring.io/spring-boot/docs/3.0.0-M4/api/org/springframework/boot/test/rsocket/server/LocalRSocketServerPort.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00160 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.web.server.LocalServerPort + location: TYPE + description: LocalServerPort has been removed in Spring Boot 3.0. + message: | + The class `LocalServerPort` from `org.springframework.boot.web.server` has been removed in Spring Boot 3.0. + To migrate, replace usages of `LocalServerPort` from `org.springframework.boot.web.server` with the new `LocalServerPort` from `org.springframework.boot.test.web.server`. + + The class `org.springframework.boot.test.web.server.LocalServerPort` is the new location for managing the local server port in test configurations. + + To migrate: + 1. Replace any references to `org.springframework.boot.web.server.LocalServerPort` with `org.springframework.boot.test.web.server.LocalServerPort`. + 2. Update any code or configuration files that use `LocalServerPort` accordingly. + + Example migration: + + If you had the following configuration in Spring Boot 2: + ```java + @Configuration + public class WebConfig { + @LocalServerPort + private int serverPort; + + @Bean + public int serverPort() { + return serverPort; + } + } + ``` + + You should update it to use `org.springframework.boot.test.web.server.LocalServerPort` like so: + ```java + @Configuration + public class WebConfig { + @LocalServerPort + private int serverPort; + + @Bean + public int serverPort() { + return serverPort; + } + } + ``` + + Ensure that you import the correct class: + ```java + import org.springframework.boot.test.web.server.LocalServerPort; + ``` + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide + - title: 'LocalServerPort API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/test/web/server/LocalServerPort.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00170 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.test.context.assertj.ApplicationContextAssertProvider.assertThat() + location: METHOD_CALL + description: The method `assertThat()` from `ApplicationContextAssertProvider` has been removed in Spring Boot 3.0. + message: | + The method `assertThat()` from `org.springframework.boot.test.context.assertj.ApplicationContextAssertProvider` has been removed in Spring Boot 3.0. + To migrate, replace calls to `assertThat()` from `ApplicationContextAssertProvider` with `assertThat(context)` from AssertJ. + + The `assertThat(context)` method from AssertJ is the new way to assert conditions on the Spring application context. It provides similar functionality with a modern API. + + To migrate: + 1. Replace any calls to `ApplicationContextAssertProvider.assertThat()` with `assertThat(context)`. + 2. Ensure that you have the correct AssertJ import: `import static org.assertj.core.api.Assertions.assertThat;`. + + Example migration: + + If you had the following code in Spring Boot 2: + ```java + @Autowired + private ApplicationContext context; + + @Test + public void testContext() { + assertThat(context).isNotNull(); + } + ``` + + You should update it to use AssertJ like so: + ```java + @Autowired + private ApplicationContext context; + + @Test + public void testContext() { + assertThat(context).isNotNull(); + } + ``` + + Ensure that you import the correct AssertJ method: + ```java + import static org.assertj.core.api.Assertions.assertThat; + ``` + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide + - title: 'AssertJ API documentation' + url: https://assertj.github.io/doc/ + + + + + + +- ruleID: spring-boot-2.x-to-3.0-removed-00180 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy + location: TYPE + description: SpringPhysicalNamingStrategy has been removed in Spring Boot 3.0 + message: | + The class `SpringPhysicalNamingStrategy` has been removed in Spring Boot 3.0. + This class was traditionally used to customize Hibernate's naming strategy for JPA entities. + + To migrate, replace usages of `SpringPhysicalNamingStrategy` with `CamelCaseToUnderscoresNamingStrategy`. + The new `CamelCaseToUnderscoresNamingStrategy` provides a similar functionality that converts CamelCase entity names to underscores, + ensuring compatibility with standard database naming conventions. + + Update your code to use `CamelCaseToUnderscoresNamingStrategy` instead, and ensure you configure it properly within your JPA setup, typically in + your `application.properties` or `application.yml` file. + + If you had previously customized the naming strategy, review your configuration for any specific requirements that may need adjustment with this new alternative. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'CamelCaseToUnderscoresNamingStrategy API documentation' + url: https://docs.jboss.org/hibernate/orm/6.6/javadocs/org/hibernate/boot/model/naming/CamelCaseToUnderscoresNamingStrategy.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00190 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.web.embedded.netty.SslServerCustomizer + location: METHOD_CALL + description: SslServerCustomizer has been removed in Spring Boot 3.0 + message: | + The class `SslServerCustomizer` has been removed in Spring Boot 3.0. + This class was used to customize SSL for embedded Netty servers in applications. Since there is no direct alternative to replace this functionality, you will have to reconsider how to set up SSL for your embedded Netty server. + + To migrate, you may need to implement SSL configuration directly using the underlying Netty server APIs or use a different mechanism to manage SSL settings outside of `SslServerCustomizer`. Review your SSL requirements and ensure that the appropriate SSL context is configured for your applications based on the new Spring Boot practices. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + + +- ruleID: spring-boot-2.x-to-3.0-removed-00200 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.web.reactive.WebFluxProperties.Cookie + location: METHOD_CALL + description: WebFluxProperties.Cookie has been removed in Spring Boot 3.0 + message: | + The class `WebFluxProperties.Cookie` has been removed in Spring Boot 3.0. + You should replace usages of `WebFluxProperties.Cookie` with the new `Cookie` class + available in the `org.springframework.http` package. + + The new `Cookie` class is a more streamlined and modern approach to handling cookies in a WebFlux environment. + Ensure that you update any configuration or logic that references `WebFluxProperties.Cookie` to utilize the `Cookie` class instead. + + Review your code to identify any usages of the old class and refactor appropriately. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Cookie API documentation' + url: https://docs.spring.io/spring-boot/docs/3.0.0-M4/api/org/springframework/boot/web/server/Cookie.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00210 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.web.reactive.WebFluxProperties.Session + location: METHOD_CALL + description: WebFluxProperties.Session has been removed in Spring Boot 3.0 + message: | + The `Session` class in `WebFluxProperties` has been removed in Spring Boot 3.0. + This class was previously used to configure reactive web session properties. + To migrate, replace usages of `WebFluxProperties.Session` with the new session management configuration available under `server.reactive.session`. + + You now need to specify session configurations directly under the `server.reactive.session` namespace in your application properties or yaml configuration. For example: + + ```yaml + server: + reactive: + session: + timeout: 30 # sets the session timeout in minutes + tracking-mode: cookie # sets the session tracking mode + ``` + + Ensure to review the relevant documentation for additional properties you may want to configure to achieve your desired session management in Spring Boot 3. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Spring Boot Reactive Session Configuration' + url: https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#application-properties.server.reactive.session + + +- ruleID: spring-boot-2.x-to-3.0-removed-00220 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.jdbc.DataSourceInitializationMode + location: TYPE + description: DataSourceInitializationMode has been removed in Spring Boot 3.0 + message: | + The enum `DataSourceInitializationMode` has been removed in Spring Boot 3.0. + This enum was used to determine the initialization mode of the database. + To migrate, replace usages of `DataSourceInitializationMode` with `DatabaseInitializationMode`. + + The new class `DatabaseInitializationMode` serves the same purpose with improved flexibility and better naming conventions. + You should update your configuration to reflect this change, for example: + + ```java + // Before + someDataSource.setInitializationMode(DataSourceInitializationMode.ALWAYS); + + // After + someDataSource.setInitializationMode(DatabaseInitializationMode.ALWAYS); + ``` + + Make sure to review your existing code to ensure that all instances of `DataSourceInitializationMode` are replaced with `DatabaseInitializationMode`. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'DatabaseInitializationMode API documentation' + url: https://docs.spring.io/spring-boot/docs/3.0.0-M4/api/org/springframework/boot/sql/init/DatabaseInitializationMode.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00230 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.autoconfigure.endpoint.expose.IncludeExcludeEndpointFilter.DefaultIncludes + location: METHOD_CALL + description: IncludeExcludeEndpointFilter.DefaultIncludes has been removed in Spring Boot 3.0 + message: | + The member `IncludeExcludeEndpointFilter.DefaultIncludes` has been removed in Spring Boot 3.0. + This class was previously used for managing the exposure of endpoints in a more selective manner. + + To migrate, you should replace usages of `IncludeExcludeEndpointFilter.DefaultIncludes` with the `EndpointExposure` configuration. + The `EndpointExposure` provides a more streamlined approach to manage which endpoints are included or excluded from exposure. + + You can do this by updating your application properties or Java configuration to define the endpoints you want to expose. + + Here’s a simple example of how to configure `EndpointExposure` in your application.properties: + + ```properties + management.endpoints.web.exposure.include=info,health + management.endpoints.web.exposure.exclude=shutdown + ``` + + Refer to the Spring Boot 3 documentation for more details on how to refactor your endpoint exposure settings. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'EndpointExposure API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/actuate/autoconfigure/endpoint/expose/EndpointExposure.html + +- ruleID: spring-boot-2.x-to-3.0-removed-00240 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.web.reactive.WebFluxProperties.SameSite + location: ENUM_CONSTANT + description: WebFluxProperties.SameSite has been removed in Spring Boot 3.0 + message: | + The enum constant `WebFluxProperties.SameSite` has been removed in Spring Boot 3.0. + To migrate, replace usages of `WebFluxProperties.SameSite` with `Cookie.SameSite`. + + The `Cookie.SameSite` enum provides the same functionality as the previous `WebFluxProperties.SameSite`, but is now located in a different class. + When updating your code, ensure that you refactor any references from `WebFluxProperties.SameSite` to `Cookie.SameSite`, and review any corresponding logic that may depend on this enumeration. + + Here is an example of how you might change your code: + ```java + // Old usage + WebFluxProperties.SameSite sameSite = WebFluxProperties.SameSite.STRICT; + + // New usage + Cookie.SameSite sameSite = Cookie.SameSite.STRICT; + ``` + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Cookie.SameSite API documentation' + url: https://docs.spring.io/spring-boot/docs/3.0.0-M4/api/org/springframework/boot/web/server/Cookie.SameSite.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00250 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.autoconfigure.web.server.LocalManagementPort + location: TYPE + description: LocalManagementPort has been removed in Spring Boot 3.0 + message: | + The `LocalManagementPort` class has been removed in Spring Boot 3.0. + Instead, you can use `LocalManagementPort` from the `org.springframework.boot.test.web.server` package. + + This change reflects a restructuring of the Spring Boot packages to improve clarity and organization. + To migrate, update your code to replace usages of `org.springframework.boot.actuate.autoconfigure.web.server.LocalManagementPort` + with `org.springframework.boot.test.web.server.LocalManagementPort`. + + Review your application context configuration and management properties to ensure they are aligned + with the new structure and intended usage of the class. Depending on your implementation, you may need + to adjust your test infrastructure to accommodate this new reference. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'LocalManagementPort API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/test/web/server/LocalManagementPort.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00260 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.rsocket.context.LocalRSocketServerPort + location: METHOD_CALL + description: LocalRSocketServerPort has been removed in Spring Boot 3.0 + message: | + The class `LocalRSocketServerPort` from the package `org.springframework.boot.rsocket.context` has been removed in Spring Boot 3.0. + It is no longer available for use as it was deprecated in favor of a new alternative. + + To migrate, you should replace usages of `LocalRSocketServerPort` with `org.springframework.boot.test.rsocket.LocalRSocketServerPort`. + This new alternative can be used in your testing configurations and offers better alignment with the newer structure in Spring Boot 3. + + Make sure to review your method calls where `LocalRSocketServerPort` was used and update these references accordingly to ensure compatibility with Spring Boot 3. + + Also, verify your test configurations to see how `LocalRSocketServerPort` fits within your existing setup. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'LocalRSocketServerPort API documentation' + url: https://docs.spring.io/spring-boot/docs/3.0.0-M4/api/org/springframework/boot/test/rsocket/server/LocalRSocketServerPort.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00270 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.web.server.LocalServerPort + location: METHOD_CALL + description: LocalServerPort has been removed in Spring Boot 3.0 + message: | + The class `LocalServerPort` has been removed in Spring Boot 3.0. + It was previously used alongside tests to specify the port a web server is running on during integration tests. + To migrate, replace usages of `LocalServerPort` with `org.springframework.boot.test.web.server.LocalServerPort`. + + The new class `org.springframework.boot.test.web.server.LocalServerPort` provides similar functionality for test scenarios. + Ensure your test class is properly annotated with `@SpringBootTest`, and update any method parameters to use the new `LocalServerPort` where needed. + + Here’s a quick example of the migration: + ```java + @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) + public class MyApplicationTests { + @LocalServerPort + private int port; + + // Your test methods here + } + ``` + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'LocalServerPort API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/test/web/server/LocalServerPort.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00280 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.test.context.assertj.ApplicationContextAssertProvider.assertThat + location: METHOD_CALL + description: ApplicationContextAssertProvider.assertThat() has been removed in Spring Boot 3.0 + message: | + The method `ApplicationContextAssertProvider.assertThat()` has been removed in Spring Boot 3.0. + Instead, use the `assertThat(context)` method provided by AssertJ to perform assertions on the application context. + + To update your code, replace calls to `ApplicationContextAssertProvider.assertThat()` with `assertThat(context)`, + where `context` is the instance of `ApplicationContext` you are working with. + + This change is part of a broader effort in Spring Boot to streamline assertions and leverage the capabilities of + AssertJ, providing a more fluent and expressive assertion syntax. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'AssertJ Documentation' + url: https://assertj.github.io/doc/ + + +- ruleID: spring-boot-2.x-to-3.0-removed-00290 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.test.json.JsonContent.assertThat + location: METHOD_CALL + description: JsonContent.assertThat() has been removed in Spring Boot 3.0 + message: | + The method `JsonContent.assertThat()` has been removed in Spring Boot 3.0. + Instead, you can use the AssertJ method `assertThat(context)` for asserting JSON content. + + To migrate, replace calls to `JsonContent.assertThat(jsonContent)` with `assertThat(jsonContent).isEqualTo(expectedJson)` or any other appropriate assertion from the AssertJ library that matches your use case. Ensure you are importing the correct AssertJ classes to utilize its fluent assertion capabilities effectively. + + Additionally, you may need to review any related assertions and adapt them accordingly to align with AssertJ's assertThat API, as it may have different method signatures or requirements. + + links: + - title: 'AssertJ - Assertions for testing Java' + url: https://github.com/joel-costigliola/assertj-core + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + + +- ruleID: spring-boot-2.x-to-3.0-removed-00300 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.context.properties.ConfigurationPropertiesReportEndpoint.configureObjectMapper + location: METHOD_CALL + description: configureObjectMapper has been removed in Spring Boot 3.0 + message: | + The method `configureObjectMapper(ObjectMapper)` has been removed in Spring Boot 3.0. + Instead, you should use `configureJsonMapper(JsonMapper.Builder)` to configure the JSON mapper + for `ConfigurationPropertiesReportEndpoint`. + + To migrate, locate any usages of `configureObjectMapper` in your code and replace them + with `configureJsonMapper` as follows: + + ``` + import com.fasterxml.jackson.databind.json.JsonMapper; + + // Old usage + configurationPropertiesReportEndpoint.configureObjectMapper(objectMapper); + + // New usage + configurationPropertiesReportEndpoint.configureJsonMapper(JsonMapper.builder()); + ``` + + This change optimizes configuration and aligns with the latest practices in Spring Boot. + Ensure you review the updated API documentation for any additional configuration options you may need. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'ConfigurationPropertiesReportEndpoint API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/actuate/context/properties/ConfigurationPropertiesReportEndpoint.html + + + +- ruleID: spring-boot-2.x-to-3.0-removed-00310 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.loader.Launcher.createClassLoader + location: METHOD_CALL + description: createClassLoader(List) has been removed in Spring Boot 3.0 + message: | + The method `createClassLoader(List)` has been removed in Spring Boot 3.0. + You should replace its usage with `createClassLoader(Iterator)` instead. + + To migrate, update your code to convert the `List` into an `Iterator`. + This can typically be done using the `listIterator()` method or the `iterator()` method on the list. + Ensure that any code that previously relied on the specific characteristics of `List` is properly adjusted to use `Iterator`. + + Here’s an example of how you can rewrite the code: + + ```java + // Old code + List archives = ...; // your list of archives + ClassLoader classLoader = Launcher.createClassLoader(archives); + + // New code + Iterator archivesIterator = archives.iterator(); + ClassLoader classLoader = Launcher.createClassLoader(archivesIterator); + ``` + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Launcher API documentation' + url: https://docs.spring.io/spring-boot/docs/3.0.0-M4/api/org/springframework/boot/loader/Launcher.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00320 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.builder.SpringApplicationBuilder.createSpringApplication + location: METHOD_CALL + description: createSpringApplication(Class) method has been removed in Spring Boot 3.0 + message: | + The method `createSpringApplication(Class)` has been removed in Spring Boot 3.0. + This method was previously used to create a `SpringApplication` instance for a given application class. + To migrate, replace usages of `createSpringApplication(Class)` with `createSpringApplication(ResourceLoader, Class)`. + + The new method `createSpringApplication(ResourceLoader, Class)` allows you to pass a `ResourceLoader` instance, providing more flexibility for loading resources. + Ensure that when you replace this method, you create an instance of `ResourceLoader` and pass it as the first argument along with your application class. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'SpringApplicationBuilder API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/builder/SpringApplicationBuilder.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00330 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.loader.archive.Archive.forEach + location: METHOD_CALL + description: The method forEach has been removed from Archive in Spring Boot 3.0 + message: | + The method `Archive.forEach(Consumer)` has been removed in Spring Boot 3.0. + This method was previously used for iterating over each entry in an archive. + + To migrate, replace calls to `Archive.forEach` with the equivalent functionality provided by `JarFile`. + You can create a `JarFile` instance on your archive, and then use the `entries()` method to obtain an enumeration of the ZIP file entries, which you can iterate through using a `while` loop or a similar construct. + + Here's an example of the migration: + + ```java + // Old code using Archive.forEach + archive.forEach(entry -> { + // Process each entry + }); + + // New code using JarFile + try (JarFile jarFile = new JarFile(archivePath)) { + Enumeration entries = jarFile.entries(); + while (entries.hasMoreElements()) { + JarEntry entry = entries.nextElement(); + // Process each entry + } + } catch (IOException e) { + // Handle exception + } + ``` + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'JarFile API documentation' + url: https://docs.oracle.com/javase/8/docs/api/java/util/jar/JarFile.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00340 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.jdbc.DatabaseDriver.fromDataSource + location: METHOD_CALL + description: DatabaseDriver.fromDataSource method has been removed in Spring Boot 3.0 + message: | + The method `DatabaseDriver.fromDataSource(DataSource)` has been removed in Spring Boot 3.0. + This method was previously used to retrieve the `DatabaseDriver` based on a `DataSource` instance. + Since there is no direct alternative for this method, you will need to refactor your code to handle + database driver determination manually or use another method that fits your requirements depending + on your specific application context. Consider utilizing driver-specific connection configurations or + directly using JDBC APIs to manage database connections as needed. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + + +- ruleID: spring-boot-2.x-to-3.0-removed-00350 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.loader.Launcher.getClassPathArchives + location: METHOD_CALL + description: getClassPathArchives() has been removed in Spring Boot 3.0 + message: | + The method `getClassPathArchives()` has been removed in Spring Boot 3.0. + Instead of using `getClassPathArchives()`, you should now use `getClassPathArchivesIterator()`. + + The new method `getClassPathArchivesIterator()` returns an iterator for classpath archives, + allowing for more efficient processing without returning a full list up front, reducing memory usage. + Update your code to replace calls to `getClassPathArchives()` with `getClassPathArchivesIterator()` + and adjust the logic accordingly to work with the iterator. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Launcher API documentation' + url: https://docs.spring.io/spring-boot/docs/3.0.0-M4/api/org/springframework/boot/loader/Launcher.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00360 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.mustache.MustacheProperties.getContentType + location: METHOD_CALL + description: MustacheProperties.getContentType method has been removed in Spring Boot 3.0 + message: | + The method `getContentType()` from `MustacheProperties` has been removed in Spring Boot 3.0. + This method was used to retrieve the content type for Mustache templates. + Since there is no direct alternative for this method, you will need to review your code to determine how the content type + was being used and replace it accordingly. + + Consider manually defining the content type where necessary, or ensure that any configuration settings + for Mustache are updated appropriately to comply with the latest standards in Spring Boot 3. You may + need to adjust template rendering logic or other related components that relied on this value. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'MustacheProperties API documentation' + url: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#appendix-configuration-properties.spring.mustache + + +- ruleID: spring-boot-2.x-to-3.0-removed-00370 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties.getDateFormat + location: METHOD_CALL + description: WebMvcProperties.getDateFormat() has been removed in Spring Boot 3.0 + message: | + The method `getDateFormat()` from `WebMvcProperties` has been removed in Spring Boot 3.0. + This method was used to retrieve the date format for web MVC applications. + + Since there is no direct alternative, you will need to manually adjust your date formatting logic. + Examine your application's usage of this method and replace it with an appropriate date format logic + of your own, potentially leveraging Java's `java.time.format.DateTimeFormatter` or custom configurations + as per your requirements. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Java DateTimeFormatter documentation' + url: https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00380 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.autoconfigure.OnEndpointElementCondition.getDefaultEndpointsOutcome + location: METHOD_CALL + description: getDefaultEndpointsOutcome has been removed in Spring Boot 3.0 + message: | + The method `getDefaultEndpointsOutcome(ConditionContext)` has been removed in Spring Boot 3.0. + This method was used to retrieve the default endpoints outcome in the context of Spring Boot Actuator. + + To migrate, you should replace calls to `getDefaultEndpointsOutcome(ConditionContext)` with `getDefaultOutcome(ConditionContext, AnnotationAttributes)`. + + This new method `getDefaultOutcome(ConditionContext, AnnotationAttributes)` provides additional flexibility, allowing you to pass `AnnotationAttributes` for enhanced context management. Ensure to adjust your method calls accordingly, and provide the required `AnnotationAttributes` parameter to achieve the intended functionality. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'OnEndpointElementCondition API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/actuate/autoconfigure/OnEndpointElementCondition.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00390 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.autoconfigure.metrics.export.dynatrace.DynatraceProperties.getDeviceId + location: METHOD_CALL + description: DynatraceProperties.getDeviceId() has been removed in Spring Boot 3.0 + message: | + The method `getDeviceId()` from class `DynatraceProperties` has been removed in Spring Boot 3.0. + This method was previously used to retrieve the device ID for Dynatrace metrics export. + Since there is no direct alternative for this method, you will need to remove any references to `getDeviceId()` from your codebase. + + Review your implementation to determine how the absence of this method affects your application's functionality. + You may need to refactor the code to either omit the need for the device ID or handle Dynatrace configuration in a different way. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + + +- ruleID: spring-boot-2.x-to-3.0-removed-00400 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.web.reactive.error.AbstractErrorWebExceptionHandler.getErrorAttributes(ServerRequest, boolean) + location: METHOD_CALL + description: Method `getErrorAttributes(ServerRequest, boolean)` has been removed in Spring Boot 3.0 + message: | + The method `getErrorAttributes(ServerRequest, boolean)` has been removed in Spring Boot 3.0. + You should replace calls to this method with the new method `getErrorAttributes(ServerRequest, ErrorAttributeOptions)`, + which allows for more flexible error attribute retrieval. + + When migrating, ensure you update the second argument from a `boolean` (which indicated whether to include a stack trace) + to an instance of `ErrorAttributeOptions`. You can use `ErrorAttributeOptions.defaults()` to specify default behavior, or customize + it as necessary for your application's requirements. Here's an example of how to adapt your method call: + + Before: + ```java + errorHandler.getErrorAttributes(request, false); + ``` + + After: + ```java + errorHandler.getErrorAttributes(request, ErrorAttributeOptions.defaults()); + ``` + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'AbstractErrorWebExceptionHandler API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/web/reactive/error/AbstractErrorWebExceptionHandler.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00410 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.autoconfigure.metrics.export.dynatrace.DynatraceProperties.getGroup + location: METHOD_CALL + description: DynatraceProperties.getGroup() has been removed in Spring Boot 3.0 + message: | + The method `DynatraceProperties.getGroup()` has been removed in Spring Boot 3.0. + There is no direct alternative for this method. As part of your migration, you will need to review + your codebase to assess how this method was being used. + + Depending on the context, you may need to consider using other properties or methods that + provide the metrics configuration you require. Ensure to test your application post-migration + to confirm that the absence of this method does not affect your metrics reporting. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Dynatrace Properties API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/actuate/autoconfigure/metrics/export/dynatrace/DynatraceProperties.html + +- ruleID: spring-boot-2.x-to-3.0-removed-00420 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.security.saml2.Saml2RelyingPartyProperties.Registration.getIdentityprovider + location: METHOD_CALL + description: getIdentityprovider() method has been removed in Spring Boot 3.0 + message: | + The method `getIdentityprovider()` has been removed from `Saml2RelyingPartyProperties.Registration` in Spring Boot 3.0. + This method was previously used to retrieve the identity provider configurations for SAML2 security. + + To migrate, replace calls to `getIdentityprovider()` with `getAssertingparty()`, which serves as the new method to obtain + the asserting party configurations. Ensure you also review and adapt any associated logic in your application + to accommodate this change, as the retrieval of these properties might affect authentication flows. + + Always refer to the latest Spring Security SAML documentation for best practices and additional configuration details + regarding asserting parties. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Saml2RelyingPartyProperties API documentation' + url: https://docs.spring.io/spring-security/site/docs/current/reference/html5/#saml2 + +- ruleID: spring-boot-2.x-to-3.0-removed-00430 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.security.oauth2.resource.OAuth2ResourceServerProperties.Jwt.getJwsAlgorithm + location: METHOD_CALL + description: The getJwsAlgorithm() method has been removed from OAuth2ResourceServerProperties.Jwt in Spring Boot 3.0 + message: | + The method `getJwsAlgorithm()` has been removed from `OAuth2ResourceServerProperties.Jwt` in Spring Boot 3.0. + This method was previously used to retrieve the JWS (JSON Web Signature) Algorithm for JWT (JSON Web Tokens) configuration. + + As there is no direct alternative for this method, you will need to review your implementation to determine + how JWS algorithms were being used in your application. Depending on your application's security requirements, + consider configuring JWT through other means provided by Spring Security's OAuth2 Resource Server support. + You may need to implement custom logic to handle JWT validation or processing, or align your security configurations + with the updated practices outlined in the Spring Security documentation. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Spring Security OAuth2 Resource Server documentation' + url: https://docs.spring.io/spring-security/reference/servlet/oauth2/resource-server/index.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00440 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.loader.archive.Archive.getNestedArchives(org.springframework.boot.loader.archive.Archive.EntryFilter) + location: METHOD_CALL + description: getNestedArchives(Archive.EntryFilter) has been removed in Spring Boot 3.0 + message: | + The method `getNestedArchives(Archive.EntryFilter)` has been removed from the `Archive` class in Spring Boot 3.0. + Instead, you should use the new method signature: `getNestedArchives(EntryFilter, EntryFilter)`. + + This new method allows you to specify two filters, both of type `EntryFilter`, which provides more flexibility in defining + how nested archives are filtered. To migrate: + + - Update your method calls from `getNestedArchives(Archive.EntryFilter)` to `getNestedArchives(EntryFilter, EntryFilter)`. + - You need to provide two `EntryFilter` instances, which can be the same or different, depending on your desired filtering criteria. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Archive API documentation' + url: https://docs.spring.io/spring-boot/api/java/org/springframework/boot/loader/launch/Archive.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00450 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.context.config.ConfigData.getOptions() + location: METHOD_CALL + description: ConfigData.getOptions() has been removed in Spring Boot 3.0 + message: | + The method `ConfigData.getOptions()` has been removed in Spring Boot 3.0. + To migrate, replace calls to `ConfigData.getOptions()` with `ConfigData.getOptions(PropertySource)`. + + When using `getOptions(PropertySource)`, make sure to pass the appropriate `PropertySource` instance that you want to retrieve options for. This change allows for more explicit and refined option retrieval based on the specified property source, enhancing flexibility in configuration management. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'ConfigData API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/context/config/ConfigData.html#getOptions(org.springframework.core.env.PropertySource) + + +- ruleID: spring-boot-2.x-to-3.0-removed-00460 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.flyway.FlywayProperties.getOracleKerberosConfigFile + location: METHOD_CALL + description: getOracleKerberosConfigFile method has been removed in Spring Boot 3.0 + message: | + The method `getOracleKerberosConfigFile()` from `FlywayProperties` has been removed in Spring Boot 3.0. + This method was previously used to retrieve the configuration file path for Oracle Kerberos. + + Since there is no direct alternative to this method, you should evaluate your application's dependency on this functionality. + If you were using this method, consider reassessing how your application integrates with Oracle Kerberos and implement any necessary changes + in your configuration management or connection handling. + + This may involve implementing custom configuration management or using a different approach to handle Oracle Kerberos connections. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide + + +- ruleID: spring-boot-2.x-to-3.0-removed-00470 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.autoconfigure.metrics.export.ganglia.GangliaProperties.getProtocolVersion + location: METHOD_CALL + description: getProtocolVersion method has been removed in Spring Boot 3.0 + message: | + The method `getProtocolVersion()` from the class `GangliaProperties` has been removed in Spring Boot 3.0. + There is no direct alternative for this method, which means any configuration or functionality relying on this method must be refactored. + + To migrate: + - Review your usage of `getProtocolVersion()` in your codebase. + - Determine if any specific protocol versioning was essential for your application; if so, adjust your application logic accordingly. + - If your application relies on certain features or behavior that were impacted by this method, consider adjusting the properties configuration of your application or using alternative metrics exporting options. + + Always refer to the Spring Boot 3.0 migration guide for comprehensive guidance on any new configuration or features that may suit your application's needs. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + + +- ruleID: spring-boot-2.x-to-3.0-removed-00480 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.autoconfigure.metrics.export.ganglia.GangliaProperties.getRateUnits + location: METHOD_CALL + description: getRateUnits() has been removed in Spring Boot 3.0 + message: | + The method `getRateUnits()` from `GangliaProperties` has been removed in Spring Boot 3.0. + As a result, any code relying on this method will need to be revised. + + Since there is no direct alternative for `getRateUnits()`, you will need to assess the usage of this method within your application. Check your metrics configuration related to Ganglia, and consider removing or refactoring the relevant parts of your code. If you were previously using this method to obtain rate units for metrics publishing, you may need to replace that logic with a custom implementation that aligns with your monitoring requirements or adopt a different metrics reporting strategy. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + + +- ruleID: spring-boot-2.x-to-3.0-removed-00490 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.autoconfigure.metrics.export.dynatrace.DynatraceProperties.getTechnologyType() + location: METHOD_CALL + description: getTechnologyType() has been removed from DynatraceProperties in Spring Boot 3.0 + message: | + The method `getTechnologyType()` in `DynatraceProperties` has been removed in Spring Boot 3.0. + This method was previously used to retrieve the technology type configured for Dynatrace metrics export. + To migrate, you will need to remove any references to `getTechnologyType()` and evaluate your application's + functionality regarding Dynatrace metrics. Since there is no direct alternative provided for this removed method, + please consult the updated Spring Boot Actuator documentation to adjust your application logic accordingly. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Spring Boot Actuator documentation' + url: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#actuator + + +- ruleID: spring-boot-2.x-to-3.0-removed-00500 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.web.ServerProperties.Undertow.isAllowEncodedSlash + location: METHOD_CALL + description: isAllowEncodedSlash() method has been removed in Spring Boot 3.0 + message: | + The method `isAllowEncodedSlash()` from `ServerProperties.Undertow` has been removed in Spring Boot 3.0. + This method was used to determine whether encoded slashes are allowed in the request URL. + + Since there is no alternative provided for this functionality, you will need to revisit your application logic to handle URL encoding as required by your use case. + Review how your application manages encoded slashes in requests, and implement any necessary checks or adjustments to accommodate this change. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'ServerProperties.Undertow documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/web/ServerProperties.Undertow.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00510 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.mustache.MustacheProperties.isAllowRequestOverride + location: METHOD_CALL + description: The method isAllowRequestOverride has been removed in Spring Boot 3.0 + message: | + The method `isAllowRequestOverride()` has been removed in Spring Boot 3.0. + There is currently no direct alternative provided by the framework. + + To migrate, you will need to review your application code where this method was used and determine if the functionality needs to be replaced, modified, or removed entirely. + The context in which this method was called will guide you on how to adjust your implementation. + Ensure you understand the purpose of this configuration and adjust your template rendering logic as needed. + + This may involve switching to an alternative method of setting up Mustache properties or reviewing the overall configuration of your Mustache templates. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Mustache properties documentation' + url: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-mustache + + +- ruleID: spring-boot-2.x-to-3.0-removed-00520 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.mustache.MustacheProperties.isAllowSessionOverride + location: METHOD_CALL + description: isAllowSessionOverride() method has been removed in Spring Boot 3.0 + message: | + The method `isAllowSessionOverride()` from `MustacheProperties` has been removed in Spring Boot 3.0. + If your code references this method, you need to remove these invocations and adjust your logic accordingly. + + Since there is no direct alternative for this method, you will need to evaluate whether the functionality previously provided by this method is essential to your application and implement any necessary workarounds or refactoring to accommodate the change. + + Please review your Mustache-related configurations and behavior to ensure they still meet the application's requirements after removing the references to `isAllowSessionOverride()`. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + + +- ruleID: spring-boot-2.x-to-3.0-removed-00530 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.mustache.MustacheProperties.isCache + location: METHOD_CALL + description: MustacheProperties.isCache() has been removed in Spring Boot 3.0 + message: | + The method `MustacheProperties.isCache()` has been removed in Spring Boot 3.0. + This method was used for determining whether server-side caching was enabled for mustache templates. + + To migrate, you need to remove any calls to `isCache()` from your codebase as there is no direct alternative or replacement for this functionality. + If caching was previously utilized, reassess your caching strategy for mustache templates in your application. Consider using caching provided by external libraries or implement your caching logic if necessary. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'MustacheProperties API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/mustache/MustacheProperties.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00540 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.mustache.MustacheProperties.isExposeRequestAttributes + location: METHOD_CALL + description: isExposeRequestAttributes() method has been removed in Spring Boot 3.0 + message: | + The method `isExposeRequestAttributes()` from `MustacheProperties` has been removed in Spring Boot 3.0. + This method was used to determine if request attributes should be exposed to the Mustache templates. + + Since there is no direct alternative for this method, you need to review the usage in your code and update your Mustache template integration accordingly. + Ensure that your template rendering logic properly handles the required attributes that were previously exposed. + Consider refactoring your templates or application logic to ensure that necessary data is passed directly to the Mustache context. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'MustacheProperties JavaDoc' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/mustache/MustacheProperties.html + + + +- ruleID: spring-boot-2.x-to-3.0-removed-00550 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.mustache.MustacheProperties.isExposeSessionAttributes + location: METHOD_CALL + description: isExposeSessionAttributes() has been removed in Spring Boot 3.0 + message: | + The method `isExposeSessionAttributes()` from `MustacheProperties` has been removed in Spring Boot 3.0. + This method was used to determine whether to expose session attributes in Mustache views. + + To migrate, you should remove any usages of `isExposeSessionAttributes()` from your code. There is no direct alternative, + as the feature has been eliminated in Spring Boot 3 in favor of simplified property management. + Review your configuration and code for handling session attributes, and adapt it according to your application's requirements + to ensure compatibility with the new version. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + + +- ruleID: spring-boot-2.x-to-3.0-removed-00560 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.mustache.MustacheProperties.isExposeSpringMacroHelpers + location: METHOD_CALL + description: isExposeSpringMacroHelpers method has been removed in Spring Boot 3.0 + message: | + The method `isExposeSpringMacroHelpers()` has been removed in Spring Boot 3.0. + This method was previously used to determine whether Spring MVC macro helpers should be exposed to Mustache templates. + + Since there is no direct alternative for this method, you will need to review your usage of this method in your Mustache template rendering logic and remove any calls to it. + Consider whether exposing Spring MVC macro helpers is still necessary for your application's requirements, and if so, explore alternative approaches that fit within the updated framework structure. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'MustacheProperties documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/mustache/MustacheProperties.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00570 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties.Contentnegotiation.isFavorPathExtension + location: METHOD_CALL + description: isFavorPathExtension() method has been removed in Spring Boot 3.0 + message: | + The method `isFavorPathExtension()` from `WebMvcProperties.Contentnegotiation` has been removed in Spring Boot 3.0. + This method was used to determine whether the application favors path extensions over the content negotiation strategy. + + Since there is no direct alternative for this method, you will need to review and adjust your content negotiation strategy in your Spring MVC configuration. + You may need to implement custom logic for content negotiation based on your application's needs, as this feature is no longer supported by the framework. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + + +- ruleID: spring-boot-2.x-to-3.0-removed-00580 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.flyway.FlywayProperties.isIgnoreFutureMigrations + location: METHOD_CALL + description: isIgnoreFutureMigrations() has been removed in Spring Boot 3.0 + message: | + The method `isIgnoreFutureMigrations()` has been removed in Spring Boot 3.0. + This method was used to determine if future migrations should be ignored during the Flyway migration process. + + Since there is no direct alternative for this method, you will need to review your migration strategy and decide how to handle future migrations. + You may need to explicitly manage or configure migration behavior in your application's code, as this functionality will no longer be controlled through `FlywayProperties`. + + Ensure to test your migration thoroughly, as any reliance on this method will require adjustments in your migration handling logic or configurations. + + links: + - title: 'Flyway migration guide for Spring Boot 3.0' + url: https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-dependency-versions.html#appendix-dependency-versions.flyway + - title: 'Flyway documentation' + url: https://flywaydb.org/documentation/ + + +- ruleID: spring-boot-2.x-to-3.0-removed-00590 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.flyway.FlywayProperties.isIgnoreIgnoredMigrations + location: METHOD_CALL + description: isIgnoreIgnoredMigrations() method has been removed in Spring Boot 3.0 + message: | + The method `isIgnoreIgnoredMigrations()` has been removed from the `FlywayProperties` class in Spring Boot 3.0. + This method was previously used to check whether ignored migrations should be ignored or not. + + Since there is no direct alternative for this method, you will need to review your existing Flyway configuration + and application logic to determine if the behavior related to ignored migrations can be refactored in your application. + It is encouraged to thoroughly test your migration configurations to ensure compliance with your migration strategy. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#flyway + + +- ruleID: spring-boot-2.x-to-3.0-removed-00600 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.flyway.FlywayProperties.isIgnoreMissingMigrations + location: METHOD_CALL + description: isIgnoreMissingMigrations method has been removed in Spring Boot 3.0 + message: | + The method `isIgnoreMissingMigrations()` from `FlywayProperties` has been removed in Spring Boot 3.0. + This method was previously used to check if missing migrations should be ignored during Flyway migration. + + Since there is no direct alternative provided for this method, it is recommended to review your migration strategy and determine how you would like to handle missing migrations. + You may want to consider configuring Flyway's behavior regarding missing migrations using properties like: + - `flyway.ignoreMissingMigrations` in your application.properties or YAML configuration. + + Please consult the Flyway documentation for more details on how to configure migration options according to your project needs. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Flyway Configuration Documentation' + url: https://flywaydb.org/documentation/configuration/ + +- ruleID: spring-boot-2.x-to-3.0-removed-00610 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.flyway.FlywayProperties.isIgnorePendingMigrations + location: METHOD_CALL + description: isIgnorePendingMigrations() has been removed in Spring Boot 3.0 + message: | + The method `isIgnorePendingMigrations()` has been removed in Spring Boot 3.0. + Previously, it was used to determine whether Flyway should ignore pending migrations. + + In Spring Boot 3.0, there is no direct alternative for this method. + You will need to review your usage of this method and adjust your migration strategy accordingly. + + If you relied on this property in your application, consider implementing your custom logic to handle pending migrations, + or remove any conditions that rely on this method. Please ensure your application’s behavior remains consistent with your expectations + after this change. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide + - title: 'Flyway Properties in Spring Boot 3.0' + url: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#appendix.flyway.auto-configuration + + +- ruleID: spring-boot-2.x-to-3.0-removed-00620 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.kafka.KafkaProperties.Listener.isOnlyLogRecordMetadata + location: METHOD_CALL + description: isOnlyLogRecordMetadata() has been removed in Spring Boot 3.0 + message: | + The method `isOnlyLogRecordMetadata()` in `KafkaProperties.Listener` has been removed in Spring Boot 3.0. + This method was used to determine if only log record metadata should be logged for Kafka consumers. + As there is no direct alternative provided for this method, you need to examine your application’s logging needs + regarding Kafka and decide how to handle the logging of record metadata. + + You might consider implementing your own logging strategy or adjusting the Kafka consumer properties + according to your requirements. Specifically, review how you are currently handling consumer logging, + and explore other available features in Spring Kafka to ensure appropriate logging behavior. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + + +- ruleID: spring-boot-2.x-to-3.0-removed-00630 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties.Pathmatch.isUseRegisteredSuffixPattern + location: METHOD_CALL + description: isUseRegisteredSuffixPattern() method has been removed in Spring Boot 3.0 + message: | + The method `isUseRegisteredSuffixPattern()` in `WebMvcProperties.Pathmatch` has been removed in Spring Boot 3.0. + This method was used to determine if the registered suffix pattern should be used in path matching. + + As there is no alternative to this method, you may need to refactor your code to remove dependencies on this method. + Review your implementation to handle suffix patterns directly as needed according to your application requirements. + You might also want to update your application configuration to ensure proper handling of path matching and suffix behavior, + aligning with the latest Spring Boot practices. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + + +- ruleID: spring-boot-2.x-to-3.0-removed-00640 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties.Pathmatch.isUseSuffixPattern + location: METHOD_CALL + description: isUseSuffixPattern() method has been removed in Spring Boot 3.0 + message: | + The method `isUseSuffixPattern()` in `WebMvcProperties.Pathmatch` has been removed in Spring Boot 3.0. + This method was typically used to determine if suffix pattern matching was enabled for path matching in web applications. + Since there is no direct alternative, you will need to review your application's path matching configurations. + + In Spring Boot 3.0, consider evaluating how your application handles URL patterns and whether suffix pattern matching is relevant to your use case. + You might want to implement custom configurations based on the requirements of your application. Review your routing and handling of requests to ensure that they function as expected without this method. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'WebMvcProperties API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/web/servlet/WebMvcProperties.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00650 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.loader.archive.JarFileArchive.iterator + location: METHOD_CALL + description: JarFileArchive.iterator() method has been removed in Spring Boot 3.0 + message: | + The method `JarFileArchive.iterator()` has been removed in Spring Boot 3.0. + There is no direct alternative for this method. + + If your application relies on iterating through the contents of a JAR file, you will have to refactor your code. + Consider using alternative approaches to access the contents of JAR files, such as using `JarFile` from `java.util.jar` package, + or re-implementing the required functionality in a different way that fits your application's needs. + + Be sure to thoroughly test your application after making these changes to ensure that JAR file access is functioning as expected. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Java JAR File API documentation' + url: https://docs.oracle.com/javase/8/docs/api/java/util/jar/JarFile.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00660 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.loader.archive.Archive.iterator + location: METHOD_CALL + description: Archive.iterator() has been removed in Spring Boot 3.0 + message: | + The method `Archive.iterator()` has been removed in Spring Boot 3.0. + This method was used to iterate over the elements of the `Archive` class. + To migrate, you should now use `JarFile` to access jar files directly. + + You can obtain an instance of `JarFile` using the `java.util.jar.JarFile` class, + and then use its methods to access the entries in the JAR file. For example: + + ```java + try (JarFile jarFile = new JarFile("path/to/your/archive.jar")) { + Enumeration entries = jarFile.entries(); + while (entries.hasMoreElements()) { + JarEntry entry = entries.nextElement(); + // Process the entry + } + } catch (IOException e) { + // Handle the exception + } + ``` + + Update your code to replace usages of `Archive.iterator()` with the appropriate usage of `JarFile` + and revise your logic accordingly to accommodate the new approach. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'JarFile API documentation' + url: https://docs.oracle.com/javase/8/docs/api/java/util/jar/JarFile.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00670 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.loader.archive.ExplodedArchive.iterator + location: METHOD_CALL + description: The iterator() method of ExplodedArchive has been removed in Spring Boot 3.0 + message: | + The method `iterator()` from the class `ExplodedArchive` has been removed in Spring Boot 3.0. + This method previously provided an `Iterator` for iterating over the entries in an exploded archive. + Since there is no direct replacement for this method, you will need to implement custom logic for your use case. + + To migrate, consider using alternatives like accessing `getEntries()` method of `ExplodedArchive`, + which returns a collection of entries from the archive. You can then create your own iteration mechanism + to process those entries based on your application’s requirements. + + Review your code for instances where `iterator()` was used and refactor it accordingly to ensure + your application's functionality remains intact. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'ExplodedArchive API documentation' + url: https://docs.spring.io/spring-boot/docs/3.0.0-M4/api/org/springframework/boot/loader/archive/ExplodedArchive.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00680 + category: mandatory + effort: 4 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.jooq.JooqAutoConfiguration.DslContextConfiguration.jooqProvidersDefaultConfigurationCustomizer + location: METHOD_CALL + description: jooqProvidersDefaultConfigurationCustomizer method has been removed in Spring Boot 3.0 + message: | + The method `jooqProvidersDefaultConfigurationCustomizer` has been removed in Spring Boot 3.0. + This method was responsible for customizing the default configuration for JOOQ providers. + + Since there is no direct alternative, you will need to refactor your code to handle JOOQ provider configurations differently. + Review your application for any usages of `jooqProvidersDefaultConfigurationCustomizer` and adapt your configuration + to comply with the new Spring Boot 3 practices regarding JOOQ. You might need to leverage different approaches for + setting up or customizing JOOQ settings according to your version and requirements. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + + +- ruleID: spring-boot-2.x-to-3.0-removed-00690 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.logging.log4j2.Log4J2LoggingSystem.loadConfiguration(String, LogFile) + location: METHOD_CALL + description: Log4J2LoggingSystem.loadConfiguration(String, LogFile) has been removed in Spring Boot 3.0 + message: | + The method `Log4J2LoggingSystem.loadConfiguration(String, LogFile)` has been removed in Spring Boot 3.0. + To migrate, replace usages of `loadConfiguration(String, LogFile)` with the new method + `Log4J2LoggingSystem.loadConfiguration(String, LogFile, List)`. + + The new method provides additional functionality, allowing you to pass a `List` of configuration properties. + Update your method calls to include this new parameter. For example, you can create a `List` of properties + and pass it as the third argument: + + ```java + List configProperties = Arrays.asList("property1=value1", "property2=value2"); + log4j2LoggingSystem.loadConfiguration(configFile, logFile, configProperties); + ``` + + This ensures that logging configuration can be more flexible and adaptable to various requirements in your + Spring Boot application. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Log4J2LoggingSystem API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/logging/log4j2/Log4J2LoggingSystem.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00700 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.test.context.runner.AbstractApplicationContextRunner.newInstance + location: METHOD_CALL + description: AbstractApplicationContextRunner.newInstance has been removed in Spring Boot 3.0 + message: | + The method `AbstractApplicationContextRunner.newInstance` has been removed in Spring Boot 3.0. + This method was previously used for creating an instance of the `AbstractApplicationContextRunner` + with specific parameters related to testing. + + Since there is no direct alternative to this method, you will need to refactor your test code + to instantiate `AbstractApplicationContextRunner` types differently. Depending on your needs, + consider using different constructors of available context runner classes or employing + the appropriate Spring testing utilities. You may also need to revisit your test logic to accommodate + these changes, ensuring that your integration and unit tests continue to function correctly. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'AbstractApplicationContextRunner API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/test/context/runner/AbstractApplicationContextRunner.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00710 + category: mandatory + effort: 4 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.test.context.runner.ApplicationContextRunner.newInstance + location: METHOD_CALL + description: ApplicationContextRunner.newInstance has been removed in Spring Boot 3.0 + message: | + The method `ApplicationContextRunner.newInstance` has been removed in Spring Boot 3.0. + This method was previously used for creating instances of `ApplicationContextRunner` + with various parameters for testing configurations. + + Since there is no direct alternative for this method, you will need to refactor the code + that relies on `newInstance`. The typical approach would be to instantiate + `ApplicationContextRunner` directly without the `newInstance` method, and use its + provided methods to customize the test context as needed. + + You may need to adapt your test setup to match the current testing practices with + the `ApplicationContextRunner`, and review any context initializers, property values, + or configurations that were passed in as arguments to the `newInstance` method. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'ApplicationContextRunner API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/test/context/runner/ApplicationContextRunner.html + + + +- ruleID: spring-boot-2.x-to-3.0-removed-00720 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner.newInstance + location: METHOD_CALL + description: newInstance method of ReactiveWebApplicationContextRunner has been removed in Spring Boot 3.0 + message: | + The method `ReactiveWebApplicationContextRunner.newInstance(...)` has been removed in Spring Boot 3.0. + This method was typically used for creating an instance of `ReactiveWebApplicationContextRunner` with a set of parameters, including initializers and test property values. + + To migrate your code, you will need to refactor your tests that relied on `newInstance` and use an alternative approach for creating and configuring your `ReactiveWebApplicationContextRunner` instances. + You can typically initialize a new `ReactiveWebApplicationContextRunner` without the `newInstance` method by directly using its constructor. + Review your code for places where this method was called and adjust it accordingly to remove the dependency on this method. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + + +- ruleID: spring-boot-2.x-to-3.0-removed-00730 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.test.context.runner.WebApplicationContextRunner.newInstance + location: METHOD_CALL + description: WebApplicationContextRunner.newInstance has been removed in Spring Boot 3.0 + message: | + The method `WebApplicationContextRunner.newInstance` has been removed in Spring Boot 3.0. + This method was previously used to create instances of `WebApplicationContextRunner` with specific configurations. + + Since there is no direct alternative to this method, you will need to refactor your code to adapt to the new way of creating and configuring `WebApplicationContextRunner`. + Consider constructing a `WebApplicationContextRunner` instance directly and use its fluent API to configure it according to your test requirements. + + For example, you can now create an instance like this: + ```java + WebApplicationContextRunner contextRunner = new WebApplicationContextRunner(); + // Configure contextRunner using its methods... + ``` + + Make sure to review your tests and replace all instances where `newInstance` was previously called with the correct instantiation and configuration logic. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'WebApplicationContextRunner API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/test/context/runner/WebApplicationContextRunner.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00740 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.SpringApplicationRunListener.running + location: METHOD_CALL + description: SpringApplicationRunListener.running method has been removed in Spring Boot 3.0 + message: | + The method `SpringApplicationRunListener.running(ConfigurableApplicationContext)` has been removed in Spring Boot 3.0. + To migrate, replace calls to `running(ConfigurableApplicationContext)` with `ready(ConfigurableApplicationContext, Duration)`. + + The `ready` method provides a more flexible way to notify that the application is ready, allowing the specification of a duration that may be useful for related operations. + When updating your code, ensure you replace the method signature to include the necessary `Duration` parameter as follows: `ready(context, duration)`. + + For example, you can replace: + ```java + listener.running(applicationContext); + ``` + With: + ```java + listener.ready(applicationContext, Duration.ofSeconds(0)); + ``` + Adapt the duration as appropriate for your application's requirements. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'SpringApplicationRunListener API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/SpringApplicationRunListener.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00750 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.env.EnvironmentEndpoint.sanitize + location: METHOD_CALL + description: EnvironmentEndpoint.sanitize method has been removed in Spring Boot 3.0 + message: | + The method `sanitize(String, Object)` from `EnvironmentEndpoint` has been removed in Spring Boot 3.0. + Due to the removal of this method, any usages of `sanitize` will need to be addressed in your code. + + Since there is no direct alternative to this method, you will need to evaluate the context in which `sanitize` was used and determine the best approach moving forward. Consider whether you can replace the functionality with custom logic to sanitize the inputs in your application, or if the call can be eliminated entirely if it is no longer necessary. + + Review your application for any dependencies on this method and adjust your code accordingly to ensure it complies with Spring Boot 3.0 standards. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + + +- ruleID: spring-boot-2.x-to-3.0-removed-00760 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.web.ServerProperties.Undertow.setAllowEncodedSlash + location: METHOD_CALL + description: setAllowEncodedSlash method has been removed in Spring Boot 3.0 + message: | + The method `setAllowEncodedSlash(boolean)` of the class `ServerProperties.Undertow` has been removed in Spring Boot 3.0. + This method was previously used to allow or disallow encoded slashes (`%2F`) in the URL. + + Since there is no direct alternative for this functionality, if your application relied on this method, you would need to review its usage + and determine if and how you want to handle encoded slashes in your application. + Please consider the implications of encoded slashes on URL mapping and handling as it may affect routing and security in your application. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + + +- ruleID: spring-boot-2.x-to-3.0-removed-00770 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.mustache.MustacheProperties.setAllowRequestOverride + location: METHOD_CALL + description: setAllowRequestOverride method has been removed from MustacheProperties in Spring Boot 3.0 + message: | + The method `setAllowRequestOverride(boolean)` in `MustacheProperties` has been removed in Spring Boot 3.0. + This method was used to configure whether the request's parameters can override template properties, allowing + for more dynamic behavior in your Mustache templates. + + As there is no direct alternative for this functionality in Spring Boot 3.0, you will need to evaluate your use case + and potentially refactor the relevant parts of your application. Depending on your requirements, consider managing + this logic at a higher level or implementing your own custom configuration approach for Mustache. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'MustacheProperties API documentation (Spring Boot 2.x)' + url: https://docs.spring.io/spring-boot/api/java/org/springframework/boot/autoconfigure/mustache/MustacheProperties.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00780 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.mustache.MustacheProperties.setAllowSessionOverride + location: METHOD_CALL + description: MustacheProperties.setAllowSessionOverride(boolean) has been removed in Spring Boot 3.0 + message: | + The method `setAllowSessionOverride(boolean)` in `MustacheProperties` has been removed in Spring Boot 3.0. + This method was previously used to control whether session attributes can override a session attribute set through Mustache. + + Since there is no alternative method provided to replace this functionality, you should review your code and + identify instances where `setAllowSessionOverride` is called. Remove these calls to prevent any runtime errors + in Spring Boot 3.0. If session management behavior is needed, consider implementing custom session handling + logic aligned with your application's requirements. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'MustacheProperties API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/mustache/MustacheProperties.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00790 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.mustache.MustacheProperties.setCache + location: METHOD_CALL + description: MustacheProperties.setCache(boolean) has been removed in Spring Boot 3.0 + message: | + The method `setCache(boolean)` in `MustacheProperties` has been removed in Spring Boot 3.0. + This method was previously used to enable or disable caching for Mustache templates. + + Since there is no alternative method or property for this functionality in Spring Boot 3, + you should remove any calls to `setCache(boolean)` from your code. + If your application relies on caching behavior, consider implementing a custom caching strategy + for your Mustache templates or use a different template engine that supports caching. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'MustacheProperties API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/mustache/MustacheProperties.html + + + + +- ruleID: spring-boot-2.x-to-3.0-removed-00800 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.mustache.MustacheProperties.setContentType + location: METHOD_CALL + description: MustacheProperties.setContentType method has been removed in Spring Boot 3.0 + message: | + The method `MustacheProperties.setContentType(MimeType)` has been removed in Spring Boot 3.0. + This method was used to set the content type for Mustache views, but in Spring Boot 3, + there is no direct alternative method to achieve this. + + To migrate, review your application's requirements for content type configuration. + If needed, you can set the content type on the server response directly in your controller methods + or through a custom view resolver. Ensure to test your application thoroughly to confirm + that the new handling aligns with your desired outcomes for Mustache view rendering. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Mustache Properties API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/mustache/MustacheProperties.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00810 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties.setDateFormat + location: METHOD_CALL + description: WebMvcProperties.setDateFormat(String) has been removed in Spring Boot 3.0 + message: | + The method `WebMvcProperties.setDateFormat(String)` has been removed in Spring Boot 3.0. + This method was used for setting a custom date format for web applications using Spring MVC. + If your application relies on this method, you will need to update your code to handle date formatting differently. + + Specifically, consider using `@JsonFormat` on date fields within your model classes to specify the desired date format when serializing to JSON, or implement a custom `Converter` or `Formatter` depending on your application's requirements. + + Review your usage of date formatting throughout your application to ensure that date presentation is consistent with your application's needs without relying on the removed method. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Jackson JsonFormat annotation documentation' + url: https://www.javadoc.io/doc/com.fasterxml.jackson.core/jackson-annotations/2.9.8/com/fasterxml/jackson/annotation/JsonFormat.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00820 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.autoconfigure.metrics.export.dynatrace.DynatraceProperties.setDeviceId + location: METHOD_CALL + description: setDeviceId(String) method has been removed in Spring Boot 3.0 + message: | + The method `setDeviceId(String)` from `DynatraceProperties` has been removed in Spring Boot 3.0. + As there is no alternative provided, you will need to remove any references to this method in your code. + Please ensure that your application no longer calls `setDeviceId` or relies on it for functionality. + Review your code and configuration to ensure compatibility with the latest Spring Boot practices without this method. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + + +- ruleID: spring-boot-2.x-to-3.0-removed-00830 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.mustache.MustacheProperties.setExposeRequestAttributes + location: METHOD_CALL + description: MustacheProperties.setExposeRequestAttributes method has been removed in Spring Boot 3.0 + message: | + The method `setExposeRequestAttributes(boolean)` in `MustacheProperties` has been removed in Spring Boot 3.0. + This method was used to configure whether the request attributes should be exposed to the Mustache template rendering context. + + To migrate, you should review your usage of this method and remove any calls to it. Since there is no direct alternative, + you need to adjust your application logic accordingly. Ensure that you handle request attributes in your application where + needed, as the rendering environment may require different ways to pass contextual information to Mustache templates. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'MustacheProperties API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/mustache/MustacheProperties.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00840 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.mustache.MustacheProperties.setExposeSessionAttributes + location: METHOD_CALL + description: MustacheProperties.setExposeSessionAttributes has been removed in Spring Boot 3.0 + message: | + The method `setExposeSessionAttributes(boolean)` in `MustacheProperties` has been removed in Spring Boot 3.0. + This method was previously used to specify whether session attributes should be exposed to Mustache templates. Since this + option is no longer available, you should review your template rendering logic to determine if session attributes are + necessary for your application. + + If session attributes are required, consider managing their exposure directly in your application's business logic or + refactoring your templates to not rely on this functionality. Be sure to thoroughly test your application for any + changes related to session handling in Mustache templates after the migration. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide + + +- ruleID: spring-boot-2.x-to-3.0-removed-00850 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.mustache.MustacheProperties.setExposeSpringMacroHelpers + location: METHOD_CALL + description: MustacheProperties.setExposeSpringMacroHelpers method has been removed in Spring Boot 3.0 + message: | + The method `setExposeSpringMacroHelpers(boolean)` from `MustacheProperties` has been removed in Spring Boot 3.0. + This method was used to configure whether Spring's macro helpers should be exposed to Mustache views. + + As there is no direct alternative for this method, you will need to review your Mustache template usage and consider whether + your application relies on this functionality. If it does, refactor your templates to work without the Spring macro helpers. + + Additionally, ensure that any custom behavior relying on this feature is addressed; you may need to handle the macro helpers + in your Mustache views directly or rethink how you structure your template logic. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Mustache Properties documentation' + url: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#appendix-properties + + + +- ruleID: spring-boot-2.x-to-3.0-removed-00860 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties.ContentNegotiation.setFavorPathExtension + location: METHOD_CALL + description: setFavorPathExtension(boolean) method has been removed in Spring Boot 3.0 + message: | + The method `setFavorPathExtension(boolean)` in the class `WebMvcProperties.ContentNegotiation` + has been removed in Spring Boot 3.0. This method was previously used to configure whether + path extensions should be favored when resolving content negotiation. + + Since there is no direct alternative to this method, you will need to refactor your code to + handle content negotiation without relying on this method. Review your current usage of content + negotiation in your application and consider using the new Spring Boot strategies for establishing + content negotiation policies through other configuration mechanisms. + + It's important to review your content negotiation setup, including other properties relevant to + `ContentNegotiationConfigurer` in the configuration class. Consult the Spring Boot documentation + for the appropriate approach to setting up content negotiation in accordance with the latest + practices. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide + - title: 'Content negotiation in Spring MVC' + url: https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc-content-negotiation + + +- ruleID: spring-boot-2.x-to-3.0-removed-00870 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.autoconfigure.metrics.export.dynatrace.DynatraceProperties.setGroup + location: METHOD_CALL + description: DynatraceProperties.setGroup(String) has been removed in Spring Boot 3.0 + message: | + The method `DynatraceProperties.setGroup(String)` has been removed in Spring Boot 3.0. + This method was previously used for configuring group properties related to Dynatrace metrics export. + + Since there is no direct alternative for this method, you will need to review your application's configuration related to Dynatrace. + If you were relying on this method to set groups, you will need to adjust your implementation to accommodate the new configuration options + offered by Spring Boot 3.0, if any, or refactor your approach to handle Dynatrace metrics without this specific property. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Dynatrace metrics export documentation' + url: https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html#application-properties.dynatrace + + +- ruleID: spring-boot-2.x-to-3.0-removed-00880 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.flyway.FlywayProperties.setIgnoreFutureMigrations + location: METHOD_CALL + description: setIgnoreFutureMigrations has been removed in Spring Boot 3.0 + message: | + The method `setIgnoreFutureMigrations(boolean)` has been removed in Spring Boot 3.0. + This method was used to configure Flyway to ignore future migrations. + + In Spring Boot 3, there is no direct alternative for this method. If your application relied on this functionality, + you will need to consider handling future migrations without this setting. Review your migration strategy and + adapt your application's migration logic to ensure that it operates correctly without ignoring future migrations. + + Ensure that your database schema and versioning align with your deployment needs, + as future migrations will now be executed as per the standard Flyway behavior. + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#flyway + + +- ruleID: spring-boot-2.x-to-3.0-removed-00890 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.flyway.FlywayProperties.setIgnoreIgnoredMigrations + location: METHOD_CALL + description: setIgnoreIgnoredMigrations method has been removed in Spring Boot 3.0 + message: | + The method `setIgnoreIgnoredMigrations(boolean)` has been removed from `FlywayProperties` in Spring Boot 3.0. + This method was previously used to configure how ignored migrations are treated during migrations. + + To migrate, you will need to review your usage of this method and remove any related code that relies on it. + Spring Boot 3.0 focuses on simplified configurations, and many properties have been optimized or changed. + Ensure to check your Flyway configuration and update it according to the latest practices described in the migration guides. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#flyway +- ruleID: spring-boot-2.x-to-3.0-removed-00900 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.flyway.FlywayProperties.setIgnoreMissingMigrations + location: METHOD_CALL + description: FlywayProperties.setIgnoreMissingMigrations(boolean) has been removed in Spring Boot 3.0 + message: | + The method `setIgnoreMissingMigrations(boolean)` in `FlywayProperties` has been removed in Spring Boot 3.0. + This method was used to configure whether Flyway should ignore missing migrations during the migrations process. + + Since there is no direct alternative to this method, you should review your Flyway migration strategy. + If your application was relying on ignoring missing migrations, consider implementing custom logic to handle such cases + outside of Flyway, or ensure that the migrations are properly accounted for in your database schema. + + Make sure to thoroughly test your migration configurations following this change, as it may impact the behavior of your application. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Flyway documentation on migrations' + url: https://flywaydb.org/documentation/migrations/ + +- ruleID: spring-boot-2.x-to-3.0-removed-00910 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.flyway.FlywayProperties.setIgnorePendingMigrations + location: METHOD_CALL + description: FlywayProperties.setIgnorePendingMigrations has been removed in Spring Boot 3.0 + message: | + The method `setIgnorePendingMigrations(boolean)` in `FlywayProperties` has been removed in Spring Boot 3.0. + This method allowed users to configure whether pending migrations should be ignored. + To migrate, you will need to remove any calls to `setIgnorePendingMigrations()`, as there is no direct alternative provided in Spring Boot 3. + + Review your Flyway configuration and consider how pending migrations are treated. + Depending on your use case, you may need to handle pending migrations manually or implement an alternative logic + suited to your application's requirements. Ensure thorough testing after the migration to confirm that migration workflows function correctly. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#flyway + - title: 'Flyway configuration documentation' + url: https://flywaydb.org/documentation/configuration/parameters/ + + +- ruleID: spring-boot-2.x-to-3.0-removed-00920 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.security.oauth2.resource.OAuth2ResourceServerProperties.Jwt.setJwsAlgorithm + location: METHOD_CALL + description: setJwsAlgorithm method has been removed in Spring Boot 3.0 + message: | + The method `setJwsAlgorithm(String)` has been removed from `OAuth2ResourceServerProperties.Jwt` + in Spring Boot 3.0. This method was previously used to set the JWS algorithm for JWT authentication. + + As there is no direct alternative for this method, it is recommended to review how JWS algorithms + are handled in your application. If your application requires JWS algorithm configuration, consider + using alternative approaches for JWT handling, such as configuring the relevant parameters in + `spring.security.oauth2.resourceserver.jwt` properties or creating a custom implementation to + handle JWT parsing and validation without relying on the removed method. + + Ensure that your JWT handling complies with the security best practices and supports the expected + algorithms that your application will use in production. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Spring Security OAuth2 Resource Server' + url: https://docs.spring.io/spring-security/reference/servlet/oauth2/resource-server/index.html + +- ruleID: spring-boot-2.x-to-3.0-removed-00930 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.kafka.KafkaProperties.Listener.setOnlyLogRecordMetadata + location: METHOD_CALL + description: setOnlyLogRecordMetadata(boolean) method has been removed in Spring Boot 3.0 + message: | + The method `setOnlyLogRecordMetadata(boolean)` in `KafkaProperties.Listener` has been removed in Spring Boot 3.0. + This method was used to configure whether to log only the record metadata or not during Kafka message production. + + To migrate, you should remove any calls to `setOnlyLogRecordMetadata(boolean)` from your code. + Review the logic surrounding these calls to ensure that your application's behavior remains consistent after the removal. + You may need to adjust your logging strategy depending on your application's requirements, such as implementing custom logging or changing the config for existing Kafka producers to meet your needs. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'KafkaProperties API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/kafka/KafkaProperties.Listener.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00940 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.flyway.FlywayProperties.setOracleKerberosConfigFile + location: METHOD_CALL + description: FlywayProperties.setOracleKerberosConfigFile(String) has been removed in Spring Boot 3.0 + message: | + The method `setOracleKerberosConfigFile(String)` has been removed from `FlywayProperties` in Spring Boot 3.0. + As there is no alternative for this method, you will need to refactor your application accordingly. + + Review your configuration and consider whether you can achieve the desired functionality through other means or settings. + If your application relied on Kerberos configuration for Oracle database access, you may need to implement custom + logic or utilize other libraries that handle Kerberos authentication. + + Ensure to thoroughly test your application after making these changes to verify that the desired behavior is maintained without this method. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Flyway Documentation' + url: https://flywaydb.org/documentation/ + + +- ruleID: spring-boot-2.x-to-3.0-removed-00950 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.autoconfigure.metrics.export.ganglia.GangliaProperties.setProtocolVersion + location: METHOD_CALL + description: GangliaProperties.setProtocolVersion has been removed in Spring Boot 3.0 + message: | + The method `setProtocolVersion(String)` in `GangliaProperties` has been removed in Spring Boot 3.0. + There is no alternative provided for this method, which means the functionality related to setting + the protocol version for Ganglia metrics export has been completely eliminated. + + To migrate, you should review your code to identify the usage of `setProtocolVersion(String)` + and determine if the associated functionality can be removed or if it's necessary to implement + custom configuration logic for your metrics export strategy. + + It may be worthwhile to evaluate existing and alternative metrics export configurations + offered by Spring Boot 3.0 or consider using another metrics collection tool that better fits + your application needs. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Ganglia metrics export documentation' + url: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#actuator.metrics.export.ganglia + + +- ruleID: spring-boot-2.x-to-3.0-removed-00960 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.amqp.AbstractRabbitListenerContainerFactoryConfigurer.setRabbitProperties(RabbitProperties) + location: METHOD_CALL + description: setRabbitProperties(RabbitProperties) has been removed in Spring Boot 3.0 + message: | + The method `setRabbitProperties(RabbitProperties)` has been removed from `AbstractRabbitListenerContainerFactoryConfigurer` in Spring Boot 3.0. + To migrate, replace the usage of `setRabbitProperties(RabbitProperties)` with the new constructor: + `AbstractRabbitListenerContainerFactoryConfigurer(RabbitProperties)`. + + This new constructor allows you to set the `RabbitProperties` during the creation of your `AbstractRabbitListenerContainerFactoryConfigurer` instance, aligning with updated practices in Spring Boot. + + Here’s an example of how to update your code: + Instead of: + ```java + AbstractRabbitListenerContainerFactoryConfigurer configurer = new AbstractRabbitListenerContainerFactoryConfigurer(); + configurer.setRabbitProperties(rabbitProperties); + ``` + + Use: + ```java + AbstractRabbitListenerContainerFactoryConfigurer configurer = new AbstractRabbitListenerContainerFactoryConfigurer(rabbitProperties); + ``` + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'AbstractRabbitListenerContainerFactoryConfigurer API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/amqp/AbstractRabbitListenerContainerFactoryConfigurer.html + +- ruleID: spring-boot-2.x-to-3.0-removed-00970 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.amqp.RabbitTemplateConfigurer.setRabbitProperties + location: METHOD_CALL + description: setRabbitProperties(RabbitProperties) has been removed in Spring Boot 3.0 + message: | + The method `setRabbitProperties(RabbitProperties)` has been removed from + `RabbitTemplateConfigurer` in Spring Boot 3.0. Instead, you should now use + the constructor `RabbitTemplateConfigurer(RabbitProperties)` when configuring + your RabbitTemplate properties. + + In order to migrate, update your code to create an instance of + `RabbitTemplateConfigurer` with the necessary `RabbitProperties` as a parameter. + This change aligns with the simplified configuration approach adopted in + Spring Boot 3, enhancing readability and maintainability of your code. + + Here is an example of how to change your code: + + **Before migration:** + ```java + RabbitTemplateConfigurer configurer = new RabbitTemplateConfigurer(); + configurer.setRabbitProperties(rabbitProperties); + ``` + + **After migration:** + ```java + RabbitTemplateConfigurer configurer = new RabbitTemplateConfigurer(rabbitProperties); + ``` + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'RabbitTemplateConfigurer API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/amqp/RabbitTemplateConfigurer.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-00980 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.autoconfigure.metrics.export.ganglia.GangliaProperties.setRateUnits + location: METHOD_CALL + description: setRateUnits method has been removed in Spring Boot 3.0 + message: | + The method `setRateUnits(TimeUnit)` has been removed from `GangliaProperties` in Spring Boot 3.0. + As there is no direct alternative provided, you will need to remove any references to this method in your code. + + If your application relied on setting rate units through the `setRateUnits` method, you may need to consider alternative configurations for metric export or manage rate unit settings in other parts of your codebase. Ensure to review your metrics configuration to successfully adapt to the new Spring Boot 3.0 setup. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + +- ruleID: spring-boot-2.x-to-3.0-removed-00990 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.autoconfigure.metrics.export.dynatrace.DynatraceProperties.setTechnologyType + location: METHOD_CALL + description: setTechnologyType(String) has been removed in Spring Boot 3.0 + message: | + The method `setTechnologyType(String)` in `DynatraceProperties` has been removed in Spring Boot 3.0. + This method was previously used to specify the technology type for Dynatrace configuration. + + Since there is no alternative for this method in Spring Boot 3, you will need to review your usage of this method. + If your application relied heavily on this method, consider revisiting your monitoring setup or Dynatrace's configuration in your application to align with the latest practices and any updated features that may be available in Spring Boot 3. + + Make sure to thoroughly test your application after making changes to ensure proper monitoring behavior. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide + - title: 'Dynatrace configuration documentation' + url: https://www.dynatrace.com/support/help/how-to-use-dynatrace/configuration/ +- ruleID: spring-boot-2.x-to-3.0-removed-01000 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties.Pathmatch.setUseRegisteredSuffixPattern + location: METHOD_CALL + description: setUseRegisteredSuffixPattern method has been removed in Spring Boot 3.0 + message: | + The method `setUseRegisteredSuffixPattern(boolean)` of `WebMvcProperties.Pathmatch` has been removed in Spring Boot 3.0. + This method was previously used to set whether to use registered suffix patterns in a `WebMvc` configuration. + + As there is no direct alternative for this method in Spring Boot 3, you will need to review your application's configuration + to determine if the usage of suffix patterns still aligns with your requirements. + Consider adjusting your `WebMvcConfigurer` implementation or your application’s request mapping configurations + as needed to accommodate the new behavior or defaults in Spring Boot 3. + + Ensure to thoroughly test your application to verify that it behaves as expected after removing this method call. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Migration considerations for WebMvc configuration' + url: https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc-config + + +- ruleID: spring-boot-2.x-to-3.0-removed-01010 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties.Pathmatch.setUseSuffixPattern + location: METHOD_CALL + description: Method setUseSuffixPattern has been removed in Spring Boot 3.0 + message: | + The method `setUseSuffixPattern(boolean)` in `WebMvcProperties.Pathmatch` has been removed in Spring Boot 3.0. + This method was used to configure whether to use suffix pattern matching in your application's web configuration. + Since there is no alternative provided in Spring Boot 3.0, you should review your application’s web configuration + to determine if suffix pattern matching is essential for your application’s functionality. + + Remove any calls to `setUseSuffixPattern(boolean)` and update your codebase to reflect the new settings as necessary. + Consider using other configuration properties related to path matching or reviewing your routing strategies to ensure the desired behavior. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'WebMvcProperties API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/web/servlet/WebMvcProperties.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-01020 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.loader.archive.Archive.spliterator + location: METHOD_CALL + description: Archive.spliterator has been removed in Spring Boot 3.0 + message: | + The method `Archive.spliterator()` has been removed in Spring Boot 3.0. + This method was previously used to obtain a spliterator for the archive entries. + + To migrate, replace usages of `Archive.spliterator()` with the equivalent functionality provided by `JarFile`. + The `JarFile` class allows you to access the contents of a JAR file, and you can obtain entries using the `entries()` or `stream()` methods. + + You may need to adjust your code to utilize `JarFile` accordingly, considering how you were using `spliterator()`. + Refer to the appropriate Java documentation to help with the transition. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'JarFile API documentation' + url: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/jar/JarFile.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-01030 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.SpringApplicationRunListener.started + location: METHOD_CALL + description: SpringApplicationRunListener.started(ConfigurableApplicationContext) has been removed in Spring Boot 3.0 + message: | + The method `SpringApplicationRunListener.started(ConfigurableApplicationContext)` has been removed in Spring Boot 3.0. + The new method `SpringApplicationRunListener.started(ConfigurableApplicationContext, Duration)` has been introduced as part of the updated API. + + To migrate, you will need to update your method calls to `started` by adding a `Duration` parameter that specifies the duration of the application startup process. + + You can provide a `Duration` value based on your application’s needs, or you can use `Duration.ofSeconds(0)` as a placeholder if the duration is not critical in your case. + + Example migration: + ```java + // Old code + myListener.started(applicationContext); + + // Updated code + myListener.started(applicationContext, Duration.ofSeconds(0)); // adjust duration as necessary + ``` + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'SpringApplicationRunListener API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/SpringApplicationRunListener.html + +- ruleID: spring-boot-2.x-to-3.0-removed-01040 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.test.context.runner.AbstractApplicationContextRunner + location: METHOD_CALL + description: AbstractApplicationContextRunner(Supplier) has been removed in Spring Boot 3.0 + message: | + The method `AbstractApplicationContextRunner(Supplier)` has been removed in Spring Boot 3.0. + Instead, use `AbstractApplicationContextRunner(Supplier, Function)`, which provides enhanced functionality by allowing the use of a second `Function` parameter for additional configuration. + + To migrate, update your code to replace any invocations of the method `AbstractApplicationContextRunner(Supplier)` with the new method signature `AbstractApplicationContextRunner(Supplier, Function)`. + Ensure that you provide a `Function` to configure the `ApplicationContext` as necessary. This change may involve extracting contextual configurations that were previously handled within the `Supplier` call. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'AbstractApplicationContextRunner API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/test/context/runner/AbstractApplicationContextRunner.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-01050 + category: mandatory + effort: 4 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.test.context.runner.AbstractApplicationContextRunner + location: METHOD_CALL + description: AbstractApplicationContextRunner constructor with multiple parameters has been removed in Spring Boot 3.0 + message: | + The constructor `AbstractApplicationContextRunner(Supplier, boolean, List>, + TestPropertyValues, TestPropertyValues, ClassLoader, ApplicationContext, + List>, List)` has been removed in Spring Boot 3.0. + This constructor was previously used for creating application context runners with a variety of parameters. + + To migrate, replace usages of the removed constructor with `AbstractApplicationContextRunner(Supplier, Function)`. + The new constructor simplifies the creation of application context runners, accepting fewer parameters. You will only need to + provide a `Supplier` for the application context and a `Function` to customize the application context. + + Review your code to ensure that the configuration you previously set up is appropriately captured with the streamlined constructor: + - Identify and eliminate the parameters that are no longer required. + - Use a `Supplier` to provide the application context. + - Provide a `Function` for any additional customization. + + This change aligns with the modernized Spring Boot practices, promoting cleaner and more maintainable test context setup. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'AbstractApplicationContextRunner API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/test/context/runner/AbstractApplicationContextRunner.html + +- ruleID: spring-boot-2.x-to-3.0-removed-01060 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.amqp.AbstractRabbitListenerContainerFactoryConfigurer + location: METHOD_CALL + description: AbstractRabbitListenerContainerFactoryConfigurer has been removed in Spring Boot 3.0 + message: | + The class `AbstractRabbitListenerContainerFactoryConfigurer` has been removed in Spring Boot 3.0. + This class was previously used as a base configuration class for setting up `RabbitListenerContainerFactory` beans. + + To migrate, replace usages of `AbstractRabbitListenerContainerFactoryConfigurer` with its updated constructor `AbstractRabbitListenerContainerFactoryConfigurer(RabbitProperties)`. + Ensure to pass an instance of `RabbitProperties` to the new constructor, as it now encapsulates the necessary properties for configuring the `RabbitListenerContainerFactory`. + + Update your code by modifying the constructors or method implementations involving `AbstractRabbitListenerContainerFactoryConfigurer`. + Also, make sure to review other related configurations that may have changed as a result of this update. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'AbstractRabbitListenerContainerFactoryConfigurer API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/amqp/AbstractRabbitListenerContainerFactoryConfigurer.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-01070 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.context.event.ApplicationReadyEvent + location: CONSTRUCTOR_CALL + description: ApplicationReadyEvent constructor has been updated in Spring Boot 3.0 + message: | + The constructor `ApplicationReadyEvent(SpringApplication, String[], ConfigurableApplicationContext)` has been removed in Spring Boot 3.0. + To migrate to the new version, replace usages of this constructor with the new constructor `ApplicationReadyEvent(SpringApplication, String[], ConfigurableApplicationContext, Duration)`. + + The new constructor adds a `Duration` parameter which represents the time taken for the application to become ready and is intended to provide additional information regarding the application's startup time. + Update your code accordingly to capture this new parameter alongside the existing parameters in the constructor call: + + ```java + ApplicationReadyEvent event = new ApplicationReadyEvent(application, args, context, Duration.ofMillis(startupTime)); + ``` + + Ensure to adjust the areas where this event is used in your application to handle the new signature properly and consider how you will obtain the `Duration` (for example, measure the startup time of the application). + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'ApplicationReadyEvent API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/context/event/ApplicationReadyEvent.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-01080 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.context.event.ApplicationStartedEvent + location: CONSTRUCTOR_CALL + description: The constructor ApplicationStartedEvent(SpringApplication, String[], ConfigurableApplicationContext) has been removed in Spring Boot 3.0 + message: | + The constructor `ApplicationStartedEvent(SpringApplication, String[], ConfigurableApplicationContext)` has been removed in Spring Boot 3.0. + To migrate, replace usages of this constructor with the new constructor `ApplicationStartedEvent(SpringApplication, String[], ConfigurableApplicationContext, Duration)`. + + The new constructor includes an additional `Duration` parameter, which allows for more precise control over the timing of the event. + Update your code to create an instance of `ApplicationStartedEvent` using this new constructor and provide an appropriate `Duration` value that reflects the desired timing for your application. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'ApplicationStartedEvent API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/context/event/ApplicationStartedEvent.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-01090 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.amqp.DirectRabbitListenerContainerFactoryConfigurer + location: METHOD_CALL + description: DirectRabbitListenerContainerFactoryConfigurer() has been removed in Spring Boot 3.0 + message: | + The method `DirectRabbitListenerContainerFactoryConfigurer()` has been removed in Spring Boot 3.0. + This method was used for configuring a `RabbitListenerContainerFactory` with default settings. + + To migrate, replace usages of `DirectRabbitListenerContainerFactoryConfigurer()` with its alternative constructor + `DirectRabbitListenerContainerFactoryConfigurer(RabbitProperties)` which now requires a `RabbitProperties` instance to be passed into it. + + This new approach supports more flexible configuration and aligns better with the overall Spring Boot 3 improvements. + Ensure that you create a `RabbitProperties` bean in your configuration and pass it to the new constructor accordingly. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'DirectRabbitListenerContainerFactoryConfigurer API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/amqp/DirectRabbitListenerContainerFactoryConfigurer.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-01100 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.health.HealthEndpoint + location: METHOD_CALL + description: HealthEndpoint constructor with 2 arguments has been removed in Spring Boot 3.0 + message: | + The constructor `HealthEndpoint(HealthContributorRegistry, HealthEndpointGroups)` has been removed in Spring Boot 3.0. + The new constructor is `HealthEndpoint(HealthContributorRegistry, HealthEndpointGroups, Duration)` which adds an additional + `Duration` parameter for configuring the time-to-live of health indicators. + + To migrate, update your code to use the new constructor, ensuring that you provide a `Duration` value as the third + parameter. This change allows for better configuration and monitoring of the health status of your application. + + Example migration: + ```java + HealthEndpoint newHealthEndpoint = new HealthEndpoint(registry, groups, Duration.ofSeconds(30)); + ``` + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'HealthEndpoint API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/actuate/health/HealthEndpoint.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-01110 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.health.HealthEndpointWebExtension + location: METHOD_CALL + description: HealthEndpointWebExtension constructor has been updated in Spring Boot 3.0 + message: | + The constructor `HealthEndpointWebExtension(HealthContributorRegistry, HealthEndpointGroups)` has been removed in Spring Boot 3.0. + The new constructor requires an additional parameter: `HealthEndpointWebExtension(HealthContributorRegistry, HealthEndpointGroups, Duration)`. + + To migrate your code, you need to update your method calls to include the third parameter, which is of type `Duration`. + This additional parameter allows for better configuration of health endpoint timeouts and is in line with the changes made in the health actuator in Spring Boot 3.0. + + To ensure successful migration, review how you are using the method in your existing code and add a suitable `Duration` parameter (e.g., `Duration.ofSeconds(30)`) according to your application's requirements. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'HealthEndpointWebExtension API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/actuate/health/HealthEndpointWebExtension.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-01120 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.autoconfigure.endpoint.expose.IncludeExcludeEndpointFilter + location: METHOD_CALL + description: IncludeExcludeEndpointFilter has been removed in Spring Boot 3.0 + message: | + The method `IncludeExcludeEndpointFilter(Class, Collection, Collection, IncludeExcludeEndpointFilter.DefaultIncludes)` has been removed in Spring Boot 3.0. + This constructor was used for initializing an endpoint filter with specific include and exclude criteria. + + To migrate, you should replace usages of this constructor with `IncludeExcludeEndpointFilter(Class, Environment, String, String[])`. The new constructor provides a way to configure the endpoint filter using the specified class type, Spring's `Environment`, the base path, and an array of string patterns for filtering. + + You will need to adjust your code to instantiate `IncludeExcludeEndpointFilter` using the new constructor signature, ensuring that you provide the necessary parameters accordingly. Refer to the Spring Boot 3.0 migration guide for specifics on how to set up the environment and filter parameters. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'IncludeExcludeEndpointFilter API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/actuate/autoconfigure/endpoint/expose/IncludeExcludeEndpointFilter.html + + + +- ruleID: spring-boot-2.x-to-3.0-removed-01130 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.autoconfigure.endpoint.expose.IncludeExcludeEndpointFilter + location: CONSTRUCTOR_CALL + description: IncludeExcludeEndpointFilter constructor with DefaultIncludes has been removed in Spring Boot 3.0 + message: | + The constructor `IncludeExcludeEndpointFilter(Class, Environment, String, IncludeExcludeEndpointFilter.DefaultIncludes)` has been removed in Spring Boot 3.0. + To migrate, replace its usage with the new constructor `IncludeExcludeEndpointFilter(Class, Environment, String, String[])`. + + The updated constructor simplifies the parameters by removing the `DefaultIncludes` type. Instead, you can now provide a String array for specifying includes directly through the last parameter. + Modify your code accordingly, ensuring that you adapt how you pass the includes when creating a new instance of the `IncludeExcludeEndpointFilter`. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'IncludeExcludeEndpointFilter API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/actuate/autoconfigure/endpoint/expose/IncludeExcludeEndpointFilter.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-01140 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.loader.tools.Packager + location: METHOD_CALL + description: Packager(File, LayoutFactory) has been removed in Spring Boot 3.0 + message: | + The method `Packager(File, LayoutFactory)` has been removed in Spring Boot 3.0. + This method was used to create a new `Packager` instance with a `File` and a `LayoutFactory`. + + To migrate, replace usages of `Packager(File, LayoutFactory)` with `Packager(File)`. The new constructor only requires a `File` argument and follows the updated practices for packaging applications. + + Ensure that the functionality provided by `LayoutFactory` is adequately handled elsewhere in your code to maintain the desired packaging behavior. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Packager API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/loader/tools/Packager.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-01150 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.amqp.RabbitTemplateConfigurer + location: METHOD_CALL + description: RabbitTemplateConfigurer() has been removed in Spring Boot 3.0 + message: | + The class `RabbitTemplateConfigurer` has been removed in Spring Boot 3.0. + Instead, you should use `RabbitTemplateConfigurer(RabbitProperties)` which now takes `RabbitProperties` as an argument. + + To migrate, update your code where `RabbitTemplateConfigurer` is invoked without parameters, and replace it with `RabbitTemplateConfigurer(RabbitProperties)` ensuring that you provide the appropriate `RabbitProperties` instance when you instantiate `RabbitTemplateConfigurer`. + + Also, review how your application is configured for RabbitMQ properties, as the handling may differ between the two versions. You can find examples and best practices in the migration guide. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'RabbitTemplateConfigurer API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/amqp/RabbitTemplateConfigurer.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-01160 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.actuate.health.ReactiveHealthEndpointWebExtension + location: METHOD_CALL + description: ReactiveHealthEndpointWebExtension constructor has been changed in Spring Boot 3.0 + message: | + The constructor `ReactiveHealthEndpointWebExtension(ReactiveHealthContributorRegistry, HealthEndpointGroups)` + has been removed in Spring Boot 3.0. Instead, you should now use the constructor + `ReactiveHealthEndpointWebExtension(ReactiveHealthContributorRegistry, HealthEndpointGroups, Duration)`. + + This change introduces an additional parameter of type `Duration`, which allows you to specify the timeout duration + for reactive health checks. Update your instantiation of `ReactiveHealthEndpointWebExtension` to include + this new parameter, ensuring that your application continues to function correctly with the updated health checks. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'ReactiveHealthEndpointWebExtension API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/actuate/health/ReactiveHealthEndpointWebExtension.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-01170 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.loader.tools.Repackager + location: METHOD_CALL + description: Repackager(File, LayoutFactory) has been removed in Spring Boot 3.0 + message: | + The method `Repackager(File, LayoutFactory)` has been removed in Spring Boot 3.0. + Instead, you should use the `Repackager(File)` constructor. + + To migrate, locate instances where you were using the `Repackager` constructor with the `LayoutFactory` parameter and update it to only accept a `File` as the single argument. + + This change simplifies the instantiation of the `Repackager` class, focusing on the primary requirement for repackaging applications without additional layout customization available in the previous version. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'Repackager API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/loader/tools/Repackager.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-01180 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.devtools.restart.classloader.RestartClassLoader + location: METHOD_CALL + description: RestartClassLoader constructor with Log parameter has been removed in Spring Boot 3.0 + message: | + The constructor `RestartClassLoader(ClassLoader, URL[], ClassLoaderFileRepository, Log)` has been removed in Spring Boot 3.0. + This constructor was previously used to create a `RestartClassLoader` instance with an additional `Log` parameter for logging purposes. + + To migrate, replace any usages of this constructor with the new constructor `RestartClassLoader(ClassLoader, URL[], ClassLoaderFileRepository)`. + The new constructor does not take a `Log` parameter, as logging can now be handled by alternative means. + Ensure that any logging functionality that relied on the `Log` parameter is appropriately refactored to utilize Spring's logging capabilities or custom logging solutions. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'RestartClassLoader API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/devtools/restart/classloader/RestartClassLoader.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-01190 + category: mandatory + effort: 3 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.autoconfigure.amqp.SimpleRabbitListenerContainerFactoryConfigurer + location: METHOD_CALL + description: SimpleRabbitListenerContainerFactoryConfigurer() constructor has been removed in Spring Boot 3.0 + message: | + The constructor `SimpleRabbitListenerContainerFactoryConfigurer()` has been removed in Spring Boot 3.0. + It has been replaced with `SimpleRabbitListenerContainerFactoryConfigurer(RabbitProperties)` which allows you to configure + a `SimpleRabbitListenerContainerFactory` with a set of RabbitMQ properties. + + To migrate, update your code by replacing any calls to the no-argument constructor with the new constructor that requires + an instance of `RabbitProperties`. You will need to create a `RabbitProperties` bean and pass it to the constructor. + + Example migration: + ```java + RabbitProperties rabbitProperties = new RabbitProperties(); + SimpleRabbitListenerContainerFactoryConfigurer configurer = new SimpleRabbitListenerContainerFactoryConfigurer(rabbitProperties); + ``` + + Ensure that you adjust any further configurations according to your application's needs and the properties you require. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + - title: 'SimpleRabbitListenerContainerFactoryConfigurer API documentation' + url: https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/amqp/SimpleRabbitListenerContainerFactoryConfigurer.html + + +- ruleID: spring-boot-2.x-to-3.0-removed-01200 + category: mandatory + effort: 2 + labels: + - konveyor.io/source=spring-boot2 + - konveyor.io/target=spring-boot3+ + when: + java.referenced: + pattern: org.springframework.boot.jdbc.DatabaseDriver.GAE + location: ENUM_CONSTANT + description: DatabaseDriver.GAE has been removed in Spring Boot 3.0 + message: | + The constant `DatabaseDriver.GAE` has been removed in Spring Boot 3.0. + This constant was previously used to represent the Google App Engine database driver. + Since there is no direct alternative provided, you will need to review your application logic and determine how to handle database connections for Google App Engine. + + Consider replacing any usages of `DatabaseDriver.GAE` with appropriate logic for your application, or if necessary, refactor your code to accommodate other database driver options, depending on your setup. + + links: + - title: 'Spring Boot 3.0 migration guide' + url: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#review-dependencies + + + diff --git a/default/generated/spring-boot/tests/data/dependencies/pom.xml b/default/generated/spring-boot/tests/data/dependencies/pom.xml new file mode 100644 index 00000000..c81a31be --- /dev/null +++ b/default/generated/spring-boot/tests/data/dependencies/pom.xml @@ -0,0 +1,134 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.7.18 + + + org.konveyor + boot-deps + 0.0.1-SNAPSHOT + boot-deps + Demo project for Spring Boot + + + + + + + + + + + + + + + 17 + 2021.0.8 + + + + org.springframework.cloud + spring-cloud-dependencies + 2021.0.9 + pom + import + + + org.springframework.cloud + spring-cloud-bus + + + org.springframework.cloud + spring-cloud-starter-circuitbreaker-resilience4j + + + org.springframework.cloud + spring-cloud-context + + + org.springframework.cloud + spring-cloud-config-server + + + org.springframework.cloud + spring-cloud-commons + + + org.springframework.cloud + spring-cloud-consul-core + + + org.springframework.cloud + spring-cloud-contract-verifier + + + org.springframework.cloud + spring-cloud-function-context + + + org.springframework.cloud + spring-cloud-gateway-server + + + org.springframework.cloud + spring-cloud-kubernetes-discovery + + + org.springframework.cloud + spring-cloud-netflix-hystrix + 2.2.10.RELEASE + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + org.springframework.cloud + spring-cloud-starter-task + + + org.springframework.cloud + spring-cloud-starter-vault-config + + + org.springframework.cloud + spring-cloud-starter-zookeeper-config + + + org.springframework.cloud + spring-cloud-stream + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${spring-cloud.version} + pom + import + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/default/generated/spring-boot/tests/data/dependencies/src/main/java/org/konveyor/boot_deps/BootDepsApplication.java b/default/generated/spring-boot/tests/data/dependencies/src/main/java/org/konveyor/boot_deps/BootDepsApplication.java new file mode 100644 index 00000000..f85361d1 --- /dev/null +++ b/default/generated/spring-boot/tests/data/dependencies/src/main/java/org/konveyor/boot_deps/BootDepsApplication.java @@ -0,0 +1,13 @@ +package org.konveyor.boot_deps; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class BootDepsApplication { + + public static void main(String[] args) { + SpringApplication.run(BootDepsApplication.class, args); + } + +} diff --git a/default/generated/spring-boot/tests/data/dependencies/src/main/resources/application.properties b/default/generated/spring-boot/tests/data/dependencies/src/main/resources/application.properties new file mode 100644 index 00000000..08d66382 --- /dev/null +++ b/default/generated/spring-boot/tests/data/dependencies/src/main/resources/application.properties @@ -0,0 +1 @@ +spring.application.name=boot-deps diff --git a/default/generated/spring-boot/tests/data/dependencies/src/test/java/org/konveyor/boot_deps/BootDepsApplicationTests.java b/default/generated/spring-boot/tests/data/dependencies/src/test/java/org/konveyor/boot_deps/BootDepsApplicationTests.java new file mode 100644 index 00000000..efd884af --- /dev/null +++ b/default/generated/spring-boot/tests/data/dependencies/src/test/java/org/konveyor/boot_deps/BootDepsApplicationTests.java @@ -0,0 +1,13 @@ +package org.konveyor.boot_deps; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class BootDepsApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/default/generated/spring-boot/tests/data/removals/pom.xml b/default/generated/spring-boot/tests/data/removals/pom.xml new file mode 100644 index 00000000..9493e3a8 --- /dev/null +++ b/default/generated/spring-boot/tests/data/removals/pom.xml @@ -0,0 +1,76 @@ + + 4.0.0 + + com.example + spring-boot-2-7-example + 0.0.1-SNAPSHOT + jar + + Spring Boot 2.7.18 Example + Example Spring Boot 2.7.18 project + + + org.springframework.boot + spring-boot-starter-parent + 2.7.18 + + + + + 11 + + + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + org.apache.commons + commons-dbcp2 + 2.9.0 + + + + + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + org.projectlombok + lombok + provided + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + diff --git a/default/generated/spring-boot/tests/data/removals/src/main/java/org/konveyor/deps/BootDepsApplication.java b/default/generated/spring-boot/tests/data/removals/src/main/java/org/konveyor/deps/BootDepsApplication.java new file mode 100644 index 00000000..f8db28a2 --- /dev/null +++ b/default/generated/spring-boot/tests/data/removals/src/main/java/org/konveyor/deps/BootDepsApplication.java @@ -0,0 +1,17 @@ +package org.konveyor.deps; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.context.config.ConfigFileApplicationListener; + +@SpringBootApplication +public class BootDepsApplication { + + public static void main(String[] args) { + SpringApplication.run(BootDepsApplication.class, args); + } + + public void method() { + ConfigFileApplicationListener configFileApplicationListener = new ConfigFileApplicationListener(); + } +} diff --git a/default/generated/spring-boot/tests/data/removals/src/main/java/org/konveyor/deps/CustomDataSourceInitializer.java b/default/generated/spring-boot/tests/data/removals/src/main/java/org/konveyor/deps/CustomDataSourceInitializer.java new file mode 100644 index 00000000..4e3d42e2 --- /dev/null +++ b/default/generated/spring-boot/tests/data/removals/src/main/java/org/konveyor/deps/CustomDataSourceInitializer.java @@ -0,0 +1,45 @@ +package org.konveyor.deps; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.jdbc.AbstractDataSourceInitializer; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.jdbc.DataSourceInitializationMode; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.io.ResourceLoader; +import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; + +import javax.sql.DataSource; + +@Configuration +@ConfigurationProperties(prefix = "spring.datasource") +public class CustomDataSourceInitializer extends AbstractDataSourceInitializer { + + private ResourceLoader resourceLoader; + + @Autowired + public CustomDataSourceInitializer(DataSource dataSource, ResourceLoader resourceLoader) { + super(dataSource, resourceLoader); + this.resourceLoader = resourceLoader; + } + + @Override + protected void customize(ResourceDatabasePopulator populator) { + populator.addScript(resourceLoader.getResource("schema.sql")); + } + + @Override + protected DataSourceInitializationMode getMode() { + return null; + } + + @Override + protected String getSchemaLocation() { + return null; + } + + @Override + protected String getDatabaseName() { + // Return the database name for which this initializer applies + return "H2"; // Adjust based on your database type + } +} diff --git a/default/generated/spring-boot/tests/data/removals/src/main/java/org/konveyor/deps/DataSourceConfig.java b/default/generated/spring-boot/tests/data/removals/src/main/java/org/konveyor/deps/DataSourceConfig.java new file mode 100644 index 00000000..5fb44d8d --- /dev/null +++ b/default/generated/spring-boot/tests/data/removals/src/main/java/org/konveyor/deps/DataSourceConfig.java @@ -0,0 +1,72 @@ +package org.konveyor.deps; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.batch.BatchDataSourceInitializer; +import org.springframework.boot.autoconfigure.batch.BatchProperties; +import org.springframework.boot.autoconfigure.integration.IntegrationDataSourceInitializer; +import org.springframework.boot.autoconfigure.integration.IntegrationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.beans.factory.annotation.Value; + +import javax.sql.DataSource; + +import org.apache.commons.dbcp2.BasicDataSource; +import org.springframework.core.io.ResourceLoader; + +@Configuration +public class DataSourceConfig { + + @Value("${spring.datasource.url}") + private String url; + + @Value("${spring.datasource.username}") + private String username; + + @Value("${spring.datasource.password}") + private String password; + + @Value("${spring.datasource.driver-class-name:org.h2.Driver}") + private String driverClassName; + + @Value("${spring.datasource.initial-size:10}") + private int initialSize; + + @Value("${spring.datasource.max-total:50}") + private int maxTotal; + + @Bean + public DataSource dataSource() { + BasicDataSource dataSource = new BasicDataSource(); + dataSource.setUrl(url); + dataSource.setUsername(username); + dataSource.setPassword(password); + dataSource.setDriverClassName(driverClassName); + dataSource.setInitialSize(initialSize); + dataSource.setMaxTotal(maxTotal); + return dataSource; + } + + @Bean + public BatchProperties batchProperties() { + return new BatchProperties(); + } + + @Bean + public IntegrationProperties integrationProperties() { + return new IntegrationProperties(); + } + + @Bean + @Autowired + public BatchDataSourceInitializer batchDataSourceInitializer(DataSource dataSource, ResourceLoader resourceLoader, BatchProperties batchProperties) { + return new BatchDataSourceInitializer(dataSource, resourceLoader, batchProperties); + } + + @Bean + @Autowired + public IntegrationDataSourceInitializer integrationDataSourceInitializer(DataSource dataSource, ResourceLoader resourceLoader, IntegrationProperties integrationProperties) { + return new IntegrationDataSourceInitializer(dataSource, resourceLoader, integrationProperties); + } + +} diff --git a/default/generated/spring-boot/tests/data/removals/src/main/resources/application.properties b/default/generated/spring-boot/tests/data/removals/src/main/resources/application.properties new file mode 100644 index 00000000..08d66382 --- /dev/null +++ b/default/generated/spring-boot/tests/data/removals/src/main/resources/application.properties @@ -0,0 +1 @@ +spring.application.name=boot-deps diff --git a/default/generated/spring-boot/tests/data/removals/src/test/java/org/konveyor/boot_deps/BootDepsApplicationTests.java b/default/generated/spring-boot/tests/data/removals/src/test/java/org/konveyor/boot_deps/BootDepsApplicationTests.java new file mode 100644 index 00000000..efd884af --- /dev/null +++ b/default/generated/spring-boot/tests/data/removals/src/test/java/org/konveyor/boot_deps/BootDepsApplicationTests.java @@ -0,0 +1,13 @@ +package org.konveyor.boot_deps; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class BootDepsApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/default/generated/spring-boot/tests/spring-boot-2.x-to-3.0-dependencies.test.yaml b/default/generated/spring-boot/tests/spring-boot-2.x-to-3.0-dependencies.test.yaml new file mode 100644 index 00000000..51194bdc --- /dev/null +++ b/default/generated/spring-boot/tests/spring-boot-2.x-to-3.0-dependencies.test.yaml @@ -0,0 +1,119 @@ +rulesPath: ../spring-boot-2.x-to-3.0-dependencies.yaml +providers: + - name: java + dataPath: ./data/dependencies + - name: builtin + dataPath: ./data/dependencies +tests: + - ruleID: spring-boot-2.x-to-3.0-dependencies-00001 + testCases: + - name: tc-1 + analysisParams: + mode: "source-only" + hasIncidents: + exactly: 1 + - ruleID: spring-boot-2.x-to-3.0-dependencies-00002 + testCases: + - name: tc-1 + analysisParams: + mode: "source-only" + hasIncidents: + exactly: 1 + - ruleID: spring-boot-2.x-to-3.0-dependencies-00003 + testCases: + - name: tc-1 + analysisParams: + mode: "source-only" + hasIncidents: + exactly: 1 + - ruleID: spring-boot-2.x-to-3.0-dependencies-00004 + testCases: + - name: tc-1 + analysisParams: + mode: "source-only" + hasIncidents: + exactly: 1 + - ruleID: spring-boot-2.x-to-3.0-dependencies-00005 + testCases: + - name: tc-1 + analysisParams: + mode: "source-only" + hasIncidents: + exactly: 1 + - ruleID: spring-boot-2.x-to-3.0-dependencies-00006 + testCases: + - name: tc-1 + analysisParams: + mode: "source-only" + hasIncidents: + exactly: 1 + - ruleID: spring-boot-2.x-to-3.0-dependencies-00007 + testCases: + - name: tc-1 + analysisParams: + mode: "source-only" + hasIncidents: + exactly: 1 + - ruleID: spring-boot-2.x-to-3.0-dependencies-00008 + testCases: + - name: tc-1 + analysisParams: + mode: "source-only" + hasIncidents: + exactly: 1 + - ruleID: spring-boot-2.x-to-3.0-dependencies-00009 + testCases: + - name: tc-1 + analysisParams: + mode: "source-only" + hasIncidents: + exactly: 1 + - ruleID: spring-boot-2.x-to-3.0-dependencies-00010 + testCases: + - name: tc-1 + analysisParams: + mode: "source-only" + hasIncidents: + exactly: 1 + - ruleID: spring-boot-2.x-to-3.0-dependencies-00011 + testCases: + - name: tc-1 + analysisParams: + mode: "source-only" + hasIncidents: + exactly: 1 + - ruleID: spring-boot-2.x-to-3.0-dependencies-00012 + testCases: + - name: tc-1 + analysisParams: + mode: "source-only" + hasIncidents: + exactly: 1 + - ruleID: spring-boot-2.x-to-3.0-dependencies-00013 + testCases: + - name: tc-1 + analysisParams: + mode: "source-only" + hasIncidents: + exactly: 1 + - ruleID: spring-boot-2.x-to-3.0-dependencies-00014 + testCases: + - name: tc-1 + analysisParams: + mode: "source-only" + hasIncidents: + exactly: 1 + - ruleID: spring-boot-2.x-to-3.0-dependencies-00015 + testCases: + - name: tc-1 + analysisParams: + mode: "source-only" + hasIncidents: + exactly: 1 + - ruleID: spring-boot-2.x-to-3.0-dependencies-00016 + testCases: + - name: tc-1 + analysisParams: + mode: "source-only" + hasIncidents: + exactly: 1 diff --git a/default/generated/spring-boot/tests/spring-boot-2.x-to-3.0-removals.test.yaml b/default/generated/spring-boot/tests/spring-boot-2.x-to-3.0-removals.test.yaml new file mode 100644 index 00000000..866c1070 --- /dev/null +++ b/default/generated/spring-boot/tests/spring-boot-2.x-to-3.0-removals.test.yaml @@ -0,0 +1,49 @@ +rulesPath: ../spring-boot-2.x-to-3.0-removals.yaml +providers: + - name: java + dataPath: ./data/removals + - name: builtin + dataPath: ./data/removals +tests: + - ruleID: spring-boot-2.x-to-3.0-removals-00010 + testCases: + - name: tc-1 + analysisParams: + mode: "source-only" + hasIncidents: + exactly: 1 + - ruleID: spring-boot-2.x-to-3.0-removals-00020 + testCases: + - name: tc-1 + analysisParams: + mode: "source-only" + hasIncidents: + exactly: 1 + - ruleID: spring-boot-2.x-to-3.0-removals-00030 + testCases: + - name: tc-1 + analysisParams: + mode: "source-only" + hasIncidents: + exactly: 3 + - ruleID: spring-boot-2.x-to-3.0-removals-00040 + testCases: + - name: tc-1 + analysisParams: + mode: "source-only" + hasIncidents: + exactly: 2 +# - ruleID: spring-boot-2.x-to-3.0-removals-00050 +# testCases: +# - name: tc-1 +# analysisParams: +# mode: "source-only" +# hasIncidents: +# exactly: 2 + - ruleID: spring-boot-2.x-to-3.0-removals-00060 + testCases: + - name: tc-1 + analysisParams: + mode: "source-only" + hasIncidents: + exactly: 3