You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by bd...@apache.org on 2023/09/06 19:47:15 UTC
[directory-scimple] branch add-spotbugs created (now d50d3905)
This is an automated email from the ASF dual-hosted git repository.
bdemers pushed a change to branch add-spotbugs
in repository https://gitbox.apache.org/repos/asf/directory-scimple.git
at d50d3905 Move dependency-check out of `ci` profile
This branch includes the following new commits:
new a1a8e51f Add Spotbugs & FindSecBugs
new 09b60b0c Adding missing Serialization config
new aba11855 Fixing minor issues found by SpotBugs
new 2a337804 Replacing ObjectOutputStream deep clone with Jackson
new d9f9a360 Setting locale to ROOT for string toUpper and toLower
new d50d3905 Move dependency-check out of `ci` profile
The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[directory-scimple] 05/06: Setting locale to ROOT for string toUpper and toLower
Posted by bd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
bdemers pushed a commit to branch add-spotbugs
in repository https://gitbox.apache.org/repos/asf/directory-scimple.git
commit d9f9a3601b3b0f68d0b005b03d5a1e94c1e2d786
Author: Brian Demers <bd...@apache.org>
AuthorDate: Sat Sep 2 01:11:43 2023 -0400
Setting locale to ROOT for string toUpper and toLower
---
.../scim/core/repository/UpdateRequest.java | 2 +-
.../spec/filter/ExpressionBuildingListener.java | 9 +++---
.../directory/scim/spec/resources/PhoneNumber.java | 37 ++++++++++++++--------
3 files changed, 30 insertions(+), 18 deletions(-)
diff --git a/scim-core/src/main/java/org/apache/directory/scim/core/repository/UpdateRequest.java b/scim-core/src/main/java/org/apache/directory/scim/core/repository/UpdateRequest.java
index c5e0ff34..a39adac3 100644
--- a/scim-core/src/main/java/org/apache/directory/scim/core/repository/UpdateRequest.java
+++ b/scim-core/src/main/java/org/apache/directory/scim/core/repository/UpdateRequest.java
@@ -293,7 +293,7 @@ public class UpdateRequest<T extends ScimResource> {
private List<PatchOperation> convertNodeToPatchOperations(String operationNode, String diffPath, JsonNode valueNode) throws IllegalArgumentException, IllegalAccessException, JsonProcessingException {
log.debug("convertNodeToPatchOperations: {} , {}", operationNode, diffPath);
List<PatchOperation> operations = new ArrayList<>();
- PatchOperation.Type patchOpType = PatchOperation.Type.valueOf(operationNode.toUpperCase());
+ PatchOperation.Type patchOpType = PatchOperation.Type.valueOf(operationNode.toUpperCase(Locale.ROOT));
if (diffPath != null && diffPath.length() >= 1) {
ParseData parseData = new ParseData(diffPath);
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/ExpressionBuildingListener.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/ExpressionBuildingListener.java
index fed02927..33eb6e7b 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/ExpressionBuildingListener.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/ExpressionBuildingListener.java
@@ -21,6 +21,7 @@ package org.apache.directory.scim.spec.filter;
import java.util.ArrayDeque;
import java.util.Deque;
+import java.util.Locale;
import org.apache.commons.lang3.StringEscapeUtils;
import org.slf4j.Logger;
@@ -92,7 +93,7 @@ public class ExpressionBuildingListener extends FilterBaseListener {
AttributeComparisonExpression attributeComparisonExpression;
String attributePathText = ctx.attributePath.getText();
AttributeReference attributePath = new AttributeReference(attributePathText);
- CompareOperator compareOperator = CompareOperator.valueOf(ctx.op.getText().toUpperCase());
+ CompareOperator compareOperator = CompareOperator.valueOf(ctx.op.getText().toUpperCase(Locale.ROOT));
String compareValueText = ctx.compareValue.getText();
Object compareValue = parseJsonType(compareValueText);
attributeComparisonExpression = new AttributeComparisonExpression(attributePath, compareOperator, compareValue);
@@ -102,7 +103,7 @@ public class ExpressionBuildingListener extends FilterBaseListener {
@Override
public void exitFilterLogicExpression(FilterLogicExpressionContext ctx) {
- String op = ctx.op.getText().toUpperCase();
+ String op = ctx.op.getText().toUpperCase(Locale.ROOT);
LogicalOperator logicalOperator = LogicalOperator.valueOf(op);
FilterExpression right = expressionStack.pop();
FilterExpression left = expressionStack.pop();
@@ -113,7 +114,7 @@ public class ExpressionBuildingListener extends FilterBaseListener {
@Override
public void exitAttributeLogicExpression(AttributeLogicExpressionContext ctx) {
- String op = ctx.op.getText().toUpperCase();
+ String op = ctx.op.getText().toUpperCase(Locale.ROOT);
LogicalOperator logicalOperator = LogicalOperator.valueOf(op);
FilterExpression right = expressionStack.pop();
FilterExpression left = expressionStack.pop();
@@ -134,7 +135,7 @@ public class ExpressionBuildingListener extends FilterBaseListener {
@Override
public void exitAttributeCompareExpression(AttributeCompareExpressionContext ctx) {
String attributeName = ctx.attributeName.getText();
- CompareOperator compareOperator = CompareOperator.valueOf(ctx.op.getText().toUpperCase());
+ CompareOperator compareOperator = CompareOperator.valueOf(ctx.op.getText().toUpperCase(Locale.ROOT));
Object value = parseJsonType(ctx.compareValue.getText());
AttributeReference attributeReference = new AttributeReference(attributeName);
AttributeComparisonExpression expression = new AttributeComparisonExpression(attributeReference, compareOperator, value);
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/PhoneNumber.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/PhoneNumber.java
index 17943593..4f8a7c94 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/PhoneNumber.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/PhoneNumber.java
@@ -24,8 +24,10 @@ package org.apache.directory.scim.spec.resources;
import java.io.Serializable;
import java.util.LinkedHashMap;
+import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
+import java.util.stream.Collectors;
import jakarta.xml.bind.annotation.XmlAccessType;
import jakarta.xml.bind.annotation.XmlAccessorType;
@@ -213,7 +215,7 @@ public class PhoneNumber implements Serializable, TypedAttribute {
if (subAddress == null) {
if (other.subAddress != null)
return false;
- } else if (!subAddress.equalsIgnoreCase(other.subAddress))
+ } else if (!equalsIgnoreCase(subAddress, other.subAddress))
return false;
String phoneContextTemp = phoneContext;
@@ -229,7 +231,7 @@ public class PhoneNumber implements Serializable, TypedAttribute {
if (phoneContextTemp == null) {
if (otherPhoneContextTemp != null)
return false;
- } else if (!phoneContextTemp.equalsIgnoreCase(otherPhoneContextTemp))
+ } else if (!equalsIgnoreCase(phoneContextTemp, otherPhoneContextTemp))
return false;
if (!equalsIgnoreCaseAndOrderParams(other.params)) {
@@ -244,7 +246,7 @@ public class PhoneNumber implements Serializable, TypedAttribute {
if (type == null) {
return other.type == null;
- } else return type.equalsIgnoreCase(other.type);
+ } else return equalsIgnoreCase(type, other.type);
}
/*
@@ -258,23 +260,33 @@ public class PhoneNumber implements Serializable, TypedAttribute {
result = prime * result + (isGlobalNumber ? 1231 : 1237);
result = prime * result + ((number == null) ? 0 : number.replaceAll(VISUAL_SEPARATORS, "").hashCode());
result = prime * result + ((extension == null) ? 0 : extension.replaceAll(VISUAL_SEPARATORS, "").hashCode());
- result = prime * result + ((subAddress == null) ? 0 : subAddress.toLowerCase().hashCode());
- result = prime * result + ((phoneContext == null) ? 0 : (isDomainPhoneContext ? phoneContext.toLowerCase().hashCode() : phoneContext.replaceAll(VISUAL_SEPARATORS, "").hashCode()));
+ result = prime * result + ((subAddress == null) ? 0 : subAddress.toLowerCase(Locale.ROOT).hashCode());
+ result = prime * result + ((phoneContext == null) ? 0 : (isDomainPhoneContext ? phoneContext.toLowerCase(Locale.ROOT).hashCode() : phoneContext.replaceAll(VISUAL_SEPARATORS, "").hashCode()));
result = prime * result + ((params == null) ? 0 : paramsToLowerCase().hashCode());
result = prime * result + ((primary == null) ? 0 : primary.hashCode());
- result = prime * result + ((type == null) ? 0 : type.toLowerCase().hashCode());
+ result = prime * result + ((type == null) ? 0 : type.toLowerCase(Locale.ROOT).hashCode());
return result;
}
Map<String, String> paramsToLowerCase() {
Map<String, String> paramsLowercase = new LinkedHashMap<>();
for (Entry<String, String> entry : params.entrySet()) {
- paramsLowercase.put(entry.getKey().toLowerCase(), entry.getValue().toLowerCase());
+ paramsLowercase.put(entry.getKey().toLowerCase(Locale.ROOT), entry.getValue().toLowerCase(Locale.ROOT));
}
return paramsLowercase;
}
+ private static boolean equalsIgnoreCase(String a, String b) {
+ if (a == b) {
+ return true;
+ }
+ if (a == null || b == null) {
+ return false;
+ }
+ return a.toLowerCase(Locale.ROOT).equals(b.toLowerCase(Locale.ROOT));
+ }
+
boolean equalsIgnoreCaseAndOrderParams(Map<String, String> otherParams) {
if (params == null && otherParams == null) {
return true;
@@ -287,9 +299,9 @@ public class PhoneNumber implements Serializable, TypedAttribute {
Map<String, String> paramsLowercase = paramsToLowerCase();
for (Entry<String, String> entry : otherParams.entrySet()) {
- String foundValue = paramsLowercase.get(entry.getKey().toLowerCase());
+ String foundValue = paramsLowercase.get(entry.getKey().toLowerCase(Locale.ROOT));
- if (!entry.getValue().equalsIgnoreCase(foundValue)) {
+ if (!entry.getValue().toLowerCase(Locale.ROOT).equals(foundValue)) {
return false;
}
}
@@ -391,11 +403,10 @@ public class PhoneNumber implements Serializable, TypedAttribute {
String getFormattedParams() {
String paramsFormatted = "";
-
if (params != null) {
- for (Map.Entry<String, String> entry : params.entrySet()) {
- paramsFormatted += String.format(PARAMS_STRING, entry.getKey(), entry.getValue() != null ? entry.getValue() : "");
- }
+ paramsFormatted = params.entrySet().stream()
+ .map(entry -> String.format(PARAMS_STRING, entry.getKey(), entry.getValue() != null ? entry.getValue() : ""))
+ .collect(Collectors.joining());
}
return !paramsFormatted.isEmpty() ? paramsFormatted : null;
[directory-scimple] 04/06: Replacing ObjectOutputStream deep clone with Jackson
Posted by bd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
bdemers pushed a commit to branch add-spotbugs
in repository https://gitbox.apache.org/repos/asf/directory-scimple.git
commit 2a337804cf6b467b7f02a3df9eac21a5af03714b
Author: Brian Demers <bd...@apache.org>
AuthorDate: Sat Sep 2 01:06:07 2023 -0400
Replacing ObjectOutputStream deep clone with Jackson
---
.../directory/scim/server/rest/AttributeUtil.java | 26 ++++++----------------
.../scim/server/rest/AttributeUtilTest.java | 13 ++---------
2 files changed, 9 insertions(+), 30 deletions(-)
diff --git a/scim-server/src/main/java/org/apache/directory/scim/server/rest/AttributeUtil.java b/scim-server/src/main/java/org/apache/directory/scim/server/rest/AttributeUtil.java
index 24c10b26..d0814a87 100644
--- a/scim-server/src/main/java/org/apache/directory/scim/server/rest/AttributeUtil.java
+++ b/scim-server/src/main/java/org/apache/directory/scim/server/rest/AttributeUtil.java
@@ -19,8 +19,10 @@
package org.apache.directory.scim.server.rest;
+import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
+import org.apache.directory.scim.core.json.ObjectMapperFactory;
import org.apache.directory.scim.server.exception.AttributeDoesNotExistException;
import org.apache.directory.scim.server.exception.AttributeException;
import org.apache.directory.scim.spec.filter.attribute.AttributeReference;
@@ -35,11 +37,6 @@ import org.apache.directory.scim.spec.schema.Schema.Attribute.Returned;
import org.apache.directory.scim.spec.schema.Schema.Attribute.Type;
import org.apache.directory.scim.core.schema.SchemaRegistry;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
@@ -53,8 +50,11 @@ class AttributeUtil {
SchemaRegistry schemaRegistry;
+ private final ObjectMapper objectMapper;
+
AttributeUtil(SchemaRegistry schemaRegistry) {
this.schemaRegistry = schemaRegistry;
+ this.objectMapper = ObjectMapperFactory.createObjectMapper(schemaRegistry);
}
public <T extends ScimResource> T keepAlwaysAttributesForDisplay(T resource) throws AttributeException {
@@ -165,20 +165,8 @@ class AttributeUtil {
}
@SuppressWarnings("unchecked")
- private <T extends ScimResource> T cloneScimResource(T original) throws AttributeException {
- try {
- ByteArrayOutputStream boas = new ByteArrayOutputStream();
- ObjectOutputStream oos = new ObjectOutputStream(boas);
- oos.writeObject(original);
-
- ByteArrayInputStream bais = new ByteArrayInputStream(boas.toByteArray());
- ObjectInputStream ois = new ObjectInputStream(bais);
- return (T) ois.readObject();
- } catch (ClassNotFoundException e) {
- throw new IllegalStateException(e);
- } catch (IOException e) {
- throw new AttributeException(e);
- }
+ private <T extends ScimResource> T cloneScimResource(T original) {
+ return (T) this.objectMapper.convertValue(original, original.getClass());
}
private void removeAttributesOfType(Object object, AttributeContainer attributeContainer, Returned returned) throws AttributeException {
diff --git a/scim-server/src/test/java/org/apache/directory/scim/server/rest/AttributeUtilTest.java b/scim-server/src/test/java/org/apache/directory/scim/server/rest/AttributeUtilTest.java
index df38c6d6..93c80c70 100644
--- a/scim-server/src/test/java/org/apache/directory/scim/server/rest/AttributeUtilTest.java
+++ b/scim-server/src/test/java/org/apache/directory/scim/server/rest/AttributeUtilTest.java
@@ -64,19 +64,10 @@ public class AttributeUtilTest {
@BeforeEach
public void setup() {
- schemaRegistry = Mockito.mock(SchemaRegistry.class);
+ schemaRegistry = new SchemaRegistry();
+ schemaRegistry.addSchema(ScimUser.class, List.of(EnterpriseExtension.class, ExampleObjectExtension.class));
attributeUtil = new AttributeUtil(schemaRegistry);
- Schema scimUserSchema = Schemas.schemaFor(ScimUser.class);
- Schema scimEnterpriseUserSchema = Schemas.schemaForExtension(EnterpriseExtension.class);
- Schema scimExampleSchema = Schemas.schemaForExtension(ExampleObjectExtension.class);
-
- Mockito.when(schemaRegistry.getBaseSchemaOfResourceType(ScimUser.RESOURCE_NAME)).thenReturn(scimUserSchema);
- Mockito.when(schemaRegistry.getSchema(ScimUser.SCHEMA_URI)).thenReturn(scimUserSchema);
- Mockito.when(schemaRegistry.getSchema(EnterpriseExtension.URN)).thenReturn(scimEnterpriseUserSchema);
- Mockito.when(schemaRegistry.getSchema(ExampleObjectExtension.URN)).thenReturn(scimExampleSchema);
- Mockito.when(schemaRegistry.getAllSchemas()).thenReturn(Arrays.asList(scimUserSchema, scimEnterpriseUserSchema, scimExampleSchema));
- Mockito.when(schemaRegistry.getAllSchemaUrns()).thenReturn(new HashSet<>(Arrays.asList(ScimUser.SCHEMA_URI, EnterpriseExtension.URN, ExampleObjectExtension.URN)));
}
@Test
[directory-scimple] 02/06: Adding missing Serialization config
Posted by bd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
bdemers pushed a commit to branch add-spotbugs
in repository https://gitbox.apache.org/repos/asf/directory-scimple.git
commit 09b60b0c920cda09db6e1ed70cf81c149530ad32
Author: Brian Demers <bd...@apache.org>
AuthorDate: Sat Sep 2 01:02:03 2023 -0400
Adding missing Serialization config
Chasing down the tree of objects that _should_ be serializable based on interactions with other serializable classes
---
.../directory/scim/core/json/ObjectMapperFactory.java | 2 ++
.../scim/core/json/ScimResourceDeserializer.java | 2 ++
.../scim/core/repository/PrioritySortingComparator.java | 6 ++++--
.../directory/scim/core/schema/SchemaRegistry.java | 4 +++-
.../directory/scim/protocol/data/BulkOperation.java | 12 +++++++++---
.../directory/scim/protocol/data/BulkRequest.java | 4 +++-
.../scim/spec/filter/AttributeComparisonExpression.java | 1 +
.../scim/spec/filter/AttributePresentExpression.java | 1 +
.../org/apache/directory/scim/spec/filter/Filter.java | 7 +++++--
.../directory/scim/spec/filter/FilterExpression.java | 3 ++-
.../directory/scim/spec/filter/ValuePathExpression.java | 2 ++
.../directory/scim/spec/patch/PatchOperation.java | 8 ++++++--
.../directory/scim/spec/patch/PatchOperationPath.java | 6 +++++-
.../directory/scim/spec/schema/AttributeContainer.java | 3 ++-
.../apache/directory/scim/spec/schema/ResourceType.java | 6 +++++-
.../org/apache/directory/scim/spec/schema/Schema.java | 17 ++++++++++-------
.../scim/spec/schema/ServiceProviderConfiguration.java | 11 +++++++++--
17 files changed, 71 insertions(+), 24 deletions(-)
diff --git a/scim-core/src/main/java/org/apache/directory/scim/core/json/ObjectMapperFactory.java b/scim-core/src/main/java/org/apache/directory/scim/core/json/ObjectMapperFactory.java
index 468d0b7e..e9b7ad41 100644
--- a/scim-core/src/main/java/org/apache/directory/scim/core/json/ObjectMapperFactory.java
+++ b/scim-core/src/main/java/org/apache/directory/scim/core/json/ObjectMapperFactory.java
@@ -79,6 +79,8 @@ public class ObjectMapperFactory {
static class ScimResourceModule extends SimpleModule {
+ private static final long serialVersionUID = 6849840952304999849L;
+
private final SchemaRegistry schemaRegistry;
public ScimResourceModule(SchemaRegistry schemaRegistry) {
diff --git a/scim-core/src/main/java/org/apache/directory/scim/core/json/ScimResourceDeserializer.java b/scim-core/src/main/java/org/apache/directory/scim/core/json/ScimResourceDeserializer.java
index 04346b35..f0b5c4c8 100644
--- a/scim-core/src/main/java/org/apache/directory/scim/core/json/ScimResourceDeserializer.java
+++ b/scim-core/src/main/java/org/apache/directory/scim/core/json/ScimResourceDeserializer.java
@@ -32,6 +32,8 @@ import java.util.Objects;
import java.util.stream.StreamSupport;
public class ScimResourceDeserializer extends StdDeserializer<ScimResource> {
+
+ private static final long serialVersionUID = -2125441391108866034L;
private final SchemaRegistry schemaRegistry;
public ScimResourceDeserializer(SchemaRegistry schemaRegistry) {
diff --git a/scim-core/src/main/java/org/apache/directory/scim/core/repository/PrioritySortingComparator.java b/scim-core/src/main/java/org/apache/directory/scim/core/repository/PrioritySortingComparator.java
index 9f56ea89..3c72fc3d 100644
--- a/scim-core/src/main/java/org/apache/directory/scim/core/repository/PrioritySortingComparator.java
+++ b/scim-core/src/main/java/org/apache/directory/scim/core/repository/PrioritySortingComparator.java
@@ -19,14 +19,16 @@
package org.apache.directory.scim.core.repository;
+import java.io.Serializable;
import java.util.Comparator;
import java.util.Set;
import org.apache.directory.scim.spec.resources.TypedAttribute;
-class PrioritySortingComparator implements Comparator<Object> {
+class PrioritySortingComparator implements Comparator<Object>, Serializable {
- private Set<Object> priorities;
+ private static final long serialVersionUID = -8759531575215428525L;
+ private final Set<Object> priorities;
public PrioritySortingComparator(Set<Object> priorities) {
this.priorities = priorities;
diff --git a/scim-core/src/main/java/org/apache/directory/scim/core/schema/SchemaRegistry.java b/scim-core/src/main/java/org/apache/directory/scim/core/schema/SchemaRegistry.java
index 95ada68c..7f6c829e 100644
--- a/scim-core/src/main/java/org/apache/directory/scim/core/schema/SchemaRegistry.java
+++ b/scim-core/src/main/java/org/apache/directory/scim/core/schema/SchemaRegistry.java
@@ -19,6 +19,7 @@
package org.apache.directory.scim.core.schema;
+import java.io.Serializable;
import java.util.*;
import org.apache.directory.scim.spec.annotation.ScimExtensionType;
@@ -33,8 +34,9 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.directory.scim.spec.schema.Schemas;
@Slf4j
-public class SchemaRegistry {
+public class SchemaRegistry implements Serializable {
+ private static final long serialVersionUID = 2644269305703474835L;
private final Map<String, Schema> schemaMap = new HashMap<>();
private final Map<String, Class<? extends ScimResource>> schemaUrnToScimResourceClass = new HashMap<>();
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/protocol/data/BulkOperation.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/protocol/data/BulkOperation.java
index 869275f6..4a65946b 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/protocol/data/BulkOperation.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/protocol/data/BulkOperation.java
@@ -32,10 +32,14 @@ import org.apache.directory.scim.spec.resources.ScimResource;
import lombok.AllArgsConstructor;
import lombok.Data;
+import java.io.Serializable;
+
@Data
@XmlType(propOrder = {"method","path","bulkId","data"})
@XmlAccessorType(XmlAccessType.NONE)
-public class BulkOperation {
+public class BulkOperation implements Serializable {
+
+ private static final long serialVersionUID = 6528874816710788132L;
public enum Method {
@XmlEnumValue("POST") POST,
@@ -47,8 +51,10 @@ public class BulkOperation {
@Data
@AllArgsConstructor
@XmlAccessorType(XmlAccessType.NONE)
- public static class StatusWrapper {
-
+ public static class StatusWrapper implements Serializable {
+
+ private static final long serialVersionUID = 1544738718748608248L;
+
public static StatusWrapper wrap(Status code) {
return new StatusWrapper(code);
}
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/protocol/data/BulkRequest.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/protocol/data/BulkRequest.java
index 0ad7b699..63b5756b 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/protocol/data/BulkRequest.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/protocol/data/BulkRequest.java
@@ -37,7 +37,9 @@ import lombok.EqualsAndHashCode;
public class BulkRequest extends BaseResource<BulkRequest> {
public static final String SCHEMA_URI = "urn:ietf:params:scim:api:messages:2.0:BulkRequest";
-
+
+ private static final long serialVersionUID = -296570866318702047L;
+
@XmlElement
Integer failOnErrors;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/AttributeComparisonExpression.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/AttributeComparisonExpression.java
index 50573ae4..4800aae1 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/AttributeComparisonExpression.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/AttributeComparisonExpression.java
@@ -32,6 +32,7 @@ import lombok.Value;
@Value
public class AttributeComparisonExpression implements FilterExpression, ValueFilterExpression {
+ private static final long serialVersionUID = -2865840428089850575L;
AttributeReference attributePath;
CompareOperator operation;
Object compareValue;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/AttributePresentExpression.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/AttributePresentExpression.java
index 8e542450..5842ac14 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/AttributePresentExpression.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/AttributePresentExpression.java
@@ -24,6 +24,7 @@ import org.apache.directory.scim.spec.filter.attribute.AttributeReference;
@Value
public class AttributePresentExpression implements FilterExpression, ValueFilterExpression {
+ private static final long serialVersionUID = -4491412651236977273L;
AttributeReference attributePath;
@Override
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/Filter.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/Filter.java
index df8ef65b..a327f317 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/Filter.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/Filter.java
@@ -27,6 +27,7 @@ import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.tree.ParseTree;
import org.antlr.v4.runtime.tree.ParseTreeWalker;
+import java.io.Serializable;
import java.net.URLDecoder;
import java.net.URLEncoder;
@@ -38,8 +39,10 @@ import static java.nio.charset.StandardCharsets.UTF_8;
*/
@Data
@Slf4j
-public class Filter {
-
+public class Filter implements Serializable {
+
+ private static final long serialVersionUID = -363511683199922297L;
+
@Setter(AccessLevel.NONE)
private FilterExpression expression;
private String filter;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/FilterExpression.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/FilterExpression.java
index dfb9ce1e..79ae5f8a 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/FilterExpression.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/FilterExpression.java
@@ -19,9 +19,10 @@
package org.apache.directory.scim.spec.filter;
+import java.io.Serializable;
import java.util.function.Function;
-public interface FilterExpression {
+public interface FilterExpression extends Serializable {
String toFilter();
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/ValuePathExpression.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/ValuePathExpression.java
index a39a5aa9..1d9e0597 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/ValuePathExpression.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/ValuePathExpression.java
@@ -28,6 +28,8 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
@NoArgsConstructor
public class ValuePathExpression implements FilterExpression {
+
+ private static final long serialVersionUID = 2615135752981305135L;
// urn:parentAttribute[attributeExpression].subAttribute
AttributeReference attributePath;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/patch/PatchOperation.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/patch/PatchOperation.java
index 5b1733b5..aac75c77 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/patch/PatchOperation.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/patch/PatchOperation.java
@@ -31,12 +31,16 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.directory.scim.spec.adapter.PatchOperationPathAdapter;
+import java.io.Serializable;
+
@Data
@EqualsAndHashCode
@XmlType(propOrder={"operation", "path", "value"})
@XmlAccessorType(XmlAccessType.NONE)
-public class PatchOperation {
-
+public class PatchOperation implements Serializable {
+
+ private static final long serialVersionUID = 7748584008639433236L;
+
@XmlEnum(String.class)
public enum Type {
@XmlEnumValue("add") ADD,
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/patch/PatchOperationPath.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/patch/PatchOperationPath.java
index 5191042e..10144a5f 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/patch/PatchOperationPath.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/patch/PatchOperationPath.java
@@ -34,9 +34,13 @@ import org.apache.directory.scim.spec.filter.ValuePathExpression;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
+import java.io.Serializable;
+
@Data
@Slf4j
-public class PatchOperationPath {
+public class PatchOperationPath implements Serializable {
+
+ private static final long serialVersionUID = 449365558879593512L;
private ValuePathExpression valuePathExpression;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/AttributeContainer.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/AttributeContainer.java
index 5aeadbdc..c7af0dbc 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/AttributeContainer.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/AttributeContainer.java
@@ -19,11 +19,12 @@
package org.apache.directory.scim.spec.schema;
+import java.io.Serializable;
import java.util.List;
import org.apache.directory.scim.spec.schema.Schema.Attribute;
-public interface AttributeContainer {
+public interface AttributeContainer extends Serializable {
List<Attribute> getAttributes();
Attribute getAttribute(String attributeName);
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ResourceType.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ResourceType.java
index b882cdef..7999b199 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ResourceType.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ResourceType.java
@@ -19,6 +19,7 @@
package org.apache.directory.scim.spec.schema;
+import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -50,9 +51,12 @@ public class ResourceType extends ScimResourceWithOptionalId {
public static final String RESOURCE_NAME = "ResourceType";
public static final String SCHEMA_URI = "urn:ietf:params:scim:schemas:core:2.0:ResourceType";
+ private static final long serialVersionUID = -696969911228870476L;
@Data
- public static class SchemaExtensionConfiguration {
+ public static class SchemaExtensionConfiguration implements Serializable {
+
+ private static final long serialVersionUID = 7351651561572744255L;
@XmlElement(name = "schema")
@Urn
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/Schema.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/Schema.java
index 9983aa9e..2c3a05e4 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/Schema.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/Schema.java
@@ -49,8 +49,9 @@ public class Schema implements AttributeContainer {
public static final String RESOURCE_NAME = "Schema";
public static final String SCHEMA_URI = "urn:ietf:params:scim:schemas:core:2.0:Schema";
-
-
+ private static final long serialVersionUID = 1869782412244161741L;
+
+
/**
* Defines the structure of attributes included in SCIM schemas as defined by
* section 7 of the SCIM schema specification. See
@@ -64,6 +65,8 @@ public class Schema implements AttributeContainer {
@Data
public static class Attribute implements AttributeContainer {
+ private static final long serialVersionUID = 1683400114899587851L;
+
public enum Mutability {
@XmlEnumValue("immutable") IMMUTABLE,
@@ -148,7 +151,7 @@ public class Schema implements AttributeContainer {
@XmlElement
List<String> referenceTypes;
- AttributeAccessor accessor;
+ transient AttributeAccessor accessor;
private boolean scimResourceIdReference;
@@ -169,7 +172,7 @@ public class Schema implements AttributeContainer {
LOG.warn("Attribute name was null, skipping name indexing");
continue;
}
- subAttributeNamesMap.put(name.toLowerCase(), attribute);
+ subAttributeNamesMap.put(name.toLowerCase(Locale.ENGLISH), attribute);
}
if(action.equals(AddAction.REPLACE)) {
@@ -186,7 +189,7 @@ public class Schema implements AttributeContainer {
if (name == null) {
return null;
}
- return subAttributeNamesMap.get(name.toLowerCase());
+ return subAttributeNamesMap.get(name.toLowerCase(Locale.ENGLISH));
}
}
@@ -228,7 +231,7 @@ public class Schema implements AttributeContainer {
LOG.warn("Attribute name was null, skipping name indexing");
continue;
}
- attributeNamesMap.put(name.toLowerCase(), attribute);
+ attributeNamesMap.put(name.toLowerCase(Locale.ENGLISH), attribute);
}
this.attributes = attributes;
@@ -238,7 +241,7 @@ public class Schema implements AttributeContainer {
if (name == null) {
return null;
}
- return attributeNamesMap.get(name.toLowerCase());
+ return attributeNamesMap.get(name.toLowerCase(Locale.ENGLISH));
}
public Attribute getAttributeFromPath(String path) {
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ServiceProviderConfiguration.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ServiceProviderConfiguration.java
index 7c457c0e..fbc55f05 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ServiceProviderConfiguration.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ServiceProviderConfiguration.java
@@ -19,6 +19,7 @@
package org.apache.directory.scim.spec.schema;
+import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -44,11 +45,14 @@ public class ServiceProviderConfiguration extends ScimResourceWithOptionalId {
public static final String RESOURCE_NAME = "ServiceProviderConfig";
public static final String SCHEMA_URI = "urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig";
+ private static final long serialVersionUID = -6526116522184446474L;
@Data
@XmlType
@XmlAccessorType(XmlAccessType.NONE)
- public static class AuthenticationSchema {
+ public static class AuthenticationSchema implements Serializable {
+
+ private static final long serialVersionUID = 1286852277186580002L;
public enum Type {
@XmlEnumValue("oauth") OAUTH(
@@ -137,13 +141,15 @@ public class ServiceProviderConfiguration extends ScimResourceWithOptionalId {
}
@Data
- public static class SupportedConfiguration {
+ public static class SupportedConfiguration implements Serializable {
+ private static final long serialVersionUID = 3646886915978382920L;
boolean supported;
}
@Data
@EqualsAndHashCode(callSuper = true)
public static class BulkConfiguration extends SupportedConfiguration {
+ private static final long serialVersionUID = 8312025367100671778L;
int maxOperations;
int maxPayloadSize;
}
@@ -151,6 +157,7 @@ public class ServiceProviderConfiguration extends ScimResourceWithOptionalId {
@Data
@EqualsAndHashCode(callSuper = true)
public static class FilterConfiguration extends SupportedConfiguration {
+ private static final long serialVersionUID = 1887771731291732875L;
int maxResults;
}
[directory-scimple] 03/06: Fixing minor issues found by SpotBugs
Posted by bd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
bdemers pushed a commit to branch add-spotbugs
in repository https://gitbox.apache.org/repos/asf/directory-scimple.git
commit aba1185550868261311bc3d429516f2fb886aea8
Author: Brian Demers <bd...@apache.org>
AuthorDate: Sat Sep 2 01:04:33 2023 -0400
Fixing minor issues found by SpotBugs
---
.../scim/core/repository/PatchHandlerImpl.java | 6 +++---
.../scim/example/jersey/JerseyApplication.java | 2 +-
.../directory/scim/server/rest/ScimResourceHelper.java | 12 ------------
.../directory/scim/protocol/data/ErrorResponse.java | 2 +-
.../directory/scim/protocol/data/StatusAdapter.java | 2 +-
.../org/apache/directory/scim/spec/filter/Filter.java | 2 +-
.../directory/scim/spec/resources/PhoneNumber.java | 15 ++++++++-------
.../directory/scim/spec/schema/ScimSpecSchema.java | 17 +++++++----------
8 files changed, 22 insertions(+), 36 deletions(-)
diff --git a/scim-core/src/main/java/org/apache/directory/scim/core/repository/PatchHandlerImpl.java b/scim-core/src/main/java/org/apache/directory/scim/core/repository/PatchHandlerImpl.java
index dce8310f..ac704c98 100644
--- a/scim-core/src/main/java/org/apache/directory/scim/core/repository/PatchHandlerImpl.java
+++ b/scim-core/src/main/java/org/apache/directory/scim/core/repository/PatchHandlerImpl.java
@@ -221,7 +221,7 @@ public class PatchHandlerImpl implements PatchHandler {
<T extends ScimResource> void applyMultiValue(final T source, Map<String, Object> sourceAsMap, Schema schema, Attribute attribute, ValuePathExpression valuePathExpression, Object value);
}
- private class AddOperationHandler implements PatchOperationHandler {
+ private static class AddOperationHandler implements PatchOperationHandler {
@Override
public <T extends ScimResource> void applyExtensionValue(T source, Map<String, Object> sourceAsMap, Schema schema, Attribute attribute, ValuePathExpression valuePathExpression, String urn, Object value) {
@@ -314,7 +314,7 @@ public class PatchHandlerImpl implements PatchHandler {
}
}
- private class ReplaceOperationHandler implements PatchOperationHandler {
+ private static class ReplaceOperationHandler implements PatchOperationHandler {
@Override
public void applySingleValue(Map<String, Object> sourceAsMap, Attribute attribute, AttributeReference attributeReference, Object value) {
@@ -366,7 +366,7 @@ public class PatchHandlerImpl implements PatchHandler {
}
}
- private class RemoveOperationHandler implements PatchOperationHandler {
+ private static class RemoveOperationHandler implements PatchOperationHandler {
@Override
public void applySingleValue(Map<String, Object> sourceAsMap, Attribute attribute, AttributeReference attributeReference, Object value) {
diff --git a/scim-server-examples/scim-server-jersey/src/main/java/org/apache/directory/scim/example/jersey/JerseyApplication.java b/scim-server-examples/scim-server-jersey/src/main/java/org/apache/directory/scim/example/jersey/JerseyApplication.java
index 090d43bc..aa012fa0 100644
--- a/scim-server-examples/scim-server-jersey/src/main/java/org/apache/directory/scim/example/jersey/JerseyApplication.java
+++ b/scim-server-examples/scim-server-jersey/src/main/java/org/apache/directory/scim/example/jersey/JerseyApplication.java
@@ -76,7 +76,7 @@ public class JerseyApplication extends Application {
.thenAccept(instance -> instance.stopOnShutdown(stopResult -> container.close()));
URI uri = UriBuilder.fromUri("http://localhost/").port(8080).build();
- System.out.printf("Application started: %s\nStop the application using CTRL+C%n", uri.toString());
+ System.out.printf("Application started: %s%nStop the application using CTRL+C%n", uri.toString());
// block and wait shut down signal, like CTRL+C
Thread.currentThread().join();
diff --git a/scim-server/src/main/java/org/apache/directory/scim/server/rest/ScimResourceHelper.java b/scim-server/src/main/java/org/apache/directory/scim/server/rest/ScimResourceHelper.java
index af6011e7..4a5aef01 100644
--- a/scim-server/src/main/java/org/apache/directory/scim/server/rest/ScimResourceHelper.java
+++ b/scim-server/src/main/java/org/apache/directory/scim/server/rest/ScimResourceHelper.java
@@ -72,18 +72,6 @@ public final class ScimResourceHelper {
// Make this a utility class
}
- /**
- * Provides a set of JAX-RS annotated classes for the basic SCIM protocol
- * functionality.
- *
- * @return the JAX-RS annotated classes.
- * @deprecated use {@link ScimResourceHelper#scimpleFeatureAndResourceClasses}
- */
- @Deprecated
- public static Set<Class<?>> getScimClassesToLoad() {
- return SCIMPLE_CLASSES;
- }
-
public static Set<Class<?>> scimpleFeatureAndResourceClasses() {
Set<Class<?>> classes = new HashSet<>(RESOURCE_CLASSES);
classes.add(ScimpleFeature.class);
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/protocol/data/ErrorResponse.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/protocol/data/ErrorResponse.java
index 23cc8e6d..7b025d42 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/protocol/data/ErrorResponse.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/protocol/data/ErrorResponse.java
@@ -40,7 +40,7 @@ public class ErrorResponse extends BaseResource<ErrorResponse> {
private static final long serialVersionUID = 9045421198080348116L;
- public static String SCHEMA_URI = "urn:ietf:params:scim:api:messages:2.0:Error";
+ public static final String SCHEMA_URI = "urn:ietf:params:scim:api:messages:2.0:Error";
@XmlElement(nillable = true)
private String detail;
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/protocol/data/StatusAdapter.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/protocol/data/StatusAdapter.java
index 4a133972..7cbfe8b2 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/protocol/data/StatusAdapter.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/protocol/data/StatusAdapter.java
@@ -31,7 +31,7 @@ public class StatusAdapter extends XmlAdapter<String, Status> {
}
for (Status status : Status.values()) {
- if (status.getStatusCode() == Integer.valueOf(v)) {
+ if (status.getStatusCode() == Integer.parseInt(v)) {
return status;
}
}
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/Filter.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/Filter.java
index a327f317..36dfa109 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/Filter.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/filter/Filter.java
@@ -71,7 +71,7 @@ public class Filter implements Serializable {
}
protected FilterExpression parseFilter(String filter) throws FilterParseException {
- FilterLexer l = new FilterLexer(new ANTLRInputStream(filter));
+ FilterLexer l = new FilterLexer(CharStreams.fromString(filter));
FilterParser p = new FilterParser(new CommonTokenStream(l));
p.setBuildParseTree(true);
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/PhoneNumber.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/PhoneNumber.java
index 66567e46..17943593 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/PhoneNumber.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/PhoneNumber.java
@@ -149,13 +149,7 @@ public class PhoneNumber implements Serializable, TypedAttribute {
PhoneNumberLexer phoneNumberLexer = new PhoneNumberLexer(new ANTLRInputStream(value));
PhoneNumberParser p = new PhoneNumberParser(new CommonTokenStream(phoneNumberLexer));
p.setBuildParseTree(true);
-
- p.addErrorListener(new BaseErrorListener() {
- @Override
- public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol, int line, int charPositionInLine, String msg, RecognitionException e) {
- throw new IllegalStateException("failed to parse at line " + line + " due to " + msg, e);
- }
- });
+ p.addErrorListener(new PhoneNumberErrorListener());
PhoneNumberParseTreeListener tpl = new PhoneNumberParseTreeListener();
try {
@@ -303,6 +297,13 @@ public class PhoneNumber implements Serializable, TypedAttribute {
return true;
}
+ private static class PhoneNumberErrorListener extends BaseErrorListener {
+ @Override
+ public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol, int line, int charPositionInLine, String msg, RecognitionException e) {
+ throw new IllegalStateException("failed to parse at line " + line + " due to " + msg, e);
+ }
+ }
+
@Data
public abstract static class PhoneNumberBuilder {
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ScimSpecSchema.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ScimSpecSchema.java
index 7a03547e..1d33ea0d 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ScimSpecSchema.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ScimSpecSchema.java
@@ -19,7 +19,6 @@
package org.apache.directory.scim.spec.schema;
-import java.util.HashSet;
import java.util.Set;
import lombok.Data;
@@ -29,13 +28,11 @@ import lombok.Getter;
public class ScimSpecSchema {
@Getter
- static Set<String> schemaNames = new HashSet<>();
-
- static {
- schemaNames.add("urn:ietf:params:scim:schemas:core:2.0:Group");
- schemaNames.add("urn:ietf:params:scim:schemas:core:2.0:ResourceType");
- schemaNames.add("urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig");
- schemaNames.add("urn:ietf:params:scim:schemas:core:2.0:User");
- schemaNames.add("urn:ietf:params:scim:schemas:extension:enterprise:2.0:User");
- }
+ final static Set<String> schemaNames = Set.of(
+ "urn:ietf:params:scim:schemas:core:2.0:Group",
+ "urn:ietf:params:scim:schemas:core:2.0:ResourceType",
+ "urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig",
+ "urn:ietf:params:scim:schemas:core:2.0:User",
+ "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
+ );
}
[directory-scimple] 01/06: Add Spotbugs & FindSecBugs
Posted by bd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
bdemers pushed a commit to branch add-spotbugs
in repository https://gitbox.apache.org/repos/asf/directory-scimple.git
commit a1a8e51f6473a480de15ecbb743221443e045a63
Author: Brian Demers <bd...@apache.org>
AuthorDate: Sat Sep 2 00:56:02 2023 -0400
Add Spotbugs & FindSecBugs
---
pom.xml | 37 +++++++++++++++++++++++++++
src/spotbugs/excludes.xml | 64 +++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 101 insertions(+)
diff --git a/pom.xml b/pom.xml
index 2e1528a8..dc20389b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -619,6 +619,30 @@
<rulesets>
<ruleset>${session.executionRootDirectory}/src/pmd/ruleset.xml</ruleset>
</rulesets>
+ <excludeRoots>
+ <excludeRoot>${project.build.directory}/generated-sources/</excludeRoot>
+ </excludeRoots>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>com.github.spotbugs</groupId>
+ <artifactId>spotbugs-maven-plugin</artifactId>
+ <version>4.7.3.5</version>
+ <configuration>
+ <plugins>
+ <plugin>
+ <groupId>com.h3xstream.findsecbugs</groupId>
+ <artifactId>findsecbugs-plugin</artifactId>
+ <version>1.12.0</version>
+ </plugin>
+ </plugins>
+ <effort>Max</effort>
+ <threshold>Medium</threshold>
+ <failOnError>true</failOnError>
+ <omitVisitors>CrlfLogInjectionDetector</omitVisitors>
+ <xmlOutput>true</xmlOutput>
+ <fork>false</fork>
+ <excludeFilterFile>${session.executionRootDirectory}/src/spotbugs/excludes.xml</excludeFilterFile>
</configuration>
</plugin>
</plugins>
@@ -654,6 +678,19 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>com.github.spotbugs</groupId>
+ <artifactId>spotbugs-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>scan</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
</profile>
diff --git a/src/spotbugs/excludes.xml b/src/spotbugs/excludes.xml
new file mode 100644
index 00000000..b50f714f
--- /dev/null
+++ b/src/spotbugs/excludes.xml
@@ -0,0 +1,64 @@
+<?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. -->
+
+<FindBugsFilter>
+ <Class name="~org.apache.directory.scim.spec.filter\.[^.]+"/>
+ <Class name="~org.apache.directory.scim.spec.phonenumber\.[^.]+"/>
+ <Bug pattern="EI_EXPOSE_REP"/>
+ <Bug pattern="EI_EXPOSE_REP2"/>
+
+ <Match>
+ <Class name="org.apache.directory.scim.spec.resources.PhoneNumber$PhoneNumberBuilder"/>
+ <Bug pattern="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE"/>
+ </Match>
+
+ <Match>
+ <Or>
+ <Class name="org.apache.directory.scim.spec.resources.PhoneNumber$LocalPhoneNumberBuilder"/>
+ <Class name="org.apache.directory.scim.spec.resources.PhoneNumber$GlobalPhoneNumberBuilder"/>
+ </Or>
+ <Bug pattern="UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR"/>
+ </Match>
+
+ <Match>
+ <Class name="org.apache.directory.scim.spec.resources.PhoneNumber"/>
+ <Method name="equalsIgnoreCaseAndOrderParams"/>
+ <Bug pattern="NP_NULL_ON_SOME_PATH_MIGHT_BE_INFEASIBLE"/>
+ </Match>
+
+ <Match>
+ <Class name="org.apache.directory.scim.spec.validator.UrnValidator"/>
+ <Bug pattern="REDOS"/>
+ </Match>
+
+ <Match>
+ <!-- false positive -->
+ <Class name="org.apache.directory.scim.core.json.ObjectMapperFactory"/>
+ <Bug pattern="MS_EXPOSE_REP"/>
+ </Match>
+
+ <!-- Used for integration testing only -->
+ <Match>
+ <Class name="org.apache.directory.scim.compliance.junit.EmbeddedServerExtension"/>
+ <Bug pattern="UNENCRYPTED_SERVER_SOCKET"/>
+ </Match>
+
+ <!-- doesn't seem to play well with lombok -->
+ <Bug pattern="RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE"/>
+
+</FindBugsFilter>
[directory-scimple] 06/06: Move dependency-check out of `ci` profile
Posted by bd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
bdemers pushed a commit to branch add-spotbugs
in repository https://gitbox.apache.org/repos/asf/directory-scimple.git
commit d50d3905c4d8add2a99de67b08dbc23a9340431e
Author: Brian Demers <bd...@apache.org>
AuthorDate: Sat Sep 2 00:56:49 2023 -0400
Move dependency-check out of `ci` profile
enabling 'ci' profile is run... durring CI
---
.github/workflows/build.yml | 2 +-
.github/workflows/cron.yml | 2 +-
pom.xml | 11 -----------
3 files changed, 2 insertions(+), 13 deletions(-)
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index b0ebca84..f6cf38cc 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -44,7 +44,7 @@ jobs:
cache: maven
- name: Build with Maven
- run: ./mvnw verify -V -B --no-transfer-progress
+ run: ./mvnw verify -Pci -V -B --no-transfer-progress
env:
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
diff --git a/.github/workflows/cron.yml b/.github/workflows/cron.yml
index 8e79eafa..fa1ab9ed 100644
--- a/.github/workflows/cron.yml
+++ b/.github/workflows/cron.yml
@@ -42,6 +42,6 @@ jobs:
cache: maven
- name: Build with Maven
- run: ./mvnw verify -Pci -V -B --no-transfer-progress
+ run: ./mvnw verify dependency-check:check -Pci -V -B --no-transfer-progress
env:
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
diff --git a/pom.xml b/pom.xml
index dc20389b..f89b7e56 100644
--- a/pom.xml
+++ b/pom.xml
@@ -654,17 +654,6 @@
<id>ci</id>
<build>
<plugins>
- <plugin>
- <groupId>org.owasp</groupId>
- <artifactId>dependency-check-maven</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>check</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>