You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by sm...@apache.org on 2020/01/24 19:12:05 UTC
[directory-scimple] 01/01: Merges in changes from PennState/SCIMple
2.22.4
This is an automated email from the ASF dual-hosted git repository.
smoyer1 pushed a commit to branch merge/psu-scim-2.22.4
in repository https://gitbox.apache.org/repos/asf/directory-scimple.git
commit 74512e09a294bcd72b245c752902843174972a56
Author: Steve Moyer <sm...@psu.edu>
AuthorDate: Fri Jan 24 14:11:34 2020 -0500
Merges in changes from PennState/SCIMple 2.22.4
---
.../directory/scim/client/rest/BaseScimClient.java | 33 +++++++++++++++-------
.../attribute/AttributeReferenceListWrapper.java | 4 +++
2 files changed, 27 insertions(+), 10 deletions(-)
diff --git a/scim-client/src/main/java/org/apache/directory/scim/client/rest/BaseScimClient.java b/scim-client/src/main/java/org/apache/directory/scim/client/rest/BaseScimClient.java
index 7e79848..78d103f 100644
--- a/scim-client/src/main/java/org/apache/directory/scim/client/rest/BaseScimClient.java
+++ b/scim-client/src/main/java/org/apache/directory/scim/client/rest/BaseScimClient.java
@@ -20,6 +20,7 @@
package org.apache.directory.scim.client.rest;
import java.util.Optional;
+import java.util.Set;
import java.util.function.Function;
import javax.ws.rs.ProcessingException;
@@ -227,8 +228,8 @@ public abstract class BaseScimClient<T extends ScimResource> implements AutoClos
Response response;
Invocation request = BaseScimClient.this.target
.path(id)
- .queryParam(ATTRIBUTES_QUERY_PARAM, attributes)
- .queryParam(EXCLUDED_ATTRIBUTES_QUERY_PARAM, excludedAttributes)
+ .queryParam(ATTRIBUTES_QUERY_PARAM, nullOutQueryParamIfListIsNullOrEmpty(attributes))
+ .queryParam(EXCLUDED_ATTRIBUTES_QUERY_PARAM, nullOutQueryParamIfListIsNullOrEmpty(excludedAttributes))
.request(getContentType())
.buildGet();
@@ -245,8 +246,8 @@ public abstract class BaseScimClient<T extends ScimResource> implements AutoClos
public Response query(AttributeReferenceListWrapper attributes, AttributeReferenceListWrapper excludedAttributes, FilterWrapper filter, AttributeReference sortBy, SortOrder sortOrder, Integer startIndex, Integer count) throws ScimException {
Response response;
Invocation request = BaseScimClient.this.target
- .queryParam(ATTRIBUTES_QUERY_PARAM, attributes)
- .queryParam(EXCLUDED_ATTRIBUTES_QUERY_PARAM, excludedAttributes)
+ .queryParam(ATTRIBUTES_QUERY_PARAM, nullOutQueryParamIfListIsNullOrEmpty(attributes))
+ .queryParam(EXCLUDED_ATTRIBUTES_QUERY_PARAM, nullOutQueryParamIfListIsNullOrEmpty(excludedAttributes))
.queryParam(FILTER_QUERY_PARAM, filter.getFilter())
.queryParam(SORT_BY_QUERY_PARAM, sortBy)
.queryParam(SORT_ORDER_QUERY_PARAM, sortOrder != null ? sortOrder.name() : null)
@@ -268,8 +269,8 @@ public abstract class BaseScimClient<T extends ScimResource> implements AutoClos
public Response create(T resource, AttributeReferenceListWrapper attributes, AttributeReferenceListWrapper excludedAttributes) throws ScimException {
Response response;
Invocation request = BaseScimClient.this.target
- .queryParam(ATTRIBUTES_QUERY_PARAM, attributes)
- .queryParam(EXCLUDED_ATTRIBUTES_QUERY_PARAM, excludedAttributes)
+ .queryParam(ATTRIBUTES_QUERY_PARAM, nullOutQueryParamIfListIsNullOrEmpty(attributes))
+ .queryParam(EXCLUDED_ATTRIBUTES_QUERY_PARAM, nullOutQueryParamIfListIsNullOrEmpty(excludedAttributes))
.request(getContentType())
.buildPost(Entity.entity(resource, getContentType()));
@@ -304,8 +305,8 @@ public abstract class BaseScimClient<T extends ScimResource> implements AutoClos
Response response;
Invocation request = BaseScimClient.this.target
.path(id)
- .queryParam(ATTRIBUTES_QUERY_PARAM, attributes)
- .queryParam(EXCLUDED_ATTRIBUTES_QUERY_PARAM, excludedAttributes)
+ .queryParam(ATTRIBUTES_QUERY_PARAM, nullOutQueryParamIfListIsNullOrEmpty(attributes))
+ .queryParam(EXCLUDED_ATTRIBUTES_QUERY_PARAM, nullOutQueryParamIfListIsNullOrEmpty(excludedAttributes))
.request(getContentType())
.buildPut(Entity.entity(resource, getContentType()));
@@ -323,8 +324,8 @@ public abstract class BaseScimClient<T extends ScimResource> implements AutoClos
Response response;
Invocation request = BaseScimClient.this.target
.path(id)
- .queryParam(ATTRIBUTES_QUERY_PARAM, attributes)
- .queryParam(EXCLUDED_ATTRIBUTES_QUERY_PARAM, excludedAttributes)
+ .queryParam(ATTRIBUTES_QUERY_PARAM, nullOutQueryParamIfListIsNullOrEmpty(attributes))
+ .queryParam(EXCLUDED_ATTRIBUTES_QUERY_PARAM, nullOutQueryParamIfListIsNullOrEmpty(excludedAttributes))
.request(getContentType())
.build("PATCH", Entity.entity(patchRequest, getContentType()));
@@ -353,6 +354,18 @@ public abstract class BaseScimClient<T extends ScimResource> implements AutoClos
throw toScimException(restClientException);
}
}
+
+ private AttributeReferenceListWrapper nullOutQueryParamIfListIsNullOrEmpty(AttributeReferenceListWrapper wrapper) {
+ if (wrapper == null) {
+ return null;
+ }
+ Set<AttributeReference> attributeReferences = wrapper.getAttributeReferences();
+ if (attributeReferences == null || attributeReferences.isEmpty()) {
+ return null;
+ }
+
+ return wrapper;
+ }
}
protected String getContentType() {
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/attribute/AttributeReferenceListWrapper.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/attribute/AttributeReferenceListWrapper.java
index 38372f6..6d383f6 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/attribute/AttributeReferenceListWrapper.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/attribute/AttributeReferenceListWrapper.java
@@ -55,6 +55,10 @@ public class AttributeReferenceListWrapper {
}
public String toString() {
+ if (attributeReferences == null || attributeReferences.isEmpty()) {
+ return "";
+ }
+
return attributeReferences.stream().map(AttributeReference::toString).collect(Collectors.joining(","));
}
}