directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From smoy...@apache.org
Subject [directory-scimple] 01/01: Merges in changes from PennState/SCIMple 2.22.4
Date Fri, 24 Jan 2020 19:12:05 GMT
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 <smoyer@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(","));
   }
 }


Mime
View raw message