More PMD ruleset updates
diff --git a/buildtools/src/main/resources/cxf-pmd-ruleset.xml b/buildtools/src/main/resources/cxf-pmd-ruleset.xml
index 8fa2a78..e7796e2 100644
--- a/buildtools/src/main/resources/cxf-pmd-ruleset.xml
+++ b/buildtools/src/main/resources/cxf-pmd-ruleset.xml
@@ -34,6 +34,7 @@
 
     <rule ref="category/java/bestpractices.xml">
         <exclude name="AbstractClassWithoutAbstractMethod" />
+        <exclude name="AccessorClassGeneration" />
         <exclude name="AccessorMethodGeneration" />
         <exclude name="ArrayIsStoredDirectly" />
         <exclude name="AvoidPrintStackTrace" />
@@ -41,70 +42,38 @@
         <exclude name="AvoidStringBufferField" />
         <exclude name="AvoidUsingHardCodedIP" />
         <exclude name="ConstantsInInterface" />
+        <exclude name="ForLoopCanBeForeach" />
         <exclude name="GuardLogStatement" />
         <exclude name="JUnitAssertionsShouldIncludeMessage" />
         <exclude name="JUnitTestContainsTooManyAsserts" />
         <exclude name="JUnitTestsShouldIncludeAssert" />
         <exclude name="JUnitUseExpected"/>
+        <exclude name="JUnit4TestShouldUseAfterAnnotation"/>
+        <exclude name="JUnit4TestShouldUseBeforeAnnotation" />
+        <exclude name="JUnit4TestShouldUseTestAnnotation"/>
         <exclude name="MethodReturnsInternalArray" />
         <exclude name="OneDeclarationPerLine" />
         <exclude name="PreserveStackTrace" />
         <exclude name="ReplaceEnumerationWithIterator" />
         <exclude name="SwitchStmtsShouldHaveDefault" />
         <exclude name="SystemPrintln" />
+        <exclude name="UnusedFormalParameter" />
+        <exclude name="UnusedPrivateMethod" />
+        <exclude name="UseAssertEqualsInsteadOfAssertTrue" />
         <exclude name="UseAssertSameInsteadOfAssertTrue" />
         <exclude name="UseVarargs" />
     </rule>
 
-    <rule ref="category/java/errorprone.xml">
-        <exclude name="AssignmentInOperand" />
-        <exclude name="AssignmentToNonFinalStatic" />
-        <exclude name="AvoidBranchingStatementAsLastInLoop" />
-        <exclude name="AvoidCatchingNPE" />
-        <exclude name="AvoidCatchingThrowable" />
-        <exclude name="AvoidDuplicateLiterals" />
-        <exclude name="AvoidFieldNameMatchingMethodName" />
-        <exclude name="AvoidLiteralsInIfCondition" />
-        <exclude name="BeanMembersShouldSerialize" />
-        <exclude name="CompareObjectsWithEquals" />
-        <exclude name="ConstructorCallsOverridableMethod" />
-        <exclude name="DataflowAnomalyAnalysis" />
-        <exclude name="DoNotCallSystemExit" />
-        <exclude name="EmptyCatchBlock" />
-        <exclude name="EmptyIfStmt" />
-        <exclude name="EmptySynchronizedBlock" />
-        <exclude name="MissingBreakInSwitch" />
-        <exclude name="MissingSerialVersionUID" />
-        <exclude name="MoreThanOneLogger" />
-        <exclude name="NullAssignment" />
-        <exclude name="ReturnEmptyArrayRatherThanNull" />
-        <exclude name="TestClassWithoutTestCases" />
-        <exclude name="UseLocaleWithCaseConversions" />
-        <exclude name="UseProperClassLoader" />
-    </rule>
-    <rule ref="category/java/multithreading.xml">
-        <exclude name="AvoidUsingVolatile" />
-        <exclude name="AvoidSynchronizedAtMethodLevel" />
-        <exclude name="AvoidThreadGroup" />
-        <exclude name="DoNotUseThreads" />
-        <exclude name="DontCallThreadRun" />
-        <exclude name="UseConcurrentHashMap" />
-        <exclude name="UseNotifyAllInsteadOfNotify" />
-    </rule>
-    <rule ref="category/java/performance.xml">
-        <exclude name="AvoidInstantiatingObjectsInLoops" />
-        <exclude name="AvoidFileStream" />
-        <exclude name="ConsecutiveLiteralAppends" />
-    </rule>
-    <rule ref="category/java/security.xml" />
     <rule ref="category/java/design.xml" >
         <exclude name="AvoidCatchingGenericException" />
         <exclude name="AvoidDeeplyNestedIfStmts" />
+        <exclude name="AvoidRethrowingException" />
         <exclude name="AvoidThrowingNullPointerException" />
         <exclude name="AvoidThrowingRawExceptionTypes" />
         <exclude name="CouplingBetweenObjects" />
         <exclude name="CyclomaticComplexity" />
         <exclude name="DataClass" />
+        <exclude name="ExceptionAsFlowControl" />
         <exclude name="ExcessiveClassLength" />
         <exclude name="ExcessiveImports" />
         <exclude name="ExcessiveMethodLength" />
@@ -121,174 +90,66 @@
         <exclude name="TooManyMethods" />
         <exclude name="UseObjectForClearerAPI" />
         <exclude name="UseUtilityClass" />
+        <exclude name="UselessOverridingMethod" />
     </rule>
 
-    <!-- Cleanup below -->
-
-    <!--<rule ref="rulesets/java/design.xml/AbstractClassWithoutAbstractMethod"/>-->
-    <!--<rule ref="rulesets/java/design.xml/AccessorClassGeneration"/>-->
-    <!--<rule ref="rulesets/java/design.xml/AssignmentToNonFinalStatic"/>-->
-    <!--<rule ref="rulesets/java/design.xml/AvoidDeeplyNestedIfStmts"/>-->
-    <!--<rule ref="rulesets/java/design.xml/AvoidInstanceofChecksInCatchClause"/>-->
-    <rule ref="rulesets/java/design.xml/AvoidProtectedFieldInFinalClass"/>
-    <!--<rule ref="rulesets/java/design.xml/AvoidReassigningParameters"/>-->
-    <!--<rule ref="rulesets/java/design.xml/AvoidSynchronizedAtMethodLevel"/>-->
-    <!--<rule ref="rulesets/java/design.xml/BadComparison"/>-->
-    <!--<rule ref="rulesets/java/design.xml/CloseConnection"/>-->
-    <!--<rule ref="rulesets/java/design.xml/CompareObjectsWithEquals"/>-->
-    <!--<rule ref="rulesets/java/design.xml/ConfusingTernary"/>-->
-    <rule ref="rulesets/java/design.xml/ConstructorCallsOverridableMethod"/>
-    <!--<rule ref="rulesets/java/design.xml/DefaultLabelNotLastInSwitchStmt"/>-->
-    <!--<rule ref="rulesets/java/design.xml/FinalFieldCouldBeStatic"/>-->
-    <rule ref="rulesets/java/design.xml/IdempotentOperations"/>
-    <!--<rule ref="rulesets/java/design.xml/ImmutableField"/>-->
-    <!--<rule ref="rulesets/java/design.xml/InstantiationToGetClass"/>-->
-    <!--<rule ref="rulesets/java/design.xml/MissingBreakInSwitch"/>-->
-    <!--<rule ref="rulesets/java/design.xml/MissingStaticMethodInNonInstantiatableClass"/>-->
-    <!--<rule ref="rulesets/java/design.xml/NonCaseLabelInSwitchStatement"/>-->
-    <!--<rule ref="rulesets/java/design.xml/NonStaticInitializer"/>-->
-    <rule ref="rulesets/java/design.xml/PositionLiteralsFirstInComparisons"/>
-    <rule ref="rulesets/java/design.xml/SimplifyBooleanExpressions"/>
-    <rule ref="rulesets/java/design.xml/SimplifyBooleanReturns"/>
-    <rule ref="rulesets/java/design.xml/SimplifyConditional"/>
-    <!--<rule ref="rulesets/java/design.xml/SwitchDensity"/>-->
-    <!--<rule ref="rulesets/java/design.xml/SwitchStmtsShouldHaveDefault"/>-->
-    <rule ref="rulesets/java/design.xml/UnnecessaryLocalBeforeReturn"/>
-    <!--<rule ref="rulesets/java/design.xml/UseLocaleWithCaseConversions"/>-->
-    <!--<rule ref="rulesets/java/design.xml/UseNotifyAllInsteadOfNotify"/>-->
-    <!--<rule ref="rulesets/java/design.xml/UseUtilityClass"/>-->
-
-
-    <rule ref="rulesets/java/basic.xml/CollapsibleIfStatements"/>
-    <rule ref="rulesets/java/basic.xml/DoubleCheckedLocking"/>
-    <!--<rule ref="rulesets/java/empty.xml/EmptyCatchBlock"/>-->
-    <!--<rule ref="rulesets/java/empty.xml/EmptyFinallyBlock"/>-->
-    <!--<rule ref="rulesets/java/empty.xml/EmptyIfStmt"/>-->
-    <rule ref="rulesets/java/empty.xml/EmptyStatementNotInLoop"/>
-    <!--<rule ref="rulesets/java/empty.xml/EmptyInitializer"/>-->
-    <!--<rule ref="rulesets/java/empty.xml/EmptySwitchStatements"/>-->
-    <!--<rule ref="rulesets/java/empty.xml/EmptySynchronizedBlock"/>-->
-    <!--<rule ref="rulesets/java/java/basic.xml/EmptyTryBlock"/>-->
-    <!--<rule ref="rulesets/java/empty.xml/EmptyWhileStmt"/>-->
-    <rule ref="rulesets/java/basic.xml/ForLoopShouldBeWhileLoop"/>
-    <rule ref="rulesets/java/basic.xml/JumbledIncrementer"/>
-    <!--<rule ref="rulesets/java/basic.xml/OverrideBothEqualsAndHashcode"/>-->
-    <rule ref="rulesets/java/basic.xml/ReturnFromFinallyBlock"/>
-    <rule ref="rulesets/java/basic.xml/UnconditionalIfStatement"/>
-    <rule ref="rulesets/java/unnecessary.xml/UnnecessaryConversionTemporary"/>
-    <rule ref="rulesets/java/unnecessary.xml/UnnecessaryModifier"/>
-    <rule ref="rulesets/java/unnecessary.xml/UnnecessaryReturn"/>
-    <!--<rule ref="rulesets/java/unnecessary.xml/UselessOverridingMethod"/>-->
-
-    <!--<rule ref="rulesets/java/braces.xml/ForLoopsMustUseBraces"/>-->
-    <!--<rule ref="rulesets/java/braces.xml/IfElseStmtsMustUseBraces"/>-->
-    <!--<rule ref="rulesets/java/braces.xml/IfStmtsMustUseBraces"/>-->
-    <!--<rule ref="rulesets/java/braces.xml/WhileLoopsMustUseBraces"/>-->
-
-    <!--<rule ref="rulesets/java/clone.xml/CloneMethodMustImplementCloneable"/>-->
-    <!--<rule ref="rulesets/java/clone.xml/CloneThrowsCloneNotSupportedException"/>-->
-    <!--<rule ref="rulesets/java/clone.xml/ProperCloneImplementation"/>-->
-
-    <!--<rule ref="rulesets/java/codesize.xml/CyclomaticComplexity"/>-->
-    <!--<rule ref="rulesets/java/codesize.xml/ExcessiveClassLength"/>-->
-    <!--<rule ref="rulesets/java/codesize.xml/ExcessiveMethodLength"/>-->
-    <!--<rule ref="rulesets/java/codesize.xml/ExcessiveParameterList"/>-->
-    <!--<rule ref="rulesets/java/codesize.xml/ExcessivePublicCount"/>-->
-    <!--<rule ref="rulesets/java/codesize.xml/TooManyFields"/>-->
-
-    <!--<rule ref="rulesets/java/controversial.xml/AssignmentInOperand"/>-->
-    <!--<rule ref="rulesets/java/controversial.xml/AtLeastOneConstructor"/>-->
-    <!--<rule ref="rulesets/java/controversial.xml/CallSuperInConstructor"/>-->
-    <!--<rule ref="rulesets/java/controversial.xml/DontImportSun"/>-->
-    <!--<rule ref="rulesets/java/controversial.xml/NullAssignment"/>-->
-    <!--<rule ref="rulesets/java/controversial.xml/OnlyOneReturn"/>-->
-    <!--<rule ref="rulesets/java/controversial.xml/SingularField"/>-->
-    <!--<rule ref="rulesets/java/controversial.xml/SuspiciousOctalEscape"/>-->
-    <!--<rule ref="rulesets/java/controversial.xml/UnnecessaryConstructor"/>-->
-    <!--<rule ref="rulesets/java/unnecessary.xml/UselessParentheses"/>-->
-    <!--<rule ref="rulesets/java/controversial.xml/UnusedModifier"/>-->
-
-    <!--<rule ref="rulesets/java/coupling.xml/CouplingBetweenObjects"/>-->
-    <!--<rule ref="rulesets/java/coupling.xml/ExcessiveImports"/>-->
-    <!--<rule ref="rulesets/java/coupling.xml/LooseCoupling"/>-->
-
-    <!--<rule ref="rulesets/java/finalizers.xml/EmptyFinalizer"/>-->
-    <!--<rule ref="rulesets/java/finalizers.xml/FinalizeOnlyCallsSuperFinalize"/>-->
-    <!--<rule ref="rulesets/java/finalizers.xml/FinalizeOverloaded"/>-->
-    <!--<rule ref="rulesets/java/finalizers.xml/FinalizeDoesNotCallSuperFinalize"/>-->
-    <!--<rule ref="rulesets/java/finalizers.xml/FinalizeShouldBeProtected"/>-->
-    <!--<rule ref="rulesets/java/finalizers.xml/AvoidCallingFinalize"/>-->
-
-    <!--<rule ref="rulesets/java/imports.xml/DuplicateImports"/>-->
-    <!--<rule ref="rulesets/java/imports.xml/DontImportJavaLang"/>-->
-    <!--<rule ref="rulesets/java/imports.xml/UnusedImports"/>-->
-    <!--<rule ref="rulesets/java/imports.xml/ImportFromSamePackage"/>-->
-
-    <!--<rule ref="rulesets/java/javabeans.xml/BeanMembersShouldSerialize"/>-->
-    <!--<rule ref="rulesets/java/javabeans.xml/MissingSerialVersionUID"/>-->
-
-    <!--<rule ref="rulesets/java/junit.xml/JUnitStaticSuite"/>-->
-    <!--<rule ref="rulesets/java/junit.xml/JUnitSpelling"/>-->
-    <!--<rule ref="rulesets/java/junit.xml/JUnitAssertionsShouldIncludeMessage"/>-->
-    <!--<rule ref="rulesets/java/junit.xml/JUnitTestsShouldIncludeAssert"/>-->
-    <!--<rule ref="rulesets/java/junit.xml/TestClassWithoutTestCases"/>-->
-    <!--<rule ref="rulesets/java/junit.xml/UnnecessaryBooleanAssertion"/>-->
-    <!--<rule ref="rulesets/java/junit.xml/UseAssertEqualsInsteadOfAssertTrue"/>-->
-    <!--<rule ref="rulesets/java/junit.xml/UseAssertSameInsteadOfAssertTrue"/>-->
-
-    <!--<rule ref="rulesets/java/logging-java.xml/AvoidPrintStackTrace"/>-->
-    <rule ref="rulesets/java/logging-java.xml/LoggerIsNotStaticFinal"/>
-    <!--<rule ref="rulesets/java/logging-java.xml/MoreThanOneLogger"/>-->
-    <!--<rule ref="rulesets/java/logging-java.xml/LoggerIsNotStaticFinal"/>-->
-    <!--<rule ref="rulesets/java/logging-java.xml/LogBlockWithoutIf"/>-->
-    <!--<rule ref="rulesets/java/logging-java.xml/SystemPrintln"/>-->
-    <!--<rule ref="rulesets/java/logging-jakarta-commons.xml/UseCorrectExceptionLogging"/>-->
-    <!--<rule ref="rulesets/java/logging-jakarta-commons.xml/ProperLogger"/>-->
-
-    <!--<rule ref="rulesets/java/naming.xml/ShortVariable"/>-->
-    <!--<rule ref="rulesets/java/naming.xml/LongVariable"/>-->
-    <!--<rule ref="rulesets/java/naming.xml/ShortMethodName"/>-->
-    <!--<rule ref="rulesets/java/naming.xml/VariableNamingConventions"/>-->
-    <!--<rule ref="rulesets/java/naming.xml/MethodNamingConventions"/>-->
-    <!--<rule ref="rulesets/java/naming.xml/ClassNamingConventions"/>-->
-    <!--<rule ref="rulesets/java/naming.xml/AbstractNaming"/>-->
-    <!--<rule ref="rulesets/java/naming.xml/AvoidDollarSigns"/>-->
-    <!--<rule ref="rulesets/java/naming.xml/MethodWithSameNameAsEnclosingClass"/>-->
-    <!--<rule ref="rulesets/java/naming.xml/SuspiciousHashcodeMethodName"/>-->
-    <!--<rule ref="rulesets/java/naming.xml/SuspiciousConstantFieldName"/>-->
-    <!--<rule ref="rulesets/java/naming.xml/AvoidFieldNameMatchingTypeName"/>-->
-    <!--<rule ref="rulesets/java/naming.xml/AvoidFieldNameMatchingMethodName"/>-->
-    <!--<rule ref="rulesets/java/naming.xml/AvoidNonConstructorMethodsWithClassName"/>-->
-    <!--<rule ref="rulesets/java/naming.xml/NoPackage"/>-->
-    <!--<rule ref="rulesets/java/naming.xml/PackageCase"/>-->
-
-    <!--<rule ref="rulesets/java/optimizations.xml/LocalVariableCouldBeFinal"/>-->
-    <!--<rule ref="rulesets/java/optimizations.xml/MethodArgumentCouldBeFinal"/>-->
-    <!--<rule ref="rulesets/java/optimizations.xml/AvoidInstantiatingObjectsInLoops"/>-->
-    <!--<rule ref="rulesets/java/optimizations.xml/UseArrayListInsteadOfVector"/>-->
-    <!--<rule ref="rulesets/java/optimizations.xml/SimplifyStartsWith"/>-->
-    <!--<rule ref="rulesets/java/optimizations.xml/UseStringBuilderForStringAppends"/>-->
-
-    <!--<rule ref="rulesets/java/strictexception.xml/AvoidCatchingThrowable"/>-->
-    <!--<rule ref="rulesets/java/strictexception.xml/SignatureDeclareThrowsException"/>-->
-    <!--<rule ref="rulesets/java/strictexception.xml/ExceptionAsFlowControl"/>-->
-    <!--<rule ref="rulesets/java/strictexception.xml/AvoidCatchingNPE"/>-->
-    <!--<rule ref="rulesets/java/strictexception.xml/AvoidThrowingRawExceptionTypes"/>-->
-    <!--<rule ref="rulesets/java/strictexception.xml/AvoidThrowingNullPointerException"/>-->
-
-    <!--<rule ref="rulesets/java/strings.xml/AvoidDuplicateLiterals"/>-->
-    <!--<rule ref="rulesets/java/strings.xml/StringInstantiation"/>-->
-    <!--<rule ref="rulesets/java/strings.xml/StringToString"/>-->
-    <!--<rule ref="rulesets/java/strings.xml/AvoidConcatenatingNonLiteralsInStringBuilder"/>-->
-    <!--<rule ref="rulesets/java/strings.xml/UnnecessaryCaseChange"/>-->
-
-    <!--<rule ref="rulesets/java/sunsecure.xml/MethodReturnsInternalArray"/>-->
-    <!--<rule ref="rulesets/java/sunsecure.xml/ArrayIsStoredDirectly"/>-->
-
-    <rule ref="rulesets/java/unusedcode.xml/UnusedLocalVariable"/>
-    <rule ref="rulesets/java/unusedcode.xml/UnusedPrivateField"/>
-    <!--<rule ref="rulesets/java/unusedcode.xml/UnusedPrivateMethod"/>-->
-    <!--<rule ref="rulesets/java/unusedcode.xml/UnusedFormalParameter"/>-->
+    <rule ref="category/java/errorprone.xml">
+        <exclude name="AssignmentInOperand" />
+        <exclude name="AssignmentToNonFinalStatic" />
+        <exclude name="AvoidBranchingStatementAsLastInLoop" />
+        <exclude name="AvoidAccessibilityAlteration" />
+        <exclude name="AvoidCatchingNPE" />
+        <exclude name="AvoidCatchingThrowable" />
+        <exclude name="AvoidDuplicateLiterals" />
+        <exclude name="AvoidFieldNameMatchingMethodName" />
+        <exclude name="AvoidFieldNameMatchingTypeName" />
+        <exclude name="AvoidInstanceofChecksInCatchClause" />
+        <exclude name="AvoidLiteralsInIfCondition" />
+        <exclude name="BeanMembersShouldSerialize" />
+        <exclude name="CompareObjectsWithEquals" />
+        <exclude name="ConstructorCallsOverridableMethod" />
+        <exclude name="DataflowAnomalyAnalysis" />
+        <exclude name="DoNotCallGarbageCollectionExplicitly" />
+        <exclude name="DoNotCallSystemExit" />
+        <exclude name="DoNotThrowExceptionInFinally" />
+        <exclude name="EmptyCatchBlock" />
+        <exclude name="EmptyIfStmt" />
+        <exclude name="EmptySynchronizedBlock" />
+        <exclude name="EmptyWhileStmt" />
+        <exclude name="MissingBreakInSwitch" />
+        <exclude name="MissingSerialVersionUID" />
+        <exclude name="MoreThanOneLogger" />
+        <exclude name="NullAssignment" />
+        <exclude name="ReturnEmptyArrayRatherThanNull" />
+        <exclude name="SuspiciousEqualsMethodName" />
+        <exclude name="TestClassWithoutTestCases" />
+        <exclude name="UseLocaleWithCaseConversions" />
+        <exclude name="UseProperClassLoader" />
+    </rule>
+    <rule ref="category/java/multithreading.xml">
+        <exclude name="AvoidUsingVolatile" />
+        <exclude name="AvoidSynchronizedAtMethodLevel" />
+        <exclude name="AvoidThreadGroup" />
+        <exclude name="DoNotUseThreads" />
+        <exclude name="DontCallThreadRun" />
+        <exclude name="NonThreadSafeSingleton" />
+        <exclude name="UseConcurrentHashMap" />
+        <exclude name="UseNotifyAllInsteadOfNotify" />
+    </rule>
+    <rule ref="category/java/performance.xml">
+        <exclude name="AvoidInstantiatingObjectsInLoops" />
+        <exclude name="AvoidFileStream" />
+        <exclude name="AvoidUsingShortType" />
+        <exclude name="ConsecutiveLiteralAppends" />
+        <exclude name="ConsecutiveAppendsShouldReuse" />
+        <exclude name="InefficientEmptyStringCheck" />
+        <exclude name="RedundantFieldInitializer" />
+        <exclude name="SimplifyStartsWith" />
+        <exclude name="StringInstantiation" />
+        <exclude name="UselessStringValueOf" />
+        <exclude name="UseStringBufferForStringAppends" />
+    </rule>
+    <rule ref="category/java/security.xml" />
 
     <rule name="DontUseLoggerGetLogger"
           message="Don't use Logger.getLogger(...), use LogUtils.getL7dLogger(....) instead"