Repository navigation
Migrate System Rules to System Stubs and JUnit Pioneer - #1152
Merged
Merged
Conversation
Adds MigrateSystemRules, which migrates System Rules' JUnit 4 rules in JUnit Jupiter tests: literal system property rules become JUnit Pioneer annotations, the other property, stream, standard input and environment variable rules become System Stubs @SystemStub fields, and ExpectedSystemExit becomes catchSystemExit(..). Rules that can not be migrated, or that other classes may use, get a TODO comment. The dependencies follow the migrated code, and JUnit 4to5Migration now runs the migration after UpdateTestAnnotation.
…s-pioneer-migration # Conflicts: # src/main/resources/META-INF/rewrite/recipes.csv
…s-pioneer-migration # Conflicts: # src/main/resources/META-INF/rewrite/recipes.csv
timtebeek
marked this pull request as ready for review
October 5, 2026 15:39
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
MigrateSystemRulestoJUnit4to5Migration, moving the JUnit 4 rules ofcom.github.stefanbirkner:system-rulesto JUnit Pioneer annotations (system property rules with literal values) and System Stubs@SystemStubfields (other property, stream, standard input and environment variable rules), and turningExpectedSystemExitintocatchSystemExit(..).Rules used in ways without a direct equivalent, or that other classes may use, get a
TODOcomment.SystemRulesDependenciesscans the migrated sources within the same cycle, sosystem-stubs-jupiterandjunit-pioneerare added to the source set that uses them, Pioneer 1.x is upgraded where@RestoreSystemPropertiesis introduced, andsystem-rulesis removed only once unused.The existing
EnvironmentVariablesrecipe joins this group and now retypes throughChangeType.Validated on a 14-repository corpus with the Moderne CLI; tests also run with production cycle settings to cover the dependency changes.