diff --git a/pmd-java/src/main/resources/rulesets/java/design.xml b/pmd-java/src/main/resources/rulesets/java/design.xml
index 1621f5df9da..cf03f342740 100644
--- a/pmd-java/src/main/resources/rulesets/java/design.xml
+++ b/pmd-java/src/main/resources/rulesets/java/design.xml
@@ -1949,4 +1949,50 @@ public final class Foo {
+
+
+Avoid constants in interfaces. Interfaces should define types, constants are implementation details
+better placed in classes or enums. See Effective Java, item 19.
+
+ 3
+
+
+
+
+
+
+
+
+
+
+
+
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 119f833a73b..4e5e2f0b15f 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
@@ -73,5 +73,6 @@ public void setUp() {
addRule(RULESET, "UseNotifyAllInsteadOfNotify");
addRule(RULESET, "UseUtilityClass");
addRule(RULESET, "UseVarargs");
+ addRule(RULESET, "ConstantsInInterface");
}
}
diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/ConstantsInInterface.xml b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/ConstantsInInterface.xml
new file mode 100644
index 00000000000..ccf64ef6145
--- /dev/null
+++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/ConstantsInInterface.xml
@@ -0,0 +1,45 @@
+
+
+
+
+ 4
+
+
+
+
+ false
+ 1
+
+
+
+
+ true
+ 0
+
+
+