<?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="Maven Ruleset"
  xmlns="http://pmd.sf.net/ruleset/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
  xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">

  <description>
    Ruleset that brings all the rulesets we want from the pmd jar, because
    the maven-pmd-plugin doesn't find them otherwise. This is also the place
    to add our own future rulesets, if any.
  </description>

  <rule ref="rulesets/java/basic.xml"/>
  <rule ref="rulesets/java/braces.xml"/>
  <rule ref="rulesets/java/clone.xml"/>
  <rule ref="rulesets/java/codesize.xml"/>
  <rule ref="rulesets/java/comments.xml">
    <!-- We shouldn't limit the number of lines in the header of a class -->
    <exclude name="CommentSize"/>
    <exclude name="CommentRequired" />
  </rule>
  <rule ref="rulesets/java/controversial.xml">
    <!-- The rule is good, but is not properly applied. It forces you to statically declare it as ConcurrentHashMap -->
    <exclude name="UseConcurrentHashMap"/>
    <exclude name="CallSuperInConstructor"/>
    <exclude name="AtLeastOneConstructor"/>
    <exclude name="AssignmentInOperand"/>
    <exclude name="NullAssignment"/>
    <exclude name="DataflowAnomalyAnalysis" />
    <exclude name="UseObjectForClearerAPI" />
  </rule>
  <rule ref="rulesets/java/coupling.xml">
    <exclude name="ExcessiveImports" />
    <exclude name="LawOfDemeter"/>
  </rule>
  <rule ref="rulesets/java/design.xml">
    <exclude name="ConstructorCallsOverridableMethod"/>
    <exclude name="AbstractClassWithoutAbstractMethod"/>
    <exclude name="AvoidSynchronizedAtMethodLevel"/>
  </rule>
  <rule ref="rulesets/java/empty.xml"/>
  <rule ref="rulesets/java/finalizers.xml"/>
  <rule ref="rulesets/java/imports.xml"/>
  <rule ref="rulesets/java/j2ee.xml"/>
  <rule ref="rulesets/java/junit.xml"/>
  <rule ref="rulesets/java/logging-java.xml"/>
  <rule ref="rulesets/java/naming.xml">
    <exclude name="ShortVariable"/>
    <exclude name="AbstractNaming"/>
  </rule>
  <rule ref="rulesets/java/naming.xml/LongVariable">
    <properties>
      <property name="minimum" value="32"/>
    </properties>
  </rule>
  <rule ref="rulesets/java/optimizations.xml"/>
  <rule ref="rulesets/java/strictexception.xml"/>
  <rule ref="rulesets/java/strings.xml"/>
  <rule ref="rulesets/java/sunsecure.xml"/>
  <rule ref="rulesets/java/typeresolution.xml"/>
  <rule ref="rulesets/java/unnecessary.xml"/>
  <rule ref="rulesets/java/unusedcode.xml"/>
</ruleset>
