This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-net.git

commit 0baa35693c4fcc5a34f386313df0f97c32d99e97
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Sun Jun 16 19:02:19 2024 -0400

    Add PMD check to default build
    
    Add PMD report
---
 pom.xml                  | 20 +++++++++++-
 src/conf/pmd-ruleset.xml | 81 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 100 insertions(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 6c2369b4..6d24636c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -139,7 +139,7 @@ Supported protocols include Echo, Finger, FTP, NNTP, NTP, 
POP3(S), SMTP(S), Teln
         </dependency>
     </dependencies>
     <build>
-        <defaultGoal>clean apache-rat:check javadoc:javadoc checkstyle:check 
verify japicmp:cmp</defaultGoal>
+        <defaultGoal>clean apache-rat:check javadoc:javadoc checkstyle:check 
verify japicmp:cmp pmd:check</defaultGoal>
         <pluginManagement>
             <plugins>
                 <!-- Allow CLI usage -->
@@ -154,6 +154,15 @@ Supported protocols include Echo, Finger, FTP, NNTP, NTP, 
POP3(S), SMTP(S), Teln
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-checkstyle-plugin</artifactId>
                 </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-pmd-plugin</artifactId>
+                    <configuration>
+                        <rulesets>
+                            
<ruleset>${basedir}/src/conf/pmd-ruleset.xml</ruleset>
+                        </rulesets>
+                    </configuration>
+                </plugin>
             </plugins>
         </pluginManagement>
         <plugins>
@@ -400,6 +409,15 @@ Supported protocols include Echo, Finger, FTP, NNTP, NTP, 
POP3(S), SMTP(S), Teln
                     <enableRulesSummary>false</enableRulesSummary>
                 </configuration>
             </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-pmd-plugin</artifactId>
+                <configuration>
+                    <rulesets>
+                        <ruleset>${basedir}/src/conf/pmd-ruleset.xml</ruleset>
+                    </rulesets>
+                </configuration>
+             </plugin>
         </plugins>
     </reporting>
     <profiles>
diff --git a/src/conf/pmd-ruleset.xml b/src/conf/pmd-ruleset.xml
new file mode 100644
index 00000000..51c022c7
--- /dev/null
+++ b/src/conf/pmd-ruleset.xml
@@ -0,0 +1,81 @@
+<?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="mybraces" 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>Excludes from default PMD rules.</description>  
+    <rule ref="category/java/bestpractices.xml/AvoidUsingHardCodedIP" />
+    <rule ref="category/java/bestpractices.xml/CheckResultSet" />
+    <rule ref="category/java/bestpractices.xml/PrimitiveWrapperInstantiation" 
/>
+    <rule ref="category/java/bestpractices.xml/UnusedLocalVariable" />
+    <rule ref="category/java/bestpractices.xml/UnusedPrivateField" />
+    <rule ref="category/java/bestpractices.xml/UnusedPrivateMethod" />
+
+    <rule ref="category/java/codestyle.xml/ExtendsObject" />
+    <rule ref="category/java/codestyle.xml/ForLoopShouldBeWhileLoop" />
+    <rule ref="category/java/codestyle.xml/TooManyStaticImports" />
+    <rule ref="category/java/codestyle.xml/UnnecessaryFullyQualifiedName" />
+    <rule ref="category/java/codestyle.xml/UnnecessaryImport" />
+    <rule ref="category/java/codestyle.xml/UnnecessaryModifier" />
+    <rule ref="category/java/codestyle.xml/UnnecessaryReturn" />
+    <rule ref="category/java/codestyle.xml/UnnecessarySemicolon" />
+    <rule ref="category/java/codestyle.xml/UselessParentheses" />
+    <rule ref="category/java/codestyle.xml/UselessQualifiedThis" />
+
+    <rule ref="category/java/design.xml/CollapsibleIfStatements" />
+    <rule ref="category/java/design.xml/SimplifiedTernary" />
+    <rule ref="category/java/design.xml/UselessOverridingMethod" />
+
+    <rule 
ref="category/java/errorprone.xml/AvoidBranchingStatementAsLastInLoop" />
+    <rule 
ref="category/java/errorprone.xml/AvoidDecimalLiteralsInBigDecimalConstructor" 
/>
+    <rule ref="category/java/errorprone.xml/AvoidMultipleUnaryOperators" />
+    <rule ref="category/java/errorprone.xml/AvoidUsingOctalValues" />
+    <rule ref="category/java/errorprone.xml/BrokenNullCheck" />
+    <rule ref="category/java/errorprone.xml/CheckSkipResult" />
+    <rule ref="category/java/errorprone.xml/ClassCastExceptionWithToArray" />
+    <rule ref="category/java/errorprone.xml/DontUseFloatTypeForLoopIndices" />
+    <rule ref="category/java/errorprone.xml/JumbledIncrementer" />
+    <rule ref="category/java/errorprone.xml/MisplacedNullCheck" />
+    <rule ref="category/java/errorprone.xml/OverrideBothEqualsAndHashcode" />
+    <rule ref="category/java/errorprone.xml/ReturnFromFinallyBlock" />
+    <rule ref="category/java/errorprone.xml/UnconditionalIfStatement" />
+    <rule ref="category/java/errorprone.xml/UnnecessaryConversionTemporary" />
+    <rule ref="category/java/errorprone.xml/UnusedNullCheckInEquals" />
+    <rule ref="category/java/errorprone.xml/UselessOperationOnImmutable" />
+
+    <rule ref="category/java/multithreading.xml/AvoidThreadGroup" />
+    <rule ref="category/java/multithreading.xml/DontCallThreadRun" />
+    <rule ref="category/java/multithreading.xml/DoubleCheckedLocking" />
+
+    <rule ref="category/java/performance.xml/BigIntegerInstantiation" />
+    
+  <rule ref="category/java/errorprone.xml/EmptyCatchBlock">
+    <properties>
+      <property name="allowCommentedBlocks" value="true" />
+    </properties>
+  </rule>
+  <rule ref="category/java/bestpractices.xml/UnusedFormalParameter">
+    <properties>
+      <property name="violationSuppressRegex" value=".*'ignored'.*" />
+    </properties>
+  </rule>
+  <rule ref="category/java/codestyle.xml/EmptyControlStatement">
+    <properties>
+      <property name="allowCommentedBlocks" value="true" />
+    </properties>
+  </rule>
+</ruleset>

Reply via email to