Starting to update PMD ruleset
diff --git a/buildtools/pom.xml b/buildtools/pom.xml
index 06637b4..d7aee6f 100644
--- a/buildtools/pom.xml
+++ b/buildtools/pom.xml
@@ -75,7 +75,7 @@
         <dependency>
             <groupId>net.sourceforge.pmd</groupId>
             <artifactId>pmd-java</artifactId>
-            <version>6.10.0</version>
+            <version>6.11.0</version>
             <scope>provided</scope>
         </dependency>
     </dependencies>
diff --git a/buildtools/src/main/resources/cxf-pmd-ruleset.xml b/buildtools/src/main/resources/cxf-pmd-ruleset.xml
index a8c4151..8fa2a78 100644
--- a/buildtools/src/main/resources/cxf-pmd-ruleset.xml
+++ b/buildtools/src/main/resources/cxf-pmd-ruleset.xml
@@ -32,7 +32,133 @@
     <exclude-pattern>.*.txt</exclude-pattern>
     <exclude-pattern>.*NOTICE</exclude-pattern>
 
-    <rule ref="rulesets/java/basic.xml/BooleanInstantiation"/>
+    <rule ref="category/java/bestpractices.xml">
+        <exclude name="AbstractClassWithoutAbstractMethod" />
+        <exclude name="AccessorMethodGeneration" />
+        <exclude name="ArrayIsStoredDirectly" />
+        <exclude name="AvoidPrintStackTrace" />
+        <exclude name="AvoidReassigningParameters" />
+        <exclude name="AvoidStringBufferField" />
+        <exclude name="AvoidUsingHardCodedIP" />
+        <exclude name="ConstantsInInterface" />
+        <exclude name="GuardLogStatement" />
+        <exclude name="JUnitAssertionsShouldIncludeMessage" />
+        <exclude name="JUnitTestContainsTooManyAsserts" />
+        <exclude name="JUnitTestsShouldIncludeAssert" />
+        <exclude name="JUnitUseExpected"/>
+        <exclude name="MethodReturnsInternalArray" />
+        <exclude name="OneDeclarationPerLine" />
+        <exclude name="PreserveStackTrace" />
+        <exclude name="ReplaceEnumerationWithIterator" />
+        <exclude name="SwitchStmtsShouldHaveDefault" />
+        <exclude name="SystemPrintln" />
+        <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="AvoidThrowingNullPointerException" />
+        <exclude name="AvoidThrowingRawExceptionTypes" />
+        <exclude name="CouplingBetweenObjects" />
+        <exclude name="CyclomaticComplexity" />
+        <exclude name="DataClass" />
+        <exclude name="ExcessiveClassLength" />
+        <exclude name="ExcessiveImports" />
+        <exclude name="ExcessiveMethodLength" />
+        <exclude name="ExcessivePublicCount" />
+        <exclude name="GodClass" />
+        <exclude name="ImmutableField" />
+        <exclude name="LawOfDemeter" />
+        <exclude name="NcssCount" />
+        <exclude name="NPathComplexity" />
+        <exclude name="SignatureDeclareThrowsException" />
+        <exclude name="SingularField" />
+        <exclude name="SwitchDensity" />
+        <exclude name="TooManyFields" />
+        <exclude name="TooManyMethods" />
+        <exclude name="UseObjectForClearerAPI" />
+        <exclude name="UseUtilityClass" />
+    </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"/>-->
@@ -86,40 +212,6 @@
     <!--<rule ref="rulesets/java/coupling.xml/ExcessiveImports"/>-->
     <!--<rule ref="rulesets/java/coupling.xml/LooseCoupling"/>-->
 
-    <!--<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/OptimizableToArrayCall"/>
-    <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/finalizers.xml/EmptyFinalizer"/>-->
     <!--<rule ref="rulesets/java/finalizers.xml/FinalizeOnlyCallsSuperFinalize"/>-->
     <!--<rule ref="rulesets/java/finalizers.xml/FinalizeOverloaded"/>-->