From efebb1ef6b23b69b236d2efcebde411c917629e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Mart=C3=ADn=20Sotuyo=20Dodero?= <jmsotuyo@monits.com> Date: Thu, 8 Dec 2016 18:04:37 -0300 Subject: [PATCH] Unify AvoidConstantsInterface and ConstantsInInterface - We stick to ConstantsInInterface since it covers all scenarios the other one did, and allows greater configuration. - The existing test cases were already covered, so we can safely drop them. --- .../pmd/RuleSetFactoryCompatibility.java | 3 ++ .../main/resources/rulesets/java/design.xml | 36 ------------------- .../java/rule/design/DesignRulesTest.java | 1 - .../design/xml/AvoidConstantsInterface.xml | 27 -------------- 4 files changed, 3 insertions(+), 64 deletions(-) delete mode 100644 pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/AvoidConstantsInterface.xml diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/RuleSetFactoryCompatibility.java b/pmd-core/src/main/java/net/sourceforge/pmd/RuleSetFactoryCompatibility.java index 3d89c3bb32..ce3a04b8e8 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/RuleSetFactoryCompatibility.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/RuleSetFactoryCompatibility.java @@ -61,6 +61,9 @@ public class RuleSetFactoryCompatibility { addFilterRuleMoved("java", "basic", "unnecessary", "UselessOperationOnImmutable"); addFilterRuleMoved("java", "basic", "unnecessary", "UnusedNullCheckInEquals"); addFilterRuleMoved("java", "basic", "unnecessary", "UselessParentheses"); + + // PMD 5.6.0 + addFilterRuleRenamed("java", "design", "AvoidConstantsInterface", "ConstantsInInterface"); } void addFilterRuleRenamed(String language, String ruleset, String oldName, String newName) { diff --git a/pmd-java/src/main/resources/rulesets/java/design.xml b/pmd-java/src/main/resources/rulesets/java/design.xml index 82ca3a6e1a..bbd03b854e 100644 --- a/pmd-java/src/main/resources/rulesets/java/design.xml +++ b/pmd-java/src/main/resources/rulesets/java/design.xml @@ -1431,42 +1431,6 @@ public Foo() { </example> </rule> -<rule name="AvoidConstantsInterface" - language="java" - since="3.5" - message="An Interface should be used only to model a behaviour; consider converting this to a class." - class="net.sourceforge.pmd.lang.rule.XPathRule" - externalInfoUrl="${pmd.website.baseurl}/rules/java/design.html#AvoidConstantsInterface"> - <description> -An interface should be used only to characterize the external behaviour of an -implementing class: using an interface as a container of constants is a poor -usage pattern and not recommended. - </description> - <priority>3</priority> - <properties> - <property name="xpath"> - <value> - <![CDATA[ -//ClassOrInterfaceDeclaration[@Interface="true"] - [ - count(.//MethodDeclaration)=0 - and - count(.//FieldDeclaration)>0 - ] - ]]> - </value> - </property> - </properties> - <example> - <![CDATA[ -public interface ConstantsInterface { - public static final int CONSTANT1=0; - public static final String CONSTANT2="1"; -} - ]]> - </example> - </rule> - <rule name="UnsynchronizedStaticDateFormatter" since="3.6" message="Static DateFormatter objects should be accessed in a synchronized manner" diff --git a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/rule/design/DesignRulesTest.java b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/rule/design/DesignRulesTest.java index 872c9e31a8..32574ff23f 100644 --- a/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/rule/design/DesignRulesTest.java +++ b/pmd-java/src/test/java/net/sourceforge/pmd/lang/java/rule/design/DesignRulesTest.java @@ -19,7 +19,6 @@ public class DesignRulesTest extends SimpleAggregatorTst { addRule(RULESET, "AbstractClassWithoutAnyMethod"); addRule(RULESET, "AccessorClassGeneration"); addRule(RULESET, "AssignmentToNonFinalStatic"); - addRule(RULESET, "AvoidConstantsInterface"); addRule(RULESET, "AvoidDeeplyNestedIfStmts"); addRule(RULESET, "AvoidInstanceofChecksInCatchClause"); addRule(RULESET, "AvoidProtectedFieldInFinalClass"); diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/AvoidConstantsInterface.xml b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/AvoidConstantsInterface.xml deleted file mode 100644 index 6a8874b672..0000000000 --- a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/AvoidConstantsInterface.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<test-data> - <test-code> - <description><![CDATA[ -clear rule violation - ]]></description> - <expected-problems>1</expected-problems> - <code><![CDATA[ -public interface Foo { - public static final int FOO = 2; - public static final String BAR = "bar"; -} - ]]></code> - </test-code> - <test-code> - <description><![CDATA[ -ok - ]]></description> - <expected-problems>0</expected-problems> - <code><![CDATA[ -public interface Foo { - public static final int FOO = 2; - public void buz(); -} - ]]></code> - </test-code> -</test-data>