Migrate a PMD 6 ruleset to PMD 7

MSAL

PMD 7 deleted the rules that had been deprecated throughout the PMD 6 line, and PMD refuses to load a ruleset that references a rule it does not know. Update the <rule> references and <exclude> elements in PMD ruleset XML files to name each deleted rule's successor, and drop the references to rules that were deleted without one. Rules whose behaviour PMD split across several successors, such as VariableNamingConventions and the primitive wrapper *Instantiation rules, are left alone because picking a single replacement for them requires a judgement call.

org.openrewrite.java.pmd.Pmd6to7Migration
mod run . --recipe=org.openrewrite.java.pmd.Pmd6to7Migration

Install it once from Recipe actions, then run it on every repository under the current directory. New to the Moderne CLI? Set it up.

Recipe list

It runs these recipes, in this order.

  1. Replace a PMD rule in a ruleset
  2. Replace a PMD rule in a ruleset
  3. Replace a PMD rule in a ruleset
  4. Replace a PMD rule in a ruleset
  5. Replace a PMD rule in a ruleset
  6. Replace a PMD rule in a ruleset
  7. Replace a PMD rule in a ruleset
  8. Replace a PMD rule in a ruleset
  9. Replace a PMD rule in a ruleset
  10. Replace a PMD rule in a ruleset
  11. Replace a PMD rule in a ruleset
  12. Replace a PMD rule in a ruleset
  13. Replace a PMD rule in a ruleset
  14. Replace a PMD rule in a ruleset
  15. Replace a PMD rule in a ruleset
  16. Replace a PMD rule in a ruleset
  17. Replace a PMD rule in a ruleset
  18. Replace a PMD rule in a ruleset
  19. Replace a PMD rule in a ruleset
  20. Replace a PMD rule in a ruleset
  21. Replace a PMD rule in a ruleset
  22. Replace a PMD rule in a ruleset
  23. Replace a PMD rule in a ruleset
  24. Replace a PMD rule in a ruleset
  25. Replace a PMD rule in a ruleset
  26. Replace a PMD rule in a ruleset
  27. Replace a PMD rule in a ruleset
  28. Replace a PMD rule in a ruleset
  29. Replace a PMD rule in a ruleset
  30. Replace a PMD rule in a ruleset
  31. Replace a PMD rule in a ruleset
  32. Replace a PMD rule in a ruleset
  33. Replace a PMD rule in a ruleset
  34. Replace a PMD rule in a ruleset
  35. Replace a PMD rule in a ruleset
  36. Replace a PMD rule in a ruleset
  37. Replace a PMD rule in a ruleset
  38. Replace a PMD rule in a ruleset
  39. Replace a PMD rule in a ruleset
  40. Replace a PMD rule in a ruleset
  41. Replace a PMD rule in a ruleset
  42. Replace a PMD rule in a ruleset
  43. Replace a PMD rule in a ruleset
  44. Replace a PMD rule in a ruleset
  45. Replace a PMD rule in a ruleset
  46. Remove a PMD rule from a ruleset category/java/codestyle.xml/AvoidFinalLocalVariable
  47. Remove a PMD rule from a ruleset category/java/errorprone.xml/CloneThrowsCloneNotSupportedException
  48. Remove a PMD rule from a ruleset category/java/performance.xml/AvoidUsingShortType
  49. Remove a PMD rule from a ruleset category/java/performance.xml/SimplifyStartsWith
  50. Deduplicate PMD rule references