blob: 69187d496e19d591e406c3ab195a93a2e52547aa [file]
<?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="Apache Druid PMD ruleset"
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 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
<description>
This ruleset defines the PMD rules for the Apache Druid project.
</description>
<rule ref="category/java/codestyle.xml/UnnecessaryImport" />
<rule ref="category/java/codestyle.xml/TooManyStaticImports" />
<rule ref="category/java/bestpractices.xml/UnusedFormalParameter" />
<rule ref="category/java/bestpractices.xml/UnusedLocalVariable" />
<rule ref="category/java/bestpractices.xml/MissingOverride" />
<rule name="ConfusingMethodName"
language="java"
message="Methods in the same class must not differ only by capitalization"
class="net.sourceforge.pmd.lang.rule.xpath.XPathRule">
<description>
Prevent case-only method-name differences, which are easy to confuse at call sites.
Methods that override inherited APIs are excluded because their names cannot be changed.
</description>
<priority>2</priority>
<properties>
<property name="xpath">
<value>
<![CDATA[
for $method in //MethodDeclaration[@Overridden = false()]
return $method[
some $other in $method/preceding-sibling::MethodDeclaration[@Overridden = false()]
satisfies lower-case($method/@Name) = lower-case($other/@Name)
and $method/@Name != $other/@Name
]
]]>
</value>
</property>
</properties>
</rule>
</ruleset>