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

coheigea pushed a commit to branch coheigea/pmd
in repository https://gitbox.apache.org/repos/asf/ws-xmlschema.git

commit cb4a3ba1c50e393802ecab4d42780788d9240653
Author: Colm O hEigeartaigh <[email protected]>
AuthorDate: Fri Dec 8 10:21:15 2023 +0000

    Updating PMD
---
 pom.xml                                            |  11 +-
 src/main/resources/xmlschema-pmd-ruleset.xml       | 142 +++++++++++++++++++++
 .../apache/ws/commons/schema/SchemaBuilder.java    |  10 +-
 .../ws/commons/schema/XmlSchemaAnnotationItem.java |   2 +-
 .../apache/ws/commons/schema/XmlSchemaForm.java    |   2 +-
 .../ws/commons/schema/XmlSchemaGroupParticle.java  |   2 +-
 .../ws/commons/schema/XmlSchemaSerializer.java     |  16 +--
 .../schema/docpath/XmlSchemaStateMachineNode.java  |   3 +-
 .../ws/commons/schema/walker/XmlSchemaScope.java   |   4 +-
 9 files changed, 165 insertions(+), 27 deletions(-)

diff --git a/pom.xml b/pom.xml
index f1e1b4eb..866f45a3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -122,21 +122,14 @@
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-pmd-plugin</artifactId>
                     <version>3.21.2</version>
-                    <dependencies>
-                        <dependency>
-                            <groupId>org.apache.ws.xmlschema</groupId>
-                            <artifactId>xmlschema-eclipse</artifactId>
-                            <version>${xmlschema-eclipse-version}</version>
-                        </dependency>
-                    </dependencies>
                     <configuration>
                         <rulesets>
-                            <ruleset>xmlschema-pmd-ruleset.xml</ruleset>
+                            
<ruleset>${project.parent.basedir}/src/main/resources/xmlschema-pmd-ruleset.xml</ruleset>
                         </rulesets>
                         <sourceEncoding>UTF-8</sourceEncoding>
                         <targetJdk>1.6</targetJdk>
                         <linkXRef>false</linkXRef>
-                        <includeTests>true</includeTests>
+                        <includeTests>false</includeTests>
                         <verbose>true</verbose>
                         <excludeRoots>
                             
<excludeRoot>${basedir}/src/main/generated</excludeRoot>
diff --git a/src/main/resources/xmlschema-pmd-ruleset.xml 
b/src/main/resources/xmlschema-pmd-ruleset.xml
new file mode 100644
index 00000000..6e23087f
--- /dev/null
+++ b/src/main/resources/xmlschema-pmd-ruleset.xml
@@ -0,0 +1,142 @@
+<?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="santuario-pmd" 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>
+  A PMD ruleset for Apache XML Schema
+  </description>
+
+  <rule ref="category/java/bestpractices.xml">
+     <exclude name="AbstractClassWithoutAbstractMethod" />
+     <exclude name="AccessorMethodGeneration" />
+     <exclude name="ArrayIsStoredDirectly" />
+     <exclude name="AvoidReassigningParameters" />
+     <exclude name="AvoidReassigningLoopVariables" />
+     <exclude name="AvoidUsingHardCodedIP" />
+     <exclude name="AvoidMessageDigestField" />
+     <exclude name="AvoidStringBufferField" />
+     <exclude name="ConstantsInInterface" />
+     <exclude name="ForLoopCanBeForeach" />
+     <exclude name="ForLoopVariableCount" />
+     <exclude name="GuardLogStatement" />
+     <exclude name="LooseCoupling" />
+     <exclude name="JUnitAssertionsShouldIncludeMessage"/>
+     <exclude name="JUnitTestContainsTooManyAsserts" />
+     <exclude name="JUnitTestsShouldIncludeAssert" />
+     <exclude name="JUnitUseExpected" />
+     <exclude name="JUnit5TestShouldBePackagePrivate" />
+     <exclude name="LiteralsFirstInComparisons" />
+     <exclude name="MethodReturnsInternalArray" />
+     <exclude name="MissingOverride" />
+     <exclude name="OneDeclarationPerLine" />
+     <exclude name="PreserveStackTrace" />
+     <exclude name="SwitchStmtsShouldHaveDefault" />
+     <exclude name="SystemPrintln" />
+     <exclude name="UnusedAssignment" />
+     <exclude name="UnusedFormalParameter" />
+     <exclude name="UnusedPrivateMethod" />
+     <exclude name="UseAssertSameInsteadOfAssertTrue" />
+     <exclude name="UseVarargs" />
+  </rule>
+
+  <rule ref="category/java/design.xml" >
+     <exclude name="AvoidCatchingGenericException" />
+     <exclude name="AvoidDeeplyNestedIfStmts" />
+     <exclude name="AvoidRethrowingException" />
+     <exclude name="AvoidThrowingNullPointerException" />
+     <exclude name="AvoidThrowingRawExceptionTypes" />
+     <exclude name="AvoidUncheckedExceptionsInSignatures" />
+     <exclude name="CognitiveComplexity" />
+     <exclude name="CouplingBetweenObjects" />
+     <exclude name="CyclomaticComplexity" />
+     <exclude name="DataClass" />
+     <exclude name="ExceptionAsFlowControl" />
+     <exclude name="ExcessiveClassLength" />
+     <exclude name="ExcessiveImports" />
+     <exclude name="ExcessiveMethodLength" />
+     <exclude name="ExcessivePublicCount" />
+     <exclude name="GodClass" />
+     <exclude name="ImmutableField" />
+     <exclude name="LawOfDemeter" />
+     <exclude name="NcssCount" />
+     <exclude name="NPathComplexity" />
+     <exclude name="SignatureDeclareThrowsException" />
+     <exclude name="SingularField" />
+     <exclude name="SwitchDensity" />
+     <exclude name="TooManyFields" />
+     <exclude name="TooManyMethods" />
+     <exclude name="UseObjectForClearerAPI" />
+     <exclude name="UselessOverridingMethod" />
+     <exclude name="UseUtilityClass" />
+  </rule>
+
+  <rule ref="category/java/errorprone.xml">
+     <exclude name="AssignmentInOperand" />
+     <exclude name="AssignmentToNonFinalStatic" />
+     <exclude name="AvoidCatchingNPE" />
+     <exclude name="AvoidCatchingThrowable" />
+     <exclude name="AvoidDuplicateLiterals" />
+     <exclude name="AvoidFieldNameMatchingMethodName" />
+     <exclude name="AvoidFieldNameMatchingTypeName" />
+     <exclude name="AvoidLiteralsInIfCondition" />
+     <exclude name="CompareObjectsWithEquals" />
+     <exclude name="ConstructorCallsOverridableMethod" />
+     <exclude name="DataflowAnomalyAnalysis" />
+     <exclude name="DoNotCallGarbageCollectionExplicitly" />
+     <exclude name="EmptyCatchBlock" />
+     <exclude name="InvalidLogMessageFormat" />
+     <exclude name="JUnitSpelling" />
+     <exclude name="MissingSerialVersionUID" />
+     <exclude name="NullAssignment" />
+     <exclude name="ReturnEmptyCollectionRatherThanNull" />
+     <exclude name="SingletonClassReturningNewInstance" />
+     <exclude name="SingleMethodSingleton" />
+     <exclude name="SuspiciousEqualsMethodName" />
+     <exclude name="UseLocaleWithCaseConversions" />
+     <exclude name="UseProperClassLoader" />
+  </rule>
+
+  <rule ref="category/java/multithreading.xml">
+     <exclude name="AvoidSynchronizedAtMethodLevel" />
+     <exclude name="AvoidUsingVolatile" />
+     <exclude name="DoNotUseThreads" />
+     <exclude name="NonThreadSafeSingleton" />
+     <exclude name="UseConcurrentHashMap" />
+  </rule>
+
+  <rule ref="category/java/performance.xml">
+     <exclude name="AddEmptyString" />
+     <exclude name="AvoidInstantiatingObjectsInLoops" />
+     <exclude name="AvoidFileStream" />
+     <exclude name="ConsecutiveAppendsShouldReuse" />
+     <exclude name="ConsecutiveLiteralAppends" />
+     <exclude name="InefficientEmptyStringCheck" />
+     <exclude name="InsufficientStringBufferDeclaration" />
+     <exclude name="OptimizableToArrayCall" />
+     <exclude name="RedundantFieldInitializer" />
+     <exclude name="UseStringBufferForStringAppends" />
+  </rule>
+
+  <rule ref="category/java/security.xml" >
+     <exclude name="HardCodedCryptoKey" />
+  </rule>
+      
+</ruleset>
diff --git 
a/xmlschema-core/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java 
b/xmlschema-core/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java
index fc5de8c1..2677d005 100644
--- 
a/xmlschema-core/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java
+++ 
b/xmlschema-core/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java
@@ -64,7 +64,7 @@ import org.apache.ws.commons.schema.utils.XDOMUtil;
 public class SchemaBuilder {
 
     // default access for unit tests.
-    static ThreadLocal<Map<String, SoftReference<XmlSchema>>> resolvedSchemas =
+    static ThreadLocal<Map<String, SoftReference<XmlSchema>>> resolvedSchemas 
= //NOPMD
         new ThreadLocal<Map<String, SoftReference<XmlSchema>>>();
     private static final Set<String> RESERVED_ATTRIBUTES = new 
HashSet<String>();
     private static final String[] RESERVED_ATTRIBUTES_LIST = {
@@ -789,7 +789,7 @@ public class SchemaBuilder {
         for (Node n = content.getFirstChild(); n != null; n = 
n.getNextSibling()) {
             result.add(n);
         }
-        if (result.size() == 0) {
+        if (result.isEmpty()) {
             return null;
         } else {
             return result;
@@ -1001,9 +1001,9 @@ public class SchemaBuilder {
                 attrs.add(att);
                 String value = att.getValue();
 
-                if (value.indexOf(":") > -1) {
+                if (value.indexOf(':') > -1) {
                     // there is a possibility of some namespace mapping
-                    String prefix = value.substring(0, value.indexOf(":"));
+                    String prefix = value.substring(0, value.indexOf(':'));
                     if (ctx == null) {
                         ctx = NodeNamespaceContext.getNamespaceContext(attrEl);
                     }
@@ -1018,7 +1018,7 @@ public class SchemaBuilder {
             }
         }
 
-        if (attrs.size() > 0) {
+        if (!attrs.isEmpty()) {
             attr.setUnhandledAttributes(attrs.toArray(new Attr[attrs.size()]));
         }
 
diff --git 
a/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaAnnotationItem.java
 
b/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaAnnotationItem.java
index 4b4c580b..63eb5622 100644
--- 
a/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaAnnotationItem.java
+++ 
b/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaAnnotationItem.java
@@ -22,6 +22,6 @@ package org.apache.ws.commons.schema;
 /**
  * Common base class of the items that can live inside an annotation.
  */
-public abstract class XmlSchemaAnnotationItem
+public abstract class XmlSchemaAnnotationItem   //NOPMD
     extends XmlSchemaObject {
 }
diff --git 
a/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaForm.java 
b/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaForm.java
index d27f669e..958ff4f2 100644
--- 
a/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaForm.java
+++ 
b/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaForm.java
@@ -34,7 +34,7 @@ public enum XmlSchemaForm {
 
     @Override
     public String toString() {
-        switch (this) {
+        switch (this) { //NOPMD
         case QUALIFIED:
             return "qualified";
         case UNQUALIFIED:
diff --git 
a/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaGroupParticle.java
 
b/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaGroupParticle.java
index ac022802..12f411a6 100644
--- 
a/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaGroupParticle.java
+++ 
b/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaGroupParticle.java
@@ -22,6 +22,6 @@ package org.apache.ws.commons.schema;
 /**
  * Common type for items that can serve as the particle of a group.
  */
-public abstract class XmlSchemaGroupParticle extends XmlSchemaParticle {
+public abstract class XmlSchemaGroupParticle extends XmlSchemaParticle {    
//NOPMD
 
 }
diff --git 
a/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaSerializer.java
 
b/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaSerializer.java
index 307be769..dae86a98 100644
--- 
a/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaSerializer.java
+++ 
b/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaSerializer.java
@@ -94,7 +94,7 @@ public class XmlSchemaSerializer {
     private static String[] getParts(String name) {
         String[] parts = new String[2];
 
-        int index = name.indexOf(":");
+        int index = name.indexOf(':');
         if (index > -1) {
             parts[0] = name.substring(0, index);
             parts[1] = name.substring(index + 1);
@@ -446,19 +446,19 @@ public class XmlSchemaSerializer {
                 if ("xmlns".equals(name)) {
                     namespaces.put("", value);
                 } else if (name.startsWith("xmlns")) {
-                    namespaces.put(name.substring(name.indexOf(":") + 1), 
value);
+                    namespaces.put(name.substring(name.indexOf(':') + 1), 
value);
                 }
             }
 
             for (Attr element : unhandled) {
                 String value = element.getNodeValue();
                 String nodeName = element.getNodeName();
-                if (value.indexOf(":") > -1 && !nodeName.startsWith("xmlns")) {
-                    String prefix = value.substring(0, value.indexOf(":"));
+                if (value.indexOf(':') > -1 && !nodeName.startsWith("xmlns")) {
+                    String prefix = value.substring(0, value.indexOf(':'));
                     String oldNamespace;
                     oldNamespace = namespaces.get(prefix);
                     if (oldNamespace != null) {
-                        value = value.substring(value.indexOf(":") + 1);
+                        value = value.substring(value.indexOf(':') + 1);
                         NamespacePrefixList ctx = schema.getNamespaceContext();
                         String[] prefixes = ctx.getDeclaredPrefixes();
                         for (String pref : prefixes) {
@@ -940,7 +940,7 @@ public class XmlSchemaSerializer {
         }
 
         List<XmlSchemaAttributeOrGroupRef> attrColl = 
complexTypeObj.getAttributes();
-        if (attrColl.size() > 0) {
+        if (!attrColl.isEmpty()) {
             setupAttr(doc, attrColl, schema, serializedComplexType);
         }
 
@@ -2346,11 +2346,11 @@ public class XmlSchemaSerializer {
                 schemaNamespace.put(namespace, prefix);
 
                 // setting xmlns in schema
-                schemaElement.setAttributeNS(XMLNS_NAMESPACE_URI, "xmlns:" + 
prefix.toString(), namespace);
+                schemaElement.setAttributeNS(XMLNS_NAMESPACE_URI, "xmlns:" + 
prefix.toString(), namespace); //NOPMD
             }
         }
 
-        prefixStr = prefix.toString();
+        prefixStr = prefix.toString();  //NOPMD
         prefixStr = prefixStr.trim().length() > 0 ? prefixStr + ":" : "";
 
         return prefixStr + typeName;
diff --git 
a/xmlschema-walker/src/main/java/org/apache/ws/commons/schema/docpath/XmlSchemaStateMachineNode.java
 
b/xmlschema-walker/src/main/java/org/apache/ws/commons/schema/docpath/XmlSchemaStateMachineNode.java
index 541a92f3..5d3fd7a1 100644
--- 
a/xmlschema-walker/src/main/java/org/apache/ws/commons/schema/docpath/XmlSchemaStateMachineNode.java
+++ 
b/xmlschema-walker/src/main/java/org/apache/ws/commons/schema/docpath/XmlSchemaStateMachineNode.java
@@ -240,7 +240,7 @@ public final class XmlSchemaStateMachineNode {
         case ELEMENT:
             name.append(": ").append(element.getQName()).append(" [");
             name.append(minOccurs).append(", ");
-            name.append(maxOccurs).append("]");
+            name.append(maxOccurs).append(']');
             break;
         case ANY:
             name.append(": NS: \"").append(any.getNamespace()).append("\", ");
@@ -251,6 +251,7 @@ public final class XmlSchemaStateMachineNode {
         default:
             name.append(" [").append(minOccurs).append(", ").append(maxOccurs);
             name.append(']');
+            break;
         }
         return name.toString();
     }
diff --git 
a/xmlschema-walker/src/main/java/org/apache/ws/commons/schema/walker/XmlSchemaScope.java
 
b/xmlschema-walker/src/main/java/org/apache/ws/commons/schema/walker/XmlSchemaScope.java
index 4b0307d1..475f5aab 100644
--- 
a/xmlschema-walker/src/main/java/org/apache/ws/commons/schema/walker/XmlSchemaScope.java
+++ 
b/xmlschema-walker/src/main/java/org/apache/ws/commons/schema/walker/XmlSchemaScope.java
@@ -383,7 +383,7 @@ final class XmlSchemaScope {
 
                 StringBuilder nsAsString = new StringBuilder();
                 for (String namespace : namespaces) {
-                    nsAsString.append(namespace).append(" ");
+                    nsAsString.append(namespace).append(' ');
                 }
 
                 anyAttr = new XmlSchemaAnyAttribute();
@@ -717,8 +717,10 @@ final class XmlSchemaScope {
             switch (XmlSchemaBaseSimpleType.getBaseSimpleTypeFor(simpleType)) {
             case ANYTYPE:
                 checkAnyType = false;
+                break;
             case ANYSIMPLETYPE:
                 checkAnySimpleType = false;
+                break;
             default:
             }
 

Reply via email to