# openrewrite/rewrite

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/openrewrite-rewrite).**

3,312 stars · 506 forks · Java · apache-2.0

## Links

- GitHub: https://github.com/openrewrite/rewrite
- Homepage: https://docs.openrewrite.org
- awesome-repositories: https://awesome-repositories.com/repository/openrewrite-rewrite.md

## Topics

`abstract-syntax-tree` `ast` `code-search` `java` `refactoring` `refactoring-tools`

## Description

OpenRewrite is an automated refactoring engine and source-to-source migration framework. It uses a lossless semantic tree parser to represent source code as type-aware trees that preserve original whitespace and formatting, enabling precise and deterministic modifications.

The project utilizes a declarative refactoring pipeline where sequences of transformations are defined in YAML to resolve breaking changes and technical debt. It features type-aware pattern matching and cross-language model mapping to apply similar refactoring patterns across different programming languages.

The framework covers a wide range of capabilities, including automated API, dependency, and framework migrations. It provides tools for semantic code analysis, data flow tracing, and codebase-wide refactoring execution. The system also includes a recipe authoring environment with templating for code generation and a verification suite to validate transformation results.

Custom refactoring recipes can be developed, validated locally, and distributed via artifact repositories or package managers.

## Tags

### Development Tools & Productivity

- [Automated Code Refactoring](https://awesome-repositories.com/f/development-tools-productivity/code-quality-analysis/static-analysis-engines/static-analysis-tools/code-analysis-and-transformation/automated-code-refactoring.md) — Executes recipe-driven transformations to migrate source code, apply security fixes, and eliminate technical debt. ([source](https://cdn.jsdelivr.net/gh/openrewrite/rewrite@main/README.md))
- [Deprecated Class Replacements](https://awesome-repositories.com/f/development-tools-productivity/api-deprecation-auditors/deprecated-class-replacements.md) — Replaces outdated classes with modern successors to maintain compatibility with newer library versions. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel44/defaultjsonschemaloader.md))
- [Deprecated Type Replacements](https://awesome-repositories.com/f/development-tools-productivity/api-deprecation-auditors/deprecated-type-replacements.md) — Replaces outdated class or enum references with current equivalents to ensure library compatibility. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel41/tracingtag.md))
- [API Compatibility Migrations](https://awesome-repositories.com/f/development-tools-productivity/ast-transformation-tools/ast-structure-modification/automated-code-fixes/api-compatibility-migrations.md) — Moves classes between modules and renames API elements to align with updated library structures. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel47/README.md))
- [AST-Based Source Transformations](https://awesome-repositories.com/f/development-tools-productivity/ast-transformation-tools/ast-to-source-conversion/ast-based-source-transformations.md) — Modifies source code while preserving original whitespace and formatting to ensure output matches the local repository style. ([source](https://docs.openrewrite.org/concepts-and-explanations/lossless-semantic-trees.md))
- [Code Analysis and Transformation](https://awesome-repositories.com/f/development-tools-productivity/code-quality-analysis/static-analysis-engines/static-analysis-tools/code-analysis-and-transformation.md) — Associates type information with source code elements to perform accurate pattern matching and structural refactoring. ([source](https://docs.openrewrite.org/concepts-and-explanations/lossless-semantic-trees.md))
- [Code Refactoring Tools](https://awesome-repositories.com/f/development-tools-productivity/code-refactoring-tools.md) — Updates all call sites and references throughout a project when renaming methods or changing class packages. ([source](https://docs.openrewrite.org/concepts-and-explanations/type-attribution.md))
- [Configuration Migrations](https://awesome-repositories.com/f/development-tools-productivity/configuration-migrations.md) — Moves HTTP configuration from general override classes to specific client implementations across software versions. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/httpsettingstohttpclient.md))
- [Declarative Refactoring Pipelines](https://awesome-repositories.com/f/development-tools-productivity/declarative-refactoring-pipelines.md) — Implements a declarative pipeline for orchestrating multi-step codebase migrations via YAML configurations.
- [Framework Migration Tools](https://awesome-repositories.com/f/development-tools-productivity/framework-migration-tools.md) — Identifies and updates framework-specific annotations and patterns to transition codebases between library versions. ([source](https://docs.openrewrite.org/concepts-and-explanations/type-attribution.md))
- [Static Type Replacements](https://awesome-repositories.com/f/development-tools-productivity/hot-code-replacement/static-type-replacements.md) — Replaces legacy types with their corresponding updated equivalents across a codebase to facilitate version upgrades. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/changesdktype.md))
- [API Migrations](https://awesome-repositories.com/f/development-tools-productivity/large-scale-buffer-managers/api-migrations.md) — Replaces obsolete transfer manager calls with modern equivalents to maintain compatibility with the latest service API. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/transfermanagermethodstov2.md))
- [API Error Handling Migrations](https://awesome-repositories.com/f/development-tools-productivity/migration-assistants/migration-error-inspectors/api-error-handling-migrations.md) — Replaces outdated exception handling methods with current versions for stable error management during migration. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/sdkexceptiontov2.md))
- [Automated Dependency Updaters](https://awesome-repositories.com/f/development-tools-productivity/package-dependency-managers/automated-dependency-updaters.md) — Automates the lifecycle of adding, removing, and migrating library dependencies within build configuration files based on code usage.
- [Source Package Migrations](https://awesome-repositories.com/f/development-tools-productivity/package-migrators/source-package-migrations.md) — Updates fully qualified type names across a codebase to move classes between packages or libraries. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel43/staterepository.md))
- [Repository Migration Orchestrators](https://awesome-repositories.com/f/development-tools-productivity/project-scaffolding-config-code-generation/migration-tools/automated-migration-codemods/repository-migration-orchestrators.md) — Collaborates across platform teams to mass-commit code fixes and drive consistent updates across many projects. ([source](https://docs.openrewrite.org/introduction.md))
- [Refactoring Recipe Authoring](https://awesome-repositories.com/f/development-tools-productivity/refactoring-recipe-authoring.md) — Defines sequences of search and manipulation operations to perform migrations, security fixes, or technical debt elimination. ([source](https://docs.openrewrite.org/authoring-recipes/writing-a-java-refactoring-recipe.md))
- [Source-to-Source Migration Frameworks](https://awesome-repositories.com/f/development-tools-productivity/source-to-source-migration-frameworks.md) — Provides a comprehensive framework for automating library and framework upgrades via declarative refactoring recipes.
- [Activation and Discovery](https://awesome-repositories.com/f/development-tools-productivity/agent-recipe-registries/custom-recipe-definitions/activation-and-discovery.md) — Provides automated discovery and activation of transformation rules via classpath scanning and configuration files. ([source](https://docs.openrewrite.org/concepts-and-explanations/environment.md))
- [Declarative Recipe Composition](https://awesome-repositories.com/f/development-tools-productivity/agent-recipe-registries/custom-recipe-definitions/declarative-recipe-composition.md) — Combines and configures multiple refactoring operations into complex migration goals using YAML files. ([source](https://docs.openrewrite.org/concepts-and-explanations/recipes.md))
- [Declarative Recipe Execution](https://awesome-repositories.com/f/development-tools-productivity/agent-recipe-registries/custom-recipe-definitions/declarative-recipe-execution.md) — Executes refactoring rules using YAML configurations to specify parameters and recipes without writing imperative code. ([source](https://docs.openrewrite.org/authoring-recipes/writing-a-java-refactoring-recipe.md))
- [Declarative Recipe Specification](https://awesome-repositories.com/f/development-tools-productivity/agent-recipe-registries/custom-recipe-definitions/declarative-recipe-specification.md) — Specifies sequences of source code transformations and dependency updates using declarative YAML configurations. ([source](https://docs.openrewrite.org/authoring-recipes/automate-breaking-changes.md))
- [Language-Specific Recipes](https://awesome-repositories.com/f/development-tools-productivity/agent-recipe-registries/custom-recipe-definitions/language-specific-recipes.md) — Defines custom transformation rules to automate source code migrations and technical debt elimination in JS/TS projects. ([source](https://docs.openrewrite.org/authoring-recipes/writing-a-javascript-refactoring-recipe.md))
- [Migration Transformation Optimizations](https://awesome-repositories.com/f/development-tools-productivity/api-development-sdks/development-apis/code-transformation-apis/migration-transformation-optimizations.md) — Adds required imports and explanatory comments to S3-related code transforms during version migration to ensure compilation. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/s3addimportsandcomments.md))
- [Node Replacements](https://awesome-repositories.com/f/development-tools-productivity/ast-transformation-tools/ast-node-generation/node-replacements.md) — Allows for the replacement of specific nodes within the source tree to perform structural refactoring. ([source](https://docs.openrewrite.org/concepts-and-explanations/visitors.md))
- [Method Modifier Manipulations](https://awesome-repositories.com/f/development-tools-productivity/behavior-modifiers/method-modifier-manipulations.md) — Provides the ability to programmatically add or remove modifiers from method declarations during refactoring. ([source](https://docs.openrewrite.org/authoring-recipes/modifying-methods-with-javatemplate.md))
- [Control Flow Analysis](https://awesome-repositories.com/f/development-tools-productivity/code-quality-analysis/static-analysis-engines/static-analysis-tools/control-flow-analysis.md) — Examines execution paths within source code to identify unreachable statements or logic flaws during automated refactoring. ([source](https://docs.openrewrite.org/recipes/analysis/controlflow/README.md))
- [Code Visualizers](https://awesome-repositories.com/f/development-tools-productivity/code-visualizers.md) — Generates visual representations of lossless semantic trees to map tree elements to source code snippets. ([source](https://docs.openrewrite.org/concepts-and-explanations/tree-visiting-printer.md))
- [Configuration Updates](https://awesome-repositories.com/f/development-tools-productivity/configuration-updates.md) — Modifies specific application settings in configuration files without overwriting the entire configuration. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel40/properties/rejectedpolicy.md))
- [Type Conversions to Durations](https://awesome-repositories.com/f/development-tools-productivity/date-and-time-utilities/duration-calculations/duration-data-types/type-conversions-to-durations.md) — Automates the conversion of numeric time parameters to strongly-typed duration objects for improved type safety. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/numbertoduration.md))
- [Change Impact Analysis](https://awesome-repositories.com/f/development-tools-productivity/dependency-analysis-tools/change-impact-analysis.md) — Evaluates the reach of modifications by analyzing multiple repositories to determine the blast radius of proposed changes. ([source](https://docs.openrewrite.org/introduction.md))
- [Automated Dependency Insertions](https://awesome-repositories.com/f/development-tools-productivity/dependency-analysis-tools/code-dependency-analysis/missing-dependency-detection/automated-dependency-insertions.md) — Scans source code for missing classes and automatically inserts necessary library dependencies into the project configuration. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel412/scanclassesmovedmaven.md))
- [Unused Dependency Identification](https://awesome-repositories.com/f/development-tools-productivity/dependency-analysis-tools/code-dependency-analysis/unused-dependency-identification.md) — Identifies and deletes specified library dependencies from build configuration files to clean up unused modules. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel419/removedcomponents.md))
- [Dependency Removers](https://awesome-repositories.com/f/development-tools-productivity/dependency-removers.md) — Deletes specific project dependencies by their identifiers to eliminate deprecated libraries from build files. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel411/removeddependencies.md))
- [Deprecated Method Replacements](https://awesome-repositories.com/f/development-tools-productivity/deprecated-method-replacements.md) — Updates deprecated method calls to their equivalent versions in newer SDKs. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/s3methodstov2.md))
- [Builder Pattern Migrations](https://awesome-repositories.com/f/development-tools-productivity/large-scale-buffer-managers/api-migrations/builder-pattern-migrations.md) — Replaces manual object creation using new expressions with builder patterns to align with updated API requirements. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/newclasstobuilder.md))
- [Event](https://awesome-repositories.com/f/development-tools-productivity/large-scale-buffer-managers/api-migrations/event.md) — Changes event notification method names and return types to match the specifications of the updated service API. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/s3eventnotificationmethodstov2.md))
- [Method Reference Renaming](https://awesome-repositories.com/f/development-tools-productivity/method-reference-renaming.md) — Provides automated renaming of method references across a codebase to ensure compatibility after API changes. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel40/changemanagedfailoverloadbalancermbeanmethodname.md))
- [Constant Identifier Substitutions](https://awesome-repositories.com/f/development-tools-productivity/predefined-constants/geometric-constants/enumerated-constants/constant-identifier-substitutions.md) — Swaps specific fully qualified constant references with updated alternatives to maintain codebase compatibility. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel410/camelsmb.md))
- [Property Renaming](https://awesome-repositories.com/f/development-tools-productivity/project-configuration/component-manifest-registration/yaml-component-manifests/property-renaming.md) — Updates outdated property keys to their current names within YAML configurations to ensure compatibility. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel415/yamdataformats.md))
- [Property Removals](https://awesome-repositories.com/f/development-tools-productivity/project-configuration/configuration-migration/property-removals.md) — Removes specific key-value pairs from configuration files to eliminate deprecated settings or obsolete properties. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel411/removedlightweight.md))
- [Imperative Recipe Generation](https://awesome-repositories.com/f/development-tools-productivity/refactoring-recipe-distribution/imperative-recipe-generation.md) — Creates imperative refactoring recipes by defining before and after code snippets to match and replace patterns. ([source](https://docs.openrewrite.org/authoring-recipes/refaster-recipes.md))
- [Authentication Type Migrations](https://awesome-repositories.com/f/development-tools-productivity/sdk-authentication/authentication-type-migrations.md) — Updates authentication-related class names and method signatures to migrate source code between SDK versions. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/changeauthtypes.md))
- [Client Builder Migrations](https://awesome-repositories.com/f/development-tools-productivity/sdk-client-initialization/sdk-client-patching/client-builder-migrations.md) — Updates client builder calls to wrap region strings with required region objects to ensure compatibility. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/v1buildervariationstov2builder.md))
- [SDK Version Migrations](https://awesome-repositories.com/f/development-tools-productivity/sdk-version-migrations.md) — Updates dependencies and transforms API calls to fluent builder patterns to align source code with a newer AWS SDK version. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/README.md))
- [YAML-Based Task Definitions](https://awesome-repositories.com/f/development-tools-productivity/task-runners/yaml-based-task-definitions.md) — Uses YAML as the declarative configuration language to group existing refactoring rules into a single executable sequence. ([source](https://docs.openrewrite.org/authoring-recipes/types-of-recipes.md))
- [Template-Based Code Generators](https://awesome-repositories.com/f/development-tools-productivity/template-based-code-generators.md) — Injects structured code snippets into the source tree using dynamic value substitution to automate boilerplate. ([source](https://docs.openrewrite.org/authoring-recipes/writing-a-java-refactoring-recipe.md))
- [Interpolated Code Templates](https://awesome-repositories.com/f/development-tools-productivity/template-based-code-generators/interpolated-code-templates.md) — Inserts new parameters or statements into existing code structures using templates with interpolation markers. ([source](https://docs.openrewrite.org/authoring-recipes/modifying-methods-with-javatemplate.md))
- [Version Migration Scripts](https://awesome-repositories.com/f/development-tools-productivity/version-migration-scripts.md) — Provides scripts and automated procedures for migrating applications between major software versions. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel410/camelmigrationrecipe.md))
- [Return Type Migrations](https://awesome-repositories.com/f/development-tools-productivity/version-migration-scripts/return-type-migrations.md) — Updates method invocation return types from legacy versions to the current version to ensure API compatibility. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/s3typestov2.md))
- [URI Reference Migrations](https://awesome-repositories.com/f/development-tools-productivity/version-migration-scripts/uri-reference-migrations.md) — Transforms legacy storage URI references to the current version to align with updated service provider standards. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/s3uritov2.md))

### Software Engineering & Architecture

- [Lossless Semantic Trees](https://awesome-repositories.com/f/software-engineering-architecture/abstract-syntax-tree-tools/internal-tree-representations/lossless-semantic-trees.md) — Uses a lossless semantic tree parser to represent source code while preserving original whitespace and formatting.
- [Automated Breaking Change Resolutions](https://awesome-repositories.com/f/software-engineering-architecture/automated-breaking-change-resolutions.md) — Creates and distributes refactoring recipes that automatically update source code and dependencies to resolve breaking changes. ([source](https://docs.openrewrite.org/authoring-recipes/automate-breaking-changes.md))
- [AST Visitor Patterns](https://awesome-repositories.com/f/software-engineering-architecture/ast-visitor-patterns.md) — Navigates source hierarchies using a visitor pattern and cursor stack to track position and context.
- [Automated Refactoring Engines](https://awesome-repositories.com/f/software-engineering-architecture/automated-refactoring-engines.md) — Serves as a specialized engine for applying programmatic, large-scale source code transformations via a lossless semantic tree.
- [Automated Refactoring Tools](https://awesome-repositories.com/f/software-engineering-architecture/automated-refactoring-tools.md) — Executes prepackaged recipes to perform framework migrations, security fixes, and stylistic updates across repositories. ([source](https://docs.openrewrite.org/introduction.md))
- [Type-Aware Template Replacements](https://awesome-repositories.com/f/software-engineering-architecture/code-transformation-engines/template-aware-transformations/type-aware-template-replacements.md) — Ensures compiler-level correctness when swapping expressions or statements using type-aware templates. ([source](https://docs.openrewrite.org/authoring-recipes/types-of-recipes.md))
- [Pattern-Based Replacements](https://awesome-repositories.com/f/software-engineering-architecture/code-transformation-tools/pattern-based-replacements.md) — Swaps expressions or statements using type-aware templates that leverage compiler information for accurate replacement. ([source](https://docs.openrewrite.org/concepts-and-explanations/recipes.md))
- [Pattern-Based Code Manipulation](https://awesome-repositories.com/f/software-engineering-architecture/coding-patterns/pattern-based-code-manipulation.md) — Matches specific code patterns using captures to replace deprecated API calls with updated equivalents. ([source](https://docs.openrewrite.org/authoring-recipes/writing-a-javascript-refactoring-recipe.md))
- [Configuration Key Renaming](https://awesome-repositories.com/f/software-engineering-architecture/configuration-key-ordering/configuration-key-renaming.md) — Renames specific configuration keys or prefixes in property files to maintain compatibility. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel44/routecontrollerproperties.md))
- [Cross-File Analysis](https://awesome-repositories.com/f/software-engineering-architecture/cross-file-analysis.md) — Analyzes multiple source files of different formats and uses shared state to make conditional modification decisions. ([source](https://docs.openrewrite.org/authoring-recipes/writing-recipes-over-multiple-source-file-types.md))
- [Cross-Language Pattern Mappings](https://awesome-repositories.com/f/software-engineering-architecture/cross-language-pattern-mappings.md) — Provides mechanisms to map language-specific syntax into a common semantic model for cross-language refactoring patterns.
- [Custom Refactoring Logic](https://awesome-repositories.com/f/software-engineering-architecture/custom-refactoring-logic.md) — Enables the authoring of custom logic for nuanced refactorings that require deep analysis of the source code state. ([source](https://docs.openrewrite.org/authoring-recipes/types-of-recipes.md))
- [Deprecated Method Renaming](https://awesome-repositories.com/f/software-engineering-architecture/deprecated-api-detectors/deprecated-method-renaming.md) — Updates method names in source code to match new API specifications across data format implementations. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel415/dataformats.md))
- [Large-Scale Code Migrations](https://awesome-repositories.com/f/software-engineering-architecture/large-scale-code-migrations.md) — Facilitates systematic upgrading of dependencies and APIs across massive codebases using automated refactoring recipes.
- [SDK Type Migrations](https://awesome-repositories.com/f/software-engineering-architecture/legacy-migration-strategies/app-version-migrations/sdk-type-migrations.md) — Updates region, authentication, and exception classes between SDK versions to maintain compatibility. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/changesdkcoretypes.md))
- [API Design Pattern Migrations](https://awesome-repositories.com/f/software-engineering-architecture/legacy-migration-strategies/framework-migrations/api-design-pattern-migrations.md) — Transforms legacy getter methods into the fluent getter style used in updated SDK versions. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/v1gettertov2.md))
- [Source Code](https://awesome-repositories.com/f/software-engineering-architecture/naming-conventions/identifier-renaming/source-code.md) — Renames specific methods in a transfer manager to align with updated API requirements. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/changetransfermanagersimplemethods.md))
- [Type-Aware Matching](https://awesome-repositories.com/f/software-engineering-architecture/pattern-matching-libraries/type-aware-matching.md) — Identifies code structures by associating source elements with compiler type information to ensure accurate transformations.
- [AST Hierarchy Traversers](https://awesome-repositories.com/f/software-engineering-architecture/tree-traversal-algorithms/document-tree-traversers/ast-hierarchy-traversers.md) — Tracks a visitor's position during tree traversal to enable access to parent or ancestor elements in an acyclic structure. ([source](https://docs.openrewrite.org/concepts-and-explanations/cursors.md))
- [Tree Cursor Tracking](https://awesome-repositories.com/f/software-engineering-architecture/tree-traversal-algorithms/document-tree-traversers/tree-cursor-tracking.md) — Provides a cursor stack to track a visitor's position, enabling access to parent and sibling elements. ([source](https://docs.openrewrite.org/concepts-and-explanations/visitors.md))
- [Tree Type Inspection](https://awesome-repositories.com/f/software-engineering-architecture/abstract-syntax-tree-tools/internal-tree-representations/lossless-semantic-trees/tree-type-inspection.md) — Visualizes how source code maps to specific tree types using specialized printers and breakpoints. ([source](https://docs.openrewrite.org/concepts-and-explanations/lst-examples.md))
- [API Method Call Relocations](https://awesome-repositories.com/f/software-engineering-architecture/api-method-call-relocations.md) — Relocates method calls from one class to a helper class to maintain compatibility during version upgrades. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel40/usepluginhelperforcontextgetters.md))
- [Key Renaming](https://awesome-repositories.com/f/software-engineering-architecture/configuration-key-ordering/key-renaming.md) — Updates specific configuration property keys across a codebase to maintain compatibility after renaming events. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel42/camelmaindebugger.md))
- [Control-Flow Graph Visualization](https://awesome-repositories.com/f/software-engineering-architecture/control-flow-graph-visualization.md) — Provides visual representations of program execution paths to analyze logic and branching. ([source](https://docs.openrewrite.org/recipes/analysis/controlflow/controlflowvisualization.md))
- [Instantiation Pattern Migrations](https://awesome-repositories.com/f/software-engineering-architecture/creational-design-patterns/factory-method-patterns/instantiation-pattern-migrations.md) — Converts object instantiation calls to static factory method calls to align with updated API patterns. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/newclasstostaticfactory.md))
- [POJO Version Migrations](https://awesome-repositories.com/f/software-engineering-architecture/data-migrators/pojo-version-migrations.md) — Modifies plain old Java object usage to be compatible with the current version of the service provider. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/s3pojotov2.md))
- [Fluent API Migrations](https://awesome-repositories.com/f/software-engineering-architecture/fluent-api-migrations.md) — Transforms setter methods into the fluent setter pattern required by newer API versions. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/v1settertov2.md))
- [Framework Migrations](https://awesome-repositories.com/f/software-engineering-architecture/framework-migrations.md) — Automates the transformation of framework-specific API listeners to comply with the latest framework versions. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel416/camel416milolambdarecipe.md))
- [Signature-Based Targeting](https://awesome-repositories.com/f/software-engineering-architecture/function-naming-structures/function-name-retrieval-utilities/method-lookups-by-name/signature-based-targeting.md) — Filters the scope of a refactoring operation by matching method signatures and package names to isolate intended targets. ([source](https://docs.openrewrite.org/authoring-recipes/modifying-methods-with-javatemplate.md))
- [App Version Migrations](https://awesome-repositories.com/f/software-engineering-architecture/legacy-migration-strategies/app-version-migrations.md) — Provides automated flows for updating source code and configuration to align with newer framework versions. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel45/camelmigrationrecipe.md))
- [Request Implementation Migrations](https://awesome-repositories.com/f/software-engineering-architecture/legacy-migration-strategies/app-version-migrations/request-implementation-migrations.md) — Transforms legacy non-streaming request calls into current implementations to facilitate service version upgrades. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/s3nonstreamingrequesttov2.md))
- [Request Object Migrations](https://awesome-repositories.com/f/software-engineering-architecture/legacy-migration-strategies/app-version-migrations/request-object-migrations.md) — Transforms request instances and the methods that accept them into their updated equivalents. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/s3nonstreamingrequesttov2complex.md))
- [Framework Migrations](https://awesome-repositories.com/f/software-engineering-architecture/legacy-migration-strategies/framework-migrations.md) — Automates the transformation of framework-specific APIs, including method names and constants, for newer versions. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel43/kafkametadata.md))
- [DSL Attribute Migrations](https://awesome-repositories.com/f/software-engineering-architecture/legacy-migration-strategies/framework-migrations/dsl-attribute-migrations.md) — Updates renamed attributes in the resequence XML DSL to maintain compatibility with newer framework versions. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel43/camelresequenceeipxmlrecipe.md))
- [Streaming API Migrations](https://awesome-repositories.com/f/software-engineering-architecture/legacy-migration-strategies/framework-migrations/streaming-api-migrations.md) — Replaces legacy object streaming usage with current implementations to ensure compatibility with the latest SDK version. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/s3streamingresponsetov2.md))
- [Streaming Request Migrations](https://awesome-repositories.com/f/software-engineering-architecture/legacy-migration-strategies/framework-migrations/streaming-request-migrations.md) — Converts legacy streaming request calls into current implementations to support the latest service provider version. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/s3streamingrequesttov2.md))
- [Code Annotations](https://awesome-repositories.com/f/software-engineering-architecture/metadata-attachments/code-annotations.md) — Associates structured metadata with language constructs to identify search results and coordinate refactoring steps. ([source](https://docs.openrewrite.org/concepts-and-explanations/markers.md))
- [Method Call Relocations](https://awesome-repositories.com/f/software-engineering-architecture/method-call-relocations.md) — Relocates specific method calls from one class to a related extension class to maintain compatibility. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel45/useextendedcamelcontextgetters.md))
- [Context-Sensitive Symbol Resolution](https://awesome-repositories.com/f/software-engineering-architecture/recursive-variable-expansion/recursive-template-resolution/context-sensitive-symbol-resolution.md) — Creates templates that resolve symbols from the surrounding source file for context-sensitive code insertion. ([source](https://docs.openrewrite.org/concepts-and-explanations/javatemplate.md))
- [Syntax Abstractions](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/abstraction-domain-modeling/language-agnostic-logic-models/syntax-abstractions.md) — Wraps language-specific structural differences in high-level syntax abstractions to simplify recipe development. ([source](https://docs.openrewrite.org/concepts-and-explanations/traits.md))
- [Technical Debt Management](https://awesome-repositories.com/f/software-engineering-architecture/technical-debt-management.md) — Employs systematic refactoring recipes to identify and replace deprecated patterns and insecure schemes to reduce technical debt.
- [Transformation Task Chaining](https://awesome-repositories.com/f/software-engineering-architecture/transformation-pipelines/transformation-task-chaining.md) — OpenRewrite sequences multiple visitors to execute in order, allowing one transformation to trigger subsequent cleanup or dependent modifications. ([source](https://docs.openrewrite.org/concepts-and-explanations/visitors.md))
- [Tree Element Metadata Providers](https://awesome-repositories.com/f/software-engineering-architecture/tree-traversal-algorithms/tree-element-metadata-providers.md) — Attaches and retrieves metadata on specific tree elements during traversal to coordinate actions between child and parent nodes. ([source](https://docs.openrewrite.org/concepts-and-explanations/cursors.md))

### Artificial Intelligence & ML

- [Text-to-AST Conversion](https://awesome-repositories.com/f/artificial-intelligence-ml/code-snippets/ast-snippet-substitutions/text-to-ast-conversion.md) — Transforms raw code snippets or text into structured semantic tree elements using templates and parsers. ([source](https://docs.openrewrite.org/authoring-recipes/recipe-conventions-and-best-practices.md))
- [Snippet-Based Selectors](https://awesome-repositories.com/f/artificial-intelligence-ml/code-snippets/snippet-based-selectors.md) — Parses code snippets into type-attributed semantic tree elements to use as selectors for finding complex code patterns. ([source](https://docs.openrewrite.org/concepts-and-explanations/javatemplate.md))

### Part of an Awesome List

- [API Method Migrations](https://awesome-repositories.com/f/awesome-lists/data/data-integration-and-import/version-to-version-migrations/api-method-migrations.md) — Updates outdated enum getter method names to their current versions to ensure compatibility. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/enumgetterstov2.md))
- [Semantic Code Analyzers](https://awesome-repositories.com/f/awesome-lists/devtools/code-analysis-and-linting/semantic-code-analyzers.md) — Implements semantic analysis to identify symbols, definitions, and data flows for precise refactoring target identification.
- [Migration and Update Tools](https://awesome-repositories.com/f/awesome-lists/devtools/migration-and-update-tools.md) — Replaces specific outdated class types with their updated equivalents to maintain compatibility. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel415/ainestedheadersclasses.md))
- [SDK Type Migrations](https://awesome-repositories.com/f/awesome-lists/devtools/migration/sdk-type-migrations.md) — Updates outdated exception classes and method names to their current versions to facilitate migration. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/changeexceptiontypes.md))
- [Method Name Synchronizations](https://awesome-repositories.com/f/awesome-lists/devtools/pattern-matching/code-naming-patterns/method-naming-patterns/method-name-synchronizations.md) — Updates method names across a codebase to match new API specifications during library upgrades. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel40/changemanagedchoicembeanmethodname.md))
- [Source Code Formatters](https://awesome-repositories.com/f/awesome-lists/devtools/code-analysis-and-formatting/source-code-formatters.md) — Enforces consistent visual formatting across a codebase to ensure all files adhere to a configured style. ([source](https://docs.openrewrite.org/concepts-and-explanations/styles.md))
- [Transformation Guards](https://awesome-repositories.com/f/awesome-lists/devtools/code-analysis-and-linting/semantic-code-analyzers/transformation-guards.md) — Ensures transformations only trigger when code matches specific package or module imports to prevent accidental changes. ([source](https://docs.openrewrite.org/authoring-recipes/writing-a-javascript-refactoring-recipe.md))
- [Code Formatting and Style](https://awesome-repositories.com/f/awesome-lists/devtools/code-formatting-and-style.md) — Defines and enforces visual formatting rules such as indentation and line breaks for consistent automated code changes. ([source](https://docs.openrewrite.org/concepts-and-explanations/styles.md))
- [DSL Syntax Updates](https://awesome-repositories.com/f/awesome-lists/devtools/migration-and-update-tools/dsl-syntax-updates.md) — Renames specific XML tags and Java method calls to align with updated naming conventions in data formats. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel413/furydsl.md))
- [URI Structural Refactoring](https://awesome-repositories.com/f/awesome-lists/devtools/migration-and-update-tools/dsl-syntax-updates/uri-structural-refactoring.md) — Flattens nested URIs into direct values within YAML DSLs to align with updated specifications. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel419/yamldsl419sagarecipe.md))
- [API Request Migrations](https://awesome-repositories.com/f/awesome-lists/devtools/migration/api-request-migrations.md) — Transforms request instances and the methods that accept them into their updated equivalents. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/s3putobjectrequesttov2.md))

### Data & Databases

- [Alignment File Migrators](https://awesome-repositories.com/f/data-databases/data-integration-synchronization/data-migration/alignment-file-migrators.md) — Modifies configuration keys and values in property files to align with updated API requirements. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel40/properties/README.md))
- [Source Code Type Migrations](https://awesome-repositories.com/f/data-databases/entity-modeling/primary-keys/primary-key-type-migrations/source-code-type-migrations.md) — Updates fully qualified type names in source code to align with new package structures during upgrades. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel412/scanclassesmoved.md))
- [Stateful Visitor Coordination](https://awesome-repositories.com/f/data-databases/stateful-visitor-coordination.md) — Implements mechanisms to pass mutable context and metadata between multiple tree traversal passes to synchronize refactoring changes. ([source](https://docs.openrewrite.org/authoring-recipes/multiple-visitors.md))
- [Fluent API Migrations](https://awesome-repositories.com/f/data-databases/data-integration-synchronization/data-migration/fluent-migration-systems/fluent-api-migrations.md) — Converts constructor arguments into fluent setter calls to align with modern builder patterns. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/s3methodsconstructortofluent.md))
- [Traversal Cursor Managers](https://awesome-repositories.com/f/data-databases/graph-querying/traversal-state-management/traversal-cursor-managers.md) — Updates the current traversal position to reference modified elements, ensuring subsequent operations act on the mutated node. ([source](https://docs.openrewrite.org/concepts-and-explanations/cursors.md))
- [Migration Transformation Support](https://awesome-repositories.com/f/data-databases/migration-management/migration-transformation-support.md) — Adds necessary imports and explanatory comments to transfer manager transformations that are not fully supported. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/s3tmaddcomments.md))
- [Configuration Key Updates](https://awesome-repositories.com/f/data-databases/object-property-accessors/collection-property-modifiers/list-property-storage/bulk-property-updates/configuration-key-updates.md) — Changes specific configuration property keys to new values to ensure compatibility. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel45/traceproperties.md))

### DevOps & Infrastructure

- [Configuration Migration](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/file-based-configuration/configuration-migration.md) — Renames specific property keys in component configurations and updates their values to ensure compatibility. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel415/nettyandnettyhttp.md))
- [Type Checker Configuration Migrations](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/file-based-configuration/configuration-migration/type-checker-configuration-migrations.md) — Replaces outdated transfer manager type references and return types with current versions throughout the source code. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/changetransfermanagertypes.md))
- [Dependency Versioning](https://awesome-repositories.com/f/devops-infrastructure/version-upgrades/dependency-versioning.md) — Updates dependency declarations by modifying group IDs, artifact IDs, and version numbers in manifests. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/upgradesdkdependencies.md))
- [Dependency Version Updates](https://awesome-repositories.com/f/devops-infrastructure/version-upgrades/dependency-versioning/dependency-version-updates.md) — Detects breaking changes in method signatures and updates dependencies to the latest compatible releases. ([source](https://docs.openrewrite.org/concepts-and-explanations/type-attribution.md))
- [Route Restructuring](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/file-based-configuration/configuration-file-loading/configuration-merging/yaml/route-restructuring.md) — Updates YAML-based route configurations by restructuring children and removing disallowed steps to meet new requirements. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel40/yaml/README.md))
- [Key Renaming](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/file-based-configuration/configuration-file-loading/dsl-configuration-parsing/key-renaming.md) — Updates specific keys within YAML and XML DSL files to maintain compatibility with naming conventions. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel412/yamldslbearer.md))
- [Conditional Dependency Insertion](https://awesome-repositories.com/f/devops-infrastructure/dependency-management/conditional-dependency-insertion.md) — Automatically adds required dependencies to the project when legacy source patterns are detected. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/addtransfermanagerdependency.md))
- [Classpath Dependency Management](https://awesome-repositories.com/f/devops-infrastructure/dependency-resolution/library-version-resolution/classpath-dependency-management.md) — Loads specific versions of dependencies into the parsing classpath to support refactoring across different releases. ([source](https://docs.openrewrite.org/authoring-recipes/multiple-versions.md))
- [Configuration Format Migrations](https://awesome-repositories.com/f/devops-infrastructure/version-upgrades/artifact-versioning/artifact-format-migration/configuration-format-migrations.md) — Converts individual bean property definitions into a properties-based configuration format to align with API requirements. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel46/yamldsl46recipe.md))

### Programming Languages & Runtimes

- [Class Name Mapping](https://awesome-repositories.com/f/programming-languages-runtimes/class-name-mapping.md) — Provides automated renaming of class identifiers to maintain compatibility during library upgrades. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel413/authenticationhttpclientconfigurer.md))
- [Inter-procedural Data Flow Analyzers](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-interpreter-internals/compiler-toolchains/optimization-frameworks/static-analysis-optimizers/inter-procedural-data-flow-analyzers.md) — Tracks data propagation across multiple function boundaries to identify the impact of data originating in one method call. ([source](https://docs.openrewrite.org/recipes/analysis/search/findflowbetweenmethods.md))
- [Source Code Analysis Tools](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-analysis-tools.md) — Converts source code into structured representations to collect metadata across all source files for targeted changes. ([source](https://docs.openrewrite.org/concepts-and-explanations/recipes.md))
- [Java Source Code Transformers](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-compilers/source-code-templates/source-code-transformation-engines/java-source-code-transformers.md) — Implements a transformation engine that modifies semantic trees while preserving original whitespace and formatting. ([source](https://docs.openrewrite.org/introduction.md))
- [Structural Pattern Matching](https://awesome-repositories.com/f/programming-languages-runtimes/structural-pattern-matching.md) — Identifies specific code structures using textual templates and AST bindings to extract parameters for transformations. ([source](https://docs.openrewrite.org/concepts-and-explanations/javatemplate.md))
- [Type Qualifier Management](https://awesome-repositories.com/f/programming-languages-runtimes/type-qualifier-management.md) — Handles the replacement of fully qualified type names to resolve naming conflicts during library upgrades. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel413/furyjava.md))
- [Fully Qualified Type Renaming](https://awesome-repositories.com/f/programming-languages-runtimes/type-qualifier-management/fully-qualified-type-renaming.md) — Updates references from an old fully qualified type name to a new one to maintain compatibility. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel410/camelazurefiles.md))
- [Builder Pattern Conversions](https://awesome-repositories.com/f/programming-languages-runtimes/class-instantiation/builder-pattern-conversions.md) — Replaces direct use of the new keyword with builder patterns to align with modern API requirements. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/newclasstobuilderpattern.md))
- [Compile-Time Safe Templates](https://awesome-repositories.com/f/programming-languages-runtimes/compile-time-safe-templates.md) — Generates semantic templates using expressions and statements through an annotation processor to ensure compile-time safety. ([source](https://docs.openrewrite.org/concepts-and-explanations/javatemplate.md))
- [Static Method Call Analysis](https://awesome-repositories.com/f/programming-languages-runtimes/static-method-call-analysis.md) — Locates specific method calls across a codebase by performing static analysis without executing the code. ([source](https://docs.openrewrite.org/recipes/analysis/search/findmethods.md))
- [Type Conversions](https://awesome-repositories.com/f/programming-languages-runtimes/type-conversions.md) — Replaces buffer usages with specific byte types by calling the appropriate conversion method. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/bytebuffertosdkbytes.md))
- [Method Signature and Body Refactorings](https://awesome-repositories.com/f/programming-languages-runtimes/type-methods/method-structure-analyzers/method-signature-and-body-refactorings.md) — Performs structured migrations by modifying method signatures and bodies through semantic tree templates. ([source](https://docs.openrewrite.org/authoring-recipes/modifying-methods-with-javatemplate.md))

### Testing & Quality Assurance

- [Transformation](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/assertion-extensions-modes/asynchronous-interaction-utilities/element-state-assertions/state-assertions/transformation.md) — Validates code transformations by asserting that source files are correctly modified from a starting state to a target end state. ([source](https://docs.openrewrite.org/authoring-recipes/recipe-testing.md))
- [Refactoring Recipe Validations](https://awesome-repositories.com/f/testing-quality-assurance/refactoring-recipe-validations.md) — Validates the accuracy of transformation recipes by comparing initial and resulting source code states. ([source](https://docs.openrewrite.org/authoring-recipes/writing-a-javascript-refactoring-recipe.md))
- [Transformation Rule Testing](https://awesome-repositories.com/f/testing-quality-assurance/transformation-rule-testing.md) — Verifies code transformations by asserting that specific input snippets produce the expected final output. ([source](https://docs.openrewrite.org/authoring-recipes/writing-a-java-refactoring-recipe.md))
- [Local Refactoring Testing](https://awesome-repositories.com/f/testing-quality-assurance/automated-test-suites/local-test-execution/local-refactoring-testing.md) — Allows running custom refactoring logic on real local codebases to verify changes before publishing. ([source](https://docs.openrewrite.org/authoring-recipes/javascript-recipe-development-environment.md))
- [YAML AST Analysis](https://awesome-repositories.com/f/testing-quality-assurance/static-code-analysis/ast-extraction/static-analysis-ast-parsing/yaml-ast-analysis.md) — Utilizes a debugger to traverse and analyze the semantic trees of YAML configuration files. ([source](https://docs.openrewrite.org/concepts-and-explanations/yaml-lst-examples.md))

### Web Development

- [API Design Pattern Migrations](https://awesome-repositories.com/f/web-development/conversational-interface-builders/api-design-pattern-migrations.md) — Converts setter methods to builder patterns to align source code with updated API standards. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/setterstobuilderv2.md))
- [Tag Renamers](https://awesome-repositories.com/f/web-development/element-attributes/tag-renamers.md) — Updates specific XML element names across a codebase to maintain compatibility with API specifications. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel412/xmldslbearer.md))
- [Type Reference Migrations](https://awesome-repositories.com/f/web-development/email-templates/version-migrations/type-reference-migrations.md) — Transforms event notification type references from the legacy version to the current version of the service provider. ([source](https://docs.openrewrite.org/recipes/amazon/awssdk/v2migration/changes3eventnotificationtypes.md))

### Networking & Communication

- [Configuration Migrations](https://awesome-repositories.com/f/networking-communication/traffic-management-gateways/circuit-breakers/configuration-migrations.md) — Updates XML DSL circuit breaker configurations between versions to ensure compatibility. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel40/xml/circuitbreakerxmldslrecipe.md))
- [URI Pattern Transformations](https://awesome-repositories.com/f/networking-communication/uri-handlers/uri-construction-and-parsing/uri-string-assemblers/uri-pattern-transformations.md) — Transforms specific URI patterns across Java, XML, and YAML formats to meet updated API requirements. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel420/README.md))

### Security & Cryptography

- [Insecure URI Detectors](https://awesome-repositories.com/f/security-cryptography/insecure-uri-detectors.md) — Identifies URIs initialized with insecure HTTP schemes using local data flow analysis to locate vulnerabilities. ([source](https://docs.openrewrite.org/recipes/analysis/search/uricreatedwithhttpscheme.md))

### User Interface & Experience

- [Property Declaration Refactorings](https://awesome-repositories.com/f/user-interface-experience/declarative-property-bindings/property-declaration-refactorings.md) — Converts bean property declarations to the current supported properties format. ([source](https://docs.openrewrite.org/recipes/apache/camel/upgrade/camel46/README.md))
