[java-shib-attribute] 02/03: JSPT-98 Integrate lifecycle checking methods in base classes

Rod Widdowson rdw at steadingsoftware.com
Tue Jul 12 14:58:44 UTC 2022


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

rdw pushed a commit to branch dev/JSPT-98
in repository java-shib-attribute.

View the commit online:
http://git.shibboleth.net/view/?p=java-shib-attribute.git;a=commit;h=222f1e44974729e5a5778c37683512f1433a7c72

commit 222f1e44974729e5a5778c37683512f1433a7c72
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Fri Jul 1 11:56:21 2022 +0100

    JSPT-98 Integrate lifecycle checking methods in base classes
    
            https://shibboleth.atlassian.net/browse/JSPT-98
    
            Stop using ComponentSupport and use the appropriate methods instead:
    
                shib-attribute-filter-api shib-attribute-filter-impl
---
 .../attribute/filter/AttributeFilterPolicy.java    |  4 +--
 .../idp/attribute/filter/AttributeRule.java        | 25 ++++++--------
 .../idp/attribute/filter/BaseBridgingClass.java    |  9 +++--
 .../filter/AttributeValueFilterPolicyTest.java     |  2 +-
 .../attribute/filter/impl/AttributeFilterImpl.java |  4 +--
 .../matcher/impl/AbstractRegexpStringMatcher.java  |  2 +-
 .../logic/impl/AbstractComposedMatcher.java        |  5 ++-
 .../filter/matcher/logic/impl/AndMatcher.java      | 12 +++----
 .../filter/matcher/logic/impl/NotMatcher.java      |  8 ++---
 .../filter/matcher/logic/impl/OrMatcher.java       |  4 +--
 .../saml/impl/AttributeInMetadataMatcher.java      | 13 ++++----
 .../impl/AttributeIssuerPolicyRule.java            |  9 +++--
 .../impl/AttributeIssuerRegexpPolicyRule.java      |  9 +++--
 .../impl/AttributeRequesterPolicyRule.java         |  9 +++--
 .../impl/AttributeRequesterRegexpPolicyRule.java   |  9 +++--
 .../impl/NumOfAttributeValuesPolicyRule.java       |  5 ++-
 .../impl/PrincipalNamePolicyRule.java              |  9 +++--
 .../impl/PrincipalNameRegexpPolicyRule.java        |  9 +++--
 .../impl/ProxiedRequesterPolicyRule.java           |  9 +++--
 .../impl/ProxiedRequesterRegexpPolicyRule.java     |  9 +++--
 .../policyrule/impl/AbstractRegexpPolicyRule.java  |  5 ++-
 .../policyrule/impl/AbstractStringPolicyRule.java  |  3 +-
 .../logic/impl/AbstractComposedPolicyRule.java     |  3 +-
 .../policyrule/logic/impl/AndPolicyRule.java       |  3 +-
 .../policyrule/logic/impl/NotPolicyRule.java       |  7 ++--
 .../filter/policyrule/logic/impl/OrPolicyRule.java |  3 +-
 .../impl/AbstractEntityAttributePolicyRule.java    | 39 +++++++++++-----------
 .../saml/impl/AbstractEntityGroupPolicyRule.java   | 15 ++++-----
 .../impl/AbstractNameIDFormatExactPolicyRule.java  | 15 ++++-----
 .../impl/UntargettedAttributeValueFilterTest.java  | 13 ++++----
 30 files changed, 120 insertions(+), 151 deletions(-)

diff --git a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeFilterPolicy.java b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeFilterPolicy.java
index 4f378d2fd..e0209e00f 100644
--- a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeFilterPolicy.java
+++ b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeFilterPolicy.java
@@ -38,7 +38,6 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
 import net.shibboleth.utilities.java.support.component.AbstractIdentifiedInitializableComponent;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.component.UnmodifiableComponent;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 
@@ -140,8 +139,7 @@ public final class AttributeFilterPolicy extends AbstractIdentifiedInitializable
      *             request
      */
     public void apply(@Nonnull final AttributeFilterContext filterContext) throws AttributeFilterException {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
-        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+        throwComponentStateExceptions();
 
         Constraint.isNotNull(filterContext, "Attribute filter context can not be null");
 
diff --git a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeRule.java b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeRule.java
index 8969070e0..1d9d97486 100644
--- a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeRule.java
+++ b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeRule.java
@@ -23,6 +23,9 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import javax.annotation.concurrent.ThreadSafe;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import net.shibboleth.idp.attribute.IdPAttribute;
 import net.shibboleth.idp.attribute.IdPAttributeValue;
 import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
@@ -31,14 +34,10 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterI
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.component.UnmodifiableComponent;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 // Checkstyle: Javadoc OFF
 // See https://github.com/checkstyle/checkstyle/issues/3351
 /**
@@ -100,7 +99,7 @@ public final class AttributeRule extends AbstractIdentifiableInitializableCompon
      * @return ID of the attribute to which this rule applies
      */
     @NonnullAfterInit public String getAttributeId() {
-        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+        ifDestroyedThrowDestroyedComponentException();
         return attributeId;
     }
 
@@ -112,8 +111,7 @@ public final class AttributeRule extends AbstractIdentifiableInitializableCompon
      * @param id ID of the attribute to which this rule applies
      */
     public void setAttributeId(@Nonnull @NotEmpty final String id) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+        throwSetterPreconditionExceptions();
 
         attributeId = StringSupport.trimOrNull(id);
     }
@@ -124,7 +122,7 @@ public final class AttributeRule extends AbstractIdentifiableInitializableCompon
      * @return matcher used to determine the attribute values filtered by this rule
      */
     @Nullable public Matcher getMatcher() {
-        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+        ifDestroyedThrowDestroyedComponentException();
         return matcher;
     }
 
@@ -134,8 +132,7 @@ public final class AttributeRule extends AbstractIdentifiableInitializableCompon
      * @param theMatcher matcher used to determine permitted attribute values filtered by this rule
      */
     public void setMatcher(@Nonnull final Matcher theMatcher) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+        throwSetterPreconditionExceptions();
 
         matcher = Constraint.isNotNull(theMatcher, "Rule can not be null");
     }
@@ -146,7 +143,7 @@ public final class AttributeRule extends AbstractIdentifiableInitializableCompon
      * @return whether the rule is a deny rule or not.
      */
     public boolean getIsDenyRule() {
-        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+        ifDestroyedThrowDestroyedComponentException();
         return isDenyRule;
     }
 
@@ -156,8 +153,7 @@ public final class AttributeRule extends AbstractIdentifiableInitializableCompon
      * @param isDeny - whether the rule is deny or not.
      */
     public void setIsDenyRule(final boolean isDeny) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+        throwSetterPreconditionExceptions();
 
         isDenyRule = isDeny;
     }
@@ -170,8 +166,7 @@ public final class AttributeRule extends AbstractIdentifiableInitializableCompon
      * 
      */
     public void apply(@Nonnull final IdPAttribute attribute, @Nonnull final AttributeFilterContext filterContext) {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
-        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+        throwComponentStateExceptions();
 
         Constraint.isNotNull(attribute, "To-be-filtered attribute can not be null");
         Constraint.isNotNull(filterContext, "Attribute filter context can not be null");
diff --git a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/BaseBridgingClass.java b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/BaseBridgingClass.java
index eff4168c0..abcef0fe7 100644
--- a/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/BaseBridgingClass.java
+++ b/shib-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/BaseBridgingClass.java
@@ -25,6 +25,7 @@ import net.shibboleth.utilities.java.support.component.ComponentInitializationEx
 import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.component.DestructableComponent;
 import net.shibboleth.utilities.java.support.component.IdentifiableComponent;
+import net.shibboleth.utilities.java.support.component.InitializableComponent;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 
 /**
@@ -54,14 +55,18 @@ public abstract class BaseBridgingClass extends AbstractIdentifiableInitializabl
     /** {@inheritDoc} */
     @Override
     protected void doDestroy() {
-        ComponentSupport.destroy(bridgedObject);
+        if (bridgedObject instanceof DestructableComponent) {
+            ((DestructableComponent) bridgedObject).destroy();
+        }
         super.doDestroy();
     }
 
     /** {@inheritDoc} */
     @Override
     protected void doInitialize() throws ComponentInitializationException {
-        ComponentSupport.initialize(bridgedObject);
+        if (bridgedObject instanceof InitializableComponent) {
+            ((InitializableComponent)bridgedObject).initialize();
+        }
         super.doInitialize();
         logPrefix = null;
     }
diff --git a/shib-attribute-filter-api/src/test/java/net/shibboleth/idp/attribute/filter/AttributeValueFilterPolicyTest.java b/shib-attribute-filter-api/src/test/java/net/shibboleth/idp/attribute/filter/AttributeValueFilterPolicyTest.java
index bd53a2ac6..5a5343025 100644
--- a/shib-attribute-filter-api/src/test/java/net/shibboleth/idp/attribute/filter/AttributeValueFilterPolicyTest.java
+++ b/shib-attribute-filter-api/src/test/java/net/shibboleth/idp/attribute/filter/AttributeValueFilterPolicyTest.java
@@ -179,7 +179,7 @@ public class AttributeValueFilterPolicyTest {
         thrown = false;
         try {
             policy.setMatcher(Matcher.MATCHES_NONE);
-        } catch (UnmodifiableComponentException e) {
+        } catch (final UnmodifiableComponentException | DestroyedComponentException e) {
             thrown = true;
         }
         Assert.assertTrue(thrown, "setMatchingPermittedValues after destroy");
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java
index 33afbd089..b8a7e7168 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java
@@ -44,7 +44,6 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElemen
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 
 /** Service that filters out attributes and values based upon loaded policies. */
@@ -97,8 +96,7 @@ public class AttributeFilterImpl extends AbstractServiceableComponent<AttributeF
      */
     @Override public void filterAttributes(@Nonnull final AttributeFilterContext filterContext)
             throws AttributeFilterException {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
-        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+        throwComponentStateExceptions();
 
         Constraint.isNotNull(filterContext, "Attribute filter context can not be null");
         
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractRegexpStringMatcher.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractRegexpStringMatcher.java
index 87186c9bd..a988995de 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractRegexpStringMatcher.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractRegexpStringMatcher.java
@@ -51,7 +51,7 @@ public abstract class AbstractRegexpStringMatcher extends AbstractMatcher {
      * @param thePattern the pattern to match
      */
     public void setPattern(@Nonnull final Pattern thePattern) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         pattern = Constraint.isNotNull(thePattern, "Pattern supplied to setPattern but not be null");
     }
 
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AbstractComposedMatcher.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AbstractComposedMatcher.java
index a203c792f..3e6007d1b 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AbstractComposedMatcher.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AbstractComposedMatcher.java
@@ -29,7 +29,6 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElemen
 import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
 import net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.component.UnmodifiableComponent;
 
 /**
@@ -47,8 +46,8 @@ public abstract class AbstractComposedMatcher extends AbstractIdentifiableInitia
      * @param composedMatchers the matchers to be composed.
      */
     public void setSubsidiaries(@Nullable @NonnullElements final List<Matcher> composedMatchers) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-        
+        throwSetterPreconditionExceptions();
+
         if (composedMatchers != null) {
             matchers = List.copyOf(composedMatchers);
         } else {
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AndMatcher.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AndMatcher.java
index 7f7b2700f..f9aa5be17 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AndMatcher.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AndMatcher.java
@@ -18,8 +18,8 @@
 package net.shibboleth.idp.attribute.filter.matcher.logic.impl;
 
 import java.util.Collections;
-import java.util.LinkedHashSet;
 import java.util.Iterator;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
 
@@ -27,17 +27,16 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import javax.annotation.concurrent.ThreadSafe;
 
+import com.google.common.base.MoreObjects;
+
 import net.shibboleth.idp.attribute.IdPAttribute;
 import net.shibboleth.idp.attribute.IdPAttributeValue;
 import net.shibboleth.idp.attribute.filter.Matcher;
 import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 
-import com.google.common.base.MoreObjects;
-
 /**
  * {@link Matcher} that implements the conjunction of matchers. That is, a given attribute value is considered to have
  * matched if, and only if, it is returned by every composed {@link Matcher}. If any of the matchers fail then 
@@ -57,12 +56,11 @@ public class AndMatcher extends AbstractComposedMatcher {
             @Nonnull final AttributeFilterContext filterContext) {
         Constraint.isNotNull(attribute, "Attribute to be filtered can not be null");
         Constraint.isNotNull(filterContext, "Attribute filter context can not be null");
-
+        
         // Capture the matchers to avoid race with setComposedMatchers
         // Do this before the test on destruction to avoid race with destroy code
         final List<Matcher> currentMatchers = getComposedMatchers();
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
-        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+        throwComponentStateExceptions();
 
         final Iterator<Matcher> matcherItr = currentMatchers.iterator();
 
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/NotMatcher.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/NotMatcher.java
index f900b80d6..3a6d7c7f5 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/NotMatcher.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/NotMatcher.java
@@ -25,6 +25,8 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import javax.annotation.concurrent.ThreadSafe;
 
+import com.google.common.base.MoreObjects;
+
 import net.shibboleth.idp.attribute.IdPAttribute;
 import net.shibboleth.idp.attribute.IdPAttributeValue;
 import net.shibboleth.idp.attribute.filter.Matcher;
@@ -33,11 +35,8 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterI
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
 import net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 
-import com.google.common.base.MoreObjects;
-
 /**
  * {@link Matcher} that implements the negation of a matcher.
  * 
@@ -82,8 +81,7 @@ public final class NotMatcher extends AbstractIdentifiableInitializableComponent
         // Capture the matchers to avoid race with setComposedMatchers
         // Do this before the test on destruction to avoid race with destroy code
         final Matcher currentMatcher = getNegatedMatcher();
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
-        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+        throwComponentStateExceptions();
 
         final Set<IdPAttributeValue> attributeValues = new LinkedHashSet<>(attribute.getValues());
 
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/OrMatcher.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/OrMatcher.java
index faa64a500..811d7943b 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/OrMatcher.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/OrMatcher.java
@@ -32,7 +32,6 @@ import net.shibboleth.idp.attribute.filter.Matcher;
 import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 
 /**
@@ -53,8 +52,7 @@ public class OrMatcher extends AbstractComposedMatcher {
         // Capture the matchers to avoid race with setComposedMatchers
         // Do this before the test on destruction to avoid race with destroy code
         final List<Matcher> currentMatchers = getComposedMatchers();
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
-        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+        throwComponentStateExceptions();
 
         final Set<IdPAttributeValue> matchingValues = new LinkedHashSet<>();
         for (final Matcher matchFunctor : currentMatchers) {
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeInMetadataMatcher.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeInMetadataMatcher.java
index 536c0e71a..5d163cc71 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeInMetadataMatcher.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeInMetadataMatcher.java
@@ -58,7 +58,6 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElemen
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
 import net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.xml.DOMTypeSupport;
 
@@ -102,7 +101,7 @@ public class AttributeInMetadataMatcher extends AbstractIdentifiableInitializabl
      * @param flag whether optionally requested attributes should be matched
      */
     public void setOnlyIfRequired(final boolean flag) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         onlyIfRequired = flag;
     }
 
@@ -121,7 +120,7 @@ public class AttributeInMetadataMatcher extends AbstractIdentifiableInitializabl
      * @param flag whether to match if the metadata contains no AttributeConsumingService
      */
     public void setMatchIfMetadataSilent(final boolean flag) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         matchIfMetadataSilent = flag;
     }
 
@@ -144,7 +143,7 @@ public class AttributeInMetadataMatcher extends AbstractIdentifiableInitializabl
      * @param name the Name to look for
      */
     public void setAttributeName(@Nullable @NotEmpty final String name) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         
         attributeName = StringSupport.trimOrNull(name);
     }
@@ -168,7 +167,7 @@ public class AttributeInMetadataMatcher extends AbstractIdentifiableInitializabl
      * @param format the NameFormat to look for
      */
     public void setAttributeNameFormat(@Nullable @NotEmpty final String format) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         
         attributeNameFormat = StringSupport.trimOrNull(format);
         if (attributeNameFormat != null && Attribute.UNSPECIFIED.equals(attributeNameFormat)) {
@@ -180,8 +179,8 @@ public class AttributeInMetadataMatcher extends AbstractIdentifiableInitializabl
     /** {@inheritDoc} */
     @Override @Nonnull public Set<IdPAttributeValue> getMatchingValues(@Nonnull final IdPAttribute attribute,
             @Nonnull final AttributeFilterContext filterContext) {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
-        
+        throwComponentStateExceptions();
+
         final AttributeConsumingService service = getAttributeConsumingService(filterContext);
     
         if (null == service) {
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerPolicyRule.java
index f612f56b1..cd28d4c01 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerPolicyRule.java
@@ -19,13 +19,12 @@ package net.shibboleth.idp.attribute.filter.policyrule.filtercontext.impl;
 
 import javax.annotation.Nonnull;
 
-import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
-import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractStringPolicyRule;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
+import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractStringPolicyRule;
+
 /**
  * Compare the attribute issuer's entity ID for this resolution with the provided name.
  */
@@ -44,7 +43,7 @@ public class AttributeIssuerPolicyRule extends AbstractStringPolicyRule {
      */
     @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
 
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
 
         final String issuer = filterContext.getAttributeIssuerID();
         if (null == issuer) {
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerRegexpPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerRegexpPolicyRule.java
index 045d83c40..6ed66df6c 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerRegexpPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeIssuerRegexpPolicyRule.java
@@ -19,13 +19,12 @@ package net.shibboleth.idp.attribute.filter.policyrule.filtercontext.impl;
 
 import javax.annotation.Nonnull;
 
-import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
-import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractRegexpPolicyRule;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
+import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractRegexpPolicyRule;
+
 /**
  * Compare the attribute issuer's entity ID for this resolution with the provided regexp.
  */
@@ -44,7 +43,7 @@ public class AttributeIssuerRegexpPolicyRule extends AbstractRegexpPolicyRule {
      */
     @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
 
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
 
         final String issuer = filterContext.getAttributeIssuerID();
         if (null == issuer) {
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterPolicyRule.java
index c9596c56b..943c28695 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterPolicyRule.java
@@ -19,13 +19,12 @@ package net.shibboleth.idp.attribute.filter.policyrule.filtercontext.impl;
 
 import javax.annotation.Nonnull;
 
-import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
-import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractStringPolicyRule;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
+import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractStringPolicyRule;
+
 /**
  * Compare the attribute requester's entity ID for this resolution with the provided name.
  */
@@ -44,7 +43,7 @@ public class AttributeRequesterPolicyRule extends AbstractStringPolicyRule {
      */
     @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
 
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
 
         final String requester = filterContext.getAttributeRecipientID();
         if (null == requester) {
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterRegexpPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterRegexpPolicyRule.java
index ecde2cd2f..0acbe9402 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterRegexpPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/AttributeRequesterRegexpPolicyRule.java
@@ -19,13 +19,12 @@ package net.shibboleth.idp.attribute.filter.policyrule.filtercontext.impl;
 
 import javax.annotation.Nonnull;
 
-import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
-import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractRegexpPolicyRule;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
+import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractRegexpPolicyRule;
+
 /**
  * Compare the attribute requester's entity ID for this resolution with the provided regexp.
  */
@@ -44,7 +43,7 @@ public class AttributeRequesterRegexpPolicyRule extends AbstractRegexpPolicyRule
      */
     @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
 
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
 
         final String requester = filterContext.getAttributeRecipientID();
         if (null == requester) {
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/NumOfAttributeValuesPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/NumOfAttributeValuesPolicyRule.java
index d580a3a2e..45ad71502 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/NumOfAttributeValuesPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/NumOfAttributeValuesPolicyRule.java
@@ -28,7 +28,6 @@ import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractPolicyRule;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
@@ -74,7 +73,7 @@ public class NumOfAttributeValuesPolicyRule extends AbstractPolicyRule {
     /** {@inheritDoc} */
     @Override
     @Nonnull public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
         
         final IdPAttribute attribute = filterContext.getPrefilteredIdPAttributes().get(attributeId);
         
@@ -84,7 +83,7 @@ public class NumOfAttributeValuesPolicyRule extends AbstractPolicyRule {
         }
         
         final int numOfValues = attribute.getValues().size();
-        final boolean result = (numOfValues >= minimumValues) && (numOfValues <= maximumValues);
+        final boolean result = numOfValues >= minimumValues && numOfValues <= maximumValues;
         log.debug("{} Attribute {} has {} values, returning {}", getLogPrefix(), attributeId, numOfValues, result);
         
         if (result) {
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNamePolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNamePolicyRule.java
index 7fe744ae6..745a5014a 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNamePolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNamePolicyRule.java
@@ -19,13 +19,12 @@ package net.shibboleth.idp.attribute.filter.policyrule.filtercontext.impl;
 
 import javax.annotation.Nonnull;
 
-import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
-import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractStringPolicyRule;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
+import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractStringPolicyRule;
+
 /**
  * Compare the principal name for this resolution with the provided string.
  */
@@ -44,7 +43,7 @@ public class PrincipalNamePolicyRule extends AbstractStringPolicyRule {
      */
     @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
 
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
 
         final String principal = filterContext.getPrincipal();
 
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNameRegexpPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNameRegexpPolicyRule.java
index 721560f78..5b50a4f3c 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNameRegexpPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/PrincipalNameRegexpPolicyRule.java
@@ -19,13 +19,12 @@ package net.shibboleth.idp.attribute.filter.policyrule.filtercontext.impl;
 
 import javax.annotation.Nonnull;
 
-import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
-import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractRegexpPolicyRule;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
+import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractRegexpPolicyRule;
+
 /**
  * Compare the principal name for this resolution with the provided regexp.
  */
@@ -42,7 +41,7 @@ public class PrincipalNameRegexpPolicyRule extends AbstractRegexpPolicyRule {
      */
     @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
 
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
 
         final String principal = filterContext.getPrincipal();
         if (null == principal) {
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterPolicyRule.java
index 54a02aaf6..f02075b9b 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterPolicyRule.java
@@ -19,14 +19,13 @@ package net.shibboleth.idp.attribute.filter.policyrule.filtercontext.impl;
 
 import javax.annotation.Nonnull;
 
-import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
-import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractStringPolicyRule;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-
 import org.opensaml.profile.context.ProxiedRequesterContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
+import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractStringPolicyRule;
+
 /**
  * Compare a proxied attribute requester's entity ID for this resolution with the provided name.
  * 
@@ -46,7 +45,7 @@ public class ProxiedRequesterPolicyRule extends AbstractStringPolicyRule {
      *         {@inheritDoc}
      */
     @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
 
         final ProxiedRequesterContext ctx = filterContext.getProxiedRequesterContext();
         if (null == ctx) {
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterRegexpPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterRegexpPolicyRule.java
index 63af1e9e1..5576028d6 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterRegexpPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/filtercontext/impl/ProxiedRequesterRegexpPolicyRule.java
@@ -19,14 +19,13 @@ package net.shibboleth.idp.attribute.filter.policyrule.filtercontext.impl;
 
 import javax.annotation.Nonnull;
 
-import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
-import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractRegexpPolicyRule;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-
 import org.opensaml.profile.context.ProxiedRequesterContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
+import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractRegexpPolicyRule;
+
 /**
  * Compare a proxied attribute requester's entity ID for this resolution with the provided regexp.
  * 
@@ -46,7 +45,7 @@ public class ProxiedRequesterRegexpPolicyRule extends AbstractRegexpPolicyRule {
      *         {@inheritDoc}
      */
     @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
 
         final ProxiedRequesterContext ctx = filterContext.getProxiedRequesterContext();
         if (null == ctx) {
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractRegexpPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractRegexpPolicyRule.java
index 2843c0e6a..b2559dd64 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractRegexpPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractRegexpPolicyRule.java
@@ -24,7 +24,6 @@ import javax.annotation.Nullable;
 
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 
 /**
@@ -50,7 +49,7 @@ public abstract class AbstractRegexpPolicyRule extends AbstractPolicyRule {
      * @param thePattern the pattern to match
      */
     public void setPattern(@Nonnull final Pattern thePattern) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         pattern = Constraint.isNotNull(thePattern, "Pattern supplied to setPattern but not be null");
     }
 
@@ -62,7 +61,7 @@ public abstract class AbstractRegexpPolicyRule extends AbstractPolicyRule {
      * @return true if the value matches the given match string, false if not
      */
     protected Tristate regexpCompare(@Nullable final String value) {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
 
         final boolean result;
         if (pattern == null || value == null) {
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractStringPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractStringPolicyRule.java
index 422df0530..2eaedae9e 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractStringPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractStringPolicyRule.java
@@ -20,7 +20,6 @@ package net.shibboleth.idp.attribute.filter.policyrule.impl;
 import javax.annotation.Nullable;
 
 import net.shibboleth.idp.attribute.filter.PolicyRequirementRule;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
 import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
 
@@ -101,7 +100,7 @@ public abstract class AbstractStringPolicyRule extends AbstractPolicyRule implem
      * @return true if the value matches the given match string, false if not
      */
     protected Tristate stringCompare(@Nullable final String value) {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
 
         final boolean result;
         if (value == null) {
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AbstractComposedPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AbstractComposedPolicyRule.java
index 58b98506f..aeaf662dd 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AbstractComposedPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AbstractComposedPolicyRule.java
@@ -31,7 +31,6 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElemen
 import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
 import net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.component.UnmodifiableComponent;
 
 /**
@@ -49,7 +48,7 @@ public abstract class AbstractComposedPolicyRule extends AbstractIdentifiableIni
      * @param theRules the rules to be composed.
      */
     public void setSubsidiaries(@Nullable @NonnullElements final List<PolicyRequirementRule> theRules) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         
         if (theRules != null) {
             rules = List.copyOf(theRules);
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AndPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AndPolicyRule.java
index eade53924..58475a5e5 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AndPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AndPolicyRule.java
@@ -25,7 +25,6 @@ import javax.annotation.concurrent.ThreadSafe;
 import net.shibboleth.idp.attribute.filter.PolicyRequirementRule;
 import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 
 /**
@@ -52,7 +51,7 @@ public class AndPolicyRule extends AbstractComposedPolicyRule {
     @Override
     public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
         Constraint.isNotNull(filterContext, "Attribute filter context can not be null");
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
 
         final List<PolicyRequirementRule> rules = getComposedRules();
         
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/NotPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/NotPolicyRule.java
index b8b7a46c0..461d0bf89 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/NotPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/NotPolicyRule.java
@@ -20,16 +20,15 @@ package net.shibboleth.idp.attribute.filter.policyrule.logic.impl;
 import javax.annotation.Nonnull;
 import javax.annotation.concurrent.ThreadSafe;
 
+import com.google.common.base.MoreObjects;
+
 import net.shibboleth.idp.attribute.filter.PolicyRequirementRule;
 import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 
-import com.google.common.base.MoreObjects;
-
 /**
  * {@link PolicyRequirementRule} that implements the negation of a matcher.
  * 
@@ -71,7 +70,7 @@ public final class NotPolicyRule extends AbstractIdentifiableInitializableCompon
     /** {@inheritDoc} */
     @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
         Constraint.isNotNull(filterContext, "Attribute filter context can not be null");
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
 
         final Tristate match = negatedRule.matches(filterContext);
         if (Tristate.FAIL == match) {
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/OrPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/OrPolicyRule.java
index 5c2432b7b..624a62242 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/OrPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/OrPolicyRule.java
@@ -25,7 +25,6 @@ import javax.annotation.concurrent.ThreadSafe;
 import net.shibboleth.idp.attribute.filter.PolicyRequirementRule;
 import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 
 /**
@@ -52,7 +51,7 @@ public class OrPolicyRule extends AbstractComposedPolicyRule {
     */
     @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
         Constraint.isNotNull(filterContext, "Attribute filter context can not be null");
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
 
         final List<PolicyRequirementRule> rules = getComposedRules();
         
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributePolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributePolicyRule.java
index 3fb70f734..20fa31b0b 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributePolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributePolicyRule.java
@@ -27,22 +27,6 @@ import java.util.stream.Collectors;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import net.shibboleth.idp.attribute.AttributesMapContainer;
-import net.shibboleth.idp.attribute.IdPAttribute;
-import net.shibboleth.idp.attribute.IdPAttributeValue;
-import net.shibboleth.idp.attribute.StringAttributeValue;
-import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
-import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractPolicyRule;
-import net.shibboleth.idp.saml.xmlobject.ScopedValue;
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-import net.shibboleth.utilities.java.support.xml.DOMTypeSupport;
-
 import org.opensaml.core.xml.XMLObject;
 import org.opensaml.core.xml.schema.XSAny;
 import org.opensaml.core.xml.schema.XSBase64Binary;
@@ -61,6 +45,21 @@ import org.slf4j.LoggerFactory;
 
 import com.google.common.collect.Multimap;
 
+import net.shibboleth.idp.attribute.AttributesMapContainer;
+import net.shibboleth.idp.attribute.IdPAttribute;
+import net.shibboleth.idp.attribute.IdPAttributeValue;
+import net.shibboleth.idp.attribute.StringAttributeValue;
+import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
+import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractPolicyRule;
+import net.shibboleth.idp.saml.xmlobject.ScopedValue;
+import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
+import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
+import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
+import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
+import net.shibboleth.utilities.java.support.xml.DOMTypeSupport;
+
 /**
  * Base class for matchers that check whether a particular entity attribute is present and contains a given value.
  * 
@@ -104,7 +103,7 @@ public abstract class AbstractEntityAttributePolicyRule extends AbstractPolicyRu
      * @param attributeName name of the entity attribute the entity must have
      */
     public void setAttributeName(@Nullable @NotEmpty final String attributeName) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         
         attrName = StringSupport.trimOrNull(attributeName);
     }
@@ -124,7 +123,7 @@ public abstract class AbstractEntityAttributePolicyRule extends AbstractPolicyRu
      * @param attributeNameFormat name format of the entity attribute the entity must have
      */
     public void setNameFormat(@Nullable @NotEmpty final String attributeNameFormat) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         
         nameFormat = StringSupport.trimOrNull(attributeNameFormat);
     }
@@ -146,7 +145,7 @@ public abstract class AbstractEntityAttributePolicyRule extends AbstractPolicyRu
      * @param flag flag to set
      */
     public void setIgnoreUnmappedEntityAttributes(final boolean flag) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         ignoreUnmappedEntityAttributes = flag;
     }
     
@@ -171,7 +170,7 @@ public abstract class AbstractEntityAttributePolicyRule extends AbstractPolicyRu
     @Override public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
 
         Constraint.isNotNull(filterContext, "Context must be supplied");
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
 
         final EntityDescriptor entityDescriptor = getEntityMetadata(filterContext);
         if (entityDescriptor == null) {
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityGroupPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityGroupPolicyRule.java
index 426cd9102..c8eaa0e8c 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityGroupPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityGroupPolicyRule.java
@@ -23,19 +23,18 @@ import java.util.function.Predicate;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
+import org.opensaml.saml.common.profile.logic.EntityGroupNamePredicate;
+import org.opensaml.saml.metadata.resolver.MetadataResolver;
+import org.opensaml.saml.saml2.metadata.EntityDescriptor;
+
 import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
 import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractPolicyRule;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
-import org.opensaml.saml.common.profile.logic.EntityGroupNamePredicate;
-import org.opensaml.saml.metadata.resolver.MetadataResolver;
-import org.opensaml.saml.saml2.metadata.EntityDescriptor;
-
 /**
  * A matcher that evaluates to true if an entity's metadata matches the provided entity group name,
  * or a valid metadata-sourced affiliation of entities.
@@ -65,7 +64,7 @@ public abstract class AbstractEntityGroupPolicyRule extends AbstractPolicyRule {
      * @param group entity group to match against
      */
     public void setEntityGroup(@Nullable final String group) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         
         entityGroup = StringSupport.trimOrNull(group);
     }
@@ -79,7 +78,7 @@ public abstract class AbstractEntityGroupPolicyRule extends AbstractPolicyRule {
      * @param flag flag to set
      */
     public void setCheckAffiliations(final boolean flag) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         checkAffiliations = flag;
     }
 
@@ -126,7 +125,7 @@ public abstract class AbstractEntityGroupPolicyRule extends AbstractPolicyRule {
      */
     @Override
     @Nonnull public Tristate matches(@Nonnull final AttributeFilterContext input) {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
 
         Constraint.isNotNull(input, "Context must be supplied");
 
diff --git a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractNameIDFormatExactPolicyRule.java b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractNameIDFormatExactPolicyRule.java
index 57f809ea8..604b7afae 100644
--- a/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractNameIDFormatExactPolicyRule.java
+++ b/shib-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractNameIDFormatExactPolicyRule.java
@@ -22,19 +22,18 @@ import java.util.List;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
+import org.opensaml.saml.saml2.metadata.NameIDFormat;
+import org.opensaml.saml.saml2.metadata.SSODescriptor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
 import net.shibboleth.idp.attribute.filter.policyrule.impl.AbstractPolicyRule;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
-import org.opensaml.saml.saml2.metadata.NameIDFormat;
-import org.opensaml.saml.saml2.metadata.SSODescriptor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 /** Checks if the attribute issuer supports the required NameID format. */
 public abstract class AbstractNameIDFormatExactPolicyRule extends AbstractPolicyRule {
 
@@ -59,7 +58,7 @@ public abstract class AbstractNameIDFormatExactPolicyRule extends AbstractPolicy
      * @param format NameID format that needs to be supported by the entity
      */
     public void setNameIdFormat(@Nullable final String format) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         
         nameIdFormat = StringSupport.trimOrNull(format);
     }
@@ -94,7 +93,7 @@ public abstract class AbstractNameIDFormatExactPolicyRule extends AbstractPolicy
      */
     @Override
     public Tristate matches(@Nonnull final AttributeFilterContext filterContext) {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
         
         final SSODescriptor role = getEntitySSODescriptor(filterContext);
         if (role == null) {
diff --git a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/complex/impl/UntargettedAttributeValueFilterTest.java b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/complex/impl/UntargettedAttributeValueFilterTest.java
index aa6d15e5e..48bcbecb1 100644
--- a/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/complex/impl/UntargettedAttributeValueFilterTest.java
+++ b/shib-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/complex/impl/UntargettedAttributeValueFilterTest.java
@@ -38,7 +38,6 @@ import net.shibboleth.idp.attribute.filter.impl.AttributeFilterImpl;
 import net.shibboleth.idp.attribute.filter.matcher.impl.AttributeValueStringMatcher;
 import net.shibboleth.idp.attribute.resolver.ResolutionException;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
 
 /**
  * Complex test for AttributeRuleFilters when the rule is targeted
@@ -97,9 +96,9 @@ public class UntargettedAttributeValueFilterTest extends BaseComplexAttributeFil
         final AttributeFilterImpl engine = new AttributeFilterImpl("engine", Collections.singleton(policy));
         engine.setApplicationContext(new MockApplicationContext());
 
-        ComponentSupport.initialize(attributeValueFilterPolicy);
-        ComponentSupport.initialize(policy);
-        ComponentSupport.initialize(engine);
+        attributeValueFilterPolicy.initialize();
+        policy.initialize();
+        engine.initialize();
 
         AttributeFilterContext context = new AttributeFilterContext();
         context.setPrefilteredIdPAttributes(getIdPAttributes("epa-uidwithjsmith.xml").values());
@@ -155,9 +154,9 @@ public class UntargettedAttributeValueFilterTest extends BaseComplexAttributeFil
         final AttributeFilterImpl engine = new AttributeFilterImpl("engine", Collections.singleton(policy));
         engine.setApplicationContext(new MockApplicationContext());
 
-        ComponentSupport.initialize(attributeValueFilterPolicy);
-        ComponentSupport.initialize(policy);
-        ComponentSupport.initialize(engine);
+        attributeValueFilterPolicy.initialize();
+        policy.initialize();
+        engine.initialize();
         AttributeFilterContext context = new AttributeFilterContext();
         context.setPrefilteredIdPAttributes(getIdPAttributes("epa-uidwithjsmith.xml").values());
         engine.filterAttributes(context);

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


More information about the commits mailing list