[java-identity-provider] branch master updated: IDP-316 Lint pass over the attribute projects.

Rod Widdowson rdw at steadingsoftware.com
Wed Jul 24 09:38:57 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=b53b2c31e4b8b009d0cf49dc48975810836c59d7

The following commit(s) were added to refs/heads/master by this push:
       new  b53b2c3   IDP-316 Lint pass over the attribute projects.
b53b2c3 is described below

commit b53b2c31e4b8b009d0cf49dc48975810836c59d7
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Wed Jul 24 13:59:08 2019 +0100

    IDP-316 Lint pass over the attribute projects.
    
    https://issues.shibboleth.net/jira/browse/IDP-316
    
    Fixes all the fixable (i.e. not architural) issues in the attribute projects, plus a
    fewlow hanging fruit issues in other projects.
---
 .../java/net/shibboleth/idp/attribute/IdPAttribute.java  |  2 +-
 .../shibboleth/idp/attribute/AttributeContextTest.java   |  2 +-
 .../java/net/shibboleth/idp/attribute/AttributeTest.java |  8 ++++----
 .../idp/attribute/filter/AttributeFilterPolicy.java      | 16 ++++++++--------
 .../idp/attribute/filter/MatcherFromPolicy.java          | 12 ++++++------
 .../idp/attribute/filter/AttributeFilterPolicyTest.java  |  2 +-
 .../idp/attribute/filter/impl/AttributeFilterImpl.java   |  9 ++++++---
 .../filter/matcher/impl/AbstractStringMatcher.java       |  4 ++--
 .../attribute/filter/matcher/logic/impl/AndMatcher.java  |  2 +-
 .../saml/impl/AbstractMatchesShibMDScopeMatcher.java     |  8 ++++----
 .../matcher/saml/impl/AttributeInMetadataMatcher.java    |  2 +-
 .../filter/policyrule/impl/AbstractStringPolicyRule.java |  4 ++--
 .../saml/impl/AbstractEntityAttributePolicyRule.java     |  2 +-
 .../filter/impl/ValidateExternalAuthenticationTest.java  |  2 +-
 .../filter/matcher/impl/MockValuePredicateMatcher.java   |  4 ++--
 .../filter/matcher/impl/ScriptedMatcherTest.java         |  2 +-
 .../matcher/logic/impl/AbstractComposedMatcherTest.java  |  2 +-
 .../filter/matcher/logic/impl/AndMatcherTest.java        |  2 +-
 .../filter/matcher/logic/impl/OrMatcherTest.java         |  8 +++++---
 .../logic/impl/AbstractComposedPolicyRuleTest.java       |  2 +-
 .../filter/policyrule/logic/impl/AndPolicyRuleTest.java  |  2 +-
 .../filter/policyrule/saml/impl/BaseMetadataTests.java   |  2 +-
 .../idp/attribute/impl/JDBCPairwiseIdStore.java          |  2 +-
 .../idp/attribute/resolver/AbstractResolverPlugin.java   |  2 +-
 .../attribute/resolver/AbstractDataConnectorTest.java    |  4 ++--
 .../resolver/AttributeResolverWorkContextTest.java       |  4 ++--
 .../attribute/resolver/ResolvedDataConnectorTest.java    |  2 +-
 .../attribute/resolver/ad/mapped/impl/SourceValue.java   |  4 ++--
 .../impl/TemplatedExecutableSearchFilterBuilder.java     |  4 ++--
 .../resolver/impl/AttributeResolverServiceGaugeSet.java  |  5 +++--
 .../ad/impl/ContextDerivedAttributeDefinitionTest.java   |  2 +-
 .../resolver/ad/impl/ScriptedAttributeTest.java          | 12 ++++++------
 .../resolver/ad/impl/TemplateAttributeTest.java          |  8 ++++----
 .../resolver/dc/ldap/impl/LDAPDataConnectorTest.java     |  8 ++++----
 .../idp/attribute/resolver/dc/ldap/impl/Regressions.java |  2 +-
 .../resolver/dc/rdbms/impl/RDBMSDataConnectorTest.java   |  8 ++++----
 .../resolver/impl/AttributeResolverImplTest.java         | 12 ++++++------
 .../spring/dc/impl/DataConnectorFactoryBean.java         |  2 +-
 .../spring/dc/ldap/impl/LDAPDataConnectorParser.java     |  2 +-
 .../spring/dc/rdbms/impl/RDBMSDataConnectorParser.java   |  2 +-
 .../resolver/spring/enc/BaseAttributeEncoderParser.java  |  5 +++--
 .../enc/SAML1XMLObjectAttributeEncoderParserTest.java    |  6 +++---
 .../net/shibboleth/idp/authn/AuthenticationResult.java   |  2 +-
 .../idp/authn/context/RequestedPrincipalContext.java     |  4 ++--
 .../principal/PrincipalEvalPredicateFactoryRegistry.java | 10 +++++-----
 .../logic/impl/AbstractAttributeDisplayFunction.java     |  2 +-
 .../logic/impl/AttributeValuesHashFunctionTest.java      |  2 +-
 .../idp/metrics/ReloadableServiceGaugeSet.java           |  5 +++--
 .../shibboleth/idp/saml/metadata/ScopesContainer.java    |  8 ++++----
 .../idp/saml/metadata/ScopesContainerTest.java           |  2 +-
 .../impl/ReloadingRelyingPartyMetadataProvider.java      |  2 +-
 .../shibboleth/idp/ui/context/RelyingPartyUIContext.java |  2 +-
 52 files changed, 121 insertions(+), 113 deletions(-)

diff --git a/idp-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPAttribute.java b/idp-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPAttribute.java
index bb79f85..13d4a88 100644
--- a/idp-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPAttribute.java
+++ b/idp-attribute-api/src/main/java/net/shibboleth/idp/attribute/IdPAttribute.java
@@ -211,7 +211,7 @@ public class IdPAttribute implements Comparable<IdPAttribute>, Cloneable {
                      map(e -> e==null? new EmptyAttributeValue(EmptyType.NULL_VALUE) :e).
                      collect(Collectors.collectingAndThen(Collectors.toList(), Collections::unmodifiableList));
         } else {
-            values = List.of();
+            values = Collections.emptyList();
         }
     }
 
diff --git a/idp-attribute-api/src/test/java/net/shibboleth/idp/attribute/AttributeContextTest.java b/idp-attribute-api/src/test/java/net/shibboleth/idp/attribute/AttributeContextTest.java
index 9d10638..324651d 100644
--- a/idp-attribute-api/src/test/java/net/shibboleth/idp/attribute/AttributeContextTest.java
+++ b/idp-attribute-api/src/test/java/net/shibboleth/idp/attribute/AttributeContextTest.java
@@ -55,7 +55,7 @@ public class AttributeContextTest {
         context.setIdPAttributes(null);
         contextAttributes(context, 0);
         
-        context.setIdPAttributes(Collections.EMPTY_SET);
+        context.setIdPAttributes(Collections.emptySet());
         contextAttributes(context, 0);
     }
 
diff --git a/idp-attribute-api/src/test/java/net/shibboleth/idp/attribute/AttributeTest.java b/idp-attribute-api/src/test/java/net/shibboleth/idp/attribute/AttributeTest.java
index b2c1d55..8d73d04 100644
--- a/idp-attribute-api/src/test/java/net/shibboleth/idp/attribute/AttributeTest.java
+++ b/idp-attribute-api/src/test/java/net/shibboleth/idp/attribute/AttributeTest.java
@@ -98,7 +98,7 @@ public class AttributeTest {
         attrib.setDisplayNames(null);
         Assert.assertTrue(attrib.getDisplayNames().isEmpty());
 
-        attrib.setDisplayNames(Collections.EMPTY_MAP);
+        attrib.setDisplayNames(Collections.emptyMap());
         Assert.assertTrue(attrib.getDisplayNames().isEmpty());
 
         Map<Locale, String> displayNames = new HashMap<>();
@@ -164,7 +164,7 @@ public class AttributeTest {
         attrib.setDisplayDescriptions(null);
         Assert.assertTrue(attrib.getDisplayNames().isEmpty());
 
-        attrib.setDisplayNames(Collections.EMPTY_MAP);
+        attrib.setDisplayNames(Collections.emptyMap());
         Assert.assertTrue(attrib.getDisplayDescriptions().isEmpty());
 
         Map<Locale, String> displayDescriptions = new HashMap<>();
@@ -232,10 +232,10 @@ public class AttributeTest {
         attrib.setValues(null);
         Assert.assertTrue(attrib.getValues().isEmpty());
 
-        attrib.setValues(Collections.EMPTY_LIST);
+        attrib.setValues(Collections.emptyList());
         Assert.assertTrue(attrib.getValues().isEmpty());
         
-        List attribValues = new ArrayList();
+        List<IdPAttributeValue> attribValues = new ArrayList<>();
         attrib.setValues(attribValues);
         Assert.assertTrue(attrib.getValues().isEmpty());
         
diff --git a/idp-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeFilterPolicy.java b/idp-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeFilterPolicy.java
index 1e59f1c..703640e 100644
--- a/idp-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeFilterPolicy.java
+++ b/idp-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/AttributeFilterPolicy.java
@@ -27,6 +27,13 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import javax.annotation.concurrent.ThreadSafe;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Predicates;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Iterables;
+
 import net.shibboleth.idp.attribute.IdPAttribute;
 import net.shibboleth.idp.attribute.filter.PolicyRequirementRule.Tristate;
 import net.shibboleth.idp.attribute.filter.context.AttributeFilterContext;
@@ -42,13 +49,6 @@ 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 org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Predicates;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterables;
-
 /**
  * A policy describing if a set of attribute value filters is applicable.
  * 
@@ -92,7 +92,7 @@ public class AttributeFilterPolicy extends AbstractIdentifiedInitializableCompon
         if (null != attributeRules) {
             valuePolicies = ImmutableList.copyOf(Iterables.filter(attributeRules, Predicates.notNull()));
         } else {
-            valuePolicies = Collections.EMPTY_LIST;
+            valuePolicies = Collections.emptyList();
         }
     }
 
diff --git a/idp-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/MatcherFromPolicy.java b/idp-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/MatcherFromPolicy.java
index 83c6aa8..3db73f6 100644
--- a/idp-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/MatcherFromPolicy.java
+++ b/idp-attribute-filter-api/src/main/java/net/shibboleth/idp/attribute/filter/MatcherFromPolicy.java
@@ -23,6 +23,11 @@ import java.util.Set;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.collect.ImmutableSet;
+
 import net.shibboleth.idp.attribute.IdPAttribute;
 import net.shibboleth.idp.attribute.IdPAttributeValue;
 import net.shibboleth.idp.attribute.filter.PolicyRequirementRule.Tristate;
@@ -31,11 +36,6 @@ import net.shibboleth.utilities.java.support.annotation.ParameterName;
 import net.shibboleth.utilities.java.support.component.DestructableComponent;
 import net.shibboleth.utilities.java.support.component.IdentifiedComponent;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.collect.ImmutableSet;
-
 /**
  * Bridging class to go from a {@link PolicyRequirementRule} to a {@link Matcher}.
  * <p>
@@ -81,7 +81,7 @@ public class MatcherFromPolicy extends BaseBridgingClass implements Matcher, Ide
             return null;
         } else if (Tristate.FALSE == result) {
             log.debug("{} The rule returned FALSE, no values returned", getLogPrefix());
-            return Collections.EMPTY_SET;
+            return Collections.emptySet();
         } else {
             log.debug("{} The rule returned TRUE, all values returned", getLogPrefix());
             return ImmutableSet.copyOf(attribute.getValues());
diff --git a/idp-attribute-filter-api/src/test/java/net/shibboleth/idp/attribute/filter/AttributeFilterPolicyTest.java b/idp-attribute-filter-api/src/test/java/net/shibboleth/idp/attribute/filter/AttributeFilterPolicyTest.java
index 81ba151..c3b3ce0 100644
--- a/idp-attribute-filter-api/src/test/java/net/shibboleth/idp/attribute/filter/AttributeFilterPolicyTest.java
+++ b/idp-attribute-filter-api/src/test/java/net/shibboleth/idp/attribute/filter/AttributeFilterPolicyTest.java
@@ -229,7 +229,7 @@ public class AttributeFilterPolicyTest {
         AttributeFilterContext ctx = new AttributeFilterContext();
         AttributeFilterWorkContext workCtx = ctx.getSubcontext(AttributeFilterWorkContext.class, true);
         IdPAttribute attribute = new IdPAttribute(ATTR_NAME);
-        attribute.setValues(Collections.EMPTY_LIST);
+        attribute.setValues(Collections.emptyList());
         ctx.setPrefilteredIdPAttributes(Arrays.asList(attribute));
         policy.initialize();
         policy.apply(ctx);
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 49e48d3..0c89d78 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
@@ -29,6 +29,7 @@ import javax.annotation.concurrent.ThreadSafe;
 
 import net.shibboleth.ext.spring.service.AbstractServiceableComponent;
 import net.shibboleth.idp.attribute.IdPAttribute;
+import net.shibboleth.idp.attribute.IdPAttributeValue;
 import net.shibboleth.idp.attribute.filter.AttributeFilter;
 import net.shibboleth.idp.attribute.filter.AttributeFilterException;
 import net.shibboleth.idp.attribute.filter.AttributeFilterPolicy;
@@ -127,7 +128,8 @@ public class AttributeFilterImpl extends AbstractServiceableComponent<AttributeF
     
             IdPAttribute filteredAttribute;
             for (final String attributeId : filterContext.getPrefilteredIdPAttributes().keySet()) {
-                final Collection filteredAttributeValues = getFilteredValues(attributeId, filterContext);
+                final Collection<IdPAttributeValue> filteredAttributeValues =
+                        getFilteredValues(attributeId, filterContext);
                 if (null != filteredAttributeValues && !filteredAttributeValues.isEmpty()) {
                     try {
                         filteredAttribute = prefilteredAttributes.get(attributeId).clone();
@@ -156,7 +158,7 @@ public class AttributeFilterImpl extends AbstractServiceableComponent<AttributeF
      * @return null if no values were permitted to be released, an empty collection if values were permitted but then
      *         all were removed by deny policies, a collection containing permitted values
      */
-    @Nullable protected Collection getFilteredValues(@Nonnull @NotEmpty final String attributeId,
+    @Nullable protected Collection<IdPAttributeValue> getFilteredValues(@Nonnull @NotEmpty final String attributeId,
             @Nonnull final AttributeFilterContext filterContext) {
         Constraint.isNotNull(attributeId, "attributeId can not be null");
         Constraint.isNotNull(filterContext, "filterContext can not be null");
@@ -165,7 +167,8 @@ public class AttributeFilterImpl extends AbstractServiceableComponent<AttributeF
                 filterContext.getSubcontext(AttributeFilterWorkContext.class, false);
         Constraint.isNotNull(filterWorkContext, "Attribute filter work context can not be null");
 
-        final Collection filteredAttributeValues = filterWorkContext.getPermittedIdPAttributeValues().get(attributeId);
+        final Collection<IdPAttributeValue> filteredAttributeValues = filterWorkContext.
+                getPermittedIdPAttributeValues().get(attributeId);
 
         if (filteredAttributeValues == null || filteredAttributeValues.isEmpty()) {
             log.debug("Attribute filtering engine '{}': no policy permitted release of attribute {} values", getId(),
diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractStringMatcher.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractStringMatcher.java
index fe129a1..6ba1324 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractStringMatcher.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/impl/AbstractStringMatcher.java
@@ -58,7 +58,7 @@ public abstract class AbstractStringMatcher extends AbstractMatcher implements M
      * @return whether the match evaluation is case insensitive
      * @deprecated in V4: Use isCaseSensitive
      */
-    public boolean isIgnoreCase() {
+    @Deprecated public boolean isIgnoreCase() {
         DeprecationSupport.warnOnce(ObjectType.METHOD, "isIgnoreCase", null, "isCaseSensitive");
         return !isCaseSensitive();
     }
@@ -69,7 +69,7 @@ public abstract class AbstractStringMatcher extends AbstractMatcher implements M
      * @param isCaseInsensitive whether the match evaluation is case insensitive
      * @deprecated in V4: Use setCaseSensitive
      */
-    public void setIgnoreCase(final boolean isCaseInsensitive) {
+    @Deprecated public void setIgnoreCase(final boolean isCaseInsensitive) {
         DeprecationSupport.warnOnce(ObjectType.METHOD, "setIgnoreCase", null, "setCaseSensitive");
         setCaseSensitive(!isCaseInsensitive);
     }
diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AndMatcher.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AndMatcher.java
index 265d820..7f7b270 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AndMatcher.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/AndMatcher.java
@@ -71,7 +71,7 @@ public class AndMatcher extends AbstractComposedMatcher {
         if (null == match) {
             return null;
         }
-        final Set<IdPAttributeValue> matchingValues = new LinkedHashSet(match);
+        final Set<IdPAttributeValue> matchingValues = new LinkedHashSet<>(match);
         while (matcherItr.hasNext()) {
             match = matcherItr.next().getMatchingValues(attribute, filterContext);
             if (null == match) {
diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AbstractMatchesShibMDScopeMatcher.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AbstractMatchesShibMDScopeMatcher.java
index 219d32d..b832240 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AbstractMatchesShibMDScopeMatcher.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/matcher/saml/impl/AbstractMatchesShibMDScopeMatcher.java
@@ -73,14 +73,14 @@ public abstract class AbstractMatchesShibMDScopeMatcher
         if (issuerContext == null) {
             LOG.warn("{} internal error: no IssueContext found",
                     getLogPrefix());
-            return Collections.EMPTY_SET;
+            return Collections.emptySet();
         }
         final RoleDescriptor roleDescriptor = issuerContext.getRoleDescriptor();
         final EntityDescriptor entityDescriptor = issuerContext.getEntityDescriptor();
         final List<ScopesContainer> roleContainers;
         if (roleDescriptor == null) {
             LOG.debug("{} No Role Descriptor found");
-            roleContainers = Collections.EMPTY_LIST;
+            roleContainers = Collections.emptyList();
         } else {
             roleContainers = roleDescriptor.getObjectMetadata().get(ScopesContainer.class);
         }
@@ -88,7 +88,7 @@ public abstract class AbstractMatchesShibMDScopeMatcher
         final List<ScopesContainer> entityContainers;
         if (entityDescriptor == null) {
             LOG.debug("{} No Entity Descriptor found");
-            entityContainers = Collections.EMPTY_LIST;
+            entityContainers = Collections.emptyList(); 
         } else {
             entityContainers= entityDescriptor.getObjectMetadata().get(ScopesContainer.class);
         }
@@ -101,7 +101,7 @@ public abstract class AbstractMatchesShibMDScopeMatcher
             LOG.debug("{} No <shibmd:Scope> found for {}, no atributes matched",
                     getLogPrefix(),
                     entityDescriptor == null? "<unknown>" : entityDescriptor.getID());
-            return Collections.EMPTY_SET;
+            return Collections.emptySet();
         }
         
         for (final IdPAttributeValue value : attribute.getValues()) {
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 63285a6..ab288e4 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
@@ -240,7 +240,7 @@ public class AttributeInMetadataMatcher extends AbstractIdentifiableInitializabl
                         getLogPrefix());
             }
             
-            final Multimap<String,? extends IdPAttribute> requestedAttributes = containerList.get(0).get();
+            final Multimap<String,IdPAttribute> requestedAttributes = containerList.get(0).get();
 
             final Collection<? extends IdPAttribute> requestedAttributeList =
                     requestedAttributes.get(attribute.getId());
diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractStringPolicyRule.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractStringPolicyRule.java
index fa403ec..422df05 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractStringPolicyRule.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/impl/AbstractStringPolicyRule.java
@@ -59,7 +59,7 @@ public abstract class AbstractStringPolicyRule extends AbstractPolicyRule implem
      * @return whether the policy evaluation is case insensitive
      * @deprecated in V4: Use isCaseSensitive
      */
-    public boolean isIgnoreCase() {
+    @Deprecated public boolean isIgnoreCase() {
         DeprecationSupport.warnOnce(ObjectType.METHOD, "isIgnoreCase", null, "isCaseSensitive");
         return !isCaseSensitive();
     }
@@ -70,7 +70,7 @@ public abstract class AbstractStringPolicyRule extends AbstractPolicyRule implem
      * @param isCaseInsensitive whether the policy evaluation is case insensitive
      * @deprecated in V4: Use setCaseSensitive
      */
-    public void setIgnoreCase(final boolean isCaseInsensitive) {
+    @Deprecated public void setIgnoreCase(final boolean isCaseInsensitive) {
         DeprecationSupport.warnOnce(ObjectType.METHOD, "setIgnoreCase", null, "setCaseSensitive");
         setCaseSensitive(!isCaseInsensitive);
     }
diff --git a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributePolicyRule.java b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributePolicyRule.java
index defed0f..ae94225 100644
--- a/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributePolicyRule.java
+++ b/idp-attribute-filter-impl/src/main/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/AbstractEntityAttributePolicyRule.java
@@ -310,7 +310,7 @@ public abstract class AbstractEntityAttributePolicyRule extends AbstractPolicyRu
         
         int count = 0;
         
-        final Multimap<String,? extends IdPAttribute> mappedAttributes = containerList.get(0).get();
+        final Multimap<String, IdPAttribute> mappedAttributes = containerList.get(0).get();
         for (final IdPAttribute attribute : mappedAttributes.get(attrName)) {
             for (final IdPAttributeValue attributeValue : attribute.getValues()) {
                 if (attributeValue instanceof StringAttributeValue) {
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/impl/ValidateExternalAuthenticationTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/impl/ValidateExternalAuthenticationTest.java
index ba8d618..ab32846 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/impl/ValidateExternalAuthenticationTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/impl/ValidateExternalAuthenticationTest.java
@@ -125,7 +125,7 @@ public class ValidateExternalAuthenticationTest extends BaseAuthenticationContex
         final AttributeFilterImpl filter = new AttributeFilterImpl("test", Collections.singletonList(policy));
         filter.initialize();
         
-        return new MockReloadableService(filter);
+        return new MockReloadableService<AttributeFilter>(filter);
     }
 
 }
\ No newline at end of file
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/MockValuePredicateMatcher.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/MockValuePredicateMatcher.java
index a01a615..895d1bd 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/MockValuePredicateMatcher.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/MockValuePredicateMatcher.java
@@ -25,7 +25,7 @@ import net.shibboleth.utilities.java.support.component.ComponentInitializationEx
 
 public class MockValuePredicateMatcher extends AbstractMatcher {
 
-    Predicate valuePredicate;
+    Predicate<IdPAttributeValue> valuePredicate;
 
     /**
      * Constructor.
@@ -33,7 +33,7 @@ public class MockValuePredicateMatcher extends AbstractMatcher {
      * @param valueMatchingPredicate
      * @throws ComponentInitializationException
      */
-    public MockValuePredicateMatcher(Predicate valueMatchingPredicate) throws ComponentInitializationException {
+    public MockValuePredicateMatcher(Predicate<IdPAttributeValue> valueMatchingPredicate) throws ComponentInitializationException {
         valuePredicate  = valueMatchingPredicate;
         setId("mock1");
         initialize();
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/ScriptedMatcherTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/ScriptedMatcherTest.java
index c3a7838..c2544a8 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/ScriptedMatcherTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/impl/ScriptedMatcherTest.java
@@ -319,7 +319,7 @@ public class ScriptedMatcherTest extends AbstractMatcherPolicyRuleTest {
 
         final IdPAttribute newAttr = attribute.clone();
 
-        final Set<IdPAttributeValue> s = new LinkedHashSet(2);
+        final Set<IdPAttributeValue> s = new LinkedHashSet<>(2);
         s.add(new StringAttributeValue(ProfileRequestContext.class.getName()));
         s.add(new StringAttributeValue("BAR"));
         s.add(new StringAttributeValue("FOO"));
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 e0249ce..dfe802f 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
@@ -45,7 +45,7 @@ public class AbstractComposedMatcherTest {
 
     @Test public void testInitDestroy() throws ComponentInitializationException {
         final List<Matcher> firstList = new ArrayList<>(2);
-        ComposedMatcher matcher = new ComposedMatcher(Collections.EMPTY_LIST);
+        ComposedMatcher matcher = new ComposedMatcher(Collections.emptyList());
 
         for (int i = 0; i < 2; i++) {
             firstList.add(new TestMatcher());
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 5ea94cb..a59316c 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
@@ -140,7 +140,7 @@ public class AndMatcherTest extends AbstractMatcherPolicyRuleTest {
 
     @Test(expectedExceptions = {ComponentInitializationException.class}) public void emptyInput()
             throws ComponentInitializationException {
-        final AndMatcher matcher = newAndMatcher(Collections.EMPTY_LIST);
+        final AndMatcher matcher = newAndMatcher(Collections.emptyList());
         matcher.setId("test");
         matcher.initialize();
     }
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/OrMatcherTest.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/OrMatcherTest.java
index abf953f..edbd672 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/OrMatcherTest.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/matcher/logic/impl/OrMatcherTest.java
@@ -29,6 +29,7 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Set;
+import java.util.function.Predicate;
 
 import org.testng.annotations.BeforeTest;
 import org.testng.annotations.Test;
@@ -124,7 +125,7 @@ public class OrMatcherTest extends AbstractMatcherPolicyRuleTest {
             // expect this
         }
 
-        matcher = newOrMatcher(Collections.EMPTY_LIST);
+        matcher = newOrMatcher(Collections.emptyList());
         matcher.setId("test");
         try {
             matcher.initialize();
@@ -152,9 +153,10 @@ public class OrMatcherTest extends AbstractMatcherPolicyRuleTest {
     }
 
     @Test public void testNoMatchingValues() throws Exception {
+        final Predicate p = equalTo("Nothing");
+        final Predicate q = equalTo("Zippo");
         final OrMatcher matcher =
-                newOrMatcher(Arrays.<Matcher>asList(new MockValuePredicateMatcher(equalTo("Nothing")),
-                        new MockValuePredicateMatcher(equalTo("Zippo"))));
+                newOrMatcher(Arrays.<Matcher>asList(new MockValuePredicateMatcher(p), new MockValuePredicateMatcher(q)));
 
         matcher.setId("Test");
         matcher.initialize();
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 21ae67f..0ab1db5 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
@@ -44,7 +44,7 @@ public class AbstractComposedPolicyRuleTest {
     @Test
     public void testInitDestroy() throws ComponentInitializationException {
         final List<PolicyRequirementRule> firstList = new ArrayList<>(2);
-        ComposedPolicyRule rule = new ComposedPolicyRule(Collections.EMPTY_LIST);
+        ComposedPolicyRule rule = new ComposedPolicyRule(Collections.emptyList());
         
         for (int i = 0; i < 2;i++) {
             firstList.add(new TestMatcher());
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 6d96f2a..f469c47 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
@@ -60,7 +60,7 @@ public class AndPolicyRuleTest extends AbstractMatcherPolicyRuleTest {
 
     @Test(expectedExceptions = {ComponentInitializationException.class}) public void emptyInput()
             throws ComponentInitializationException {
-        final AndPolicyRule rule = newAndPolicyRule(Collections.EMPTY_LIST);
+        final AndPolicyRule rule = newAndPolicyRule(Collections.emptyList());
         rule.setId("test");
         rule.initialize();
     }
diff --git a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/BaseMetadataTests.java b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/BaseMetadataTests.java
index b9d40fa..f1405e3 100644
--- a/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/BaseMetadataTests.java
+++ b/idp-attribute-filter-impl/src/test/java/net/shibboleth/idp/attribute/filter/policyrule/saml/impl/BaseMetadataTests.java
@@ -73,7 +73,7 @@ public class BaseMetadataTests extends XMLObjectBaseTestCase {
         
         final NodeProcessingMetadataFilter filter = new NodeProcessingMetadataFilter();
         filter.setNodeProcessors(Arrays.asList(new EntitiesDescriptorNameProcessor(),
-                new AttributeMappingNodeProcessor(new MockReloadableService(registry))));
+                new AttributeMappingNodeProcessor(new MockReloadableService<>(registry))));
         filter.initialize();
         filter.filter(metadata);
 
diff --git a/idp-attribute-impl/src/main/java/net/shibboleth/idp/attribute/impl/JDBCPairwiseIdStore.java b/idp-attribute-impl/src/main/java/net/shibboleth/idp/attribute/impl/JDBCPairwiseIdStore.java
index c6de715..2645ac4 100644
--- a/idp-attribute-impl/src/main/java/net/shibboleth/idp/attribute/impl/JDBCPairwiseIdStore.java
+++ b/idp-attribute-impl/src/main/java/net/shibboleth/idp/attribute/impl/JDBCPairwiseIdStore.java
@@ -244,7 +244,7 @@ public class JDBCPairwiseIdStore extends AbstractInitializableComponent implemen
     public void setRetryableErrors(@Nullable @NonnullElements final Collection<String> errors) {
         ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
         
-        retryableErrors = new ArrayList(StringSupport.normalizeStringCollection(errors));
+        retryableErrors = new ArrayList<>(StringSupport.normalizeStringCollection(errors));
     }
     
     /**
diff --git a/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractResolverPlugin.java b/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractResolverPlugin.java
index 0290705..224ec43 100644
--- a/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractResolverPlugin.java
+++ b/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractResolverPlugin.java
@@ -290,7 +290,7 @@ public abstract class AbstractResolverPlugin<ResolvedType> extends AbstractIdent
             return false;
         }
 
-        final AbstractResolverPlugin<ResolvedType> other = (AbstractResolverPlugin<ResolvedType>) obj;
+        final AbstractResolverPlugin other = (AbstractResolverPlugin) obj;
         return java.util.Objects.equals(getId(), other.getId());
     }
 
diff --git a/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnectorTest.java b/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnectorTest.java
index 1f02ab3..6df1e92 100644
--- a/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnectorTest.java
+++ b/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnectorTest.java
@@ -46,14 +46,14 @@ public class AbstractDataConnectorTest {
 
     /** Test instantiation and post-instantiation state. */
     @Test public void instantiation() {
-        MockBaseDataConnector connector = new MockBaseDataConnector("foo", Collections.EMPTY_MAP);
+        MockBaseDataConnector connector = new MockBaseDataConnector("foo", Collections.emptyMap());
 
         Assert.assertNull(connector.getFailoverDataConnectorId());
     }
 
     /** Test getting/setting dependency ID. */
     @Test public void failoverDependencyId() {
-        MockBaseDataConnector connector = new MockBaseDataConnector("foo", Collections.EMPTY_MAP);
+        MockBaseDataConnector connector = new MockBaseDataConnector("foo", Collections.emptyMap());
 
         connector.setFailoverDataConnectorId(" foo ");
         assertEquals(connector.getFailoverDataConnectorId(), "foo");
diff --git a/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AttributeResolverWorkContextTest.java b/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AttributeResolverWorkContextTest.java
index 81e2c85..2523169 100644
--- a/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AttributeResolverWorkContextTest.java
+++ b/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AttributeResolverWorkContextTest.java
@@ -115,7 +115,7 @@ public class AttributeResolverWorkContextTest {
             // expected this
         }
 
-        connector = new MockDataConnector("bar", (Map) null);
+        connector = new MockDataConnector("bar", (Map<String,IdPAttribute>) null);
         connector.initialize();
 
         context.recordDataConnectorResolution(connector, null);
@@ -131,7 +131,7 @@ public class AttributeResolverWorkContextTest {
         try {
             MockStaticDataConnector other = new MockStaticDataConnector();
             other.setId("bar");
-            other.setValues(Collections.EMPTY_LIST);
+            other.setValues(Collections.emptyList());
             other.initialize();
             context.recordDataConnectorResolution(other, null);
             Assert.fail("Cannot cross the same bridge twice or add the same resolvedId twice");
diff --git a/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/ResolvedDataConnectorTest.java b/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/ResolvedDataConnectorTest.java
index 3d84ea9..8f86f99 100644
--- a/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/ResolvedDataConnectorTest.java
+++ b/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/ResolvedDataConnectorTest.java
@@ -36,7 +36,7 @@ import org.testng.annotations.Test;
  */
 public class ResolvedDataConnectorTest {
 
-    private final Map<String, IdPAttribute> resolvedData = Collections.EMPTY_MAP;
+    private final Map<String, IdPAttribute> resolvedData = Collections.emptyMap();
 
     @Test public void init() {
         MockStaticDataConnector dc = new MockStaticDataConnector();
diff --git a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/SourceValue.java b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/SourceValue.java
index c41fdc0..f00fc3a 100644
--- a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/SourceValue.java
+++ b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/mapped/impl/SourceValue.java
@@ -95,7 +95,7 @@ public class SourceValue extends AbstractInitializableComponent {
      * @param theIgnoreCase whether case should be ignored when matching.  Null defaults to false;
      * @deprecated in V4 - use setCaseSensitive
      */
-    public void setIgnoreCase(final boolean theIgnoreCase) {
+    @Deprecated public void setIgnoreCase(final boolean theIgnoreCase) {
         ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
         DeprecationSupport.warnOnce(ObjectType.METHOD, "setIgnoreCase", null, "setCaseSensitive");
             setCaseSensitive(!theIgnoreCase);
@@ -108,7 +108,7 @@ public class SourceValue extends AbstractInitializableComponent {
      * @return whether case should be ignored when matching
      * @deprecated in V4 - use isCaseSensitive
      */
-    public boolean isIgnoreCase() {
+    @Deprecated public boolean isIgnoreCase() {
         DeprecationSupport.warnOnce(ObjectType.METHOD, "isIgnoreCase", null, "isCaseSensitive");
         return !isCaseSensitive();
     }
diff --git a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/TemplatedExecutableSearchFilterBuilder.java b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/TemplatedExecutableSearchFilterBuilder.java
index 65fc97a..d8ad4eb 100644
--- a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/TemplatedExecutableSearchFilterBuilder.java
+++ b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/TemplatedExecutableSearchFilterBuilder.java
@@ -238,13 +238,13 @@ public class TemplatedExecutableSearchFilterBuilder extends AbstractExecutableSe
             if (value == null) {
                 return null;
             } else if (value instanceof Object[]) {
-                final List<Object> encodedValues = new ArrayList();
+                final List<Object> encodedValues = new ArrayList<>();
                 for (final Object o : (Object[]) value) {
                     encodedValues.add(encode(o));
                 }
                 return encodedValues.toArray();
             } else if (value instanceof Collection) {
-                final List<Object> encodedValues = new ArrayList();
+                final List<Object> encodedValues = new ArrayList<>();
                 for (final Object o : (Collection) value) {
                     encodedValues.add(encode(o));
                 }
diff --git a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverServiceGaugeSet.java b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverServiceGaugeSet.java
index 1494b93..3f0790c 100644
--- a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverServiceGaugeSet.java
+++ b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverServiceGaugeSet.java
@@ -43,7 +43,8 @@ import net.shibboleth.utilities.java.support.service.ServiceableComponent;
 /**
  * Additional gauges for attribute resolver.
  */
-public class AttributeResolverServiceGaugeSet extends ReloadableServiceGaugeSet implements MetricSet, MetricFilter {
+public class AttributeResolverServiceGaugeSet extends ReloadableServiceGaugeSet<AttributeResolver>
+                        implements MetricSet, MetricFilter {
     
     /** Class logger. */
     @Nonnull private final Logger log = LoggerFactory.getLogger(AttributeResolverServiceGaugeSet.class);
@@ -62,7 +63,7 @@ public class AttributeResolverServiceGaugeSet extends ReloadableServiceGaugeSet
                 MetricRegistry.name(DEFAULT_METRIC_NAME, metricName, "failure"),
                 new Gauge<Map<String,Instant>>() {
                     public Map<String,Instant> getValue() {
-                        final Builder mapBuilder = ImmutableMap.<String,Instant>builder();
+                        final Builder<String,Instant> mapBuilder = ImmutableMap.<String,Instant>builder();
                         final ServiceableComponent<AttributeResolver> component =
                                 getService().getServiceableComponent();
                         if (component != null) {
diff --git a/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/ContextDerivedAttributeDefinitionTest.java b/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/ContextDerivedAttributeDefinitionTest.java
index d41af84..7eea0af 100644
--- a/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/ContextDerivedAttributeDefinitionTest.java
+++ b/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/ContextDerivedAttributeDefinitionTest.java
@@ -88,7 +88,7 @@ public class ContextDerivedAttributeDefinitionTest {
     }
     
     @Test public void empty() throws ComponentInitializationException, ResolutionException {
-        final List<IdPAttributeValue> list = Collections.EMPTY_LIST;
+        final List<IdPAttributeValue> list = Collections.emptyList();
         
         final IdPAttribute attr = new IdPAttribute("wibble");
         attr.setValues(list);
diff --git a/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScriptedAttributeTest.java b/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScriptedAttributeTest.java
index 7f97b1c..9c127d3 100644
--- a/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScriptedAttributeTest.java
+++ b/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/ScriptedAttributeTest.java
@@ -554,32 +554,32 @@ public class ScriptedAttributeTest extends XMLObjectBaseTestCase {
                 DigestUtils.md5Hex("12345678some#salt#value#12345679") + "@switch.ch");
 
         attribute = runExample("example2.script", "example2.attribute.xml", "eduPersonAffiliation");
-        HashSet<IdPAttributeValue> set = new HashSet(attribute.getValues());
+        HashSet<IdPAttributeValue> set = new HashSet<>(attribute.getValues());
         assertEquals(set.size(), 3);
         assertTrue(set.contains(new StringAttributeValue("affiliate")));
         assertTrue(set.contains(new StringAttributeValue("student")));
         assertTrue(set.contains(new StringAttributeValue("staff")));
 
         attribute = runExample("example3.script", "example3.attribute.xml", "eduPersonAffiliation");
-        set = new HashSet(attribute.getValues());
+        set = new HashSet<>(attribute.getValues());
         assertEquals(set.size(), 2);
         assertTrue(set.contains(new StringAttributeValue("member")));
         assertTrue(set.contains(new StringAttributeValue("staff")));
 
         attribute = runExample("example3.script", "example3.attribute.2.xml", "eduPersonAffiliation");
-        set = new HashSet(attribute.getValues());
+        set = new HashSet<>(attribute.getValues());
         assertEquals(set.size(), 3);
         assertTrue(set.contains(new StringAttributeValue("member")));
         assertTrue(set.contains(new StringAttributeValue("staff")));
         assertTrue(set.contains(new StringAttributeValue("walkin")));
 
         attribute = runExample("example4.script", "example4.attribute.xml", "eduPersonEntitlement");
-        set = new HashSet(attribute.getValues());
+        set = new HashSet<>(attribute.getValues());
         assertEquals(set.size(), 1);
         assertTrue(set.contains(new StringAttributeValue("urn:mace:dir:entitlement:common-lib-terms")));
 
         attribute = runExample("example4.script", "example4.attribute.2.xml", "eduPersonEntitlement");
-        set = new HashSet(attribute.getValues());
+        set = new HashSet<>(attribute.getValues());
         assertEquals(set.size(), 2);
         assertTrue(set.contains(new StringAttributeValue("urn:mace:dir:entitlement:common-lib-terms")));
         assertTrue(set.contains(new StringAttributeValue("LittleGreenMen")));
@@ -598,7 +598,7 @@ public class ScriptedAttributeTest extends XMLObjectBaseTestCase {
         scripted.initialize();
 
         final IdPAttribute result = scripted.resolve(generateContext());
-        final HashSet<IdPAttributeValue> set = new HashSet(result.getValues());
+        final HashSet<IdPAttributeValue> set = new HashSet<>(result.getValues());
         assertEquals(set.size(), 3);
         assertTrue(set.contains(new StringAttributeValue(TestSources.PRINCIPAL_ID)));
         assertTrue(set.contains(new StringAttributeValue(TestSources.IDP_ENTITY_ID)));
diff --git a/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/TemplateAttributeTest.java b/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/TemplateAttributeTest.java
index 9fd81ff..78d1908 100644
--- a/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/TemplateAttributeTest.java
+++ b/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/TemplateAttributeTest.java
@@ -292,7 +292,7 @@ public class TemplateAttributeTest {
         attrDefinitions.add(templateDef);
         attrDefinitions.add(simple);
 
-        final AttributeResolverImpl resolver = AttributeResolverImplTest.newAttributeResolverImpl("foo", attrDefinitions, Collections.EMPTY_SET);
+        final AttributeResolverImpl resolver = AttributeResolverImplTest.newAttributeResolverImpl("foo", attrDefinitions, Collections.emptySet());
         resolver.initialize();
 
         final AttributeResolutionContext context = new AttributeResolutionContext();
@@ -325,7 +325,7 @@ public class TemplateAttributeTest {
         attrDefinitions.add(TestSources.populatedStaticAttribute());
         attrDefinitions.add(TestSources.populatedStaticAttribute(otherAttrName, 1));
 
-        final AttributeResolverImpl resolver = AttributeResolverImplTest.newAttributeResolverImpl("foo", attrDefinitions, Collections.EMPTY_SET);
+        final AttributeResolverImpl resolver = AttributeResolverImplTest.newAttributeResolverImpl("foo", attrDefinitions, Collections.emptySet());
         resolver.initialize();
 
         final AttributeResolutionContext context = new AttributeResolutionContext();
@@ -357,7 +357,7 @@ public class TemplateAttributeTest {
         attrDefinitions.add(TestSources.populatedStaticAttribute());
         attrDefinitions.add(TestSources.populatedStaticAttribute(otherAttrName, 0));
 
-        final AttributeResolverImpl resolver = AttributeResolverImplTest.newAttributeResolverImpl("foo", attrDefinitions, Collections.EMPTY_SET);
+        final AttributeResolverImpl resolver = AttributeResolverImplTest.newAttributeResolverImpl("foo", attrDefinitions, Collections.emptySet());
         resolver.initialize();
 
         final AttributeResolutionContext context = new AttributeResolutionContext();
@@ -401,7 +401,7 @@ public class TemplateAttributeTest {
         attrDefinitions.add(templateDef);
         attrDefinitions.add(simple);
 
-        final AttributeResolverImpl resolver = AttributeResolverImplTest.newAttributeResolverImpl("foo", attrDefinitions, Collections.EMPTY_SET);
+        final AttributeResolverImpl resolver = AttributeResolverImplTest.newAttributeResolverImpl("foo", attrDefinitions, Collections.emptySet());
         resolver.initialize();
 
         final AttributeResolutionContext context = new AttributeResolutionContext();
diff --git a/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnectorTest.java b/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnectorTest.java
index bd5e677..2fdd43f 100644
--- a/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnectorTest.java
+++ b/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/LDAPDataConnectorTest.java
@@ -109,7 +109,7 @@ public class LDAPDataConnectorTest {
      * @return ldap data connector
      * @throws ComponentInitializationException 
      */
-    protected LDAPDataConnector createLdapDataConnector(final ExecutableSearchBuilder builder,
+    protected LDAPDataConnector createLdapDataConnector(final ExecutableSearchBuilder<ExecutableSearchFilter> builder,
             final SearchResultMappingStrategy strategy) throws ComponentInitializationException {
         final LDAPDataConnector connector = new LDAPDataConnector();
         connector.setId(TEST_CONNECTOR_NAME);
@@ -157,7 +157,7 @@ public class LDAPDataConnectorTest {
             // OK
         }
 
-        final ExecutableSearchBuilder requestBuilder =
+        final ExecutableSearchBuilder<ExecutableSearchFilter> requestBuilder =
                 newParameterizedExecutableSearchFilterBuilder("(uid={principalName})");
         connector.setExecutableSearchBuilder(requestBuilder);
         try {
@@ -350,7 +350,7 @@ public class LDAPDataConnectorTest {
         assertEquals(filter.getResultCacheKey(), "(cn=domain\\5cuser\\2a)");
     }
 
-    protected void resolve(final ExecutableSearchBuilder builder) throws ComponentInitializationException,
+    protected void resolve(final ExecutableSearchBuilder<ExecutableSearchFilter> builder) throws ComponentInitializationException,
             ResolutionException {
         final LDAPDataConnector connector = createLdapDataConnector(builder, new StringAttributeValueMappingStrategy());
         connector.initialize();
@@ -380,7 +380,7 @@ public class LDAPDataConnectorTest {
         assertTrue(attrs.get("mail").getValues().contains(new StringAttributeValue("peterprincipal at shibboleth.net")));
     }
 
-    protected void resolveMulti(final ExecutableSearchBuilder builder) throws ComponentInitializationException,
+    protected void resolveMulti(final ExecutableSearchBuilder<ExecutableSearchFilter> builder) throws ComponentInitializationException,
             ResolutionException {
         final LDAPDataConnector connector = createLdapDataConnector(builder, new StringAttributeValueMappingStrategy());
         connector.initialize();
diff --git a/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/Regressions.java b/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/Regressions.java
index 3669b3d..f250d43 100644
--- a/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/Regressions.java
+++ b/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/ldap/impl/Regressions.java
@@ -98,7 +98,7 @@ public class Regressions {
      * @return ldap data connector
      * @throws ComponentInitializationException 
      */
-    protected LDAPDataConnector createLdapDataConnector(final ExecutableSearchBuilder builder,
+    protected LDAPDataConnector createLdapDataConnector(final ExecutableSearchBuilder<ExecutableSearchFilter> builder,
             final SearchResultMappingStrategy strategy) throws ComponentInitializationException {
         final LDAPDataConnector connector = new LDAPDataConnector();
         connector.setId(TEST_CONNECTOR_NAME);
diff --git a/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/impl/RDBMSDataConnectorTest.java b/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/impl/RDBMSDataConnectorTest.java
index ab5c9ba..b2ff70e 100644
--- a/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/impl/RDBMSDataConnectorTest.java
+++ b/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/rdbms/impl/RDBMSDataConnectorTest.java
@@ -90,7 +90,7 @@ public class RDBMSDataConnectorTest {
      * @param strategy to map results
      * @return rdbms data connector
      */
-    protected RDBMSDataConnector createUserRdbmsDataConnector(final ExecutableSearchBuilder builder,
+    protected RDBMSDataConnector createUserRdbmsDataConnector(final ExecutableSearchBuilder<ExecutableStatement> builder,
             final ResultMappingStrategy strategy) {
         final RDBMSDataConnector connector = new RDBMSDataConnector();
         connector.setId(TEST_CONNECTOR_NAME);
@@ -108,7 +108,7 @@ public class RDBMSDataConnectorTest {
      * @param strategy to map results
      * @return rdbms data connector
      */
-    protected RDBMSDataConnector createGroupRdbmsDataConnector(final ExecutableSearchBuilder builder,
+    protected RDBMSDataConnector createGroupRdbmsDataConnector(final ExecutableSearchBuilder<ExecutableStatement> builder,
             final ResultMappingStrategy strategy) {
         final RDBMSDataConnector connector = new RDBMSDataConnector();
         connector.setId(TEST_CONNECTOR_NAME + "ForGroups");
@@ -138,7 +138,7 @@ public class RDBMSDataConnectorTest {
             // OK
         }
 
-        final ExecutableSearchBuilder statementBuilder = newFormatExecutableStatementBuilder(USER_QUERY);
+        final ExecutableSearchBuilder<ExecutableStatement> statementBuilder = newFormatExecutableStatementBuilder(USER_QUERY);
         connector.setExecutableSearchBuilder(statementBuilder);
         try {
             connector.initialize();
@@ -174,7 +174,7 @@ public class RDBMSDataConnectorTest {
     @Test public void failFastInitialize() throws ComponentInitializationException {
         final RDBMSDataConnector connector = new RDBMSDataConnector();
         connector.setId(TEST_CONNECTOR_NAME);
-        final ExecutableSearchBuilder statementBuilder = newFormatExecutableStatementBuilder(USER_QUERY);
+        final ExecutableSearchBuilder<ExecutableStatement> statementBuilder = newFormatExecutableStatementBuilder(USER_QUERY);
         connector.setExecutableSearchBuilder(statementBuilder);
         connector.setDataSource(new JDBCDataSource());
 
diff --git a/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImplTest.java b/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImplTest.java
index 82ab9d8..5c5b501 100644
--- a/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImplTest.java
+++ b/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImplTest.java
@@ -70,7 +70,7 @@ public class AttributeResolverImplTest {
     /** Test post-instantiation state. */
     @Test public void initDestroy() throws Exception {
         final MockAttributeDefinition attrDef = new MockAttributeDefinition("foo", new IdPAttribute("test"));
-        final MockDataConnector dataCon = new MockDataConnector("bar", (Map) null);
+        final MockDataConnector dataCon = new MockDataConnector("bar", (Map<String, IdPAttribute>) null);
         dataCon.initialize();
         final AttributeResolverImpl resolver =
                 newAttributeResolverImpl("toto", Collections.singleton((AttributeDefinition) attrDef),
@@ -134,15 +134,15 @@ public class AttributeResolverImplTest {
     /** Test getting, setting, overwriting, defensive collection copy. */
     @Test public void setDataConnectors() throws Exception {
         final ArrayList<DataConnector> connectors = new ArrayList<>();
-        connectors.add(new MockDataConnector("foo", (Map) null));
+        connectors.add(new MockDataConnector("foo", (Map<String, IdPAttribute>) null));
         connectors.add(null);
-        connectors.add(new MockDataConnector("bar", (Map) null));
+        connectors.add(new MockDataConnector("bar", (Map<String, IdPAttribute>) null));
 
         final AttributeResolverImpl resolver = newAttributeResolverImpl("foo", null, connectors);
         assertNotNull(resolver.getDataConnectors());
         assertEquals(resolver.getDataConnectors().size(), 2);
 
-        connectors.add(new MockDataConnector("foo", (Map) null));
+        connectors.add(new MockDataConnector("foo", (Map<String, IdPAttribute>) null));
         try {
             newAttributeResolverImpl(" foo ", null, connectors);
             fail();
@@ -295,7 +295,7 @@ public class AttributeResolverImplTest {
     /** Test that resolve w/ dependencies returns the expected results. */
 
     @Test public void resolveWithDependencies() throws Exception {
-        final MockDataConnector dc1 = new MockDataConnector("dc1", (Map) null);
+        final MockDataConnector dc1 = new MockDataConnector("dc1", (Map<String, IdPAttribute>) null);
         dc1.initialize();
 
         final IdPAttribute attr = new IdPAttribute("test");
@@ -462,7 +462,7 @@ public class AttributeResolverImplTest {
     }
 
     @Test public void cachedDataConnectorDependency() throws ComponentInitializationException, ResolutionException {
-        final MockDataConnector dc1 = new MockDataConnector("dc1", (Map) null);
+        final MockDataConnector dc1 = new MockDataConnector("dc1", (Map<String, IdPAttribute>) null);
         dc1.initialize();
 
         final ResolverDataConnectorDependency dep1 = TestSources.makeDataConnectorDependency("dc1", null);
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/DataConnectorFactoryBean.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/DataConnectorFactoryBean.java
index 4099541..c6c90ac 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/DataConnectorFactoryBean.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/DataConnectorFactoryBean.java
@@ -91,7 +91,7 @@ public class DataConnectorFactoryBean extends AbstractResolverPluginFactoryBean<
     private Boolean exportAllAttributes;
 
     /** Which named attributes do we release?. */
-    @Nonnull @NonnullElements private Collection<String> exportAttributes = Collections.EMPTY_SET;
+    @Nonnull @NonnullElements private Collection<String> exportAttributes = Collections.emptySet();
 
     /**
      * Data Connector property "failoverDataConnectorId".
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
index d7df36e..92225aa 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
@@ -656,7 +656,7 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
                             AttributeResolverNamespaceHandler.NAMESPACE, "Column");
 
             if (!columns.isEmpty()) {
-                final ManagedMap renamingMap = new ManagedMap();
+                final ManagedMap<String, String> renamingMap = new ManagedMap<>();
                 for (final Element column : columns) {
                     final String columnName = AttributeSupport.getAttributeValue(column, null, "columnName");
                     final String attributeId = AttributeSupport.getAttributeValue(column, null, "attributeID");
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java
index ce7b188..51f9da4 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java
@@ -253,7 +253,7 @@ public class RDBMSDataConnectorParser extends AbstractDataConnectorParser {
             final List<Element> columns = ElementSupport.getChildElementsByTagNameNS(configElement,
                     AttributeResolverNamespaceHandler.NAMESPACE, "Column");
             if (!columns.isEmpty()) {
-                final ManagedMap renamingMap = new ManagedMap();
+                final ManagedMap<String, String> renamingMap = new ManagedMap<>();
                 for (final Element column : columns) {
                     final String columnName = AttributeSupport.getAttributeValue(column, null, "columnName");
                     final String attributeId = AttributeSupport.getAttributeValue(column, null, "attributeID");
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseAttributeEncoderParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseAttributeEncoderParser.java
index b5d3e74..285e783 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseAttributeEncoderParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/enc/BaseAttributeEncoderParser.java
@@ -78,7 +78,7 @@ public abstract class BaseAttributeEncoderParser extends AbstractSingleBeanDefin
     @Override
     protected void doParse(final Element config, final ParserContext context, final BeanDefinitionBuilder builder) {
 
-        final ManagedMap rule = new ManagedMap();
+        final ManagedMap<String, Object> rule = new ManagedMap<>();
 
         builder.addConstructorArgValue(rule);
         
@@ -157,7 +157,8 @@ public abstract class BaseAttributeEncoderParser extends AbstractSingleBeanDefin
      * @param rule the map of rules to add to
      * @param propertyPrefix the root property name to install
      */
-    private void processLocalizedElement(@Nonnull final List<Element> elements, @Nonnull final ManagedMap rule,
+    private void processLocalizedElement(@Nonnull final List<Element> elements,
+            @Nonnull final ManagedMap<String, Object> rule,
             @Nonnull @NotEmpty final String propertyPrefix) {
         
         for (final Element element : elements) {
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/SAML1XMLObjectAttributeEncoderParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/SAML1XMLObjectAttributeEncoderParserTest.java
index ad45036..0ae5a24 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/SAML1XMLObjectAttributeEncoderParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/enc/SAML1XMLObjectAttributeEncoderParserTest.java
@@ -47,9 +47,9 @@ public class SAML1XMLObjectAttributeEncoderParserTest extends BaseEncoderDefinit
         assertTrue(rule.get(AttributeTranscoderRegistry.PROP_TRANSCODER) instanceof SAML1XMLObjectAttributeTranscoder);
         assertEquals(rule.get(SAML1AttributeTranscoder.PROP_NAME), "SAML1_XMLObject_ATTRIBUTE_NAME");
         assertEquals(rule.get(SAML1AttributeTranscoder.PROP_NAMESPACE), "SAML1_XMLObject_ATTRIBUTE_NAME_SPACE");
-        assertEquals(activation, ((Predicate) rule.get(AttributeTranscoderRegistry.PROP_CONDITION)).test(null));
+        assertEquals(activation, ((Predicate<Object>) rule.get(AttributeTranscoderRegistry.PROP_CONDITION)).test(null));
         checkEncodeType(rule, SAML1AttributeTranscoder.PROP_ENCODE_TYPE, encodeType!=null ? encodeType : true);
-}
+    }
     
     @Test public void defaultCase() {
         final Map<String,Object> rule = getAttributeTranscoderRule("resolver/saml1XmlObjectDefault.xml").getMap();
@@ -57,7 +57,7 @@ public class SAML1XMLObjectAttributeEncoderParserTest extends BaseEncoderDefinit
         assertTrue(rule.get(AttributeTranscoderRegistry.PROP_TRANSCODER) instanceof SAML1XMLObjectAttributeTranscoder);
         assertEquals(rule.get(SAML1AttributeTranscoder.PROP_NAME), "XMLObject_ATTRIBUTE");
         assertNull(rule.get(SAML1AttributeTranscoder.PROP_NAMESPACE));
-        assertFalse(((Predicate) rule.get(AttributeTranscoderRegistry.PROP_CONDITION)).test(null));
+        assertFalse(((Predicate<Object>) rule.get(AttributeTranscoderRegistry.PROP_CONDITION)).test(null));
         checkEncodeType(rule, SAML1AttributeTranscoder.PROP_ENCODE_TYPE, true);
     }
     
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AuthenticationResult.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AuthenticationResult.java
index 52f42e3..5bfe394 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AuthenticationResult.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/AuthenticationResult.java
@@ -90,7 +90,7 @@ public class AuthenticationResult implements PrincipalSupportingComponent {
      */
     public AuthenticationResult(@Nonnull @NotEmpty final String flowId, @Nonnull final Principal principal) {
         this(flowId, new Subject(false, ImmutableSet.of(Constraint.isNotNull(principal, "Principal cannot be null")),
-                Collections.EMPTY_SET, Collections.EMPTY_SET));
+                Collections.emptySet(), Collections.emptySet()));
     }
     
     /**
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/RequestedPrincipalContext.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/RequestedPrincipalContext.java
index 46eae9e..1e0a2d9 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/RequestedPrincipalContext.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/context/RequestedPrincipalContext.java
@@ -229,10 +229,10 @@ public final class RequestedPrincipalContext extends BaseContext {
     public boolean isAcceptable(@Nonnull @NonnullElements final Collection<Principal> principals) {
         return isAcceptable(new PrincipalSupportingComponent() {
             public <T extends Principal> Set<T> getSupportedPrincipals(final Class<T> c) {
-                final HashSet set = new HashSet<>();
+                final HashSet<T> set = new HashSet<>();
                 for (final Principal p : principals) {
                     if (c.isAssignableFrom(p.getClass())) {
-                        set.add(p);
+                        set.add((T)p);
                     }
                 }
                 return set;
diff --git a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/principal/PrincipalEvalPredicateFactoryRegistry.java b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/principal/PrincipalEvalPredicateFactoryRegistry.java
index 5a0606a..6d66494 100644
--- a/idp-authn-api/src/main/java/net/shibboleth/idp/authn/principal/PrincipalEvalPredicateFactoryRegistry.java
+++ b/idp-authn-api/src/main/java/net/shibboleth/idp/authn/principal/PrincipalEvalPredicateFactoryRegistry.java
@@ -50,7 +50,7 @@ public final class PrincipalEvalPredicateFactoryRegistry {
 
     /** Constructor. */
     public PrincipalEvalPredicateFactoryRegistry() {
-        registry = new ConcurrentHashMap();
+        registry = new ConcurrentHashMap<>();
     }
     
     /**
@@ -60,7 +60,7 @@ public final class PrincipalEvalPredicateFactoryRegistry {
      */
     public PrincipalEvalPredicateFactoryRegistry(@Nonnull @NonnullElements @ParameterName(name="fromMap") final
             Map<Pair<Class<? extends Principal>, String>, PrincipalEvalPredicateFactory> fromMap) {
-        registry = new ConcurrentHashMap(Constraint.isNotNull(fromMap, "Source map cannot be null"));
+        registry = new ConcurrentHashMap<>(Constraint.isNotNull(fromMap, "Source map cannot be null"));
     }
     
     /**
@@ -76,7 +76,7 @@ public final class PrincipalEvalPredicateFactoryRegistry {
         final String trimmed =
                 Constraint.isNotNull(StringSupport.trimOrNull(operator), "Operator cannot be null or empty");
         
-        final Pair key = new Pair(principalType, trimmed);
+        final Pair key = new Pair<>(principalType, trimmed);
         final PrincipalEvalPredicateFactory factory = registry.get(key);
         if (factory != null) {
             log.debug("Registry located predicate factory of type '{}' for principal type '{}' and operator '{}'",
@@ -105,7 +105,7 @@ public final class PrincipalEvalPredicateFactoryRegistry {
         
         log.debug("Registering predicate factory of type '{}' for principal type '{}' and operator '{}'",
                 factory.getClass().getName(), principalType, operator);
-        registry.put(new Pair(principalType, trimmed), factory);
+        registry.put(new Pair<>(principalType, trimmed), factory);
     }
     
     /**
@@ -121,6 +121,6 @@ public final class PrincipalEvalPredicateFactoryRegistry {
                 Constraint.isNotNull(StringSupport.trimOrNull(operator), "Operator cannot be null or empty");
         
         log.debug("Deregistering predicate factory for principal type '{}' and operator '{}'", principalType, operator);
-        registry.remove(new Pair(principalType, trimmed));
+        registry.remove(new Pair<>(principalType, trimmed));
     }
 }
\ No newline at end of file
diff --git a/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/logic/impl/AbstractAttributeDisplayFunction.java b/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/logic/impl/AbstractAttributeDisplayFunction.java
index fcc161c..91b59df 100644
--- a/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/logic/impl/AbstractAttributeDisplayFunction.java
+++ b/idp-consent-impl/src/main/java/net/shibboleth/idp/consent/logic/impl/AbstractAttributeDisplayFunction.java
@@ -58,7 +58,7 @@ public abstract class AbstractAttributeDisplayFunction implements Function<IdPAt
 
         languageRange = HttpServletSupport.getLanguageRange(request);
         if (defaultLanguages == null || defaultLanguages.isEmpty()) {
-            defaultLanguageRange = Collections.EMPTY_LIST;
+            defaultLanguageRange = Collections.emptyList();
         } else {
             defaultLanguageRange = defaultLanguages.
                     stream().
diff --git a/idp-consent-impl/src/test/java/net/shibboleth/idp/consent/logic/impl/AttributeValuesHashFunctionTest.java b/idp-consent-impl/src/test/java/net/shibboleth/idp/consent/logic/impl/AttributeValuesHashFunctionTest.java
index 42ca2ee..ea8f54a 100644
--- a/idp-consent-impl/src/test/java/net/shibboleth/idp/consent/logic/impl/AttributeValuesHashFunctionTest.java
+++ b/idp-consent-impl/src/test/java/net/shibboleth/idp/consent/logic/impl/AttributeValuesHashFunctionTest.java
@@ -42,7 +42,7 @@ public class AttributeValuesHashFunctionTest {
     }
 
     @Test public void testEmptyInput() {
-        Assert.assertNull(function.apply(Collections.EMPTY_LIST));
+        Assert.assertNull(function.apply(Collections.emptyList()));
     }
     
     @Test public void testNullValue() {
diff --git a/idp-core/src/main/java/net/shibboleth/idp/metrics/ReloadableServiceGaugeSet.java b/idp-core/src/main/java/net/shibboleth/idp/metrics/ReloadableServiceGaugeSet.java
index 01c3ef4..e4eb035 100644
--- a/idp-core/src/main/java/net/shibboleth/idp/metrics/ReloadableServiceGaugeSet.java
+++ b/idp-core/src/main/java/net/shibboleth/idp/metrics/ReloadableServiceGaugeSet.java
@@ -42,8 +42,9 @@ import javax.annotation.Nonnull;
 
 /**
  * A set of gauges for a reloadable service.
+ * @param <T> Type of service we are monitoring
  */
-public class ReloadableServiceGaugeSet extends AbstractInitializableComponent implements MetricSet, MetricFilter {
+public class ReloadableServiceGaugeSet<T> extends AbstractInitializableComponent implements MetricSet, MetricFilter {
 
     /** Default prefix for metrics. */
     @Nonnull @NotEmpty protected static final String DEFAULT_METRIC_NAME = "net.shibboleth.idp";
@@ -98,7 +99,7 @@ public class ReloadableServiceGaugeSet extends AbstractInitializableComponent im
      * 
      * @return service to report on
      */
-    @NonnullAfterInit public ReloadableService getService() {
+    @NonnullAfterInit public ReloadableService<T> getService() {
         return service;
     }
     
diff --git a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/metadata/ScopesContainer.java b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/metadata/ScopesContainer.java
index 52e21f4..bcaedae 100644
--- a/idp-saml-api/src/main/java/net/shibboleth/idp/saml/metadata/ScopesContainer.java
+++ b/idp-saml-api/src/main/java/net/shibboleth/idp/saml/metadata/ScopesContainer.java
@@ -44,10 +44,10 @@ import net.shibboleth.utilities.java.support.primitive.StringSupport;
 public class ScopesContainer {
 
     /** The (non Regexp) scopes. */
-    @Nonnull private Set<String> simpleScopes = Collections.EMPTY_SET;
+    @Nonnull private Set<String> simpleScopes = Collections.emptySet();
     
     /** The Regexp scopes. */
-    @Nonnull private List<Predicate<String>> regexpScopes = Collections.EMPTY_LIST;
+    @Nonnull private List<Predicate<String>> regexpScopes = Collections.emptyList();
     
     /** Sets the non-regexp Scopes.
      * <br> We force the input to be a set so as to enforce no duplicates and any performance hit as a result.
@@ -55,7 +55,7 @@ public class ScopesContainer {
      */
     public void setSimpleScopes(@Nullable final Set<String> scopes) {
         if (scopes == null || scopes.isEmpty()) {
-            simpleScopes = Collections.EMPTY_SET;
+            simpleScopes = Collections.emptySet();
         } else {
             simpleScopes = scopes.stream().
                     map(StringSupport::trimOrNull).
@@ -70,7 +70,7 @@ public class ScopesContainer {
      */
     public void setRegexpScopes(@Nullable final Set<String> scopes) {
         if (scopes == null || scopes.isEmpty()) {
-            regexpScopes = Collections.EMPTY_LIST;
+            regexpScopes = Collections.emptyList();
         } else {
             regexpScopes = scopes.stream().
                     filter(e -> null != e).
diff --git a/idp-saml-api/src/test/java/net/shibboleth/idp/saml/metadata/ScopesContainerTest.java b/idp-saml-api/src/test/java/net/shibboleth/idp/saml/metadata/ScopesContainerTest.java
index 3a0ea26..07bd0d4 100644
--- a/idp-saml-api/src/test/java/net/shibboleth/idp/saml/metadata/ScopesContainerTest.java
+++ b/idp-saml-api/src/test/java/net/shibboleth/idp/saml/metadata/ScopesContainerTest.java
@@ -34,7 +34,7 @@ public class ScopesContainerTest {
         final ScopesContainer scopes = new ScopesContainer();
         assertFalse(scopes.matchesScope("foo"));
         scopes.setRegexpScopes(null);
-        scopes.setSimpleScopes(Collections.EMPTY_SET);
+        scopes.setSimpleScopes(Collections.emptySet());
         assertFalse(scopes.matchesScope("foo"));
         scopes.setRegexpScopes(Set.of(""));
         scopes.setSimpleScopes(Collections.singleton((String)null));
diff --git a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/metadata/impl/ReloadingRelyingPartyMetadataProvider.java b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/metadata/impl/ReloadingRelyingPartyMetadataProvider.java
index e544d6e..f9c7965 100644
--- a/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/metadata/impl/ReloadingRelyingPartyMetadataProvider.java
+++ b/idp-saml-impl/src/main/java/net/shibboleth/idp/saml/metadata/impl/ReloadingRelyingPartyMetadataProvider.java
@@ -81,7 +81,7 @@ public class ReloadingRelyingPartyMetadataProvider extends AbstractIdentifiableI
                 component.unpinComponent();
             }
         }
-        return Collections.EMPTY_SET;
+        return Collections.emptySet();
     }
 
     /** {@inheritDoc} */
diff --git a/idp-ui/src/main/java/net/shibboleth/idp/ui/context/RelyingPartyUIContext.java b/idp-ui/src/main/java/net/shibboleth/idp/ui/context/RelyingPartyUIContext.java
index ef281a6..c708ea8 100644
--- a/idp-ui/src/main/java/net/shibboleth/idp/ui/context/RelyingPartyUIContext.java
+++ b/idp-ui/src/main/java/net/shibboleth/idp/ui/context/RelyingPartyUIContext.java
@@ -235,7 +235,7 @@ public final class RelyingPartyUIContext extends BaseContext {
      */
     @Nonnull public RelyingPartyUIContext setFallbackLanguages(@Nullable final List<String> languages) {
         if (languages == null || languages.isEmpty()) {
-            fallbackLanguages = Collections.EMPTY_LIST;
+            fallbackLanguages = Collections.emptyList();
         }
         fallbackLanguages = languages.
                 stream().

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


More information about the commits mailing list