Index: trunk/nodist/pom.xml
===================================================================
--- trunk/nodist/pom.xml	(revision 19627)
+++ trunk/nodist/pom.xml	(revision 19628)
@@ -18,5 +18,5 @@
         <sonar.projectKey>JOSM</sonar.projectKey>
         <jmockit.version>1.49.a</jmockit.version>
-        <pmd.version>7.22.0</pmd.version>
+        <pmd.version>7.28.0</pmd.version>
         <jacoco.version>0.8.13</jacoco.version>
         <checkstyle.version>10.26.1</checkstyle.version>
Index: trunk/tools/ivy.xml
===================================================================
--- trunk/tools/ivy.xml	(revision 19627)
+++ trunk/tools/ivy.xml	(revision 19628)
@@ -21,7 +21,7 @@
         <dependency org="com.guardsquare" name="proguard-ant" rev="7.8.2" conf="proguard->default"/>
         <!-- pmd->default -->
-        <dependency org="net.sourceforge.pmd" name="pmd-core" rev="7.22.0" conf="pmd->default"/>
-        <dependency org="net.sourceforge.pmd" name="pmd-ant" rev="7.22.0" conf="pmd->default"/>
-        <dependency org="net.sourceforge.pmd" name="pmd-java" rev="7.22.0" conf="pmd->default"/>
+        <dependency org="net.sourceforge.pmd" name="pmd-core" rev="7.28.0" conf="pmd->default"/>
+        <dependency org="net.sourceforge.pmd" name="pmd-ant" rev="7.28.0" conf="pmd->default"/>
+        <dependency org="net.sourceforge.pmd" name="pmd-java" rev="7.28.0" conf="pmd->default"/>
         <dependency org="org.xmlresolver" name="xmlresolver" rev="6.0.21" conf="pmd->default"/>
         <!-- spotbugs->default -->
Index: trunk/tools/pmd/josm-ruleset.xml
===================================================================
--- trunk/tools/pmd/josm-ruleset.xml	(revision 19627)
+++ trunk/tools/pmd/josm-ruleset.xml	(revision 19628)
@@ -17,5 +17,4 @@
     <exclude name="ConstantsInInterface"/>
     <exclude name="GuardLogStatement"/>
-    <exclude name="JUnit4TestShouldUseTestAnnotation" reason="False positive in src/org/openstreetmap/josm/data/validation/Test.java"/>
     <exclude name="LiteralsFirstInComparisons" reason="Introduced in 6.24, some positives in source code at this time. Replaces PositionLiteralsFirstInComparisons."/>
     <exclude name="LooseCoupling"/>
@@ -23,9 +22,6 @@
     <exclude name="OneDeclarationPerLine"/>
     <exclude name="ReplaceHashtableWithMap"/>
-    <exclude name="SwitchStmtsShouldHaveDefault"/>
     <exclude name="SystemPrintln"/>
     <exclude name="UnusedAssignment" reason="Introduced in 6.26, some number of positives in source code at this time"/>
-    <exclude name="UnusedPrivateMethod" reason="Broken since PMD 6.33, see https://github.com/pmd/pmd/issues/3468"/>
-    <exclude name="UnusedPrivateField" reason="Broken in 7.2.x"/>
     <exclude name="UseVarargs"/>
   </rule>
@@ -59,5 +55,4 @@
     <exclude name="MethodArgumentCouldBeFinal"/>
     <exclude name="MethodNamingConventions"/>
-    <exclude name="NoPackage"/>
     <exclude name="OnlyOneReturn"/>
     <exclude name="PrematureDeclaration"/>
@@ -130,12 +125,9 @@
     <exclude name="SimplifiedTernary"/>
     <exclude name="SimplifyBooleanReturns" reason="Increased sensitivity in 7.x; should be fixed in our source code." />
-    <exclude name="SimplifyConditional"/>
     <exclude name="SingularField"/>
     <exclude name="SwitchDensity"/>
     <exclude name="TooManyFields"/>
     <exclude name="TooManyMethods"/>
-    <exclude name="UseObjectForClearerAPI"/>
     <exclude name="UselessOverridingMethod"/>
-    <exclude name="UseUtilityClass"/>
   </rule>
   <rule ref="category/java/design.xml/SignatureDeclareThrowsException">
@@ -150,5 +142,4 @@
     <exclude name="AssignmentToNonFinalStatic"/>
     <exclude name="AvoidBranchingStatementAsLastInLoop"/>
-    <exclude name="AvoidCatchingNPE"/>
     <exclude name="AvoidDuplicateLiterals"/>
     <exclude name="AvoidFieldNameMatchingMethodName"/>
@@ -160,5 +151,4 @@
     <exclude name="ConstructorCallsOverridableMethod"/>
     <exclude name="DoNotTerminateVM"/>
-    <exclude name="DontImportSun"/>
     <exclude name="ImplicitSwitchFallThrough"/>
     <exclude name="MissingSerialVersionUID"/>
@@ -182,9 +172,5 @@
     <exclude name="AvoidInstantiatingObjectsInLoops"/>
     <exclude name="ConsecutiveLiteralAppends"/>
-    <exclude name="InefficientEmptyStringCheck"/>
     <exclude name="InsufficientStringBufferDeclaration" reason="PMD 6.40 has a bug where it doesn't properly count appended strings in if statements."/>
-    <exclude name="TooFewBranchesForASwitchStatement"/>
-    <exclude name="UseArrayListInsteadOfVector"/>
-    <exclude name="UselessStringValueOf"/>
     <exclude name="UseStringBufferForStringAppends"/>
   </rule>
