Skip to content

Python: Add RPC infrastructure for calling Java recipes#6677

Merged
jkschneider merged 2 commits intomainfrom
jkschneider/rpc-process
Feb 4, 2026
Merged

Python: Add RPC infrastructure for calling Java recipes#6677
jkschneider merged 2 commits intomainfrom
jkschneider/rpc-process

Conversation

@jkschneider
Copy link
Copy Markdown
Member

@jkschneider jkschneider commented Feb 4, 2026

Summary

  • Add JavaRewriteRpc standalone RPC server in rewrite-maven that Python spawns as subprocess
  • Add Python RPC client (JavaRpcClient) to manage the Java subprocess lifecycle
  • Add Python recipe wrappers that delegate to Java: ChangeType, ChangeMethodName, ChangePackage, DeleteMethodArgument, ReorderMethodArguments, AddLiteralMethodArgument
  • Add precondition helpers: uses_type, uses_method, find_types, find_methods
  • Add Markup markers: MarkupWarn, MarkupError, MarkupInfo, MarkupDebug
  • Add additional MarkerPrinter variants: VERBOSE, FENCED, SANITIZED

Enable Python recipes to delegate to Java recipes via JSON-RPC:
- JavaRewriteRpc: Standalone RPC server that Python spawns as subprocess
- Python RPC client: JavaRpcClient manages the Java subprocess lifecycle
- Recipe wrappers: ChangeType, ChangeMethodName, ChangePackage, etc.
- Precondition helpers: uses_type, uses_method, find_types, find_methods
- Markup markers: MarkupWarn, MarkupError, MarkupInfo, MarkupDebug
- Additional MarkerPrinter variants: VERBOSE, FENCED, SANITIZED
Comment thread rewrite-python/build.gradle.kts
@jkschneider jkschneider merged commit 2218766 into main Feb 4, 2026
2 checks passed
@jkschneider jkschneider deleted the jkschneider/rpc-process branch February 4, 2026 18:25
@github-project-automation github-project-automation Bot moved this from In Progress to Done in OpenRewrite Feb 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

1 participant