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: }
