commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From l..@apache.org
Subject [7/7] [math] Set up a customized configuration for PMD.
Date Tue, 03 Nov 2015 21:19:05 GMT
Set up a customized configuration for PMD.

Project: http://git-wip-us.apache.org/repos/asf/commons-math/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-math/commit/1f6c1252
Tree: http://git-wip-us.apache.org/repos/asf/commons-math/tree/1f6c1252
Diff: http://git-wip-us.apache.org/repos/asf/commons-math/diff/1f6c1252

Branch: refs/heads/master
Commit: 1f6c125267c4882bfb509c24fd36a7fc26f4f897
Parents: 3e0ffb9
Author: Luc Maisonobe <luc@apache.org>
Authored: Tue Nov 3 22:09:06 2015 +0100
Committer: Luc Maisonobe <luc@apache.org>
Committed: Tue Nov 3 22:09:06 2015 +0100

----------------------------------------------------------------------
 pmd-ruleset.xml | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 pom.xml         |  8 ++++++
 2 files changed, 81 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-math/blob/1f6c1252/pmd-ruleset.xml
----------------------------------------------------------------------
diff --git a/pmd-ruleset.xml b/pmd-ruleset.xml
new file mode 100644
index 0000000..12e6137
--- /dev/null
+++ b/pmd-ruleset.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0"?>
+<!--
+   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="commons-math-customized"
+    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>
+    This ruleset checks the code for discouraged programming constructs.
+  </description>
+
+  <rule ref="rulesets/java/basic.xml"/>
+
+  <rule ref="rulesets/java/braces.xml"/>
+
+  <rule ref="rulesets/java/comments.xml">
+    <exclude name="CommentSize"/>
+  </rule>
+  <rule ref="rulesets/java/comments.xml/CommentSize">
+    <properties>
+      <property name="maxLines"      value="200"/>
+      <property name="maxLineLength" value="256"/>
+    </properties>
+  </rule>
+
+  <rule ref="rulesets/java/empty.xml"/>
+
+  <rule ref="rulesets/java/finalizers.xml"/>
+
+  <rule ref="rulesets/java/imports.xml"/>
+
+  <rule ref="rulesets/java/typeresolution.xml">
+    <!-- TODO: we should reactivate this rule -->
+    <exclude name="CloneMethodMustImplementCloneable"/>
+  </rule>
+
+  <!-- TODO: we should reactivate this ruleset -->
+  <!-- <rule ref="rulesets/java/clone.xml"/> -->
+
+  <rule ref="rulesets/java/unnecessary.xml">
+
+    <!-- In many places in Apache Commons Math, there are complex boolean expressions.
+         We do use extra parentheses there as most people do not recall operator precedence,
+         this means even if the parentheses are useless for the compiler, we don't consider
+         them useless for the developer. This is the reason why we disable this rule. -->
+    <exclude name="UselessParentheses"/>
+
+    <!-- At several places in the optimization package, we set up public "optimize" methods
+         that simply call their base class optimize method. This is intentional and allows
+         to update the javadoc and make sure the additional parameters implemented at the
+         lower class level are properly documented. These new parameters are really taken
+         into accound despite we merely call super.optimize because the top level optimze
+         methods call a protected parseOptimizationData method implemented in the specialized
+         class. This is the reason why we disable this rule. -->
+    <exclude name="UselessOverridingMethod"/>
+
+  </rule>
+
+</ruleset>

http://git-wip-us.apache.org/repos/asf/commons-math/blob/1f6c1252/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 4da8e9c..65ea6c3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -471,6 +471,10 @@
         <version>${math.pmd.version}</version>
         <configuration>
           <targetJdk>${maven.compiler.target}</targetJdk>
+          <skipEmptyReport>false</skipEmptyReport>
+          <rulesets>
+            <ruleset>${basedir}/pmd-ruleset.xml</ruleset>
+          </rulesets>
         </configuration>
       </plugin>
       <plugin>
@@ -671,6 +675,10 @@
         <version>${math.pmd.version}</version>
         <configuration>
           <targetJdk>${maven.compiler.target}</targetJdk>
+          <skipEmptyReport>false</skipEmptyReport>
+          <rulesets>
+            <ruleset>${basedir}/pmd-ruleset.xml</ruleset>
+          </rulesets>
         </configuration>
         <reportSets>
           <reportSet>


Mime
View raw message