<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements. See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership. The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License. You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied. See the License for the
  specific language governing permissions and limitations
  under the License.
-->
<ruleset name="pmd-cxf-eclipse" xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
    <description>CXF PMD Plugin preferences rule set</description>

    <exclude-pattern>.*target.*</exclude-pattern>
    <exclude-pattern>.*.xml</exclude-pattern>
    <exclude-pattern>.*.xsl</exclude-pattern>
    <exclude-pattern>.*.wsdl</exclude-pattern>
    <exclude-pattern>.*.xsd</exclude-pattern>
    <exclude-pattern>.*.html</exclude-pattern>
    <exclude-pattern>.*.class</exclude-pattern>
    <exclude-pattern>.*.txt</exclude-pattern>
    <exclude-pattern>.*NOTICE</exclude-pattern>

    <rule ref="category/java/bestpractices.xml">
        <exclude name="AbstractClassWithoutAbstractMethod" />
        <exclude name="AccessorClassGeneration" />
        <exclude name="AccessorMethodGeneration" />
        <exclude name="ArrayIsStoredDirectly" />
        <exclude name="AvoidPrintStackTrace" />
        <exclude name="AvoidReassigningParameters" />
        <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/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" />
        <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" />
        <exclude name="UselessOverridingMethod" />
    </rule>

    <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"
          class="net.sourceforge.pmd.lang.rule.XPathRule"
          language="java">
        <priority>2</priority>
        <description>Don't use Logger.getLogger(...), use LogUtils.getL7dLogger(....) instead</description>
        <properties>
            <property name="xpath">
                <value>
<![CDATA[
//PrimaryPrefix/Name[ends-with(@Image, 'Logger.getLogger') and //PackageDeclaration/Name[starts-with(@Image, 'org.apache.cxf')] and not(//ExtendsList/ClassOrInterfaceType[contains(@Image, 'Service')])]
]]>
                </value>
            </property>
        </properties>
    </rule>

</ruleset>
