Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RenameBean Scanning Recipe Refactor #630

Merged

Conversation

ryan-hudson
Copy link
Contributor

What's changed?

Refactored the RenameBean recipe into a scanning recipe that accumulates the necessary bean renames in the scanning phase then performs these changes across all files during the visiting phase.

What's your motivation?

This change allows the RenameBean recipe to rename usages of the bean that occur outside of the file the bean is declared in. This is a bug in the current version of this recipe that is resolved with this change. (See added test cases for examples.)

…ming usages that occur outside the file where the bean is defined.
Copy link
Contributor

@timtebeek timtebeek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @ryan-hudson ! Should indeed help not to break tests that do not use the context setup.

@timtebeek timtebeek merged commit c0ce24d into openrewrite:main Nov 26, 2024
@ryan-hudson
Copy link
Contributor Author

Hey @timtebeek, thanks for the review. I noticed you removed the static fromDeclaration methods in the last commit. I think those should probably stay in the recipe, they were part of the previous version and allow other recipes utilizing RenameBean to programmatically configure this recipe to target specific method or class declaration beans. Removing these "unused" static methods would break any custom recipes that might currently be utilizing this feature.

@timtebeek
Copy link
Contributor

Apologies, wasn't aware, and had discussed this with Nick as well; happy to bring those back; let me know if you'd want me to do so or if you're already working on it.

timtebeek added a commit that referenced this pull request Nov 26, 2024
* Refactored the RenameBean recipe into a scanning recipe to allow renaming usages that occur outside the file where the bean is defined.

* Add missing language hints

* Remove unused `fromDeclaration` methods

---------

Co-authored-by: Hudson, Ryan <[email protected]>
Co-authored-by: Tim te Beek <[email protected]>
timtebeek added a commit to ashakirin/rewrite-spring that referenced this pull request Nov 26, 2024
* Refactored the RenameBean recipe into a scanning recipe to allow renaming usages that occur outside the file where the bean is defined.

* Add missing language hints

* Remove unused `fromDeclaration` methods

---------

Co-authored-by: Hudson, Ryan <[email protected]>
Co-authored-by: Tim te Beek <[email protected]>
@ryan-hudson
Copy link
Contributor Author

I've gone ahead and opened another PR restoring them here

timtebeek added a commit that referenced this pull request Nov 26, 2024
* Add relevant context to description of AddSpringDependencyManagementPlugin

* Adopt RemoveMethodInvocations from rewrite-java

* Remove now-defunct rewrite-templating dependency

* refactor: Update Gradle wrapper

Use this link to re-run the recipe: https://app.moderne.io/recipes/org.openrewrite.gradle.UpdateGradleWrapper?organizationId=T3BlblJld3JpdGU%3D#defaults=W3sibmFtZSI6ImFkZElmTWlzc2luZyIsInZhbHVlIjoiRmFsc2UifV0=

Co-authored-by: Moderne <[email protected]>

* Fix method type following openrewrite/rewrite#4688

* Update method type as well when removing arguments

* Fix incorrect path computation for Spring API endpoints (#632)

* Fix incorrect path computation for Spring API endpoints

The current logic did not cover the case where a `RequestMapping` with a path was defined on the Controller class, and no paths were defined in the `*Mapping` at the method level.

* Do not disable the FindApiEndpointsTest

* Simplify FindApiEndpoints and SpringRequestMapping

* Add for now failing unit test

* AnnotationMatcher does not support wildcards

---------

Co-authored-by: Tim te Beek <[email protected]>

* Add commons codec dependency upgrade

* feat: Added recipe to comment deprecated and removed properties without alternative

Refs: #634

* feat: Added licences in recipe and test files

Refs: #634

* feat: Removed NotNull annotations

Refs: #634

* Update src/test/java/org/openrewrite/java/spring/InlineCommentSpringPropertiesTest.java

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update src/test/java/org/openrewrite/java/spring/InlineCommentSpringPropertiesTest.java

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update src/main/java/org/openrewrite/java/spring/InlineCommentSpringProperties.java

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update src/main/java/org/openrewrite/java/spring/InlineCommentSpringProperties.java

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update src/test/java/org/openrewrite/java/spring/InlineCommentSpringPropertiesTest.java

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: Removed doubled import

Refs: #634

* feat: Generated comment recipes for deprecated properties without replacement

Refs: #634

* feat: Updated comment recipes with the reason

Refs: #634

* Update src/test/java/org/openrewrite/java/spring/internal/GeneratePropertiesMigratorConfiguration.java

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Remove unused import in GeneratePropertiesMigratorConfiguration

* Update assertions to ensure yaml comments are modeled as such

* fixing SpringFoxToSpringDoc to use 1.x-appropriate springdoc artifact

helps with #638

* ChangeSpringPropertyKey does not yet fully support glob

* RenameBean Scanning Recipe Refactor (#630)

* Refactored the RenameBean recipe into a scanning recipe to allow renaming usages that occur outside the file where the bean is defined.

* Add missing language hints

* Remove unused `fromDeclaration` methods

---------

Co-authored-by: Hudson, Ryan <[email protected]>
Co-authored-by: Tim te Beek <[email protected]>

* Add MigrateSpringdocCommon recipe (#633)

* Add MigrateSpringdocCommon recipe

* Apply suggestions from bot

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Fix syntax messed up by bot

* Add MigrateSpringdocCommon recipe

* Apply suggestions from bot

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Fix syntax messed up by bot

* Fix build fail on SpringBoot_1_5

* Fix rebase error

* Move to Spring Boot 2.6 tests, to match inclusion in `spring-boot-26.yml`

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Tim te Beek <[email protected]>

* Add ChangeMethodParameter for modify parameters in Spring Batch method declaration (#631)

* Add ChangeMethodParameter for modify parameters in method declaration

Signed-off-by: Kun Chang <[email protected]>

* Minor polish

* Add correct year

* Apply suggestions from code review

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Add UpgradeSkipPolicyParameterType for Spring Batch

Signed-off-by: Kun Chang <[email protected]>

* Apply suggestions from code review

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Fix tests

* Also show ability to change interface methods

---------

Signed-off-by: Kun Chang <[email protected]>
Co-authored-by: Tim te Beek <[email protected]>
Co-authored-by: Tim te Beek <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Reuse recipe that comments out Yaml properties

* Move try into getDeprecations

* Limit comment wrangling to `CommentOutSpringPropertyKey`

* Rename test to match renamed class

* Generate removed property migrations

* Regenerated properties for older Spring Boot version

* Fix invalid property values

---------

Signed-off-by: Kun Chang <[email protected]>
Co-authored-by: Sam Snyder <[email protected]>
Co-authored-by: Tim te Beek <[email protected]>
Co-authored-by: Shannon Pamperl <[email protected]>
Co-authored-by: Moderne <[email protected]>
Co-authored-by: Adrien Loison <[email protected]>
Co-authored-by: Andrei Shakirin <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nick McKinney <[email protected]>
Co-authored-by: Ryan Hudson <[email protected]>
Co-authored-by: Hudson, Ryan <[email protected]>
Co-authored-by: SiBorea <[email protected]>
Co-authored-by: Curtis <[email protected]>
Co-authored-by: Tim te Beek <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

2 participants