[java-shib-shared] branch main updated: Replace Collections methods where possible.

Scott Cantor cantor.2 at osu.edu
Thu Apr 20 17:05:34 UTC 2023


This is an automated email from the git hooks/post-receive script.

scantor pushed a commit to branch main
in repository java-shib-shared.

View the commit online:
http://git.shibboleth.net/view/?p=java-shib-shared.git;a=commit;h=9289a9329ec235b1b9105ed74645e0b6acdc61f0

The following commit(s) were added to refs/heads/main by this push:
     new 9289a932 Replace Collections methods where possible.
9289a932 is described below

commit 9289a9329ec235b1b9105ed74645e0b6acdc61f0
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Thu Apr 20 13:05:31 2023 -0400

    Replace Collections methods where possible.
---
 .../impl/SameSiteCookieHeaderFilterTest.java       | 54 +++++++++++-----------
 .../shared/httpclient/HttpClientSupport.java       |  5 +-
 .../shared/httpclient/HttpClientSupportTest.java   |  7 +--
 .../net/shibboleth/shared/net/URISupportTest.java  |  5 +-
 .../servlet/impl/HttpServletSupportTest.java       | 10 ++--
 .../shared/service/ReloadableServiceGaugeSet.java  |  4 +-
 .../spring/factory/CombiningListFactoryBean.java   | 11 +++--
 .../spring/util/ApplicationContextBuilder.java     | 22 ++++-----
 .../factory/CombiningListFactoryBeanTest.java      |  6 +--
 .../net/shibboleth/shared/collection/LazyList.java |  8 ++--
 .../net/shibboleth/shared/collection/LazyMap.java  |  8 ++--
 .../net/shibboleth/shared/collection/LazySet.java  |  8 ++--
 .../shared/collection/ValueTypeIndexedMap.java     |  2 +-
 .../shared/logic/AllMatchPredicateTest.java        | 14 +++---
 .../shared/logic/AnyMatchPredicateTest.java        | 15 +++---
 15 files changed, 92 insertions(+), 87 deletions(-)

diff --git a/shib-networking-spring/src/test/java/net/shibboleth/shared/spring/servlet/impl/SameSiteCookieHeaderFilterTest.java b/shib-networking-spring/src/test/java/net/shibboleth/shared/spring/servlet/impl/SameSiteCookieHeaderFilterTest.java
index e4cc32a5..8c89cf14 100644
--- a/shib-networking-spring/src/test/java/net/shibboleth/shared/spring/servlet/impl/SameSiteCookieHeaderFilterTest.java
+++ b/shib-networking-spring/src/test/java/net/shibboleth/shared/spring/servlet/impl/SameSiteCookieHeaderFilterTest.java
@@ -23,7 +23,6 @@ import java.io.PrintWriter;
 import java.io.Writer;
 import java.net.HttpCookie;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -51,6 +50,7 @@ import jakarta.servlet.ServletRequest;
 import jakarta.servlet.ServletResponse;
 import jakarta.servlet.http.Cookie;
 import jakarta.servlet.http.HttpServletResponse;
+import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.servlet.impl.HttpServletRequestResponseContext;
 import net.shibboleth.shared.spring.servlet.impl.SameSiteCookieHeaderFilter.SameSiteValue;
 
@@ -102,7 +102,7 @@ public class SameSiteCookieHeaderFilterTest {
     @Test public void testEmptyCookieNameInitValue() {
         SameSiteCookieHeaderFilter filter = new SameSiteCookieHeaderFilter();
         Map<SameSiteValue,List<String>> cookies = new HashMap<>();
-        List<String> noneCookies = List.of(new String[] {""});
+        List<String> noneCookies = CollectionSupport.singletonList("");
         cookies.put(SameSiteValue.None, noneCookies);
         filter.setSameSiteCookies(cookies);
         
@@ -113,9 +113,9 @@ public class SameSiteCookieHeaderFilterTest {
     @Test public void testInitValues() {
         SameSiteCookieHeaderFilter filter = new SameSiteCookieHeaderFilter();
         Map<SameSiteValue,List<String>> cookies = new HashMap<>();
-        List<String> noneCookies = List.of(new String[] {"JSESSIONID","shib_idp_session","shib_idp_session_ss","existing_same_site"});
-        List<String> laxCookies = List.of(new String[] {"another-cookie-lax"});
-        List<String> strictCookies = List.of(new String[] {"another-cookie-strict"});
+        List<String> noneCookies = CollectionSupport.listOf("JSESSIONID","shib_idp_session","shib_idp_session_ss","existing_same_site");
+        List<String> laxCookies = CollectionSupport.singletonList("another-cookie-lax");
+        List<String> strictCookies = CollectionSupport.singletonList("another-cookie-strict");
         cookies.put(SameSiteValue.None, noneCookies);
         cookies.put(SameSiteValue.Lax, laxCookies);
         cookies.put(SameSiteValue.Strict, strictCookies);
@@ -128,8 +128,8 @@ public class SameSiteCookieHeaderFilterTest {
     @Test(expectedExceptions=IllegalArgumentException.class) public void testDuplicateInitValues() {
         SameSiteCookieHeaderFilter filter = new SameSiteCookieHeaderFilter();
         Map<SameSiteValue,List<String>> cookies = new HashMap<>();
-        List<String> noneCookies = List.of(new String[] {"JSESSIONID","shib_idp_session","shib_idp_session_ss","existing_same_site"});
-        List<String> laxCookies = List.of(new String[] {"JSESSIONID"});
+        List<String> noneCookies = CollectionSupport.listOf("JSESSIONID","shib_idp_session","shib_idp_session_ss","existing_same_site");
+        List<String> laxCookies = CollectionSupport.singletonList("JSESSIONID");
         cookies.put(SameSiteValue.None, noneCookies);
         cookies.put(SameSiteValue.Lax, laxCookies);
         filter.setSameSiteCookies(cookies);
@@ -209,8 +209,8 @@ public class SameSiteCookieHeaderFilterTest {
         Assert.assertEquals(headers.size(), 5);
         testExpectedHeadersInResponse(SameSiteValue.Strict.getValue(),
                 (MockHttpServletResponse)mockRedirectChain.getResponse(), 
-                List.of(new String[] {"JSESSIONID","shib_idp_session","shib_idp_session_ss", "ignore_copy_over"}),
-                Collections.emptyList(), 5);
+                CollectionSupport.listOf("JSESSIONID","shib_idp_session","shib_idp_session_ss", "ignore_copy_over"),
+                CollectionSupport.emptyList(), 5);
     }
 
     /**
@@ -223,7 +223,7 @@ public class SameSiteCookieHeaderFilterTest {
        
         SameSiteCookieHeaderFilter filter = new SameSiteCookieHeaderFilter();
         Map<SameSiteValue,List<String>> cookies = new HashMap<>();
-        List<String> noneCookies = List.of(new String[] {"JSESSIONID","shib_idp_session","shib_idp_session_ss","existing_same_site"});
+        List<String> noneCookies = CollectionSupport.listOf("JSESSIONID","shib_idp_session","shib_idp_session_ss","existing_same_site");
         cookies.put(SameSiteValue.None, noneCookies);
         filter.setSameSiteCookies(cookies);
 
@@ -235,8 +235,8 @@ public class SameSiteCookieHeaderFilterTest {
         Assert.assertTrue(mockRedirectChain.getResponse() instanceof MockHttpServletResponse);
         
         testExpectedHeadersInResponse("None",(MockHttpServletResponse)mockRedirectChain.getResponse(), 
-                List.of(new String[] {"JSESSIONID","shib_idp_session","shib_idp_session_ss","existing_same_site"}),
-                List.of(new String[] {"ignore_copy_over"}),5);
+                CollectionSupport.listOf("JSESSIONID","shib_idp_session","shib_idp_session_ss","existing_same_site"),
+                CollectionSupport.singletonList("ignore_copy_over"),5);
     }
 
     /**
@@ -249,7 +249,7 @@ public class SameSiteCookieHeaderFilterTest {
        
         SameSiteCookieHeaderFilter filter = new SameSiteCookieHeaderFilter();
         Map<SameSiteValue,List<String>> cookies = new HashMap<>();
-        List<String> noneCookies = List.of(new String[] {"shib_idp_session","shib_idp_session_ss","existing_same_site"});
+        List<String> noneCookies = CollectionSupport.listOf("shib_idp_session","shib_idp_session_ss","existing_same_site");
         cookies.put(SameSiteValue.None, noneCookies);
         filter.setSameSiteCookies(cookies);
         filter.setDefaultValue(SameSiteValue.None);
@@ -262,8 +262,8 @@ public class SameSiteCookieHeaderFilterTest {
         Assert.assertTrue(mockRedirectChain.getResponse() instanceof MockHttpServletResponse);
         
         testExpectedHeadersInResponse("None",(MockHttpServletResponse)mockRedirectChain.getResponse(), 
-                List.of(new String[] {"JSESSIONID","shib_idp_session","shib_idp_session_ss","existing_same_site","ignore_copy_over"}),
-                Collections.emptyList(), 5);
+                CollectionSupport.listOf("JSESSIONID","shib_idp_session","shib_idp_session_ss","existing_same_site","ignore_copy_over"),
+                CollectionSupport.emptyList(), 5);
     }
     
     /**
@@ -276,7 +276,7 @@ public class SameSiteCookieHeaderFilterTest {
        
         SameSiteCookieHeaderFilter filter = new SameSiteCookieHeaderFilter();
         Map<SameSiteValue,List<String>> cookies = new HashMap<>();
-        List<String> noneCookies = List.of(new String[] {"JSESSIONID","shib_idp_session","shib_idp_session_ss"});
+        List<String> noneCookies = CollectionSupport.listOf("JSESSIONID","shib_idp_session","shib_idp_session_ss");
         cookies.put(SameSiteValue.Lax, noneCookies);
         filter.setSameSiteCookies(cookies);
         
@@ -289,8 +289,8 @@ public class SameSiteCookieHeaderFilterTest {
         
         //as "existing_same_site" is None, ignore it here.
         testExpectedHeadersInResponse("Lax",(MockHttpServletResponse)mockRedirectChain.getResponse(), 
-                List.of(new String[] {"JSESSIONID","shib_idp_session","shib_idp_session_ss"}),
-                List.of(new String[] {"ignore_copy_over"}),5);
+                CollectionSupport.listOf("JSESSIONID","shib_idp_session","shib_idp_session_ss"),
+                CollectionSupport.singletonList("ignore_copy_over"),5);
     }
     
     /**
@@ -303,7 +303,7 @@ public class SameSiteCookieHeaderFilterTest {
         
         SameSiteCookieHeaderFilter filter = new SameSiteCookieHeaderFilter();
         Map<SameSiteValue,List<String>> cookies = new HashMap<>();
-        List<String> noneCookies = List.of(new String[] {"JSESSIONID","shib_idp_session","shib_idp_session_ss"});
+        List<String> noneCookies = CollectionSupport.listOf("JSESSIONID","shib_idp_session","shib_idp_session_ss");
         cookies.put(SameSiteValue.Strict, noneCookies);
         filter.setSameSiteCookies(cookies);
 
@@ -316,8 +316,8 @@ public class SameSiteCookieHeaderFilterTest {
         
         //as "existing_same_site" is None, ignore it here.
         testExpectedHeadersInResponse("Strict",(MockHttpServletResponse)mockRedirectChain.getResponse(), 
-                List.of(new String[] {"JSESSIONID","shib_idp_session","shib_idp_session_ss"}),
-                List.of(new String[] {"ignore_copy_over"}),5);
+                CollectionSupport.listOf("JSESSIONID","shib_idp_session","shib_idp_session_ss"),
+                CollectionSupport.singletonList("ignore_copy_over"),5);
     }
 
     /**
@@ -330,7 +330,7 @@ public class SameSiteCookieHeaderFilterTest {
         
         SameSiteCookieHeaderFilter filter = new SameSiteCookieHeaderFilter();
         Map<SameSiteValue,List<String>> cookies = new HashMap<>();
-        List<String> noneCookies = List.of(new String[] {"JSESSIONID","shib_idp_session","shib_idp_session_ss","existing_same_site"});
+        List<String> noneCookies = CollectionSupport.listOf("JSESSIONID","shib_idp_session","shib_idp_session_ss","existing_same_site");
         cookies.put(SameSiteValue.None, noneCookies);
         filter.setSameSiteCookies(cookies);
 
@@ -342,8 +342,8 @@ public class SameSiteCookieHeaderFilterTest {
         Assert.assertTrue(mockRedirectChain.getResponse() instanceof MockHttpServletResponse);
         
         testExpectedHeadersInResponse("None",(MockHttpServletResponse)mockRedirectChain.getResponse(), 
-                List.of(new String[] {"JSESSIONID","shib_idp_session","shib_idp_session_ss","existing_same_site"}),
-                List.of(new String[] {"ignore_copy_over"}),5);
+                CollectionSupport.listOf("JSESSIONID","shib_idp_session","shib_idp_session_ss","existing_same_site"),
+                CollectionSupport.singletonList("ignore_copy_over"),5);
     }
     
     /**
@@ -356,7 +356,7 @@ public class SameSiteCookieHeaderFilterTest {
         
         SameSiteCookieHeaderFilter filter = new SameSiteCookieHeaderFilter();
         Map<SameSiteValue,List<String>> cookies = new HashMap<>();
-        List<String> noneCookies = List.of(new String[] {"JSESSIONID","shib_idp_session","shib_idp_session_ss","existing_same_site"});
+        List<String> noneCookies = CollectionSupport.listOf("JSESSIONID","shib_idp_session","shib_idp_session_ss","existing_same_site");
         cookies.put(SameSiteValue.None, noneCookies);
         filter.setSameSiteCookies(cookies);
 
@@ -368,8 +368,8 @@ public class SameSiteCookieHeaderFilterTest {
         Assert.assertTrue(mockRedirectChain.getResponse() instanceof MockHttpServletResponse);
         
         testExpectedHeadersInResponse("None",(MockHttpServletResponse)mockRedirectChain.getResponse(), 
-                List.of(new String[] {"JSESSIONID","shib_idp_session","shib_idp_session_ss","existing_same_site"}),
-                List.of(new String[] {"ignore_copy_over"}),5);
+                CollectionSupport.listOf("JSESSIONID","shib_idp_session","shib_idp_session_ss","existing_same_site"),
+                CollectionSupport.singletonList("ignore_copy_over"),5);
     }
     
     /**
diff --git a/shib-networking/src/main/java/net/shibboleth/shared/httpclient/HttpClientSupport.java b/shib-networking/src/main/java/net/shibboleth/shared/httpclient/HttpClientSupport.java
index 75a9737a..947ae822 100644
--- a/shib-networking/src/main/java/net/shibboleth/shared/httpclient/HttpClientSupport.java
+++ b/shib-networking/src/main/java/net/shibboleth/shared/httpclient/HttpClientSupport.java
@@ -27,13 +27,11 @@ import java.nio.charset.UnsupportedCharsetException;
 import java.security.cert.CertificateException;
 import java.security.cert.X509Certificate;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManager;
 import javax.net.ssl.X509TrustManager;
 
 import org.apache.hc.client5.http.protocol.HttpClientContext;
@@ -47,6 +45,7 @@ import org.apache.hc.core5.util.CharArrayBuffer;
 import org.slf4j.Logger;
 
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.primitive.LoggerFactory;
 
@@ -85,7 +84,7 @@ public final class HttpClientSupport {
      */
     @Nonnull public static LayeredConnectionSocketFactory buildNoTrustTLSSocketFactory() {
         return new TLSSocketFactoryBuilder()
-            .setTrustManagers(Collections.<TrustManager>singletonList(buildNoTrustX509TrustManager()))
+            .setTrustManagers(CollectionSupport.singletonList(buildNoTrustX509TrustManager()))
             .setHostnameVerifier(new NoopHostnameVerifier())
             .build();
     }
diff --git a/shib-networking/src/test/java/net/shibboleth/shared/httpclient/HttpClientSupportTest.java b/shib-networking/src/test/java/net/shibboleth/shared/httpclient/HttpClientSupportTest.java
index 9487fa31..031551c2 100644
--- a/shib-networking/src/test/java/net/shibboleth/shared/httpclient/HttpClientSupportTest.java
+++ b/shib-networking/src/test/java/net/shibboleth/shared/httpclient/HttpClientSupportTest.java
@@ -18,7 +18,6 @@
 package net.shibboleth.shared.httpclient;
 
 import java.io.IOException;
-import java.util.Collections;
 import java.util.List;
 
 import org.apache.hc.client5.http.protocol.HttpClientContext;
@@ -26,6 +25,8 @@ import org.apache.hc.core5.http.ClassicHttpRequest;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
+import net.shibboleth.shared.collection.CollectionSupport;
+
 @SuppressWarnings("javadoc")
 public class HttpClientSupportTest {
 
@@ -111,7 +112,7 @@ public class HttpClientSupportTest {
         HttpClientSupport.addDynamicContextHandlerFirst(context, two, true);
         HttpClientSupport.addDynamicContextHandlerFirst(context, three, true);
         
-        Assert.assertEquals(HttpClientSupport.getDynamicContextHandlerList(context), Collections.singletonList(one));
+        Assert.assertEquals(HttpClientSupport.getDynamicContextHandlerList(context), CollectionSupport.singletonList(one));
     }
      
     @Test
@@ -125,7 +126,7 @@ public class HttpClientSupportTest {
         HttpClientSupport.addDynamicContextHandlerLast(context, two, true);
         HttpClientSupport.addDynamicContextHandlerLast(context, three, true);
         
-        Assert.assertEquals(HttpClientSupport.getDynamicContextHandlerList(context), Collections.singletonList(one));
+        Assert.assertEquals(HttpClientSupport.getDynamicContextHandlerList(context), CollectionSupport.singletonList(one));
     }
      
     
diff --git a/shib-networking/src/test/java/net/shibboleth/shared/net/URISupportTest.java b/shib-networking/src/test/java/net/shibboleth/shared/net/URISupportTest.java
index 2ba890d5..a60578d0 100644
--- a/shib-networking/src/test/java/net/shibboleth/shared/net/URISupportTest.java
+++ b/shib-networking/src/test/java/net/shibboleth/shared/net/URISupportTest.java
@@ -18,16 +18,17 @@
 package net.shibboleth.shared.net;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
+import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.collection.Pair;
 
 /** Unit test for {@link URISupport}. */
+ at SuppressWarnings("javadoc")
 public class URISupportTest {
     
     @Test public void testBuildQuery(){
@@ -77,7 +78,7 @@ public class URISupportTest {
         Assert.assertNotNull(map);
         Assert.assertTrue(map.isEmpty());
         
-        map = URISupport.buildQueryMap(Collections.<Pair<String,String>>emptyList());
+        map = URISupport.buildQueryMap(CollectionSupport.emptyList());
         Assert.assertNotNull(map);
         Assert.assertTrue(map.isEmpty());
         
diff --git a/shib-networking/src/test/java/net/shibboleth/shared/servlet/impl/HttpServletSupportTest.java b/shib-networking/src/test/java/net/shibboleth/shared/servlet/impl/HttpServletSupportTest.java
index c863deff..97b04631 100644
--- a/shib-networking/src/test/java/net/shibboleth/shared/servlet/impl/HttpServletSupportTest.java
+++ b/shib-networking/src/test/java/net/shibboleth/shared/servlet/impl/HttpServletSupportTest.java
@@ -17,10 +17,8 @@
 
 package net.shibboleth.shared.servlet.impl;
 
-import java.util.Collections;
 import java.util.List;
 import java.util.Locale.LanguageRange;
-import java.util.Set;
 
 import org.springframework.mock.web.MockHttpServletRequest;
 import org.springframework.mock.web.MockHttpServletResponse;
@@ -80,12 +78,12 @@ public class HttpServletSupportTest {
         
         // No Content-type
         Assert.assertTrue(HttpServletSupport.validateContentType(request, 
-                Collections.singleton(MediaType.XML_UTF_8), 
+                CollectionSupport.singleton(MediaType.XML_UTF_8), 
                 true, 
                 false));
         
         Assert.assertFalse(HttpServletSupport.validateContentType(request, 
-                Collections.singleton(MediaType.XML_UTF_8), 
+                CollectionSupport.singleton(MediaType.XML_UTF_8), 
                 false, 
                 false));
         
@@ -93,7 +91,7 @@ public class HttpServletSupportTest {
         request.setContentType("text/xml; charset=utf-8");
         
         Assert.assertFalse(HttpServletSupport.validateContentType(request, 
-                Collections.singleton(MediaType.create("application", "foobar")), 
+                CollectionSupport.singleton(MediaType.create("application", "foobar")), 
                 true, 
                 false));
         
@@ -126,7 +124,7 @@ public class HttpServletSupportTest {
         request.setContentType("text/xml");
         
         Assert.assertFalse(HttpServletSupport.validateContentType(request, 
-                Collections.singleton(MediaType.create("application", "foobar")), 
+                CollectionSupport.singleton(MediaType.create("application", "foobar")), 
                 true, 
                 false));
         
diff --git a/shib-service/src/main/java/net/shibboleth/shared/service/ReloadableServiceGaugeSet.java b/shib-service/src/main/java/net/shibboleth/shared/service/ReloadableServiceGaugeSet.java
index 2bd43569..ac207174 100644
--- a/shib-service/src/main/java/net/shibboleth/shared/service/ReloadableServiceGaugeSet.java
+++ b/shib-service/src/main/java/net/shibboleth/shared/service/ReloadableServiceGaugeSet.java
@@ -17,7 +17,6 @@
 package net.shibboleth.shared.service;
 
 import java.time.Instant;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -34,6 +33,7 @@ import net.shibboleth.shared.annotation.constraint.Live;
 import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.component.AbstractInitializableComponent;
 import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.logic.Constraint;
@@ -122,7 +122,7 @@ public class ReloadableServiceGaugeSet<T> extends AbstractInitializableComponent
 
     /** {@inheritDoc} */
     public Map<String,Metric> getMetrics() {
-        return Collections.unmodifiableMap(gauges);
+        return CollectionSupport.copyToMap(gauges);
     }
 
     /** {@inheritDoc} */
diff --git a/shib-spring/src/main/java/net/shibboleth/shared/spring/factory/CombiningListFactoryBean.java b/shib-spring/src/main/java/net/shibboleth/shared/spring/factory/CombiningListFactoryBean.java
index aafb35be..3ed15950 100644
--- a/shib-spring/src/main/java/net/shibboleth/shared/spring/factory/CombiningListFactoryBean.java
+++ b/shib-spring/src/main/java/net/shibboleth/shared/spring/factory/CombiningListFactoryBean.java
@@ -18,7 +18,6 @@
 package net.shibboleth.shared.spring.factory;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 
 import javax.annotation.Nonnull;
@@ -27,16 +26,18 @@ import javax.annotation.Nullable;
 import org.springframework.beans.factory.BeanCreationException;
 import org.springframework.beans.factory.config.ListFactoryBean;
 
+import net.shibboleth.shared.collection.CollectionSupport;
+
 /**
  * A factory which extends {@link ListFactoryBean} by requiring two lists as input.
  */
 public class CombiningListFactoryBean extends ListFactoryBean {
 
     /** First list to combine. */
-    @Nullable private List<?> firstList = Collections.emptyList();
+    @Nullable private List<?> firstList = CollectionSupport.emptyList();
  
     /** Second list to combine. */
-    @Nullable private List<?> secondList = Collections.emptyList();
+    @Nullable private List<?> secondList = CollectionSupport.emptyList();
  
     /** {@inheritDoc} */
     @Override public void setSourceList(@Nonnull final List<?> sourceList) {
@@ -46,7 +47,7 @@ public class CombiningListFactoryBean extends ListFactoryBean {
     /** Set the first list to combine.
      * @return Returns the firstList.
      */
-    public List<?> getFirstList() {
+    @Nullable public List<?> getFirstList() {
         return firstList;
     }
 
@@ -60,7 +61,7 @@ public class CombiningListFactoryBean extends ListFactoryBean {
     /** Set the second list to combine.
      * @return Returns the secondList.
      */
-    public List<?> getSecondList() {
+    @Nullable public List<?> getSecondList() {
         return secondList;
     }
 
diff --git a/shib-spring/src/main/java/net/shibboleth/shared/spring/util/ApplicationContextBuilder.java b/shib-spring/src/main/java/net/shibboleth/shared/spring/util/ApplicationContextBuilder.java
index 223ab9dd..87898a9e 100644
--- a/shib-spring/src/main/java/net/shibboleth/shared/spring/util/ApplicationContextBuilder.java
+++ b/shib-spring/src/main/java/net/shibboleth/shared/spring/util/ApplicationContextBuilder.java
@@ -20,7 +20,6 @@ package net.shibboleth.shared.spring.util;
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -135,7 +134,8 @@ public class ApplicationContextBuilder {
      * @return this builder
      */
     @Nonnull public ApplicationContextBuilder setServiceConfiguration(@Nonnull final Resource config) {
-        configurationResources = Collections.singletonList(Constraint.isNotNull(config, "Resource cannot be null"));
+        configurationResources = CollectionSupport.singletonList(
+                Constraint.isNotNull(config, "Resource cannot be null"));
         
         return this;
     }
@@ -153,7 +153,8 @@ public class ApplicationContextBuilder {
      */
     @Nonnull public ApplicationContextBuilder setUnresolvedServiceConfigurations(
             @Nonnull @NonnullElements final Collection<String> configs) {
-        configurationSources = CollectionSupport.copyToList(Constraint.isNotNull(configs, "Service configurations cannot be null"));
+        configurationSources = CollectionSupport.copyToList(
+                Constraint.isNotNull(configs, "Service configurations cannot be null"));
         
         return this;
     }
@@ -167,7 +168,8 @@ public class ApplicationContextBuilder {
      */
     @Nonnull public ApplicationContextBuilder setServiceConfigurations(
             @Nonnull @NonnullElements final Collection<Resource> configs) {
-        configurationResources = CollectionSupport.copyToList(Constraint.isNotNull(configs, "Service configurations cannot be null"));
+        configurationResources = CollectionSupport.copyToList(
+                Constraint.isNotNull(configs, "Service configurations cannot be null"));
         
         return this;
     }
@@ -198,9 +200,7 @@ public class ApplicationContextBuilder {
             @Nonnull final ApplicationContextInitializer<? super FilesystemGenericApplicationContext> initializer) {
         Constraint.isNotNull(initializer, "ApplicationContextInitializer cannot be null");
         
-        contextInitializers =
-                Collections.<ApplicationContextInitializer<? super FilesystemGenericApplicationContext>>singletonList(
-                        initializer);
+        contextInitializers = CollectionSupport.singletonList(initializer);
         
         return this;
     }
@@ -231,7 +231,7 @@ public class ApplicationContextBuilder {
             @Nonnull final BeanFactoryPostProcessor processor) {
         Constraint.isNotNull(processor, "BeanFactoryPostProcessor cannot be null");
         
-        factoryPostProcessors = Collections.singletonList(processor);
+        factoryPostProcessors = CollectionSupport.singletonList(processor);
         
         return this;
     }
@@ -248,7 +248,7 @@ public class ApplicationContextBuilder {
             @Nonnull @NonnullElements final List<BeanFactoryPostProcessor> processors) {        
         Constraint.isNotNull(processors, "BeanFactoryPostProcessor collection cannot be null");
 
-        factoryPostProcessors = List.copyOf(processors);
+        factoryPostProcessors = CollectionSupport.copyToList(processors);
         
         return this;
     }
@@ -263,7 +263,7 @@ public class ApplicationContextBuilder {
     @Nonnull public ApplicationContextBuilder setBeanPostProcessor(@Nonnull final BeanPostProcessor processor) {
         Constraint.isNotNull(processor, "BeanPostProcessor cannot be null");
         
-        postProcessors = Collections.singletonList(processor);
+        postProcessors = CollectionSupport.singletonList(processor);
         
         return this;
     }
@@ -279,7 +279,7 @@ public class ApplicationContextBuilder {
             @Nonnull @NonnullElements final List<BeanPostProcessor> processors) {        
         Constraint.isNotNull(processors, "BeanPostProcessor collection cannot be null");
 
-        postProcessors = List.copyOf(processors);
+        postProcessors = CollectionSupport.copyToList(processors);
         
         return this;
     }
diff --git a/shib-spring/src/test/java/net/shibboleth/shared/spring/factory/CombiningListFactoryBeanTest.java b/shib-spring/src/test/java/net/shibboleth/shared/spring/factory/CombiningListFactoryBeanTest.java
index 161aaf1e..cccc163c 100644
--- a/shib-spring/src/test/java/net/shibboleth/shared/spring/factory/CombiningListFactoryBeanTest.java
+++ b/shib-spring/src/test/java/net/shibboleth/shared/spring/factory/CombiningListFactoryBeanTest.java
@@ -20,7 +20,6 @@ package net.shibboleth.shared.spring.factory;
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertTrue;
 
-import java.util.Collections;
 import java.util.List;
 
 import org.springframework.context.support.GenericApplicationContext;
@@ -28,6 +27,7 @@ import org.springframework.core.io.ClassPathResource;
 import org.springframework.core.io.Resource;
 import org.testng.annotations.Test;
 
+import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.spring.util.ApplicationContextBuilder;
 
 @SuppressWarnings("javadoc")
@@ -40,7 +40,7 @@ public class CombiningListFactoryBeanTest {
   
         final GenericApplicationContext ctx = new ApplicationContextBuilder()
                 .setName("appCtx")
-                .setServiceConfigurations(Collections.singletonList(r))
+                .setServiceConfigurations(CollectionSupport.singletonList(r))
                 .build();
         
         
@@ -63,7 +63,7 @@ public class CombiningListFactoryBeanTest {
   
         final GenericApplicationContext ctx = new ApplicationContextBuilder()
                 .setName("appCtx")
-                .setServiceConfigurations(Collections.singletonList(r))
+                .setServiceConfigurations(CollectionSupport.singletonList(r))
                 .build();
         
         
diff --git a/shib-support/src/main/java/net/shibboleth/shared/collection/LazyList.java b/shib-support/src/main/java/net/shibboleth/shared/collection/LazyList.java
index bc8894b9..a5107804 100644
--- a/shib-support/src/main/java/net/shibboleth/shared/collection/LazyList.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/collection/LazyList.java
@@ -25,6 +25,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.ListIterator;
 
+import javax.annotation.Nonnull;
 import javax.annotation.concurrent.NotThreadSafe;
 
 /**
@@ -39,11 +40,12 @@ public class LazyList<ElementType> implements List<ElementType>, Serializable {
     private static final long serialVersionUID = -7741904523916701817L;
 
     /** Delegate list. */
-    private List<ElementType> delegate = Collections.emptyList();
+    @Nonnull private List<ElementType> delegate = CollectionSupport.emptyList();
 
     /** {@inheritDoc} */
     public boolean add(final ElementType item) {
         if (delegate.isEmpty()) {
+            // TODO: allow null?
             delegate = Collections.singletonList(item);
             return true;
         }
@@ -72,7 +74,7 @@ public class LazyList<ElementType> implements List<ElementType>, Serializable {
 
     /** {@inheritDoc} */
     public void clear() {
-        delegate = Collections.emptyList();
+        delegate = CollectionSupport.emptyList();
     }
 
     /** {@inheritDoc} */
@@ -178,7 +180,7 @@ public class LazyList<ElementType> implements List<ElementType>, Serializable {
      * 
      * @return delegate for this list
      */
-    protected List<ElementType> buildList() {
+    @Nonnull protected List<ElementType> buildList() {
         if (delegate instanceof ArrayList<?>) {
             return delegate;
         }
diff --git a/shib-support/src/main/java/net/shibboleth/shared/collection/LazyMap.java b/shib-support/src/main/java/net/shibboleth/shared/collection/LazyMap.java
index bb22622b..843fd915 100644
--- a/shib-support/src/main/java/net/shibboleth/shared/collection/LazyMap.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/collection/LazyMap.java
@@ -24,6 +24,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
+import javax.annotation.Nonnull;
 import javax.annotation.concurrent.NotThreadSafe;
 
 /**
@@ -39,11 +40,11 @@ public class LazyMap<KeyType, ValueType> implements Map<KeyType, ValueType>, Ser
     private static final long serialVersionUID = 121425595164176639L;
 
     /** The delegate map. */
-    private Map<KeyType, ValueType> delegate = Collections.emptyMap();
+    @Nonnull private Map<KeyType, ValueType> delegate = CollectionSupport.emptyMap();
 
     /** {@inheritDoc} */
     public void clear() {
-        delegate = Collections.emptyMap();
+        delegate = CollectionSupport.emptyMap();
     }
 
     /** {@inheritDoc} */
@@ -81,6 +82,7 @@ public class LazyMap<KeyType, ValueType> implements Map<KeyType, ValueType>, Ser
     /** {@inheritDoc} */
     public ValueType put(final KeyType key, final ValueType value) {
         if (delegate.isEmpty()) {
+            // TODO: allow nulls?
             delegate = Collections.singletonMap(key, value);
             return null;
         }
@@ -117,7 +119,7 @@ public class LazyMap<KeyType, ValueType> implements Map<KeyType, ValueType>, Ser
      * 
      * @return the delegate map
      */
-    protected Map<KeyType, ValueType> buildMap() {
+    @Nonnull protected Map<KeyType, ValueType> buildMap() {
         if (delegate instanceof HashMap<?, ?>) {
             return delegate;
         }
diff --git a/shib-support/src/main/java/net/shibboleth/shared/collection/LazySet.java b/shib-support/src/main/java/net/shibboleth/shared/collection/LazySet.java
index 63516b02..4d25e387 100644
--- a/shib-support/src/main/java/net/shibboleth/shared/collection/LazySet.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/collection/LazySet.java
@@ -24,6 +24,7 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Set;
 
+import javax.annotation.Nonnull;
 import javax.annotation.concurrent.NotThreadSafe;
 
 /**
@@ -38,11 +39,12 @@ public class LazySet<ElementType> implements Set<ElementType>, Serializable {
     private static final long serialVersionUID = -1596445680460115174L;
 
     /** The delegate set. */
-    private Set<ElementType> delegate = Collections.emptySet();
+    @Nonnull private Set<ElementType> delegate = CollectionSupport.emptySet();
 
     /** {@inheritDoc} */
     public boolean add(final ElementType element) {
         if (delegate.isEmpty()) {
+            // TODO: allow null?
             delegate = Collections.singleton(element);
             return true;
         }
@@ -59,7 +61,7 @@ public class LazySet<ElementType> implements Set<ElementType>, Serializable {
 
     /** {@inheritDoc} */
     public void clear() {
-        delegate = Collections.emptySet();
+        delegate = CollectionSupport.emptySet();
     }
 
     /** {@inheritDoc} */
@@ -121,7 +123,7 @@ public class LazySet<ElementType> implements Set<ElementType>, Serializable {
      * 
      * @return the delegate set
      */
-    private Set<ElementType> createImplementation() {
+    @Nonnull private Set<ElementType> createImplementation() {
         if (delegate instanceof HashSet<?>) {
             return delegate;
         }
diff --git a/shib-support/src/main/java/net/shibboleth/shared/collection/ValueTypeIndexedMap.java b/shib-support/src/main/java/net/shibboleth/shared/collection/ValueTypeIndexedMap.java
index f15f6cc5..e275b89a 100644
--- a/shib-support/src/main/java/net/shibboleth/shared/collection/ValueTypeIndexedMap.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/collection/ValueTypeIndexedMap.java
@@ -226,7 +226,7 @@ public class ValueTypeIndexedMap<KeyType, ValueType> implements Map<KeyType, Val
         if (index.containsKey(key)) {
             return Collections.unmodifiableMap((Map<KeyType, SubType>) index.get(key));
         }
-        return Collections.emptyMap();
+        return CollectionSupport.emptyMap();
     }
 
     /** {@inheritDoc} */
diff --git a/shib-support/src/test/java/net/shibboleth/shared/logic/AllMatchPredicateTest.java b/shib-support/src/test/java/net/shibboleth/shared/logic/AllMatchPredicateTest.java
index 598c6533..46209bca 100644
--- a/shib-support/src/test/java/net/shibboleth/shared/logic/AllMatchPredicateTest.java
+++ b/shib-support/src/test/java/net/shibboleth/shared/logic/AllMatchPredicateTest.java
@@ -17,14 +17,14 @@
 
 package net.shibboleth.shared.logic;
 
-import java.util.Arrays;
-import java.util.Collections;
 
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
 import com.google.common.base.Predicates;
 
+import net.shibboleth.shared.collection.CollectionSupport;
+
 /** {@link AllMatchPredicate} unit test. */
 public class AllMatchPredicateTest {
 
@@ -36,23 +36,23 @@ public class AllMatchPredicateTest {
             Assert.fail();
         }
 
-        if (predicate.test(Collections.emptyList())) {
+        if (predicate.test(CollectionSupport.emptyList())) {
             Assert.fail();
         }
 
-        if (!predicate.test(Collections.singletonList("foo"))) {
+        if (!predicate.test(CollectionSupport.singletonList("foo"))) {
             Assert.fail();
         }
 
-        if (!predicate.test(Arrays.asList("foo", "foo"))) {
+        if (!predicate.test(CollectionSupport.listOf("foo", "foo"))) {
             Assert.fail();
         }
 
-        if (predicate.test(Arrays.asList("foo", "bar", "foo"))) {
+        if (predicate.test(CollectionSupport.listOf("foo", "bar", "foo"))) {
             Assert.fail();
         }
         
-        if (predicate.test(Arrays.asList("bar", "baz"))) {
+        if (predicate.test(CollectionSupport.listOf("bar", "baz"))) {
             Assert.fail();
         }
     }
diff --git a/shib-support/src/test/java/net/shibboleth/shared/logic/AnyMatchPredicateTest.java b/shib-support/src/test/java/net/shibboleth/shared/logic/AnyMatchPredicateTest.java
index 66de4967..1660cd71 100644
--- a/shib-support/src/test/java/net/shibboleth/shared/logic/AnyMatchPredicateTest.java
+++ b/shib-support/src/test/java/net/shibboleth/shared/logic/AnyMatchPredicateTest.java
@@ -17,14 +17,13 @@
 
 package net.shibboleth.shared.logic;
 
-import java.util.Arrays;
-import java.util.Collections;
-
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
 import com.google.common.base.Predicates;
 
+import net.shibboleth.shared.collection.CollectionSupport;
+
 
 /** {@link AnyMatchPredicate} unit test. */
 public class AnyMatchPredicateTest {
@@ -37,23 +36,23 @@ public class AnyMatchPredicateTest {
             Assert.fail();
         }
 
-        if (predicate.test(Collections.emptyList())) {
+        if (predicate.test(CollectionSupport.emptyList())) {
             Assert.fail();
         }
 
-        if (!predicate.test(Collections.singletonList("foo"))) {
+        if (!predicate.test(CollectionSupport.singletonList("foo"))) {
             Assert.fail();
         }
 
-        if (!predicate.test(Arrays.asList("foo", "foo"))) {
+        if (!predicate.test(CollectionSupport.listOf("foo", "foo"))) {
             Assert.fail();
         }
 
-        if (!predicate.test(Arrays.asList("foo", "bar", "foo"))) {
+        if (!predicate.test(CollectionSupport.listOf("foo", "bar", "foo"))) {
             Assert.fail();
         }
         
-        if (predicate.test(Arrays.asList("bar", "baz"))) {
+        if (predicate.test(CollectionSupport.listOf("bar", "baz"))) {
             Assert.fail();
         }
     }

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list