[java-shib-shared] branch main updated: Rename primitive package.

Scott Cantor cantor.2 at osu.edu
Mon Sep 26 17:17:06 UTC 2022


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=e918aa5ad90ce1effb6958841f434f09129368c3

The following commit(s) were added to refs/heads/main by this push:
     new e918aa5a Rename primitive package.
e918aa5a is described below

commit e918aa5ad90ce1effb6958841f434f09129368c3
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon Sep 26 13:17:03 2022 -0400

    Rename primitive package.
---
 .../spring/httpclient/resource/HTTPResource.java   |   2 +-
 .../httpclient/resource/RepositorySupport.java     |   2 +-
 .../httpclient/FileCachingHttpClientBuilder.java   |   4 +-
 .../shared/httpclient/HttpClientBuilder.java       |   2 +-
 .../shared/httpclient/IdleConnectionSweeper.java   |   2 +-
 .../shared/httpclient/TLSSocketFactory.java        |   2 +-
 .../shared/httpclient/TLSSocketFactoryBuilder.java |   2 +-
 .../net/shibboleth/shared/net/CookieManager.java   |   2 +-
 .../shibboleth/shared/net/HttpServletSupport.java  |   2 +-
 .../java/net/shibboleth/shared/net/IPRange.java    |   2 +-
 .../shibboleth/shared/net/MediaTypeSupport.java    |   2 +-
 .../shared/net/SimpleURLCanonicalizer.java         |   2 +-
 .../java/net/shibboleth/shared/net/URISupport.java |   2 +-
 .../java/net/shibboleth/shared/net/URLBuilder.java |   2 +-
 .../java/support/httpclient/HttpClientSupport.java |   4 +-
 .../support/net/DynamicResponseHeaderFilter.java   |   2 +-
 .../support/net/SameSiteCookieHeaderFilter.java    |   2 +-
 .../security/factory/KeyStoreFactoryBean.java      |   2 +-
 .../security/factory/PrivateKeyFactoryBean.java    |   2 +-
 .../net/shibboleth/shared/security/DataSealer.java |   2 +-
 .../security/impl/BasicAccessControlService.java   |   2 +-
 .../security/impl/BasicKeystoreKeyStrategy.java    |   4 +-
 .../impl/BasicKeystoreKeyStrategyTool.java         |   2 +-
 .../shared/security/impl/ScriptedKeyStrategy.java  |   2 +-
 .../impl/SelfSignedCertificateGenerator.java       |   2 +-
 .../shared/service/AbstractReloadableService.java  |   2 +-
 .../shared/service/impl/LogbackLoggingService.java |   2 +-
 .../service/reloadable/ProxiedFactoryBean.java     |   2 +-
 .../spring/service/ReloadableSpringService.java    |   2 +-
 .../context/DelimiterAwareApplicationContext.java  |   4 +-
 .../spring/config/DeprecatedBeanDetector.java      |   6 +-
 .../spring/config/FunctionToFunctionConverter.java |   4 +-
 .../config/PredicateToPredicateConverter.java      |   4 +-
 .../config/RelocatedBeanFactoryPostProcessor.java  |   6 +-
 .../config/StringBooleanToPredicateConverter.java  |   4 +-
 ...actPropertiesApplicationContextInitializer.java |   2 +-
 .../spring/custom/BaseSpringNamespaceHandler.java  |   2 +-
 .../AbstractSpringExpressionEvaluator.java         |   2 +-
 .../spring/factory/EvaluableScriptFactoryBean.java |   2 +-
 .../shared/spring/factory/PatternFactoryBean.java  |   2 +-
 .../spring/util/ApplicationContextBuilder.java     |   2 +-
 .../shared/spring/util/SpringSupport.java          |   2 +-
 .../net/shibboleth/shared/codec/Base32Support.java |   2 +-
 .../net/shibboleth/shared/codec/Base64Support.java |   2 +-
 .../shibboleth/shared/codec/StringDigester.java    |   2 +-
 .../AbstractIdentifiedInitializableComponent.java  |   2 +-
 .../shared/component/ComponentSupport.java         |   2 +-
 .../primitive/CleanerSupport.java                  |   2 +-
 .../primitive/DeprecationSupport.java              |   2 +-
 .../primitive/LangBearingString.java               |   2 +-
 .../primitive/ObjectSupport.java                   |  18 +---
 .../primitive/StringSupport.java                   |   2 +-
 .../support => shared}/primitive/TimerSupport.java |   2 +-
 .../shibboleth/shared/primitive/package-info.java  |  23 +---
 .../resolver/CriterionPredicateRegistry.java       |   2 +-
 .../shared/scripting/EvaluableScript.java          |   2 +-
 .../shibboleth/shared/xml/AttributeSupport.java    |   2 +-
 .../net/shibboleth/shared/xml/DOMTypeSupport.java  |   2 +-
 .../net/shibboleth/shared/xml/ElementSupport.java  |   2 +-
 .../shibboleth/shared/xml/NamespaceSupport.java    |   2 +-
 .../net/shibboleth/shared/xml/QNameSupport.java    |   2 +-
 .../net/shibboleth/shared/xml/SchemaBuilder.java   |   2 +-
 .../shared/xml/impl/BasicParserPool.java           |   2 +-
 .../utilities/java/support/codec/HTMLEncoder.java  |   4 +-
 .../utilities/java/support/logic/Predicate.java    |   4 +-
 .../support/logic/TrimOrNullStringFunction.java    |   2 +-
 .../support/primitive/LazilyFormattedString.java   |  55 ----------
 .../java/support/primitive/StringSupport.java      | 119 +++++++--------------
 .../primitive/ObjectSupportTest.java               |  45 +-------
 .../primitive/StringSupportTest.java               |   4 +-
 .../primitive/TimerSupportTest.java                |   2 +-
 .../shibboleth/shared/xml/ElementSupportTest.java  |   2 +-
 .../primitive/LazilyFormattedStringTest.java       |  51 ---------
 .../java/support => shared}/primitive/data.txt     |   0
 .../shared/testing/DatabaseTestingSupport.java     |   4 +-
 .../shared/testing/RepositorySupport.java          |   2 +-
 .../net/shibboleth/shared/velocity/Template.java   |   2 +-
 77 files changed, 125 insertions(+), 356 deletions(-)

diff --git a/shib-networking-spring/src/main/java/net/shibboleth/shared/spring/httpclient/resource/HTTPResource.java b/shib-networking-spring/src/main/java/net/shibboleth/shared/spring/httpclient/resource/HTTPResource.java
index 24a1d950..fbbc44f7 100644
--- a/shib-networking-spring/src/main/java/net/shibboleth/shared/spring/httpclient/resource/HTTPResource.java
+++ b/shib-networking-spring/src/main/java/net/shibboleth/shared/spring/httpclient/resource/HTTPResource.java
@@ -52,8 +52,8 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.component.AbstractIdentifiedInitializableComponent;
 import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.httpclient.HttpClientContextHandler;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 /**
  * Resource for looking up HTTP URLs. Allows injection and therefore configuration of an Apache {@link HttpClient}. Code
diff --git a/shib-networking-spring/src/test/java/net/shibboleth/shared/spring/httpclient/resource/RepositorySupport.java b/shib-networking-spring/src/test/java/net/shibboleth/shared/spring/httpclient/resource/RepositorySupport.java
index 2739e7d2..3137c6f3 100644
--- a/shib-networking-spring/src/test/java/net/shibboleth/shared/spring/httpclient/resource/RepositorySupport.java
+++ b/shib-networking-spring/src/test/java/net/shibboleth/shared/spring/httpclient/resource/RepositorySupport.java
@@ -20,8 +20,8 @@ package net.shibboleth.shared.spring.httpclient.resource;
 import javax.annotation.Nonnull;
 
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 /**
  * Support class for working with the project version control repository.
diff --git a/shib-networking/src/main/java/net/shibboleth/shared/httpclient/FileCachingHttpClientBuilder.java b/shib-networking/src/main/java/net/shibboleth/shared/httpclient/FileCachingHttpClientBuilder.java
index 6d26b49f..a71d6d4e 100644
--- a/shib-networking/src/main/java/net/shibboleth/shared/httpclient/FileCachingHttpClientBuilder.java
+++ b/shib-networking/src/main/java/net/shibboleth/shared/httpclient/FileCachingHttpClientBuilder.java
@@ -46,9 +46,9 @@ import net.shibboleth.shared.component.DestroyedComponentException;
 import net.shibboleth.shared.component.DestructableComponent;
 import net.shibboleth.shared.component.InitializableComponent;
 import net.shibboleth.shared.component.UninitializedComponentException;
+import net.shibboleth.shared.primitive.StringSupport;
+import net.shibboleth.shared.primitive.TimerSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-import net.shibboleth.utilities.java.support.primitive.TimerSupport;
 
 /**
  * An {@link org.apache.http.client.HttpClient} builder that supports RFC 2616 caching.
diff --git a/shib-networking/src/main/java/net/shibboleth/shared/httpclient/HttpClientBuilder.java b/shib-networking/src/main/java/net/shibboleth/shared/httpclient/HttpClientBuilder.java
index ee235f82..ceb6af1a 100644
--- a/shib-networking/src/main/java/net/shibboleth/shared/httpclient/HttpClientBuilder.java
+++ b/shib-networking/src/main/java/net/shibboleth/shared/httpclient/HttpClientBuilder.java
@@ -44,8 +44,8 @@ import org.apache.http.util.CharsetUtils;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotLive;
 import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 //TODO retry attempts, keep alive strategy
 
diff --git a/shib-networking/src/main/java/net/shibboleth/shared/httpclient/IdleConnectionSweeper.java b/shib-networking/src/main/java/net/shibboleth/shared/httpclient/IdleConnectionSweeper.java
index fb521167..f4e6ca38 100644
--- a/shib-networking/src/main/java/net/shibboleth/shared/httpclient/IdleConnectionSweeper.java
+++ b/shib-networking/src/main/java/net/shibboleth/shared/httpclient/IdleConnectionSweeper.java
@@ -28,8 +28,8 @@ import javax.annotation.Nullable;
 
 import net.shibboleth.shared.component.DestroyedComponentException;
 import net.shibboleth.shared.component.DestructableComponent;
+import net.shibboleth.shared.primitive.TimerSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.TimerSupport;
 
 import org.apache.http.conn.HttpClientConnectionManager;
 
diff --git a/shib-networking/src/main/java/net/shibboleth/shared/httpclient/TLSSocketFactory.java b/shib-networking/src/main/java/net/shibboleth/shared/httpclient/TLSSocketFactory.java
index 0b45486c..48635e91 100644
--- a/shib-networking/src/main/java/net/shibboleth/shared/httpclient/TLSSocketFactory.java
+++ b/shib-networking/src/main/java/net/shibboleth/shared/httpclient/TLSSocketFactory.java
@@ -35,8 +35,8 @@ import javax.net.ssl.SSLSocket;
 import javax.net.ssl.SSLSocketFactory;
 
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 import org.apache.http.HttpHost;
 import org.apache.http.conn.socket.LayeredConnectionSocketFactory;
diff --git a/shib-networking/src/main/java/net/shibboleth/shared/httpclient/TLSSocketFactoryBuilder.java b/shib-networking/src/main/java/net/shibboleth/shared/httpclient/TLSSocketFactoryBuilder.java
index 007856c8..0668a584 100644
--- a/shib-networking/src/main/java/net/shibboleth/shared/httpclient/TLSSocketFactoryBuilder.java
+++ b/shib-networking/src/main/java/net/shibboleth/shared/httpclient/TLSSocketFactoryBuilder.java
@@ -32,7 +32,7 @@ import javax.net.ssl.KeyManager;
 import javax.net.ssl.SSLContext;
 import javax.net.ssl.TrustManager;
 
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
+import net.shibboleth.shared.primitive.StringSupport;
 
 /**
  * A builder for instances of {@link TLSSocketFactory} which allows easy specification
diff --git a/shib-networking/src/main/java/net/shibboleth/shared/net/CookieManager.java b/shib-networking/src/main/java/net/shibboleth/shared/net/CookieManager.java
index 6e08730b..e66ec89d 100644
--- a/shib-networking/src/main/java/net/shibboleth/shared/net/CookieManager.java
+++ b/shib-networking/src/main/java/net/shibboleth/shared/net/CookieManager.java
@@ -29,8 +29,8 @@ import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.component.AbstractInitializableComponent;
 import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 /**
  * A helper class for managing one or more cookies on behalf of a component.
diff --git a/shib-networking/src/main/java/net/shibboleth/shared/net/HttpServletSupport.java b/shib-networking/src/main/java/net/shibboleth/shared/net/HttpServletSupport.java
index 1efde5e9..b5240253 100644
--- a/shib-networking/src/main/java/net/shibboleth/shared/net/HttpServletSupport.java
+++ b/shib-networking/src/main/java/net/shibboleth/shared/net/HttpServletSupport.java
@@ -36,7 +36,7 @@ import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.Unmodifiable;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
+import net.shibboleth.shared.primitive.StringSupport;
 
 /** Utilities for working with HTTP Servlet requests and responses. */
 public final class HttpServletSupport {
diff --git a/shib-networking/src/main/java/net/shibboleth/shared/net/IPRange.java b/shib-networking/src/main/java/net/shibboleth/shared/net/IPRange.java
index 1fe69583..9b90e674 100644
--- a/shib-networking/src/main/java/net/shibboleth/shared/net/IPRange.java
+++ b/shib-networking/src/main/java/net/shibboleth/shared/net/IPRange.java
@@ -25,7 +25,7 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
+import net.shibboleth.shared.primitive.StringSupport;
 
 /** Represents a range of IP addresses. */
 public class IPRange {
diff --git a/shib-networking/src/main/java/net/shibboleth/shared/net/MediaTypeSupport.java b/shib-networking/src/main/java/net/shibboleth/shared/net/MediaTypeSupport.java
index bb169956..eb0a828a 100644
--- a/shib-networking/src/main/java/net/shibboleth/shared/net/MediaTypeSupport.java
+++ b/shib-networking/src/main/java/net/shibboleth/shared/net/MediaTypeSupport.java
@@ -23,7 +23,7 @@ import java.util.function.Function;
 import com.google.common.net.MediaType;
 
 import net.shibboleth.shared.net.impl.StripMediaTypeParametersFunction;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
+import net.shibboleth.shared.primitive.StringSupport;
 
 /**
  * Support methods for Guava {@link MediaType}.
diff --git a/shib-networking/src/main/java/net/shibboleth/shared/net/SimpleURLCanonicalizer.java b/shib-networking/src/main/java/net/shibboleth/shared/net/SimpleURLCanonicalizer.java
index 43a53d1c..5c8e023b 100644
--- a/shib-networking/src/main/java/net/shibboleth/shared/net/SimpleURLCanonicalizer.java
+++ b/shib-networking/src/main/java/net/shibboleth/shared/net/SimpleURLCanonicalizer.java
@@ -27,8 +27,8 @@ import javax.annotation.Nullable;
 import com.google.common.base.Strings;
 
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 /**
  * This class performs simple canonicalization of a URL as follows:
diff --git a/shib-networking/src/main/java/net/shibboleth/shared/net/URISupport.java b/shib-networking/src/main/java/net/shibboleth/shared/net/URISupport.java
index d01f2ae5..f6bf8897 100644
--- a/shib-networking/src/main/java/net/shibboleth/shared/net/URISupport.java
+++ b/shib-networking/src/main/java/net/shibboleth/shared/net/URISupport.java
@@ -33,7 +33,7 @@ import javax.annotation.Nullable;
 
 import net.shibboleth.shared.collection.LazyList;
 import net.shibboleth.shared.collection.Pair;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
+import net.shibboleth.shared.primitive.StringSupport;
 
 /** Helper methods for building {@link URI}s and parsing some HTTP URL information. */
 public final class URISupport {
diff --git a/shib-networking/src/main/java/net/shibboleth/shared/net/URLBuilder.java b/shib-networking/src/main/java/net/shibboleth/shared/net/URLBuilder.java
index d6b4b257..20957cf0 100644
--- a/shib-networking/src/main/java/net/shibboleth/shared/net/URLBuilder.java
+++ b/shib-networking/src/main/java/net/shibboleth/shared/net/URLBuilder.java
@@ -29,7 +29,7 @@ import com.google.common.base.Strings;
 
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.collection.Pair;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
+import net.shibboleth.shared.primitive.StringSupport;
 
 /**
  * Utility class for building URLs. May also be used to parse a URL into its individual components.
diff --git a/shib-networking/src/main/java/net/shibboleth/utilities/java/support/httpclient/HttpClientSupport.java b/shib-networking/src/main/java/net/shibboleth/utilities/java/support/httpclient/HttpClientSupport.java
index 09d0dc62..62c2fca4 100644
--- a/shib-networking/src/main/java/net/shibboleth/utilities/java/support/httpclient/HttpClientSupport.java
+++ b/shib-networking/src/main/java/net/shibboleth/utilities/java/support/httpclient/HttpClientSupport.java
@@ -34,8 +34,8 @@ import org.apache.http.client.protocol.HttpClientContext;
 import org.apache.http.conn.socket.LayeredConnectionSocketFactory;
 
 import net.shibboleth.shared.httpclient.HttpClientContextHandler;
-import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
-import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
+import net.shibboleth.shared.primitive.DeprecationSupport;
+import net.shibboleth.shared.primitive.DeprecationSupport.ObjectType;
 
 /**
  * Old support class for using {@link HttpClient} and related components.
diff --git a/shib-networking/src/main/java/net/shibboleth/utilities/java/support/net/DynamicResponseHeaderFilter.java b/shib-networking/src/main/java/net/shibboleth/utilities/java/support/net/DynamicResponseHeaderFilter.java
index 472bb6ca..e25c4d4a 100644
--- a/shib-networking/src/main/java/net/shibboleth/utilities/java/support/net/DynamicResponseHeaderFilter.java
+++ b/shib-networking/src/main/java/net/shibboleth/utilities/java/support/net/DynamicResponseHeaderFilter.java
@@ -41,7 +41,7 @@ import jakarta.servlet.http.HttpServletResponse;
 import jakarta.servlet.http.HttpServletResponseWrapper;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.collection.Pair;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
+import net.shibboleth.shared.primitive.StringSupport;
 
 /**
  * Implementation of an HTTP servlet {@link Filter} which supports configurable response header
diff --git a/shib-networking/src/main/java/net/shibboleth/utilities/java/support/net/SameSiteCookieHeaderFilter.java b/shib-networking/src/main/java/net/shibboleth/utilities/java/support/net/SameSiteCookieHeaderFilter.java
index 57137b87..c1c17a88 100644
--- a/shib-networking/src/main/java/net/shibboleth/utilities/java/support/net/SameSiteCookieHeaderFilter.java
+++ b/shib-networking/src/main/java/net/shibboleth/utilities/java/support/net/SameSiteCookieHeaderFilter.java
@@ -47,8 +47,8 @@ import jakarta.servlet.http.HttpServletResponse;
 import jakarta.servlet.http.HttpServletResponseWrapper;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 
 /**
diff --git a/shib-security-spring/src/main/java/net/shibboleth/shared/spring/security/factory/KeyStoreFactoryBean.java b/shib-security-spring/src/main/java/net/shibboleth/shared/spring/security/factory/KeyStoreFactoryBean.java
index add4c8ba..3009a7be 100644
--- a/shib-security-spring/src/main/java/net/shibboleth/shared/spring/security/factory/KeyStoreFactoryBean.java
+++ b/shib-security-spring/src/main/java/net/shibboleth/shared/spring/security/factory/KeyStoreFactoryBean.java
@@ -23,8 +23,8 @@ import java.security.KeyStore;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 import org.springframework.beans.factory.FactoryBean;
 import org.springframework.beans.factory.FactoryBeanNotInitializedException;
diff --git a/shib-security-spring/src/main/java/net/shibboleth/shared/spring/security/factory/PrivateKeyFactoryBean.java b/shib-security-spring/src/main/java/net/shibboleth/shared/spring/security/factory/PrivateKeyFactoryBean.java
index 631bc501..ca222891 100644
--- a/shib-security-spring/src/main/java/net/shibboleth/shared/spring/security/factory/PrivateKeyFactoryBean.java
+++ b/shib-security-spring/src/main/java/net/shibboleth/shared/spring/security/factory/PrivateKeyFactoryBean.java
@@ -23,8 +23,8 @@ import java.security.PrivateKey;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 import org.cryptacular.util.KeyPairUtil;
 import org.springframework.beans.factory.BeanCreationException;
diff --git a/shib-security/src/main/java/net/shibboleth/shared/security/DataSealer.java b/shib-security/src/main/java/net/shibboleth/shared/security/DataSealer.java
index 1124a937..190672f2 100644
--- a/shib-security/src/main/java/net/shibboleth/shared/security/DataSealer.java
+++ b/shib-security/src/main/java/net/shibboleth/shared/security/DataSealer.java
@@ -49,9 +49,9 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.collection.Pair;
 import net.shibboleth.shared.component.AbstractInitializableComponent;
 import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 import net.shibboleth.utilities.java.support.logic.ConstraintViolationException;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 
 /**
diff --git a/shib-security/src/main/java/net/shibboleth/shared/security/impl/BasicAccessControlService.java b/shib-security/src/main/java/net/shibboleth/shared/security/impl/BasicAccessControlService.java
index 370d0615..e5aac669 100644
--- a/shib-security/src/main/java/net/shibboleth/shared/security/impl/BasicAccessControlService.java
+++ b/shib-security/src/main/java/net/shibboleth/shared/security/impl/BasicAccessControlService.java
@@ -30,9 +30,9 @@ import org.slf4j.LoggerFactory;
 import jakarta.servlet.ServletRequest;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.shared.security.AccessControl;
 import net.shibboleth.shared.security.AccessControlService;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 /** Simple implementation that uses an in-memory map of policies. */
 public class BasicAccessControlService extends AbstractIdentifiableInitializableComponent
diff --git a/shib-security/src/main/java/net/shibboleth/shared/security/impl/BasicKeystoreKeyStrategy.java b/shib-security/src/main/java/net/shibboleth/shared/security/impl/BasicKeystoreKeyStrategy.java
index 1a7225d8..9ebd31c7 100644
--- a/shib-security/src/main/java/net/shibboleth/shared/security/impl/BasicKeystoreKeyStrategy.java
+++ b/shib-security/src/main/java/net/shibboleth/shared/security/impl/BasicKeystoreKeyStrategy.java
@@ -45,13 +45,13 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.collection.Pair;
 import net.shibboleth.shared.component.AbstractInitializableComponent;
 import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.primitive.StringSupport;
+import net.shibboleth.shared.primitive.TimerSupport;
 import net.shibboleth.shared.resource.Resource;
 import net.shibboleth.shared.security.DataSealerKeyStrategy;
 import net.shibboleth.shared.security.KeyNotFoundException;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 import net.shibboleth.utilities.java.support.logic.ConstraintViolationException;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-import net.shibboleth.utilities.java.support.primitive.TimerSupport;
 
 
 /**
diff --git a/shib-security/src/main/java/net/shibboleth/shared/security/impl/BasicKeystoreKeyStrategyTool.java b/shib-security/src/main/java/net/shibboleth/shared/security/impl/BasicKeystoreKeyStrategyTool.java
index ac71be29..7bda446a 100644
--- a/shib-security/src/main/java/net/shibboleth/shared/security/impl/BasicKeystoreKeyStrategyTool.java
+++ b/shib-security/src/main/java/net/shibboleth/shared/security/impl/BasicKeystoreKeyStrategyTool.java
@@ -31,8 +31,8 @@ import javax.crypto.SecretKey;
 
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.annotation.constraint.Positive;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/shib-security/src/main/java/net/shibboleth/shared/security/impl/ScriptedKeyStrategy.java b/shib-security/src/main/java/net/shibboleth/shared/security/impl/ScriptedKeyStrategy.java
index 08c41484..d2149e5e 100644
--- a/shib-security/src/main/java/net/shibboleth/shared/security/impl/ScriptedKeyStrategy.java
+++ b/shib-security/src/main/java/net/shibboleth/shared/security/impl/ScriptedKeyStrategy.java
@@ -40,10 +40,10 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.collection.Pair;
 import net.shibboleth.shared.component.AbstractInitializableComponent;
 import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.primitive.TimerSupport;
 import net.shibboleth.shared.scripting.EvaluableScript;
 import net.shibboleth.shared.security.DataSealerKeyStrategy;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.TimerSupport;
 
 
 /**
diff --git a/shib-security/src/main/java/net/shibboleth/shared/security/impl/SelfSignedCertificateGenerator.java b/shib-security/src/main/java/net/shibboleth/shared/security/impl/SelfSignedCertificateGenerator.java
index 026ee380..cd69a3bf 100644
--- a/shib-security/src/main/java/net/shibboleth/shared/security/impl/SelfSignedCertificateGenerator.java
+++ b/shib-security/src/main/java/net/shibboleth/shared/security/impl/SelfSignedCertificateGenerator.java
@@ -40,8 +40,8 @@ import javax.annotation.Nullable;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.annotation.constraint.Positive;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 import org.bouncycastle.asn1.ASN1Encodable;
 import org.bouncycastle.asn1.DERSequence;
diff --git a/shib-service/src/main/java/net/shibboleth/shared/service/AbstractReloadableService.java b/shib-service/src/main/java/net/shibboleth/shared/service/AbstractReloadableService.java
index 7f4f5bf8..b9ba59b3 100644
--- a/shib-service/src/main/java/net/shibboleth/shared/service/AbstractReloadableService.java
+++ b/shib-service/src/main/java/net/shibboleth/shared/service/AbstractReloadableService.java
@@ -32,8 +32,8 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent;
 import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.component.UnmodifiableComponent;
+import net.shibboleth.shared.primitive.TimerSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.TimerSupport;
 
 /**
  * Base class for {@link ReloadableService}. This base class will use a background thread that will perform a periodic
diff --git a/shib-service/src/main/java/net/shibboleth/shared/service/impl/LogbackLoggingService.java b/shib-service/src/main/java/net/shibboleth/shared/service/impl/LogbackLoggingService.java
index 9cebaf7b..3346b2b3 100644
--- a/shib-service/src/main/java/net/shibboleth/shared/service/impl/LogbackLoggingService.java
+++ b/shib-service/src/main/java/net/shibboleth/shared/service/impl/LogbackLoggingService.java
@@ -39,13 +39,13 @@ import ch.qos.logback.core.status.StatusManager;
 import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.shared.resource.Resource;
 import net.shibboleth.shared.service.AbstractReloadableService;
 import net.shibboleth.shared.service.LoggingService;
 import net.shibboleth.shared.service.ServiceException;
 import net.shibboleth.shared.service.ServiceableComponent;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 /**
  * Simple {@link LoggingService} that watches for logback configuration file changes
diff --git a/shib-service/src/main/java/net/shibboleth/shared/service/reloadable/ProxiedFactoryBean.java b/shib-service/src/main/java/net/shibboleth/shared/service/reloadable/ProxiedFactoryBean.java
index 4bb0e47a..6a3819b4 100644
--- a/shib-service/src/main/java/net/shibboleth/shared/service/reloadable/ProxiedFactoryBean.java
+++ b/shib-service/src/main/java/net/shibboleth/shared/service/reloadable/ProxiedFactoryBean.java
@@ -27,10 +27,10 @@ import org.springframework.context.ApplicationContext;
 
 import net.shibboleth.shared.annotation.ParameterName;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.shared.service.ReloadableService;
 import net.shibboleth.shared.service.ServiceableComponent;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 /**
  * Factory bean that proxies the creation of a bean through a managed/reloadable
diff --git a/shib-service/src/main/java/net/shibboleth/shared/spring/service/ReloadableSpringService.java b/shib-service/src/main/java/net/shibboleth/shared/spring/service/ReloadableSpringService.java
index 547cecd7..e1958dae 100644
--- a/shib-service/src/main/java/net/shibboleth/shared/spring/service/ReloadableSpringService.java
+++ b/shib-service/src/main/java/net/shibboleth/shared/spring/service/ReloadableSpringService.java
@@ -45,12 +45,12 @@ import org.springframework.core.io.Resource;
 import net.shibboleth.shared.annotation.ParameterName;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.shared.service.AbstractReloadableService;
 import net.shibboleth.shared.service.ServiceException;
 import net.shibboleth.shared.service.ServiceableComponent;
 import net.shibboleth.shared.spring.util.ApplicationContextBuilder;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 
 /**
diff --git a/shib-spring/src/main/java/net/shibboleth/ext/spring/context/DelimiterAwareApplicationContext.java b/shib-spring/src/main/java/net/shibboleth/ext/spring/context/DelimiterAwareApplicationContext.java
index 59cf509d..04c0c8de 100644
--- a/shib-spring/src/main/java/net/shibboleth/ext/spring/context/DelimiterAwareApplicationContext.java
+++ b/shib-spring/src/main/java/net/shibboleth/ext/spring/context/DelimiterAwareApplicationContext.java
@@ -17,8 +17,8 @@
 
 package net.shibboleth.ext.spring.context;
 
-import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
-import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
+import net.shibboleth.shared.primitive.DeprecationSupport;
+import net.shibboleth.shared.primitive.DeprecationSupport.ObjectType;
 
 /**
  * This is a stub to preserve compatibility for old web.xml references to this class.
diff --git a/shib-spring/src/main/java/net/shibboleth/shared/spring/config/DeprecatedBeanDetector.java b/shib-spring/src/main/java/net/shibboleth/shared/spring/config/DeprecatedBeanDetector.java
index a66a5c9a..c40c9ad1 100644
--- a/shib-spring/src/main/java/net/shibboleth/shared/spring/config/DeprecatedBeanDetector.java
+++ b/shib-spring/src/main/java/net/shibboleth/shared/spring/config/DeprecatedBeanDetector.java
@@ -28,9 +28,9 @@ import org.springframework.context.ApplicationListener;
 import org.springframework.context.event.ContextRefreshedEvent;
 
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
-import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
-import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
+import net.shibboleth.shared.primitive.DeprecationSupport;
+import net.shibboleth.shared.primitive.StringSupport;
+import net.shibboleth.shared.primitive.DeprecationSupport.ObjectType;
 
 /**
  * A utility bean to look for and warn about deprecated bean names.
diff --git a/shib-spring/src/main/java/net/shibboleth/shared/spring/config/FunctionToFunctionConverter.java b/shib-spring/src/main/java/net/shibboleth/shared/spring/config/FunctionToFunctionConverter.java
index 381cfb44..1830bfdd 100644
--- a/shib-spring/src/main/java/net/shibboleth/shared/spring/config/FunctionToFunctionConverter.java
+++ b/shib-spring/src/main/java/net/shibboleth/shared/spring/config/FunctionToFunctionConverter.java
@@ -19,8 +19,8 @@ package net.shibboleth.shared.spring.config;
 
 import org.springframework.core.convert.converter.Converter;
 
-import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
-import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
+import net.shibboleth.shared.primitive.DeprecationSupport;
+import net.shibboleth.shared.primitive.DeprecationSupport.ObjectType;
 
 /**
  * Auto-converts standard Java functions to Guava's version for legacy compatibility.
diff --git a/shib-spring/src/main/java/net/shibboleth/shared/spring/config/PredicateToPredicateConverter.java b/shib-spring/src/main/java/net/shibboleth/shared/spring/config/PredicateToPredicateConverter.java
index 30c0dae7..06583d57 100644
--- a/shib-spring/src/main/java/net/shibboleth/shared/spring/config/PredicateToPredicateConverter.java
+++ b/shib-spring/src/main/java/net/shibboleth/shared/spring/config/PredicateToPredicateConverter.java
@@ -19,8 +19,8 @@ package net.shibboleth.shared.spring.config;
 
 import org.springframework.core.convert.converter.Converter;
 
-import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
-import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
+import net.shibboleth.shared.primitive.DeprecationSupport;
+import net.shibboleth.shared.primitive.DeprecationSupport.ObjectType;
 
 /**
  * Auto-converts standard Java predicates to Guava's version for legacy compatibility.
diff --git a/shib-spring/src/main/java/net/shibboleth/shared/spring/config/RelocatedBeanFactoryPostProcessor.java b/shib-spring/src/main/java/net/shibboleth/shared/spring/config/RelocatedBeanFactoryPostProcessor.java
index aaf954be..f643ff08 100644
--- a/shib-spring/src/main/java/net/shibboleth/shared/spring/config/RelocatedBeanFactoryPostProcessor.java
+++ b/shib-spring/src/main/java/net/shibboleth/shared/spring/config/RelocatedBeanFactoryPostProcessor.java
@@ -30,9 +30,9 @@ import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
 
 import net.shibboleth.shared.annotation.ParameterName;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
-import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
-import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
+import net.shibboleth.shared.primitive.DeprecationSupport;
+import net.shibboleth.shared.primitive.StringSupport;
+import net.shibboleth.shared.primitive.DeprecationSupport.ObjectType;
 
 /**
  * A {@link BeanFactoryPostProcessor} to rewrite and log on relocated classes or parent beans.
diff --git a/shib-spring/src/main/java/net/shibboleth/shared/spring/config/StringBooleanToPredicateConverter.java b/shib-spring/src/main/java/net/shibboleth/shared/spring/config/StringBooleanToPredicateConverter.java
index adce3611..5d709c1b 100644
--- a/shib-spring/src/main/java/net/shibboleth/shared/spring/config/StringBooleanToPredicateConverter.java
+++ b/shib-spring/src/main/java/net/shibboleth/shared/spring/config/StringBooleanToPredicateConverter.java
@@ -21,14 +21,14 @@ import java.util.function.Predicate;
 
 import javax.annotation.Nonnull;
 
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.core.convert.converter.Converter;
 
 import com.google.common.base.Predicates;
 
+import net.shibboleth.shared.primitive.StringSupport;
+
 /**
  * Allows setting of fixed {@link Predicate} properties using a boolean string.
  */
diff --git a/shib-spring/src/main/java/net/shibboleth/shared/spring/context/AbstractPropertiesApplicationContextInitializer.java b/shib-spring/src/main/java/net/shibboleth/shared/spring/context/AbstractPropertiesApplicationContextInitializer.java
index 8499d7a1..4e81d2bc 100644
--- a/shib-spring/src/main/java/net/shibboleth/shared/spring/context/AbstractPropertiesApplicationContextInitializer.java
+++ b/shib-spring/src/main/java/net/shibboleth/shared/spring/context/AbstractPropertiesApplicationContextInitializer.java
@@ -50,9 +50,9 @@ import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.annotation.constraint.NotLive;
 import net.shibboleth.shared.annotation.constraint.Unmodifiable;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 import net.shibboleth.utilities.java.support.logic.ConstraintViolationException;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 /**
  * An {@link ApplicationContextInitializer} which appends properties to the application context's environment.
diff --git a/shib-spring/src/main/java/net/shibboleth/shared/spring/custom/BaseSpringNamespaceHandler.java b/shib-spring/src/main/java/net/shibboleth/shared/spring/custom/BaseSpringNamespaceHandler.java
index 4518c79b..a81c264f 100644
--- a/shib-spring/src/main/java/net/shibboleth/shared/spring/custom/BaseSpringNamespaceHandler.java
+++ b/shib-spring/src/main/java/net/shibboleth/shared/spring/custom/BaseSpringNamespaceHandler.java
@@ -47,9 +47,9 @@ import org.w3c.dom.Node;
 import net.shibboleth.shared.annotation.ParameterName;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.shared.xml.DOMTypeSupport;
 import net.shibboleth.shared.xml.QNameSupport;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 /**
  * A base class for {@link NamespaceHandler} implementations.
diff --git a/shib-spring/src/main/java/net/shibboleth/shared/spring/expression/AbstractSpringExpressionEvaluator.java b/shib-spring/src/main/java/net/shibboleth/shared/spring/expression/AbstractSpringExpressionEvaluator.java
index 9b321524..81f1277a 100644
--- a/shib-spring/src/main/java/net/shibboleth/shared/spring/expression/AbstractSpringExpressionEvaluator.java
+++ b/shib-spring/src/main/java/net/shibboleth/shared/spring/expression/AbstractSpringExpressionEvaluator.java
@@ -29,8 +29,8 @@ import org.springframework.expression.spel.support.StandardEvaluationContext;
 
 import net.shibboleth.shared.annotation.ParameterName;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 /**
  * A component that evaluates a Spring EL expression against a set of inputs
diff --git a/shib-spring/src/main/java/net/shibboleth/shared/spring/factory/EvaluableScriptFactoryBean.java b/shib-spring/src/main/java/net/shibboleth/shared/spring/factory/EvaluableScriptFactoryBean.java
index 1e60d432..5101580a 100644
--- a/shib-spring/src/main/java/net/shibboleth/shared/spring/factory/EvaluableScriptFactoryBean.java
+++ b/shib-spring/src/main/java/net/shibboleth/shared/spring/factory/EvaluableScriptFactoryBean.java
@@ -19,8 +19,8 @@ package net.shibboleth.shared.spring.factory;
 
 import java.io.InputStream;
 
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.shared.scripting.EvaluableScript;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/shib-spring/src/main/java/net/shibboleth/shared/spring/factory/PatternFactoryBean.java b/shib-spring/src/main/java/net/shibboleth/shared/spring/factory/PatternFactoryBean.java
index 597dada8..464b3e85 100644
--- a/shib-spring/src/main/java/net/shibboleth/shared/spring/factory/PatternFactoryBean.java
+++ b/shib-spring/src/main/java/net/shibboleth/shared/spring/factory/PatternFactoryBean.java
@@ -22,8 +22,8 @@ import java.util.regex.Pattern;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 /**
  * Factory bean for {@link Pattern}. Allows us to inject property based case sensitivity.
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 c48736e6..6ce75c0c 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
@@ -30,6 +30,7 @@ import javax.annotation.Nullable;
 
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.shared.spring.config.BooleanToPredicateConverter;
 import net.shibboleth.shared.spring.config.FunctionToFunctionConverter;
 import net.shibboleth.shared.spring.config.PredicateToPredicateConverter;
@@ -42,7 +43,6 @@ import net.shibboleth.shared.spring.custom.SchemaTypeAwareXMLBeanDefinitionReade
 import net.shibboleth.shared.spring.resource.ConditionalResourceResolver;
 import net.shibboleth.shared.spring.resource.PreferFileSystemResourceLoader;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/shib-spring/src/main/java/net/shibboleth/shared/spring/util/SpringSupport.java b/shib-spring/src/main/java/net/shibboleth/shared/spring/util/SpringSupport.java
index 47145a69..6d7e710e 100644
--- a/shib-spring/src/main/java/net/shibboleth/shared/spring/util/SpringSupport.java
+++ b/shib-spring/src/main/java/net/shibboleth/shared/spring/util/SpringSupport.java
@@ -52,11 +52,11 @@ import jakarta.servlet.http.HttpServletRequest;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.Unmodifiable;
 import net.shibboleth.shared.net.HttpServletSupport;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.shared.spring.context.FilesystemGenericApplicationContext;
 import net.shibboleth.shared.xml.SerializeSupport;
 import net.shibboleth.shared.xml.XMLConstants;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 /**
  * Helper class for performing some common Spring-related functions.
diff --git a/shib-support/src/main/java/net/shibboleth/shared/codec/Base32Support.java b/shib-support/src/main/java/net/shibboleth/shared/codec/Base32Support.java
index db8c2def..2f9b1f7b 100644
--- a/shib-support/src/main/java/net/shibboleth/shared/codec/Base32Support.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/codec/Base32Support.java
@@ -19,8 +19,8 @@ package net.shibboleth.shared.codec;
 
 import javax.annotation.Nonnull;
 
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 import org.apache.commons.codec.CodecPolicy;
 import org.apache.commons.codec.binary.Base32;
diff --git a/shib-support/src/main/java/net/shibboleth/shared/codec/Base64Support.java b/shib-support/src/main/java/net/shibboleth/shared/codec/Base64Support.java
index 87ee81a0..4b0ac336 100644
--- a/shib-support/src/main/java/net/shibboleth/shared/codec/Base64Support.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/codec/Base64Support.java
@@ -19,8 +19,8 @@ package net.shibboleth.shared.codec;
 
 import javax.annotation.Nonnull;
 
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 import org.apache.commons.codec.CodecPolicy;
 import org.apache.commons.codec.binary.Base64;
diff --git a/shib-support/src/main/java/net/shibboleth/shared/codec/StringDigester.java b/shib-support/src/main/java/net/shibboleth/shared/codec/StringDigester.java
index 665deb3d..5225166c 100644
--- a/shib-support/src/main/java/net/shibboleth/shared/codec/StringDigester.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/codec/StringDigester.java
@@ -27,8 +27,8 @@ import javax.annotation.Nullable;
 
 import net.shibboleth.shared.annotation.ParameterName;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 import org.apache.commons.codec.CharEncoding;
 import org.apache.commons.codec.binary.Hex;
diff --git a/shib-support/src/main/java/net/shibboleth/shared/component/AbstractIdentifiedInitializableComponent.java b/shib-support/src/main/java/net/shibboleth/shared/component/AbstractIdentifiedInitializableComponent.java
index 956091cb..7a19b2f3 100644
--- a/shib-support/src/main/java/net/shibboleth/shared/component/AbstractIdentifiedInitializableComponent.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/component/AbstractIdentifiedInitializableComponent.java
@@ -24,8 +24,8 @@ import javax.annotation.concurrent.ThreadSafe;
 
 import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 /**
  * Simple implementation of {@link InitializableComponent} and {@link IdentifiedComponent}.
diff --git a/shib-support/src/main/java/net/shibboleth/shared/component/ComponentSupport.java b/shib-support/src/main/java/net/shibboleth/shared/component/ComponentSupport.java
index 95f0b2c9..026902d3 100644
--- a/shib-support/src/main/java/net/shibboleth/shared/component/ComponentSupport.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/component/ComponentSupport.java
@@ -20,8 +20,8 @@ package net.shibboleth.shared.component;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 /** Support class for working with {@link Component} objects. */
 @Deprecated(forRemoval = true, since = "5.0")
diff --git a/shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/CleanerSupport.java b/shib-support/src/main/java/net/shibboleth/shared/primitive/CleanerSupport.java
similarity index 96%
rename from shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/CleanerSupport.java
rename to shib-support/src/main/java/net/shibboleth/shared/primitive/CleanerSupport.java
index 9aaa8db3..c7211ed9 100644
--- a/shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/CleanerSupport.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/primitive/CleanerSupport.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.utilities.java.support.primitive;
+package net.shibboleth.shared.primitive;
 
 import java.lang.ref.Cleaner;
 
diff --git a/shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/DeprecationSupport.java b/shib-support/src/main/java/net/shibboleth/shared/primitive/DeprecationSupport.java
similarity index 99%
rename from shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/DeprecationSupport.java
rename to shib-support/src/main/java/net/shibboleth/shared/primitive/DeprecationSupport.java
index 9d8ed9ff..e48d7708 100644
--- a/shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/DeprecationSupport.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/primitive/DeprecationSupport.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.utilities.java.support.primitive;
+package net.shibboleth.shared.primitive;
 
 import java.util.HashSet;
 import java.util.Set;
diff --git a/shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/LangBearingString.java b/shib-support/src/main/java/net/shibboleth/shared/primitive/LangBearingString.java
similarity index 97%
rename from shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/LangBearingString.java
rename to shib-support/src/main/java/net/shibboleth/shared/primitive/LangBearingString.java
index 183e8a1c..d6c9ce0d 100644
--- a/shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/LangBearingString.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/primitive/LangBearingString.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.utilities.java.support.primitive;
+package net.shibboleth.shared.primitive;
 
 import javax.annotation.Nullable;
 
diff --git a/shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/ObjectSupport.java b/shib-support/src/main/java/net/shibboleth/shared/primitive/ObjectSupport.java
similarity index 80%
rename from shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/ObjectSupport.java
rename to shib-support/src/main/java/net/shibboleth/shared/primitive/ObjectSupport.java
index 25ba236c..03fb5640 100644
--- a/shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/ObjectSupport.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/primitive/ObjectSupport.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.utilities.java.support.primitive;
+package net.shibboleth.shared.primitive;
 
 import javax.annotation.Nullable;
 
@@ -26,22 +26,6 @@ public final class ObjectSupport {
     /** Constructor. */
     private ObjectSupport() {
     }
-
-    /**
-     * Performs a safe (null-aware) {@link Object#hashCode()}.
-     * 
-     * @param o object for which to get the hash code, may be null
-     * 
-     * @return the hash code for the object of 0 if the given object is null
-     */
-    @Deprecated(forRemoval=true)
-    public static int hashCode(@Nullable final Object o) {
-        if (o == null) {
-            return 0;
-        }
-
-        return o.hashCode();
-    }
     
     /**
      * Return the first from a list of arguments that is non-null, or null if all arguments 
diff --git a/shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/StringSupport.java b/shib-support/src/main/java/net/shibboleth/shared/primitive/StringSupport.java
similarity index 99%
copy from shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/StringSupport.java
copy to shib-support/src/main/java/net/shibboleth/shared/primitive/StringSupport.java
index 4c955c56..50041392 100644
--- a/shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/StringSupport.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/primitive/StringSupport.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.utilities.java.support.primitive;
+package net.shibboleth.shared.primitive;
 
 import java.io.BufferedReader;
 import java.io.IOException;
diff --git a/shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/TimerSupport.java b/shib-support/src/main/java/net/shibboleth/shared/primitive/TimerSupport.java
similarity index 98%
rename from shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/TimerSupport.java
rename to shib-support/src/main/java/net/shibboleth/shared/primitive/TimerSupport.java
index 76dde3a9..9bf99019 100644
--- a/shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/TimerSupport.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/primitive/TimerSupport.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.utilities.java.support.primitive;
+package net.shibboleth.shared.primitive;
 
 import java.util.Timer;
 
diff --git a/shib-spring/src/main/java/net/shibboleth/ext/spring/context/DelimiterAwareApplicationContext.java b/shib-support/src/main/java/net/shibboleth/shared/primitive/package-info.java
similarity index 52%
copy from shib-spring/src/main/java/net/shibboleth/ext/spring/context/DelimiterAwareApplicationContext.java
copy to shib-support/src/main/java/net/shibboleth/shared/primitive/package-info.java
index 59cf509d..38b3f97a 100644
--- a/shib-spring/src/main/java/net/shibboleth/ext/spring/context/DelimiterAwareApplicationContext.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/primitive/package-info.java
@@ -15,24 +15,5 @@
  * limitations under the License.
  */
 
-package net.shibboleth.ext.spring.context;
-
-import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
-import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
-
-/**
- * This is a stub to preserve compatibility for old web.xml references to this class.
- * 
- * @deprecated
- */
- at Deprecated(forRemoval=true, since="9.0.0")
-public class DelimiterAwareApplicationContext
-        extends net.shibboleth.shared.spring.context.DelimiterAwareApplicationContext {
-
-    /** Constructor. */
-    public DelimiterAwareApplicationContext() {
-        DeprecationSupport.warn(ObjectType.CLASS, getClass().getName(), "web.xml",
-                net.shibboleth.shared.spring.context.DelimiterAwareApplicationContext.class.getName());
-    }
-
-}
\ No newline at end of file
+/** A set of utilities dealing with Java's primitive types. */
+package net.shibboleth.shared.primitive;
\ No newline at end of file
diff --git a/shib-support/src/main/java/net/shibboleth/shared/resolver/CriterionPredicateRegistry.java b/shib-support/src/main/java/net/shibboleth/shared/resolver/CriterionPredicateRegistry.java
index a326970c..62a2e628 100644
--- a/shib-support/src/main/java/net/shibboleth/shared/resolver/CriterionPredicateRegistry.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/resolver/CriterionPredicateRegistry.java
@@ -29,8 +29,8 @@ import java.util.function.Predicate;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/shib-support/src/main/java/net/shibboleth/shared/scripting/EvaluableScript.java b/shib-support/src/main/java/net/shibboleth/shared/scripting/EvaluableScript.java
index 40bc28c5..546b5ada 100644
--- a/shib-support/src/main/java/net/shibboleth/shared/scripting/EvaluableScript.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/scripting/EvaluableScript.java
@@ -41,10 +41,10 @@ import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.component.AbstractInitializableComponent;
 import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.shared.resource.Resource;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 import net.shibboleth.utilities.java.support.logic.ConstraintViolationException;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 /** This is a helper class that takes care of reading in, optionally compiling, and evaluating a script. */
 public final class EvaluableScript extends AbstractInitializableComponent {
diff --git a/shib-support/src/main/java/net/shibboleth/shared/xml/AttributeSupport.java b/shib-support/src/main/java/net/shibboleth/shared/xml/AttributeSupport.java
index d60bfbe1..5b04b490 100644
--- a/shib-support/src/main/java/net/shibboleth/shared/xml/AttributeSupport.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/xml/AttributeSupport.java
@@ -26,8 +26,8 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 import org.w3c.dom.Attr;
 import org.w3c.dom.Document;
diff --git a/shib-support/src/main/java/net/shibboleth/shared/xml/DOMTypeSupport.java b/shib-support/src/main/java/net/shibboleth/shared/xml/DOMTypeSupport.java
index e9bf6d8d..15d8f92b 100644
--- a/shib-support/src/main/java/net/shibboleth/shared/xml/DOMTypeSupport.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/xml/DOMTypeSupport.java
@@ -30,8 +30,8 @@ import javax.xml.datatype.DatatypeFactory;
 import javax.xml.datatype.XMLGregorianCalendar;
 import javax.xml.namespace.QName;
 
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 import org.w3c.dom.Attr;
 import org.w3c.dom.Element;
diff --git a/shib-support/src/main/java/net/shibboleth/shared/xml/ElementSupport.java b/shib-support/src/main/java/net/shibboleth/shared/xml/ElementSupport.java
index 70f4cae4..c7aa2c3f 100644
--- a/shib-support/src/main/java/net/shibboleth/shared/xml/ElementSupport.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/xml/ElementSupport.java
@@ -28,8 +28,8 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
diff --git a/shib-support/src/main/java/net/shibboleth/shared/xml/NamespaceSupport.java b/shib-support/src/main/java/net/shibboleth/shared/xml/NamespaceSupport.java
index a898d2cf..14a018e4 100644
--- a/shib-support/src/main/java/net/shibboleth/shared/xml/NamespaceSupport.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/xml/NamespaceSupport.java
@@ -22,8 +22,8 @@ import java.util.Objects;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Element;
diff --git a/shib-support/src/main/java/net/shibboleth/shared/xml/QNameSupport.java b/shib-support/src/main/java/net/shibboleth/shared/xml/QNameSupport.java
index 3f59148b..eae9b3d1 100644
--- a/shib-support/src/main/java/net/shibboleth/shared/xml/QNameSupport.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/xml/QNameSupport.java
@@ -24,8 +24,8 @@ import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
diff --git a/shib-support/src/main/java/net/shibboleth/shared/xml/SchemaBuilder.java b/shib-support/src/main/java/net/shibboleth/shared/xml/SchemaBuilder.java
index 05108f12..a43f45a7 100644
--- a/shib-support/src/main/java/net/shibboleth/shared/xml/SchemaBuilder.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/xml/SchemaBuilder.java
@@ -37,10 +37,10 @@ import javax.xml.validation.SchemaFactory;
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.annotation.constraint.NullableElements;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.shared.resource.Resource;
 import net.shibboleth.shared.xml.impl.LoggingErrorHandler;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/shib-support/src/main/java/net/shibboleth/shared/xml/impl/BasicParserPool.java b/shib-support/src/main/java/net/shibboleth/shared/xml/impl/BasicParserPool.java
index 305efb56..bfb1a196 100644
--- a/shib-support/src/main/java/net/shibboleth/shared/xml/impl/BasicParserPool.java
+++ b/shib-support/src/main/java/net/shibboleth/shared/xml/impl/BasicParserPool.java
@@ -55,10 +55,10 @@ import net.shibboleth.shared.annotation.constraint.NullableElements;
 import net.shibboleth.shared.annotation.constraint.Unmodifiable;
 import net.shibboleth.shared.component.AbstractInitializableComponent;
 import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.shared.xml.ParserPool;
 import net.shibboleth.shared.xml.XMLParserException;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 //TODO(lajoie) see if we can use either java.util.concurrent or Guava 
 // classes for the pool so we don't have to manage synchronicity
diff --git a/shib-support/src/main/java/net/shibboleth/utilities/java/support/codec/HTMLEncoder.java b/shib-support/src/main/java/net/shibboleth/utilities/java/support/codec/HTMLEncoder.java
index bcad3576..76137435 100644
--- a/shib-support/src/main/java/net/shibboleth/utilities/java/support/codec/HTMLEncoder.java
+++ b/shib-support/src/main/java/net/shibboleth/utilities/java/support/codec/HTMLEncoder.java
@@ -35,8 +35,8 @@ package net.shibboleth.utilities.java.support.codec;
 
 import javax.annotation.Nullable;
 
-import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
-import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
+import net.shibboleth.shared.primitive.DeprecationSupport;
+import net.shibboleth.shared.primitive.DeprecationSupport.ObjectType;
 
 /**
  * Legacy version of {@link net.shibboleth.shared.codec.HTMLEncoder}.
diff --git a/shib-support/src/main/java/net/shibboleth/utilities/java/support/logic/Predicate.java b/shib-support/src/main/java/net/shibboleth/utilities/java/support/logic/Predicate.java
index bd98c983..d158da09 100644
--- a/shib-support/src/main/java/net/shibboleth/utilities/java/support/logic/Predicate.java
+++ b/shib-support/src/main/java/net/shibboleth/utilities/java/support/logic/Predicate.java
@@ -19,8 +19,8 @@ package net.shibboleth.utilities.java.support.logic;
 
 import javax.annotation.Nullable;
 
-import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
-import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
+import net.shibboleth.shared.primitive.DeprecationSupport;
+import net.shibboleth.shared.primitive.DeprecationSupport.ObjectType;
 
 /**
  * A convenience interface to allow our own classes to implement the Java
diff --git a/shib-support/src/main/java/net/shibboleth/utilities/java/support/logic/TrimOrNullStringFunction.java b/shib-support/src/main/java/net/shibboleth/utilities/java/support/logic/TrimOrNullStringFunction.java
index 95c31c89..0dda3805 100644
--- a/shib-support/src/main/java/net/shibboleth/utilities/java/support/logic/TrimOrNullStringFunction.java
+++ b/shib-support/src/main/java/net/shibboleth/utilities/java/support/logic/TrimOrNullStringFunction.java
@@ -24,7 +24,7 @@ import javax.annotation.Nullable;
 import javax.annotation.concurrent.ThreadSafe;
 
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
+import net.shibboleth.shared.primitive.StringSupport;
 
 import com.google.common.base.MoreObjects;
 
diff --git a/shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/LazilyFormattedString.java b/shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/LazilyFormattedString.java
deleted file mode 100644
index 7822fe34..00000000
--- a/shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/LazilyFormattedString.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID 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.
- */
-
-package net.shibboleth.utilities.java.support.primitive;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
-import net.shibboleth.utilities.java.support.logic.Constraint;
-
-/**
- * An object that represents a string containing a {@link java.util.Formatter} string and a set of values. When
- * {@link #toString()} is called the format string is filled in with the given values. This allows for lazy evaluation
- * of the value objects formatting function which may be expensive.
- */
-public class LazilyFormattedString {
-
-    /** The template that is filled in with the values. */
-    private final String template;
-
-    /** The values that are filled in to the template string. */
-    private final Object[] arguments;
-
-    /**
-     * Constructor.
-     * 
-     * @param stringTemplate the {@link java.util.Formatter} template string
-     * @param templateArguments the arguments to the template
-     */
-    public LazilyFormattedString(@Nonnull final String stringTemplate, @Nullable final Object... templateArguments) {
-        template = Constraint.isNotNull(stringTemplate, "String template can not be null");
-        arguments = templateArguments;
-    }
-
-    /** {@inheritDoc} */
-    @Override
-    public String toString() {
-        return String.format(template, arguments);
-    }
-    
-}
\ No newline at end of file
diff --git a/shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/StringSupport.java b/shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/StringSupport.java
index 4c955c56..11f6eaf4 100644
--- a/shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/StringSupport.java
+++ b/shib-support/src/main/java/net/shibboleth/utilities/java/support/primitive/StringSupport.java
@@ -17,29 +17,27 @@
 
 package net.shibboleth.utilities.java.support.primitive;
 
-import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.nio.charset.Charset;
 import java.nio.charset.CharsetDecoder;
-import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
 import java.util.List;
 import java.util.StringTokenizer;
-import java.util.stream.Collectors;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
 import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NullableElements;
-import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.logic.ConstraintViolationException;
+import net.shibboleth.shared.primitive.DeprecationSupport;
+import net.shibboleth.shared.primitive.DeprecationSupport.ObjectType;
 
-/** String utility methods. */
+/**
+ * Legacy stub for {@link net.shibboleth.shared.primitive.StringSupport}.
+ * 
+ * @deprecated
+ */
+ at Deprecated(since="9.0.0", forRemoval=true)
 public final class StringSupport {
 
     /** Constructor. */
@@ -58,20 +56,10 @@ public final class StringSupport {
      */
     @Nonnull public static String inputStreamToString(@Nonnull final InputStream input,
             @Nullable final CharsetDecoder decoder) throws IOException {
-        CharsetDecoder charsetDecoder = decoder;
-        if (decoder == null) {
-            charsetDecoder = Charset.defaultCharset().newDecoder();
-        }
-
-        try (final BufferedReader reader = new BufferedReader(new InputStreamReader(input, charsetDecoder))) {
-            final StringBuilder stringBuffer = new StringBuilder();
-            String line = reader.readLine();
-            while (line != null) {
-                stringBuffer.append(line).append("\n");
-                line = reader.readLine();
-            }
-            return stringBuffer.toString();
-        }
+        DeprecationSupport.warn(ObjectType.CLASS, StringSupport.class.getName(), null,
+                net.shibboleth.shared.primitive.StringSupport.class.getName());
+        
+        return net.shibboleth.shared.primitive.StringSupport.inputStreamToString(input, decoder);
     }
 
     /**
@@ -83,19 +71,10 @@ public final class StringSupport {
      * @return delimited string of values
      */
     @Nonnull public static String listToStringValue(@Nonnull final List<?> values, @Nonnull final String delimiter) {
-        Constraint.isNotNull(values, "List of values can not be null");
-        Constraint.isNotNull(delimiter, "String delimiter may not be null");
-
-        final StringBuilder stringValue = new StringBuilder();
-        final Iterator<?> valueItr = values.iterator();
-        while (valueItr.hasNext()) {
-            stringValue.append(valueItr.next());
-            if (valueItr.hasNext()) {
-                stringValue.append(delimiter);
-            }
-        }
-
-        return stringValue.toString();
+        DeprecationSupport.warn(ObjectType.CLASS, StringSupport.class.getName(), null,
+                net.shibboleth.shared.primitive.StringSupport.class.getName());
+
+        return net.shibboleth.shared.primitive.StringSupport.listToStringValue(values, delimiter);
     }
 
     /**
@@ -109,23 +88,10 @@ public final class StringSupport {
      * @return the list of values or an empty list if the given string is empty
      */
     @Nonnull public static List<String> stringToList(@Nonnull final String string, @Nonnull final String delimiter) {
-        Constraint.isNotNull(string, "String data can not be null");
-        Constraint.isNotNull(delimiter, "String delimiter may not be null");
-
-        final ArrayList<String> values = new ArrayList<>();
-
-        final String trimmedString = trimOrNull(string);
-        if (trimmedString != null) {
-            final StringTokenizer tokens = new StringTokenizer(trimmedString, delimiter);
-            while (tokens.hasMoreTokens()) {
-                values.add(tokens.nextToken());
-            }
-            if (string.endsWith(delimiter)) {
-                values.add("");
-            }
-        }
-
-        return values;
+        DeprecationSupport.warn(ObjectType.CLASS, StringSupport.class.getName(), null,
+                net.shibboleth.shared.primitive.StringSupport.class.getName());
+        
+        return net.shibboleth.shared.primitive.StringSupport.stringToList(string, delimiter);
     }
 
     /**
@@ -136,11 +102,10 @@ public final class StringSupport {
      * @return the trimmed string or null if the given string was null
      */
     @Nullable public static String trim(@Nullable final String s) {
-        if (s == null) {
-            return null;
-        }
+        DeprecationSupport.warn(ObjectType.CLASS, StringSupport.class.getName(), null,
+                net.shibboleth.shared.primitive.StringSupport.class.getName());
 
-        return s.trim();
+        return net.shibboleth.shared.primitive.StringSupport.trim(s);
     }
 
     /**
@@ -151,12 +116,10 @@ public final class StringSupport {
      * @return the trimmed string or null if the given string was null or the trimmed string was empty
      */
     @Nullable public static String trimOrNull(@Nullable final String s) {
-        final String temp = trim(s);
-        if (temp == null || temp.length() == 0) {
-            return null;
-        }
+        DeprecationSupport.warn(ObjectType.CLASS, StringSupport.class.getName(), null,
+                net.shibboleth.shared.primitive.StringSupport.class.getName());
 
-        return temp;
+        return net.shibboleth.shared.primitive.StringSupport.trimOrNull(s);
     }
     
     /**
@@ -172,11 +135,10 @@ public final class StringSupport {
      */
     @Nonnull @NonnullElements public static Collection<String> normalizeStringCollection(
             @Nullable @NullableElements final Collection<String> values) {
-        if (values == null) {
-            return Collections.emptyList();
-        }
-        
-        return values.stream().map(StringSupport::trimOrNull).filter(e->e != null).collect(Collectors.toList());
+        DeprecationSupport.warn(ObjectType.CLASS, StringSupport.class.getName(), null,
+                net.shibboleth.shared.primitive.StringSupport.class.getName());
+
+        return net.shibboleth.shared.primitive.StringSupport.normalizeStringCollection(values);
     }
 
     /** Null/empty preserving conversion from xs:boolean to {@link Boolean}.
@@ -184,19 +146,10 @@ public final class StringSupport {
      * @return null or the boolean equivalent.
      */
     @Nullable public static Boolean booleanOf(final String what) {
-        final String trimmed = trimOrNull(what);
-        if (trimmed == null) {
-            return null;
-        }
-        if ("1".equals(what)) {
-            return true;
-        } else if ("0".equals(what)) {
-            return false;
-        } else if ("true".equals(what)) {
-            return true;
-        } else if ("false".equals(what)) {
-            return false;
-        }
-        throw new ConstraintViolationException("XML Booleans must be 0/1/true/false");
+        DeprecationSupport.warn(ObjectType.CLASS, StringSupport.class.getName(), null,
+                net.shibboleth.shared.primitive.StringSupport.class.getName());
+
+        return net.shibboleth.shared.primitive.StringSupport.booleanOf(what);
     }
-}
+    
+}
\ No newline at end of file
diff --git a/shib-support/src/test/java/net/shibboleth/utilities/java/support/primitive/ObjectSupportTest.java b/shib-support/src/test/java/net/shibboleth/shared/primitive/ObjectSupportTest.java
similarity index 51%
rename from shib-support/src/test/java/net/shibboleth/utilities/java/support/primitive/ObjectSupportTest.java
rename to shib-support/src/test/java/net/shibboleth/shared/primitive/ObjectSupportTest.java
index e5b47a25..e36278c2 100644
--- a/shib-support/src/test/java/net/shibboleth/utilities/java/support/primitive/ObjectSupportTest.java
+++ b/shib-support/src/test/java/net/shibboleth/shared/primitive/ObjectSupportTest.java
@@ -15,13 +15,11 @@
  * limitations under the License.
  */
 
-package net.shibboleth.utilities.java.support.primitive;
+package net.shibboleth.shared.primitive;
 
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import com.google.common.base.Objects;
-
 /**
  * Test for the remaining method in {@link ObjectSupport}
  */
@@ -41,45 +39,4 @@ public class ObjectSupportTest {
        Assert.assertNull(ObjectSupport.firstNonNull());
     }
 
-    @SuppressWarnings("removal")
-    @Test public void testHashCode() {
-        ComplexClass c1 = new ComplexClass(Integer.valueOf(1), Double.valueOf(3.4), "String!");
-        ComplexClass c2 = new ComplexClass("String3", Integer.valueOf(1243), Boolean.valueOf(false));
-
-        Assert.assertEquals(ObjectSupport.hashCode(null), 0, "Hashcode of null is 0");
-        Assert.assertEquals(ObjectSupport.hashCode(c1), c1.hashCode(),
-                "Hashcode of should be the same no matter how called");
-        Assert.assertEquals(ObjectSupport.hashCode(c2), c2.hashCode(),
-                "Hashcode of should be the same no matter how called");
-        Assert.assertNotSame(ObjectSupport.hashCode(c1), ObjectSupport.hashCode(c2),
-                "Hashcode of different objects should differ");
-        Assert.assertEquals(c2.getHashCalls(), 3, "Hashcode should have been called three times");
-
-    }
-
-    private class ComplexClass {
-
-        private Object object1;
-
-        private Object object2;
-
-        private Object object3;
-
-        private int hashCalls;
-
-        public int getHashCalls() {
-            return hashCalls;
-        }
-
-        ComplexClass(Object o1, Object o2, Object o3) {
-            object1 = o1;
-            object2 = o2;
-            object3 = o3;
-        }
-
-        public int hashCode() {
-            hashCalls++;
-            return Objects.hashCode(object1, object2, object3);
-        }
-    }
 }
diff --git a/shib-support/src/test/java/net/shibboleth/utilities/java/support/primitive/StringSupportTest.java b/shib-support/src/test/java/net/shibboleth/shared/primitive/StringSupportTest.java
similarity index 98%
rename from shib-support/src/test/java/net/shibboleth/utilities/java/support/primitive/StringSupportTest.java
rename to shib-support/src/test/java/net/shibboleth/shared/primitive/StringSupportTest.java
index 6576fef3..0837fb49 100644
--- a/shib-support/src/test/java/net/shibboleth/utilities/java/support/primitive/StringSupportTest.java
+++ b/shib-support/src/test/java/net/shibboleth/shared/primitive/StringSupportTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.utilities.java.support.primitive;
+package net.shibboleth.shared.primitive;
 
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertFalse;
@@ -55,7 +55,7 @@ public class StringSupportTest {
 
     @Test public void testInputStreamToString() throws IOException {
         String str = null;
-        try (final InputStream stream = getClass().getResourceAsStream("/net/shibboleth/utilities/java/support/primitive/data.txt")) {
+        try (final InputStream stream = getClass().getResourceAsStream("/net/shibboleth/shared/primitive/data.txt")) {
             str = StringSupport.inputStreamToString(stream, null);
         }
         assertNotNull(str);
diff --git a/shib-support/src/test/java/net/shibboleth/utilities/java/support/primitive/TimerSupportTest.java b/shib-support/src/test/java/net/shibboleth/shared/primitive/TimerSupportTest.java
similarity index 98%
rename from shib-support/src/test/java/net/shibboleth/utilities/java/support/primitive/TimerSupportTest.java
rename to shib-support/src/test/java/net/shibboleth/shared/primitive/TimerSupportTest.java
index 03ffabb8..731368ea 100644
--- a/shib-support/src/test/java/net/shibboleth/utilities/java/support/primitive/TimerSupportTest.java
+++ b/shib-support/src/test/java/net/shibboleth/shared/primitive/TimerSupportTest.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package net.shibboleth.utilities.java.support.primitive;
+package net.shibboleth.shared.primitive;
 
 import org.testng.Assert;
 import org.testng.annotations.Test;
diff --git a/shib-support/src/test/java/net/shibboleth/shared/xml/ElementSupportTest.java b/shib-support/src/test/java/net/shibboleth/shared/xml/ElementSupportTest.java
index 88c85101..116f70e5 100644
--- a/shib-support/src/test/java/net/shibboleth/shared/xml/ElementSupportTest.java
+++ b/shib-support/src/test/java/net/shibboleth/shared/xml/ElementSupportTest.java
@@ -29,9 +29,9 @@ import javax.xml.parsers.DocumentBuilder;
 
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.shared.xml.impl.BasicParserPool;
 import net.shibboleth.utilities.java.support.logic.ConstraintViolationException;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 import org.testng.Assert;
 import org.testng.annotations.BeforeClass;
diff --git a/shib-support/src/test/java/net/shibboleth/utilities/java/support/primitive/LazilyFormattedStringTest.java b/shib-support/src/test/java/net/shibboleth/utilities/java/support/primitive/LazilyFormattedStringTest.java
deleted file mode 100644
index a02f3beb..00000000
--- a/shib-support/src/test/java/net/shibboleth/utilities/java/support/primitive/LazilyFormattedStringTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements.  See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID 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.
- */
-
-package net.shibboleth.utilities.java.support.primitive;
-
-import java.util.Formatter;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-/** Test for {@link LazilyFormattedString}. */
-public class LazilyFormattedStringTest {
-
-    private final static String FORMAT = "%d--%o++%x";
-
-    @Test public void testFormat() {
-        try (final Formatter formatter = new Formatter()) {
-            final Object value = Integer.valueOf(1234567);
-            formatter.format(FORMAT, value, value, value);
-            final LazilyFormattedString testString = new LazilyFormattedString(FORMAT, value, value, value);
-    
-            Assert.assertEquals(testString.toString(), formatter.out().toString(),
-                    "Should be the same result regardless of whether lazily or actively formatted");
-        }
-    }
-
-    @Test public void testNullFormat() {
-        try (final Formatter formatter = new Formatter()) {
-            final Object value = Integer.valueOf(78654321);
-            formatter.format(FORMAT, null, value, null, value);
-            final LazilyFormattedString testString = new LazilyFormattedString(FORMAT, null, value, null, value);
-    
-            Assert.assertEquals(testString.toString(), formatter.out().toString(),
-                    "Should be the same result regardless of whether lazily or actively formatted");
-        }
-    }
-}
\ No newline at end of file
diff --git a/shib-support/src/test/resources/net/shibboleth/utilities/java/support/primitive/data.txt b/shib-support/src/test/resources/net/shibboleth/shared/primitive/data.txt
similarity index 100%
rename from shib-support/src/test/resources/net/shibboleth/utilities/java/support/primitive/data.txt
rename to shib-support/src/test/resources/net/shibboleth/shared/primitive/data.txt
diff --git a/shib-testing/src/main/java/net/shibboleth/shared/testing/DatabaseTestingSupport.java b/shib-testing/src/main/java/net/shibboleth/shared/testing/DatabaseTestingSupport.java
index 82f17234..02dce549 100644
--- a/shib-testing/src/main/java/net/shibboleth/shared/testing/DatabaseTestingSupport.java
+++ b/shib-testing/src/main/java/net/shibboleth/shared/testing/DatabaseTestingSupport.java
@@ -28,14 +28,14 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import javax.sql.DataSource;
 
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-
 import org.hsqldb.jdbc.JDBCDataSource;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.common.io.CharStreams;
 
+import net.shibboleth.shared.primitive.StringSupport;
+
 /**
  * Helper class for testing database-backed classes using custom DDL and SQL.
  */
diff --git a/shib-testing/src/main/java/net/shibboleth/shared/testing/RepositorySupport.java b/shib-testing/src/main/java/net/shibboleth/shared/testing/RepositorySupport.java
index 2c955ab3..75d7e319 100644
--- a/shib-testing/src/main/java/net/shibboleth/shared/testing/RepositorySupport.java
+++ b/shib-testing/src/main/java/net/shibboleth/shared/testing/RepositorySupport.java
@@ -20,8 +20,8 @@ package net.shibboleth.shared.testing;
 import javax.annotation.Nonnull;
 
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 /**
  * Support class for working with the project version control repository.
diff --git a/shib-velocity/src/main/java/net/shibboleth/shared/velocity/Template.java b/shib-velocity/src/main/java/net/shibboleth/shared/velocity/Template.java
index 91b04ab4..d8a31a87 100644
--- a/shib-velocity/src/main/java/net/shibboleth/shared/velocity/Template.java
+++ b/shib-velocity/src/main/java/net/shibboleth/shared/velocity/Template.java
@@ -26,8 +26,8 @@ import java.util.UUID;
 import javax.annotation.Nonnull;
 
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
 import org.apache.velocity.app.VelocityEngine;
 import org.apache.velocity.context.Context;

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


More information about the commits mailing list