[java-identity-provider] 06/06: IDP-1515 Reduce Guava dependencies idp-attribute-filter-impl

Rod Widdowson rdw at steadingsoftware.com
Sat Nov 2 12:31:47 EDT 2019


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

rdw pushed a commit to branch master
in repository java-identity-provider.

View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=adaca4c83db6826d3ed1a903d65e194ddb8440f7

commit adaca4c83db6826d3ed1a903d65e194ddb8440f7
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Sat Nov 2 15:05:38 2019 +0000

    IDP-1515 Reduce Guava dependencies idp-attribute-filter-impl
    
    https://issues.shibboleth.net/jira/browse/IDP-1515
---
 .../attribute/filter/impl/AttributeFilterImpl.java | 23 +++----
 .../logic/impl/AbstractComposedMatcher.java        |  8 +--
 .../saml/impl/AttributeInMetadataMatcher.java      | 70 ++++++++++------------
 .../logic/impl/AbstractComposedPolicyRule.java     | 11 ++--
 .../AbstractEntityAttributeRegexPolicyRule.java    |  4 +-
 .../AbstractRegistrationAuthorityPolicyRule.java   |  4 +-
 .../impl/TargettedAttributeValueFilterTest.java    |  1 -
 .../impl/UntargettedAttributeValueFilterTest.java  |  1 -
 .../filter/impl/AttributeFilterImplTest.java       |  2 +-
 .../logic/impl/AbstractComposedMatcherTest.java    | 25 ++++----
 .../filter/matcher/logic/impl/AndMatcherTest.java  |  5 +-
 .../impl/MappedAttributeInMetadataMatcherTest.java |  5 +-
 .../logic/impl/AbstractComposedPolicyRuleTest.java | 25 ++++----
 .../policyrule/logic/impl/AndPolicyRuleTest.java   |  5 +-
 .../policyrule/logic/impl/OrPolicyRuleTest.java    | 14 ++---
 .../idp/profile/impl/FilterAttributesTest.java     |  4 +-
 16 files changed, 85 insertions(+), 122 deletions(-)

diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java
index eff5c74..56b05a3 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImpl.java
@@ -17,7 +17,6 @@
 
 package net.shibboleth.idp.attribute.filter.impl;
 
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
@@ -27,6 +26,12 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import javax.annotation.concurrent.ThreadSafe;
 
+import org.opensaml.messaging.context.navigate.ChildContextLookup;
+import org.opensaml.messaging.context.navigate.RootContextLookup;
+import org.opensaml.profile.context.MetricContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import net.shibboleth.ext.spring.service.AbstractServiceableComponent;
 import net.shibboleth.idp.attribute.IdPAttribute;
 import net.shibboleth.idp.attribute.IdPAttributeValue;
@@ -37,21 +42,11 @@ import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
 import net.shibboleth.idp.attribute.filter.context.AttributeFilterWorkContext;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.annotation.constraint.NullableElements;
 import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
-import net.shibboleth.utilities.java.support.collection.CollectionSupport;
 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 org.opensaml.messaging.context.navigate.ChildContextLookup;
-import org.opensaml.messaging.context.navigate.RootContextLookup;
-import org.opensaml.profile.context.MetricContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Predicates;
-
 /** Service that filters out attributes and values based upon loaded policies. */
 @ThreadSafe
 public class AttributeFilterImpl extends AbstractServiceableComponent<AttributeFilter> implements AttributeFilter {
@@ -75,12 +70,10 @@ public class AttributeFilterImpl extends AbstractServiceableComponent<AttributeF
      * @param policies filter policies used by this engine
      */
     public AttributeFilterImpl(@Nonnull @NotEmpty final String engineId,
-            @Nullable @NullableElements final Collection<AttributeFilterPolicy> policies) {
+            @Nullable @NonnullElements final Collection<AttributeFilterPolicy> policies) {
         setId(engineId);
 
-        final ArrayList<AttributeFilterPolicy> checkedPolicies = new ArrayList<>();
-        CollectionSupport.addIf(checkedPolicies, policies, Predicates.notNull());
-        filterPolicies = List.copyOf(checkedPolicies);
+        filterPolicies = List.copyOf(policies);
         
         metricContextLookupStrategy = new ChildContextLookup<>(MetricContext.class).compose(new RootContextLookup<>());
     }
diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AbstractComposedMatcher.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AbstractComposedMatcher.java
index 676ead7..47a220d 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AbstractComposedMatcher.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AbstractComposedMatcher.java
@@ -27,16 +27,12 @@ import javax.annotation.Nullable;
 import net.shibboleth.idp.attribute.filter.Matcher;
 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.NullableElements;
 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;
 
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-
 /**
  * Base class for {@link Matcher} implementations that are compositions of two or more other
  * {@link Matcher}s.
@@ -51,11 +47,11 @@ public abstract class AbstractComposedMatcher extends AbstractIdentifiableInitia
      * Called "subsidiaries" to allow easier parsing.
      * @param composedMatchers the matchers to be composed.
      */
-    public void setSubsidiaries(@Nullable @NullableElements final Collection<Matcher> composedMatchers) {
+    public void setSubsidiaries(@Nullable @NonnullElements final Collection<Matcher> composedMatchers) {
         ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
         
         if (composedMatchers != null) {
-            matchers = List.copyOf(Collections2.filter(composedMatchers, Predicates.notNull()));
+            matchers = List.copyOf(composedMatchers);
         } else {
             matchers = Collections.emptyList();
         }
diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeInMetadataMatcher.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeInMetadataMatcher.java
index 422c8d6..56fba82 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeInMetadataMatcher.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AttributeInMetadataMatcher.java
@@ -20,27 +20,15 @@ package net.shibboleth.idp.attribute.filter.matcher.saml.impl;
 import java.time.Instant;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
+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.IdPRequestedAttribute;
-import net.shibboleth.idp.attribute.StringAttributeValue;
-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.annotation.constraint.NotEmpty;
-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;
-
 import org.opensaml.core.xml.XMLObject;
 import org.opensaml.core.xml.schema.XSAny;
 import org.opensaml.core.xml.schema.XSBase64Binary;
@@ -57,11 +45,23 @@ import org.opensaml.saml.saml2.metadata.RequestedAttribute;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.ImmutableSet;
 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.IdPRequestedAttribute;
+import net.shibboleth.idp.attribute.StringAttributeValue;
+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.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;
+
 
 /**
  * Matcher that checks whether an attribute is enumerated in an SP's metadata as a required or optional attribute. Also
@@ -188,7 +188,7 @@ public class AttributeInMetadataMatcher extends AbstractIdentifiableInitializabl
             if (matchIfMetadataSilent) {
                 log.debug("{} The peer's metadata did not contain requested attribute information"
                         + ", returning all the input values", getLogPrefix());
-                return ImmutableSet.copyOf(attribute.getValues());
+                return Set.copyOf(attribute.getValues());
             }
             log.debug("{} The peer's metadata did not contain requested attribute information"
                     + ", returning no values", getLogPrefix());
@@ -250,8 +250,7 @@ public class AttributeInMetadataMatcher extends AbstractIdentifiableInitializabl
 
         final Set<IdPAttributeValue> values = new LinkedHashSet<>();
 
-        for (final IdPAttribute requestedAttribute
-                : Collections2.filter(requestedAttributeList, Predicates.notNull())) {
+        for (final IdPAttribute requestedAttribute : List.copyOf(requestedAttributeList)) {
 
             if (requestedAttribute instanceof IdPRequestedAttribute
                     && !((IdPRequestedAttribute) requestedAttribute).getIsRequired() && onlyIfRequired) {
@@ -326,18 +325,12 @@ public class AttributeInMetadataMatcher extends AbstractIdentifiableInitializabl
 
         if (null == requestedValues || requestedValues.isEmpty()) {
             log.debug("{} Attribute {} found in metadata and no values specified", getLogPrefix(), attribute.getId());
-            return ImmutableSet.copyOf(attribute.getValues());
-        }
-
-        final ImmutableSet.Builder<IdPAttributeValue> builder = ImmutableSet.builder();
-
-        for (final IdPAttributeValue attributeValue : attribute.getValues()) {
-            if (requestedValues.contains(attributeValue)) {
-                builder.add(attributeValue);
-            }
+            return Set.copyOf(attribute.getValues());
         }
         
-        final ImmutableSet<IdPAttributeValue> result = builder.build();
+        final Set<IdPAttributeValue> result = attribute.getValues().stream().
+                filter(v -> requestedValues.contains(v)).collect(Collectors.toUnmodifiableSet());
+
         log.debug("{} Values matched with metadata for Attribute {} : {}", getLogPrefix(), attribute.getId(), result);
         return result;
     }
@@ -351,21 +344,23 @@ public class AttributeInMetadataMatcher extends AbstractIdentifiableInitializabl
      * 
      * @return the result of the filter
      */
-    @Nonnull private Set<IdPAttributeValue> filterValues(@Nonnull final String attributeToLog,
-            @Nullable final IdPAttribute attribute, @Nonnull @NonnullElements final List<XMLObject> requestedValues) {
+    @Nonnull @Unmodifiable @NonnullElements private Set<IdPAttributeValue> filterValues(
+            @Nonnull final String attributeToLog,
+            @Nullable final IdPAttribute attribute, 
+            @Nonnull @NonnullElements final List<XMLObject> requestedValues) {
 
         if (requestedValues.isEmpty()) {
             log.debug("{} Attribute {} found in metadata and no values specified", getLogPrefix(), attributeToLog);
-            return ImmutableSet.copyOf(attribute.getValues());
+            return Set.copyOf(attribute.getValues());
         }
 
-        final ImmutableSet.Builder<IdPAttributeValue> builder = ImmutableSet.builder();
-
+        final Set<IdPAttributeValue> result = new HashSet<>(attribute.getValues().size()); 
+                
         for (final IdPAttributeValue attributeValue : attribute.getValues()) {
             if (attributeValue instanceof StringAttributeValue) {
                 for (final XMLObject xmlObj : requestedValues) {
                     if (match(xmlObj, ((StringAttributeValue) attributeValue).getValue())) {
-                        builder.add(attributeValue);
+                        result.add(attributeValue);
                     }
                 }
             } else {
@@ -374,9 +369,8 @@ public class AttributeInMetadataMatcher extends AbstractIdentifiableInitializabl
             }
         }
         
-        final ImmutableSet<IdPAttributeValue> result = builder.build();
         log.debug("{} Values matched with metadata for Attribute {} : {}", getLogPrefix(), attributeToLog, result);
-        return result;
+        return Set.copyOf(result);
     }
 
 // Checkstyle: CyclomaticComplexity OFF
diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AbstractComposedPolicyRule.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AbstractComposedPolicyRule.java
index bd76b54..f660b04 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AbstractComposedPolicyRule.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AbstractComposedPolicyRule.java
@@ -24,20 +24,17 @@ import java.util.List;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
+import com.google.common.base.MoreObjects;
+
 import net.shibboleth.idp.attribute.filter.PolicyRequirementRule;
 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.NullableElements;
 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;
 
-import com.google.common.base.MoreObjects;
-import com.google.common.base.Predicates;
-import com.google.common.collect.Collections2;
-
 /**
  * Base class for {@link PolicyRequirementRule} implementations that are compositions of other
  * {@link PolicyRequirementRule}s.
@@ -52,11 +49,11 @@ public abstract class AbstractComposedPolicyRule extends AbstractIdentifiableIni
      * Called "subsidiaries" to allow easier parsing.
      * @param theRules the rules to be composed.
      */
-    public void setSubsidiaries(@Nullable @NullableElements final Collection<PolicyRequirementRule> theRules) {
+    public void setSubsidiaries(@Nullable @NonnullElements final Collection<PolicyRequirementRule> theRules) {
         ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
         
         if (theRules != null) {
-            rules = List.copyOf(Collections2.filter(theRules, Predicates.notNull()));
+            rules = List.copyOf(theRules);
         } else {
             rules = Collections.emptyList();
         }
diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributeRegexPolicyRule.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributeRegexPolicyRule.java
index bd773c6..d778568 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributeRegexPolicyRule.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributeRegexPolicyRule.java
@@ -28,8 +28,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.component.ComponentInitializationException;
 
-import com.google.common.collect.Iterables;
-
 /**
  * Matcher functor that checks entity attribute values via matching against a regular expression.
  */
@@ -67,7 +65,7 @@ public abstract class AbstractEntityAttributeRegexPolicyRule extends AbstractEnt
     /** {@inheritDoc} */
     @Override protected boolean entityAttributeValueMatches(
             @Nonnull @NotEmpty @NonnullElements final Set<String> entityAttributeValues) {
-        return Iterables.any(entityAttributeValues, v -> valueRegex.matcher(v).matches());
+        return entityAttributeValues.stream().anyMatch(v -> valueRegex.matcher(v).matches());
     }
 
 }
\ No newline at end of file
diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractRegistrationAuthorityPolicyRule.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractRegistrationAuthorityPolicyRule.java
index f27e628..f580081 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractRegistrationAuthorityPolicyRule.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractRegistrationAuthorityPolicyRule.java
@@ -40,8 +40,6 @@ import org.opensaml.saml.saml2.metadata.Extensions;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.collect.ImmutableSet;
-
 /**
  * Base class for rules operating on the RPI extension in metadata.
  */
@@ -62,7 +60,7 @@ public abstract class AbstractRegistrationAuthorityPolicyRule extends AbstractPo
      * @return the issuers
      */
     @Nonnull @NonnullElements @Unmodifiable @NotLive public Set<String> getRegistrars() {
-        return ImmutableSet.copyOf(registrars);
+        return Set.copyOf(registrars);
     }
 
     /**
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/complex/impl/TargettedAttributeValueFilterTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/complex/impl/TargettedAttributeValueFilterTest.java
index 3bc069c..53de00b 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/complex/impl/TargettedAttributeValueFilterTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/complex/impl/TargettedAttributeValueFilterTest.java
@@ -27,7 +27,6 @@ import org.testng.annotations.Test;
 
 import net.shibboleth.ext.spring.service.MockApplicationContext;
 import net.shibboleth.idp.attribute.IdPAttribute;
-import net.shibboleth.idp.attribute.filter.AttributeFilter;
 import net.shibboleth.idp.attribute.filter.AttributeFilterException;
 import net.shibboleth.idp.attribute.filter.AttributeFilterPolicy;
 import net.shibboleth.idp.attribute.filter.AttributeRule;
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/complex/impl/UntargettedAttributeValueFilterTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/complex/impl/UntargettedAttributeValueFilterTest.java
index 36f93df..3b9f061 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/complex/impl/UntargettedAttributeValueFilterTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/complex/impl/UntargettedAttributeValueFilterTest.java
@@ -27,7 +27,6 @@ import org.testng.annotations.Test;
 
 import net.shibboleth.ext.spring.service.MockApplicationContext;
 import net.shibboleth.idp.attribute.IdPAttribute;
-import net.shibboleth.idp.attribute.filter.AttributeFilter;
 import net.shibboleth.idp.attribute.filter.AttributeFilterException;
 import net.shibboleth.idp.attribute.filter.AttributeFilterPolicy;
 import net.shibboleth.idp.attribute.filter.AttributeRule;
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImplTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImplTest.java
index 144001b..f57de87 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImplTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/impl/AttributeFilterImplTest.java
@@ -46,7 +46,7 @@ public class AttributeFilterImplTest {
 
     /** Test that post-construction state is what is expected. */
     @Test public void testPostConstructionState() throws Exception {
-        AttributeFilter filter = new AttributeFilterImpl("engine", null);
+        AttributeFilter filter = new AttributeFilterImpl("engine", Collections.EMPTY_LIST);
         Assert.assertNotNull(filter.getFilterPolicies());
         Assert.assertTrue(filter.getFilterPolicies().isEmpty());
         Assert.assertEquals(filter.getId(), "engine");
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AbstractComposedMatcherTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AbstractComposedMatcherTest.java
index dfe802f..48fb215 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AbstractComposedMatcherTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AbstractComposedMatcherTest.java
@@ -65,10 +65,9 @@ public class AbstractComposedMatcherTest {
         for (int i = 0; i < 2; i++) {
             firstList.add(new TestMatcher());
         }
-        firstList.add(null);
         matcher = new ComposedMatcher(firstList);
 
-        assertEquals(firstList.size() - 1, matcher.getComposedMatchers().size());
+        assertEquals(firstList.size(), matcher.getComposedMatchers().size());
 
         thrown = false;
         try {
@@ -90,22 +89,18 @@ public class AbstractComposedMatcherTest {
 
         final List<Matcher> list = new ArrayList<>();
 
-        for (int i = 0; i < 30; i++) {
-            list.add(null);
-        }
-
         matcher = new ComposedMatcher(list);
         assertTrue(matcher.getComposedMatchers().isEmpty(), "Add List<null> - no matchers");
 
-        list.set(2, new TestMatcher());
-        list.set(3, new TestMatcher());
-        list.set(7, new TestMatcher());
-        list.set(11, new TestMatcher());
-        list.set(13, new TestMatcher());
-        list.set(17, new TestMatcher());
-        list.set(19, new TestMatcher());
-        list.set(23, new TestMatcher());
-        list.set(29, new TestMatcher());
+        list.add(new TestMatcher());
+        list.add(new TestMatcher());
+        list.add(new TestMatcher());
+        list.add(new TestMatcher());
+        list.add(new TestMatcher());
+        list.add(new TestMatcher());
+        list.add(new TestMatcher());
+        list.add(new TestMatcher());
+        list.add(new TestMatcher());
         assertTrue(matcher.getComposedMatchers().isEmpty(), "Change to input list - no matchers");
 
         matcher = new ComposedMatcher(list);
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AndMatcherTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AndMatcherTest.java
index a59316c..91833a9 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AndMatcherTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AndMatcherTest.java
@@ -30,6 +30,8 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.Set;
 
+import javax.annotation.Nonnull;
+
 import org.testng.annotations.BeforeTest;
 import org.testng.annotations.Test;
 
@@ -37,6 +39,7 @@ import net.shibboleth.idp.attribute.IdPAttributeValue;
 import net.shibboleth.idp.attribute.filter.Matcher;
 import net.shibboleth.idp.attribute.filter.matcher.impl.AbstractMatcherPolicyRuleTest;
 import net.shibboleth.idp.attribute.filter.matcher.impl.MockValuePredicateMatcher;
+import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
 import net.shibboleth.utilities.java.support.component.DestroyedComponentException;
 import net.shibboleth.utilities.java.support.component.UninitializedComponentException;
@@ -156,7 +159,7 @@ public class AndMatcherTest extends AbstractMatcherPolicyRuleTest {
         assertTrue(matcher.getMatchingValues(attribute, filterContext).isEmpty());
     }
     
-    static public AndMatcher newAndMatcher(final Collection<Matcher> what) {
+    static public AndMatcher newAndMatcher(final @Nonnull @NonnullElements Collection<Matcher> what) {
         final AndMatcher matcher = new AndMatcher();
         matcher.setSubsidiaries(what);
         return matcher;
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/MappedAttributeInMetadataMatcherTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/MappedAttributeInMetadataMatcherTest.java
index 384ed42..3d8a738 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/MappedAttributeInMetadataMatcherTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/MappedAttributeInMetadataMatcherTest.java
@@ -94,7 +94,9 @@ public class MappedAttributeInMetadataMatcherTest extends OpenSAMLInitBaseTestCa
 
         if (null != attributeId) {
             final Multimap<String, IdPAttribute> multimap = ArrayListMultimap.create();
-            multimap.put(attributeId, attribute);
+            if (attribute != null) {
+                multimap.put(attributeId, attribute);
+            }
             setRequestedAttributesInContext(context, multimap);
         }
         return context;
@@ -192,7 +194,6 @@ public class MappedAttributeInMetadataMatcherTest extends OpenSAMLInitBaseTestCa
                 makeAttribute("attr", Arrays.asList(DataSources.STRING_VALUE, DataSources.NON_MATCH_STRING_VALUE));
 
         AttributeFilterContext context = makeContext("attr", null);
-
         Set<IdPAttributeValue> result = makeMatcher("test", false, true).getMatchingValues(attr, context);
         assertTrue(result.isEmpty());
     }
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AbstractComposedPolicyRuleTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AbstractComposedPolicyRuleTest.java
index 0ab1db5..2934ee9 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AbstractComposedPolicyRuleTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AbstractComposedPolicyRuleTest.java
@@ -64,10 +64,9 @@ public class AbstractComposedPolicyRuleTest {
         for (int i = 0; i < 2;i++) {
             firstList.add(new TestMatcher());
         }
-        firstList.add(null);
         rule = new ComposedPolicyRule(firstList);
         
-        assertEquals(firstList.size()-1, rule.getComposedRules().size());
+        assertEquals(firstList.size(), rule.getComposedRules().size());
         
         thrown = false;
         try {
@@ -92,22 +91,18 @@ public class AbstractComposedPolicyRuleTest {
         
         final List<PolicyRequirementRule> list = new ArrayList<>();
         
-        for (int i = 0; i < 30; i++) {
-            list.add(null);
-        }
-        
         rule = new ComposedPolicyRule(list);
         assertTrue(rule.getComposedRules().isEmpty(), "Add List<null> - no matchers");
         
-        list.set(2, new TestMatcher());
-        list.set(3, new TestMatcher());
-        list.set(7, new TestMatcher());
-        list.set(11, new TestMatcher());
-        list.set(13, new TestMatcher());
-        list.set(17, new TestMatcher());
-        list.set(19, new TestMatcher());
-        list.set(23, new TestMatcher());
-        list.set(29, new TestMatcher());
+        list.add(new TestMatcher());
+        list.add(new TestMatcher());
+        list.add(new TestMatcher());
+        list.add(new TestMatcher());
+        list.add(new TestMatcher());
+        list.add(new TestMatcher());
+        list.add(new TestMatcher());
+        list.add(new TestMatcher());
+        list.add(new TestMatcher());
         assertTrue(rule.getComposedRules().isEmpty(), "Change to input list - no matchers");
 
         rule = new ComposedPolicyRule(list);
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AndPolicyRuleTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AndPolicyRuleTest.java
index f469c47..ad3e662 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AndPolicyRuleTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/AndPolicyRuleTest.java
@@ -33,11 +33,9 @@ import net.shibboleth.idp.attribute.filter.PolicyRequirementRule;
 import net.shibboleth.idp.attribute.filter.PolicyRequirementRule.Tristate;
 import net.shibboleth.idp.attribute.filter.matcher.impl.AbstractMatcherPolicyRuleTest;
 import net.shibboleth.idp.attribute.filter.matcher.impl.DataSources;
-import net.shibboleth.utilities.java.support.annotation.constraint.NullableElements;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
 import net.shibboleth.utilities.java.support.logic.ConstraintViolationException;
 
-
 /** {@link AndPolicyRule} unit test. */
 public class AndPolicyRuleTest extends AbstractMatcherPolicyRuleTest {
 
@@ -104,8 +102,7 @@ public class AndPolicyRuleTest extends AbstractMatcherPolicyRuleTest {
         assertEquals(rule.matches(DataSources.unPopulatedFilterContext()), Tristate.TRUE);
     }
     
-    public static AndPolicyRule newAndPolicyRule(@Nullable @NullableElements 
-            final Collection<PolicyRequirementRule> composedRules) {
+    public static AndPolicyRule newAndPolicyRule(@Nullable final Collection<PolicyRequirementRule> composedRules) {
         final AndPolicyRule  rule = new AndPolicyRule();
         rule.setSubsidiaries(composedRules);
         return rule;
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/OrPolicyRuleTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/OrPolicyRuleTest.java
index 3259791..4930204 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/OrPolicyRuleTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/logic/impl/OrPolicyRuleTest.java
@@ -33,7 +33,6 @@ import net.shibboleth.idp.attribute.filter.PolicyRequirementRule;
 import net.shibboleth.idp.attribute.filter.PolicyRequirementRule.Tristate;
 import net.shibboleth.idp.attribute.filter.matcher.impl.AbstractMatcherPolicyRuleTest;
 import net.shibboleth.idp.attribute.filter.matcher.impl.DataSources;
-import net.shibboleth.utilities.java.support.annotation.constraint.NullableElements;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
 import net.shibboleth.utilities.java.support.logic.ConstraintViolationException;
 
@@ -71,24 +70,24 @@ public class OrPolicyRuleTest extends AbstractMatcherPolicyRuleTest {
         rule.initialize();
         assertEquals(rule.matches(DataSources.unPopulatedFilterContext()), Tristate.FALSE);
 
-        rule = newOrPolicyRule(Arrays.asList(PolicyRequirementRule.MATCHES_NONE, null, PolicyRequirementRule.MATCHES_NONE));
+        rule = newOrPolicyRule(Arrays.asList(PolicyRequirementRule.MATCHES_NONE, PolicyRequirementRule.MATCHES_NONE));
 
         rule.setId("Test");
         rule.initialize();
         assertEquals(rule.matches(DataSources.unPopulatedFilterContext()), Tristate.FALSE);
 
-        rule = newOrPolicyRule(Arrays.asList(PolicyRequirementRule.MATCHES_NONE, null, PolicyRequirementRule.MATCHES_ALL));
+        rule = newOrPolicyRule(Arrays.asList(PolicyRequirementRule.MATCHES_NONE, PolicyRequirementRule.MATCHES_ALL));
         rule.setId("Test");
         rule.initialize();
         assertEquals(rule.matches(DataSources.unPopulatedFilterContext()), Tristate.TRUE);
         
-        rule = newOrPolicyRule(Arrays.asList(PolicyRequirementRule.MATCHES_NONE, null, PolicyRequirementRule.MATCHES_ALL,
+        rule = newOrPolicyRule(Arrays.asList(PolicyRequirementRule.MATCHES_NONE, PolicyRequirementRule.MATCHES_ALL,
                 PolicyRequirementRule.REQUIREMENT_RULE_FAILS));
         rule.setId("Test");
         rule.initialize();
         assertEquals(rule.matches(DataSources.unPopulatedFilterContext()), Tristate.TRUE);
 
-        rule = newOrPolicyRule(Arrays.asList(PolicyRequirementRule.MATCHES_NONE, null, PolicyRequirementRule.MATCHES_NONE,
+        rule = newOrPolicyRule(Arrays.asList(PolicyRequirementRule.MATCHES_NONE, PolicyRequirementRule.MATCHES_NONE,
                 PolicyRequirementRule.REQUIREMENT_RULE_FAILS));
         rule.setId("Test");
         rule.initialize();
@@ -108,12 +107,11 @@ public class OrPolicyRuleTest extends AbstractMatcherPolicyRuleTest {
 
         rule = newOrPolicyRule(Collections.singletonList(PolicyRequirementRule.MATCHES_ALL));
         rule.setId("Test");
-        rule.initialize();
+        rule.initialize();  
         assertEquals(rule.matches(DataSources.unPopulatedFilterContext()), Tristate.TRUE);
     }
 
-    public static OrPolicyRule newOrPolicyRule(@Nullable @NullableElements 
-            final Collection<PolicyRequirementRule> composedRules) {
+    public static OrPolicyRule newOrPolicyRule(@Nullable final Collection<PolicyRequirementRule> composedRules) {
         final OrPolicyRule  rule = new OrPolicyRule();
         rule.setSubsidiaries(composedRules);
         return rule;
diff --git a/idp-profile-impl/src/test/java/net/shibboleth/idp/profile/impl/FilterAttributesTest.java b/idp-profile-impl/src/test/java/net/shibboleth/idp/profile/impl/FilterAttributesTest.java
index 131cba9..809215e 100644
--- a/idp-profile-impl/src/test/java/net/shibboleth/idp/profile/impl/FilterAttributesTest.java
+++ b/idp-profile-impl/src/test/java/net/shibboleth/idp/profile/impl/FilterAttributesTest.java
@@ -65,7 +65,7 @@ public class FilterAttributesTest {
     @Test public void testNoAttributeContext() throws Exception {
         prc.getSubcontext(SubjectContext.class, true);
 
-        final AttributeFilterImpl engine = new AttributeFilterImpl("test", null);
+        final AttributeFilterImpl engine = new AttributeFilterImpl("test", Collections.EMPTY_LIST);
         engine.setApplicationContext(new MockApplicationContext());
         engine.initialize();
 
@@ -82,7 +82,7 @@ public class FilterAttributesTest {
 
         prc.getSubcontext(RelyingPartyContext.class).getSubcontext(AttributeContext.class, true);
 
-        final AttributeFilterImpl engine = new AttributeFilterImpl("test", null);
+        final AttributeFilterImpl engine = new AttributeFilterImpl("test", Collections.EMPTY_LIST);
         engine.setApplicationContext(new MockApplicationContext());
         engine.initialize();
         

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


More information about the commits mailing list