Skip to content

Remove all remaining PowerMock dependencies in ReplacePowerMockito recipe#921

Merged
timtebeek merged 8 commits intomainfrom
remove-remaining-powermock-deps
Feb 28, 2026
Merged

Remove all remaining PowerMock dependencies in ReplacePowerMockito recipe#921
timtebeek merged 8 commits intomainfrom
remove-remaining-powermock-deps

Conversation

@steve-aom-elliott
Copy link
Contributor

@steve-aom-elliott steve-aom-elliott commented Feb 27, 2026

Summary

  • Use wildcard RemoveDependency and RemoveManagedDependency entries to remove all org.powermock:powermock* artifacts
  • Added integration tests verifying PowerMock dependency removal from Gradle builds, Maven POMs, and Maven managed dependencies

Problem

The ReplacePowerMockito recipe only removed 3 PowerMock artifacts (powermock-api-mockito, powermock-api-mockito2, powermock-core), leaving behind many others such as powermock-module-junit4, powermock-reflect, powermock-api-support, etc.

Solution

Added wildcard-based RemoveDependency and RemoveManagedDependency entries (org.powermock:powermock*) to catch all PowerMock artifacts. The existing ChangeDependency entries remain to convert powermock-api-mockito/powermock-api-mockito2 to mockito-core.

Test plan

  • Existing tests pass
  • removesAllPowerMockDependencies verifies removal from both Gradle and Maven builds
  • removesManagedPowerMockDependencies verifies removal of Maven managed dependencies

…cipe

The ReplacePowerMockito recipe previously only removed powermock-api-mockito,
powermock-api-mockito2, and powermock-core. This left behind 14 other
org.powermock artifacts that should also be removed when migrating to Mockito.

Added RemoveDependency entries for: powermock-api-support,
powermock-api-mockito-common, powermock-api-easymock, powermock-reflect,
powermock-module-junit4, powermock-module-junit4-common,
powermock-module-junit4-legacy, powermock-module-junit4-rule,
powermock-module-junit4-rule-agent, powermock-module-junit3,
powermock-module-junit5, powermock-module-testng,
powermock-classloading-xstream, and powermock-classloading-objenesis.

Fixes moderneinc/customer-requests#1933
Add RemoveManagedDependency entries alongside each RemoveDependency to
ensure PowerMock artifacts are also cleaned up from Maven
dependencyManagement sections.
Move all RemoveDependency and RemoveManagedDependency entries into a new
RemovePowerMockDependencies declarative recipe for clarity. The main
ReplacePowerMockito recipe now references it as a single entry.
Replace individual RemoveDependency and RemoveManagedDependency entries
with a single powermock* glob for each, and inline back into the main
ReplacePowerMockito recipe.
Verifies that RemoveManagedDependency with powermock* wildcard correctly
removes managed PowerMock dependencies, and that ChangeDependency properly
converts managed powermock-api-mockito into managed mockito-core.

Fixes moderneinc/customer-requests#1933
@steve-aom-elliott steve-aom-elliott moved this from In Progress to Ready to Review in OpenRewrite Feb 27, 2026
…annotations

Add a pomXml assertion to the existing Gradle test to verify PowerMock
dependencies are removed from Maven builds without dependencyManagement.
Remove @issue annotations referencing the customer-requests repo.
@timtebeek timtebeek merged commit e8bbdf0 into main Feb 28, 2026
1 check passed
@timtebeek timtebeek deleted the remove-remaining-powermock-deps branch February 28, 2026 06:42
@github-project-automation github-project-automation bot moved this from Ready to Review to Done in OpenRewrite Feb 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants