[java-shib-attribute] 01/02: IDP-2069 Null handling task
Rod Widdowson
rdw at steadingsoftware.com
Thu May 4 13:17:24 UTC 2023
This is an automated email from the git hooks/post-receive script.
rdw pushed a commit to branch main
in repository java-shib-attribute.
View the commit online:
http://git.shibboleth.net/view/?p=java-shib-attribute.git;a=commit;h=53db84761f8f116f7265670bf3a4c3f4f8c30f14
commit 53db84761f8f116f7265670bf3a4c3f4f8c30f14
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Wed May 3 17:44:41 2023 +0100
IDP-2069 Null handling task
https://shibboleth.atlassian.net/browse/IDP-2069
Remove all non-deprecation warnings from attribute-resolver-spring
(including tests)
---
.../dc/http/impl/HTTPDataConnectorParser.java | 10 +++++--
.../resolver/spring/dc/impl/CacheConfigParser.java | 1 +
.../spring/dc/impl/ManagedConnectionParser.java | 13 ++++++---
.../dc/impl/PairwiseIdDataConnectorParser.java | 12 +++++++--
.../dc/ldap/impl/CredentialConfigFactoryBean.java | 4 ++-
.../dc/ldap/impl/LDAPDataConnectorParser.java | 15 ++++++++---
.../dc/rdbms/impl/RDBMSDataConnectorParser.java | 1 +
.../impl/StorageServiceDataConnectorParser.java | 5 ++--
.../resolver/spring/AttributeMapperTest.java | 1 +
.../spring/AttributeMappingNodeProcessorTest.java | 12 ++++-----
.../resolver/spring/AttributeResolverTest.java | 6 ++---
.../idp/attribute/resolver/spring/IdP1676Test.java | 1 +
.../spring/ad/impl/SimpleAttributeParserTest.java | 1 +
.../dc/http/impl/HTTPDataConnectorParserTest.java | 17 +++++++-----
.../spring/dc/impl/CacheConfigParserTest.java | 17 +++++++++---
.../dc/impl/StoredIdDataConnectorParserTest.java | 4 +--
.../dc/ldap/impl/LDAPDataConnectorParserTest.java | 23 +++++++++-------
.../rdbms/impl/RDBMSDataConnectorParserTest.java | 7 ++++-
.../StorageServiceDataConnectorParserTest.java | 31 ++++++++++++++--------
.../failfast/AttributeResolverFailFastTest.java | 18 ++++++++-----
.../testing/BaseAttributeDefinitionParserTest.java | 10 +++----
21 files changed, 140 insertions(+), 69 deletions(-)
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParser.java
index 13a44fb6a..ea2e32238 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParser.java
@@ -28,6 +28,7 @@ import org.opensaml.spring.credential.BasicX509CredentialFactoryBean;
import org.opensaml.spring.trust.StaticExplicitKeyFactoryBean;
import org.opensaml.spring.trust.StaticPKIXFactoryBean;
import org.slf4j.Logger;
+import org.springframework.beans.factory.BeanCreationException;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
@@ -367,9 +368,14 @@ public class HTTPDataConnectorParser extends AbstractDataConnectorParser {
log.warn("{} A maximum of 1 <ResponseMapping> should be specified; the first one has been used",
getLogPrefix());
}
-
+ if (mappings.isEmpty()) {
+ log.error("{} No <ResponseMapping> provided", getLogPrefix());
+ throw new BeanCreationException("No <ResponseMapping> provided");
+ }
+ final Element map = mappings.get(0);
+ assert map != null;
final BeanDefinitionBuilder mapper =
- ScriptTypeBeanParser.parseScriptType(ScriptedResponseMappingStrategy.class, mappings.get(0));
+ ScriptTypeBeanParser.parseScriptType(ScriptedResponseMappingStrategy.class, map);
if (id != null) {
mapper.addPropertyValue("logPrefix", id + ':');
}
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/CacheConfigParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/CacheConfigParser.java
index 3cc3cf387..fb7f368ab 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/CacheConfigParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/CacheConfigParser.java
@@ -62,6 +62,7 @@ public class CacheConfigParser {
* Documented cache lifetime (4 hours). Unfortunately it has to be here since
* we do not own the implemented class.
*/
+ @SuppressWarnings("null")
@Nonnull public static final Duration DEFAULT_TTL_MS = Duration.ofHours(4);
/** Class logger. */
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ManagedConnectionParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ManagedConnectionParser.java
index 462dab5c8..99b55fff0 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ManagedConnectionParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ManagedConnectionParser.java
@@ -90,11 +90,15 @@ public class ManagedConnectionParser {
}
if (!simpleManagedElements.isEmpty()) {
- return createSimpleManagedDataSource(simpleManagedElements.get(0));
+ final Element sme = simpleManagedElements.get(0);
+ assert sme!=null;
+ return createSimpleManagedDataSource(sme);
}
if (!containerManagedElements.isEmpty()) {
- return createContainerManagedDataSource(containerManagedElements.get(0));
+ final Element cme = containerManagedElements.get(0);
+ assert cme!=null;
+ return createContainerManagedDataSource(cme);
}
return null;
@@ -212,8 +216,9 @@ public class ManagedConnectionParser {
LOG.warn("<BeanManagedConnection> is incompatible with <ContainerManagedConnection>"
+ "or <SimpleManagedConnection>. The <BeanManagedConnection> has been used");
}
-
- return StringSupport.trimOrNull(ElementSupport.getElementContentAsString(beanManagedElements.get(0)));
+ final Element bme = beanManagedElements.get(0);
+ assert bme != null;
+ return StringSupport.trimOrNull(ElementSupport.getElementContentAsString(bme));
}
}
\ No newline at end of file
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/PairwiseIdDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/PairwiseIdDataConnectorParser.java
index 4f3c448b9..9126ce878 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/PairwiseIdDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/PairwiseIdDataConnectorParser.java
@@ -83,7 +83,13 @@ public class PairwiseIdDataConnectorParser extends AbstractDataConnectorParser {
// If this isn't one of the older hard-wired types, inject an arbitrary ID store ref.
if (getClass().equals(PairwiseIdDataConnectorParser.class)) {
- builder.addPropertyReference("pairwiseIdStore", config.getAttributeNS(null, "pairwiseIdStoreRef"));
+ final String pairwiseIdStoreRef = config.getAttributeNS(null, "pairwiseIdStoreRef");
+ assert pairwiseIdStoreRef != null;
+ log.debug("{} pairwiseIdStoreRef set to {}", getLogPrefix(), pairwiseIdStoreRef);
+ if (pairwiseIdStoreRef.isEmpty()) {
+ log.warn("{} No pairwiseIdStoreRef provided",getLogPrefix());
+ }
+ builder.addPropertyReference("pairwiseIdStore", pairwiseIdStoreRef);
}
final List<Element> failoverConnector = ElementSupport.getChildElements(config,
@@ -106,7 +112,9 @@ public class PairwiseIdDataConnectorParser extends AbstractDataConnectorParser {
*/
@Override @Nonnull @NotEmpty protected String getLogPrefix() {
final StringBuilder builder = new StringBuilder("Data Connector '").append(getDefinitionId()).append("':");
- return builder.toString();
+ final String result = builder.toString();
+ assert result != null;
+ return result;
}
}
\ No newline at end of file
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/CredentialConfigFactoryBean.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/CredentialConfigFactoryBean.java
index 9d6ea7ccb..24c2125af 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/CredentialConfigFactoryBean.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/CredentialConfigFactoryBean.java
@@ -86,7 +86,9 @@ public class CredentialConfigFactoryBean extends AbstractComponentAwareFactoryBe
throw new BeanCreationException("Supplied StartTLSAuthenticationCredential was of wrong type");
}
}
- return CredentialConfigFactory.createX509CredentialConfig(trustCerts, authCert, authKey);
+ final CredentialConfig result = CredentialConfigFactory.createX509CredentialConfig(trustCerts, authCert, authKey);
+ assert result != null;
+ return result;
}
/**
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
index f6cbc50a2..87bbbf956 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
@@ -332,8 +332,10 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
LOG.warn("{} Too many StartTLSTrustCredential elements in {}; only the first has been consulted",
getLogPrefix(), parserContext.getReaderContext().getResource().getDescription());
}
+ final Element trustElement = trustElements.get(0);
+ assert trustElement!=null;
result.addPropertyValue("trustCredential",
- SpringSupport.parseCustomElement(trustElements.get(0), parserContext, result, false));
+ SpringSupport.parseCustomElement(trustElement, parserContext, result, false));
}
final List<Element> authElements =
@@ -367,8 +369,10 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
+ " only the first has been consulted", getLogPrefix(),
parserContext.getReaderContext().getResource().getDescription());
}
+ final Element authElement = authElements.get(0);
+ assert authElement!=null;
result.addPropertyValue("authCredential", SpringSupport
- .parseCustomElement(authElements.get(0), parserContext, result, false));
+ .parseCustomElement(authElement, parserContext, result, false));
}
return result.getBeanDefinition();
@@ -508,7 +512,7 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
"only the first has been consulted.", getLogPrefix());
}
final Element returnAttrsElement = returnAttrsElements.get(0);
-
+ assert returnAttrsElement!=null;
final BeanDefinitionBuilder returnAttrs =
BeanDefinitionBuilder.rootBeanDefinition(V2Parser.class, "buildStringList");
returnAttrs.addConstructorArgValue(ElementSupport.getElementContentAsString(returnAttrsElement));
@@ -524,7 +528,7 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
"only the first has been consulted.", getLogPrefix());
}
final Element binaryAttrsElement = binaryAttrsElements.get(0);
-
+ assert binaryAttrsElement!=null;
final BeanDefinitionBuilder binaryAttrs =
BeanDefinitionBuilder.rootBeanDefinition(V2Parser.class, "buildStringList");
binaryAttrs.addConstructorArgValue(ElementSupport.getElementContentAsString(binaryAttrsElement));
@@ -657,6 +661,7 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
"only the first has been consulted.", getLogPrefix());
}
final Element saslConfigElement = saslConfigElements.get(0);
+ assert saslConfigElement!=null;
final String mechanism = AttributeSupport.getAttributeValue(saslConfigElement, new QName("mechanism"));
final String authorizationId = AttributeSupport.getAttributeValue(
saslConfigElement, new QName("authorizationId"));
@@ -675,6 +680,7 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
if (!saslProperties.isEmpty()) {
for (final Element property : saslProperties) {
+ assert property != null;
final String name = AttributeSupport.getAttributeValue(property, null, "name");
final String value = AttributeSupport.getAttributeValue(property, null, "value");
if ("javax.security.sasl.qop".equals(name) && value != null) {
@@ -724,6 +730,7 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
if (!columns.isEmpty()) {
final ManagedMap<String, String> renamingMap = new ManagedMap<>();
for (final Element column : columns) {
+ assert column != null;
final String columnName = AttributeSupport.getAttributeValue(column, null, "columnName");
final String attributeId = AttributeSupport.getAttributeValue(column, null, "attributeID");
if (columnName != null && attributeId != null) {
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java
index 53098f079..8438a06d7 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParser.java
@@ -235,6 +235,7 @@ public class RDBMSDataConnectorParser extends AbstractDataConnectorParser {
if (!columns.isEmpty()) {
final ManagedMap<String, String> renamingMap = new ManagedMap<>();
for (final Element column : columns) {
+ assert column != null;
final String columnName = AttributeSupport.getAttributeValue(column, null, "columnName");
final String attributeId = AttributeSupport.getAttributeValue(column, null, "attributeID");
if (columnName != null && attributeId != null) {
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/storage/impl/StorageServiceDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/storage/impl/StorageServiceDataConnectorParser.java
index 9f0524927..8cbe50840 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/storage/impl/StorageServiceDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/storage/impl/StorageServiceDataConnectorParser.java
@@ -226,9 +226,10 @@ public class StorageServiceDataConnectorParser extends AbstractDataConnectorPars
// No element means to fall back to simple record mapping.
return null;
}
-
+ final Element mapping = mappings.get(0);
+ assert mapping != null;
final BeanDefinitionBuilder mapper =
- ScriptTypeBeanParser.parseScriptType(ScriptedStorageMappingStrategy.class, mappings.get(0));
+ ScriptTypeBeanParser.parseScriptType(ScriptedStorageMappingStrategy.class, mapping);
if (id != null) {
mapper.addPropertyValue("logPrefix", id + ':');
}
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeMapperTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeMapperTest.java
index 25bd7f907..ca9dbf10f 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeMapperTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeMapperTest.java
@@ -86,6 +86,7 @@ public class AttributeMapperTest extends OpenSAMLInitBaseTestCase {
beanDefinitionReader.loadBeanDefinitions("net/shibboleth/idp/attribute/resolver/spring/mapperTest.xml");
context.refresh();
+ @SuppressWarnings("unchecked")
final ReloadableService<AttributeTranscoderRegistry> transcoderRegistry = context.getBean(ReloadableService.class);
try (final ServiceableComponent<AttributeTranscoderRegistry> serviceableComponent = transcoderRegistry.getServiceableComponent()){
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeMappingNodeProcessorTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeMappingNodeProcessorTest.java
index cf3ce9fa7..a420abe3a 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeMappingNodeProcessorTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeMappingNodeProcessorTest.java
@@ -82,6 +82,7 @@ public class AttributeMappingNodeProcessorTest extends XMLObjectBaseTestCase {
processor = new AttributeMappingNodeProcessor(service);
}
+ @SuppressWarnings("unchecked")
@Nonnull private ReloadableService<AttributeTranscoderRegistry> getService() {
final GenericApplicationContext context = new GenericApplicationContext();
setTestContext(context);
@@ -106,16 +107,15 @@ public class AttributeMappingNodeProcessorTest extends XMLObjectBaseTestCase {
// Tests use of default mapping behavior for URI-named, string-valued tags.
@Test public void entityAttributes() throws FilterException {
- assert entityDescriptor != null;
- assertTrue(entityDescriptor.getObjectMetadata().get(AttributesMapContainer.class).isEmpty());
+ final EntityDescriptor localEntityDescriptor = entityDescriptor;
+ assert localEntityDescriptor != null;
+ assertTrue(localEntityDescriptor.getObjectMetadata().get(AttributesMapContainer.class).isEmpty());
assert processor != null;
- assert entityDescriptor != null;
- processor.process(entityDescriptor);
+ processor.process(localEntityDescriptor);
- assert entityDescriptor != null;
final AttributesMapContainer container =
- entityDescriptor.getObjectMetadata().get(AttributesMapContainer.class).get(0);
+ localEntityDescriptor.getObjectMetadata().get(AttributesMapContainer.class).get(0);
final Multimap<String, IdPAttribute> map = container.get();
assert map != null;
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeResolverTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeResolverTest.java
index 3f164a7bd..cc4e43954 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeResolverTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/AttributeResolverTest.java
@@ -25,7 +25,6 @@ import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import java.util.function.Function;
import java.util.function.Predicate;
@@ -154,8 +153,9 @@ public class AttributeResolverTest extends OpenSAMLInitBaseTestCase {
beanDefinitionReader.loadBeanDefinitions(file);
context.refresh();
-
- return context.getBean(ReloadableService.class);
+ @SuppressWarnings("unchecked")
+ final ReloadableService<AttributeResolver> result = context.getBean(ReloadableService.class);
+ return result;
}
@Test public void service() throws ComponentInitializationException, ServiceException, ResolutionException {
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/IdP1676Test.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/IdP1676Test.java
index be86ebc21..79f23e4fc 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/IdP1676Test.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/IdP1676Test.java
@@ -133,6 +133,7 @@ public class IdP1676Test extends OpenSAMLInitBaseTestCase {
beanDefinitionReader.loadBeanDefinitions("net/shibboleth/idp/attribute/resolver/spring/idp-1676-service.xml");
context.refresh();
+ @SuppressWarnings("unchecked")
final ReloadableService<AttributeResolver> result = context.getBean(ReloadableService.class);
result.initialize();
return result;
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SimpleAttributeParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SimpleAttributeParserTest.java
index 3595a8e45..855968824 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SimpleAttributeParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SimpleAttributeParserTest.java
@@ -59,6 +59,7 @@ public class SimpleAttributeParserTest extends BaseAttributeDefinitionParserTest
assertFalse(attrDef.isPreRequested());
assertEquals(attrDef.getAttributeDependencies().size(), 1);
+ @SuppressWarnings("rawtypes")
final Map<String, Collection> beans = pendingTeardownContext.getBeansOfType(Collection.class);
assertTrue(beans.isEmpty() || (beans.size() == 1 && beans.containsKey("StaticConnectorValues")));
}
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParserTest.java
index 2773beb7e..d3eedd01a 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParserTest.java
@@ -25,10 +25,11 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
-import java.util.Collections;
import java.util.Map;
import java.util.stream.Collectors;
+import javax.annotation.Nonnull;
+
import org.springframework.context.support.GenericApplicationContext;
import org.springframework.core.env.PropertySource;
import org.springframework.core.io.ResourceLoader;
@@ -44,6 +45,7 @@ import net.shibboleth.idp.attribute.resolver.ResolutionException;
import net.shibboleth.idp.attribute.resolver.context.AttributeResolutionContext;
import net.shibboleth.idp.attribute.resolver.dc.http.impl.HTTPDataConnector;
import net.shibboleth.idp.attribute.resolver.testing.TestSources;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.spring.resource.PreferFileSystemResourceLoader;
import net.shibboleth.shared.spring.util.ApplicationContextBuilder;
import net.shibboleth.shared.testing.RepositorySupport;
@@ -52,7 +54,7 @@ import net.shibboleth.shared.testing.RepositorySupport;
@SuppressWarnings("javadoc")
public class HTTPDataConnectorParserTest {
- private static final String TEST_URL =
+ @Nonnull private static final String TEST_URL =
RepositorySupport.buildHTTPSResourceURL("java-shib-attribute",
"shib-attribute-resolver-impl/src/test/resources/net/shibboleth/idp/attribute/resolver/impl/dc/http/test.json");
@@ -364,10 +366,13 @@ public class HTTPDataConnectorParserTest {
final Collection<String> defs = new ArrayList<>(Arrays.asList(beanDefinitions));
defs.add("net/shibboleth/idp/attribute/resolver/spring/dc/http/spring-beans.xml");
- builder.setServiceConfigurations(defs.stream().map(s -> loader.getResource(s)).collect(Collectors.toList()));
-
+ builder.setServiceConfigurations(defs.
+ stream().
+ map(s -> {assert s != null; return loader.getResource(s);}).
+ collect(CollectionSupport.nonnullCollector(Collectors.toList())).
+ get());
if (propSource != null) {
- builder.setPropertySources(Collections.singletonList(propSource));
+ builder.setPropertySources(CollectionSupport.singletonList(propSource));
}
final GenericApplicationContext context = builder.build();
@@ -377,7 +382,7 @@ public class HTTPDataConnectorParserTest {
return (HTTPDataConnector) context.getBean("myHTTP");
}
- private MockPropertySource singletonPropertySource(final String name, final String value) {
+ private MockPropertySource singletonPropertySource(@Nonnull final String name, @Nonnull final String value) {
final MockPropertySource propSource = new MockPropertySource("localProperties");
propSource.setProperty(name, value);
return propSource;
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/CacheConfigParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/CacheConfigParserTest.java
index 3642f812c..26fc3da1c 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/CacheConfigParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/CacheConfigParserTest.java
@@ -30,6 +30,7 @@ import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.testng.annotations.Test;
import org.w3c.dom.Document;
+import org.w3c.dom.Element;
import com.google.common.cache.Cache;
@@ -46,7 +47,9 @@ public class CacheConfigParserTest extends OpenSAMLInitBaseTestCase {
assert parserPool != null;
final Resource resource= new ClassPathResource("net/shibboleth/idp/attribute/resolver/spring/dc/ResultCacheElementTimeToLive.xml");
final Document doc = parserPool.parse(resource.getInputStream());
- final CacheConfigParser ccp = new CacheConfigParser(doc.getDocumentElement());
+ final Element elem = doc.getDocumentElement();
+ assert elem != null;
+ final CacheConfigParser ccp = new CacheConfigParser(elem);
try (final GenericApplicationContext context = new GenericApplicationContext()) {
final BeanDefinition cacheBean = ccp.createCache();
@@ -62,7 +65,9 @@ public class CacheConfigParserTest extends OpenSAMLInitBaseTestCase {
assert parserPool != null;
final Resource resource= new ClassPathResource("net/shibboleth/idp/attribute/resolver/spring/dc/ResultCacheExpireAfterAccess.xml");
final Document doc = parserPool.parse(resource.getInputStream());
- final CacheConfigParser ccp = new CacheConfigParser(doc.getDocumentElement());
+ final Element elem = doc.getDocumentElement();
+ assert elem != null;
+ final CacheConfigParser ccp = new CacheConfigParser(elem);
try (final GenericApplicationContext context = new GenericApplicationContext()) {
final BeanDefinition cacheBean = ccp.createCache();
@@ -78,7 +83,9 @@ public class CacheConfigParserTest extends OpenSAMLInitBaseTestCase {
assert parserPool != null;
final Resource resource= new ClassPathResource("net/shibboleth/idp/attribute/resolver/spring/dc/ResultCacheExpireAfterWrite.xml");
final Document doc = parserPool.parse(resource.getInputStream());
- final CacheConfigParser ccp = new CacheConfigParser(doc.getDocumentElement());
+ final Element elem = doc.getDocumentElement();
+ assert elem != null;
+ final CacheConfigParser ccp = new CacheConfigParser(elem);
try (final GenericApplicationContext context = new GenericApplicationContext()) {
final BeanDefinition cacheBean = ccp.createCache();
@@ -94,7 +101,9 @@ public class CacheConfigParserTest extends OpenSAMLInitBaseTestCase {
assert parserPool != null;
final Resource resource= new ClassPathResource("net/shibboleth/idp/attribute/resolver/spring/dc/ResultCacheExpireBoth.xml");
final Document doc = parserPool.parse(resource.getInputStream());
- final CacheConfigParser ccp = new CacheConfigParser(doc.getDocumentElement());
+ final Element elem = doc.getDocumentElement();
+ assert elem != null;
+ final CacheConfigParser ccp = new CacheConfigParser(elem);
try (final GenericApplicationContext context = new GenericApplicationContext()) {
final BeanDefinition cacheBean = ccp.createCache();
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIdDataConnectorParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIdDataConnectorParserTest.java
index ba82de55c..1b5596060 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIdDataConnectorParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIdDataConnectorParserTest.java
@@ -82,8 +82,8 @@ public class StoredIdDataConnectorParserTest extends BaseAttributeDefinitionPars
builder.setServiceConfigurations(
Arrays.asList(beanDefinitions).
stream().
- map(s -> loader.getResource(s)).
- collect(Collectors.toList()));
+ map(s -> {assert s != null; return loader.getResource(s);}).
+ collect(CollectionSupport.nonnullCollector(Collectors.toList())).get());
final GenericApplicationContext context = builder.build();
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParserTest.java
index 93e850dba..6123418ef 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParserTest.java
@@ -28,13 +28,10 @@ import java.time.Duration;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
-import java.util.Collections;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
-import javax.annotation.Nullable;
-
import org.ldaptive.BindConnectionInitializer;
import org.ldaptive.BindResponse;
import org.ldaptive.ConnectionConfig;
@@ -77,6 +74,8 @@ import net.shibboleth.idp.attribute.resolver.dc.ldap.StringAttributeValueMapping
import net.shibboleth.idp.attribute.resolver.dc.ldap.impl.ConnectionFactoryValidator;
import net.shibboleth.idp.attribute.resolver.dc.ldap.impl.LDAPDataConnector;
import net.shibboleth.idp.attribute.resolver.testing.TestSources;
+import net.shibboleth.shared.annotation.constraint.NonnullBeforeTest;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.spring.context.FilesystemGenericApplicationContext;
import net.shibboleth.shared.spring.resource.PreferFileSystemResourceLoader;
import net.shibboleth.shared.spring.util.ApplicationContextBuilder;
@@ -88,9 +87,9 @@ import net.shibboleth.shared.testing.InMemoryDirectory;
public class LDAPDataConnectorParserTest {
/** In-memory directory server. */
- @Nullable private InMemoryDirectory directoryServer;
+ @NonnullBeforeTest private InMemoryDirectory directoryServer;
- @Nullable private GenericApplicationContext pendingTeardownContext = null;
+ @NonnullBeforeTest private GenericApplicationContext pendingTeardownContext = null;
/** Override the default SASL client for testing. */
public static class TestSaslClient implements SaslClient<DefaultSaslClientRequest>
@@ -118,13 +117,14 @@ public class LDAPDataConnectorParserTest {
* Creates an in-memory directory server. Leverages LDIF found in test resources.
*/
@BeforeClass public void setupDirectoryServer() {
+ final Optional<Resource> or = Optional.of(new ClassPathResource("/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/client.keystore"));
+ assert or != null;
directoryServer =
new InMemoryDirectory(
new String[] {"dc=shibboleth,dc=net"},
new ClassPathResource("/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldapDataConnectorTest.ldif"),
10389,
- new ClassPathResource("/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/server.keystore"),
- Optional.of(new ClassPathResource("/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/client.keystore")));
+ new ClassPathResource("/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/server.keystore"), or);
directoryServer.start();
System.setProperty(
"org.ldaptive.sasl.defaultSaslClient",
@@ -493,10 +493,15 @@ public class LDAPDataConnectorParserTest {
final Collection<String> defs = new ArrayList<>(Arrays.asList(beanDefinitions));
defs.add("net/shibboleth/idp/attribute/resolver/spring/externalBeans.xml");
- builder.setServiceConfigurations(defs.stream().map(s -> loader.getResource(s)).collect(Collectors.toList()));
+ builder.setServiceConfigurations(
+ defs.
+ stream().
+ map(s -> {assert s != null; return loader.getResource(s);}).
+ collect(CollectionSupport.nonnullCollector(Collectors.toList())).
+ get());
if (properties != null) {
- builder.setPropertySources(Collections.singletonList(new ResourcePropertySource(properties)));
+ builder.setPropertySources(CollectionSupport.singletonList(new ResourcePropertySource(properties)));
}
final GenericApplicationContext context = builder.build();
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParserTest.java
index 10db8c591..ec397e7e3 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/impl/RDBMSDataConnectorParserTest.java
@@ -155,7 +155,12 @@ public class RDBMSDataConnectorParserTest {
final Collection<String> defs = new ArrayList<>(Arrays.asList(beanDefinitions));
defs.add("net/shibboleth/idp/attribute/resolver/spring/externalBeans.xml");
- builder.setServiceConfigurations(defs.stream().map(s -> loader.getResource(s)).collect(Collectors.toList()));
+ builder.setServiceConfigurations(
+ defs.
+ stream().
+ map(s -> {assert s != null; return loader.getResource(s);}).
+ collect(CollectionSupport.nonnullCollector(Collectors.toList())).
+ get());
if (properties != null) {
builder.setPropertySources(CollectionSupport.singletonList(new ResourcePropertySource(properties)));
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/storage/impl/StorageServiceDataConnectorParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/storage/impl/StorageServiceDataConnectorParserTest.java
index af2b9daf2..79c580138 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/storage/impl/StorageServiceDataConnectorParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/storage/impl/StorageServiceDataConnectorParserTest.java
@@ -17,16 +17,19 @@
package net.shibboleth.idp.attribute.resolver.spring.dc.storage.impl;
-import static org.testng.Assert.*;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertTrue;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
-import java.util.Collections;
import java.util.Map;
import java.util.stream.Collectors;
+import javax.annotation.Nonnull;
+
import org.opensaml.storage.StorageService;
import org.springframework.context.support.GenericApplicationContext;
import org.springframework.core.env.PropertySource;
@@ -44,6 +47,7 @@ import net.shibboleth.idp.attribute.resolver.NoResultAnErrorResolutionException;
import net.shibboleth.idp.attribute.resolver.context.AttributeResolutionContext;
import net.shibboleth.idp.attribute.resolver.dc.storage.impl.StorageServiceDataConnector;
import net.shibboleth.idp.attribute.resolver.testing.TestSources;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.spring.resource.PreferFileSystemResourceLoader;
import net.shibboleth.shared.spring.util.ApplicationContextBuilder;
@@ -104,9 +108,9 @@ public class StorageServiceDataConnectorParserTest {
getDataConnector(propSource,
"net/shibboleth/idp/attribute/resolver/spring/dc/storage/storage-attribute-resolver-v2.xml");
assertNotNull(connector);
-
- pendingTeardownContext.getBean(StorageService.class).create("foo", "bar",
- Files.streamToString(getClass().getResourceAsStream(SCRIPT_PATH + "test.json")), null);
+ final String streamAsString = Files.streamToString(getClass().getResourceAsStream(SCRIPT_PATH + "test.json"));
+ assert streamAsString!=null;
+ pendingTeardownContext.getBean(StorageService.class).create("foo", "bar", streamAsString, null);
final AttributeResolutionContext context =
TestSources.createResolutionContext(TestSources.PRINCIPAL_ID, TestSources.IDP_ENTITY_ID,
@@ -180,8 +184,9 @@ public class StorageServiceDataConnectorParserTest {
"net/shibboleth/idp/attribute/resolver/spring/dc/storage/storage-attribute-resolver-spring-context.xml");
assertNotNull(connector);
- pendingTeardownContext.getBean(StorageService.class).create("foo", "bar",
- Files.streamToString(getClass().getResourceAsStream(SCRIPT_PATH + "test.json")), null);
+ final String streamAsString = Files.streamToString(getClass().getResourceAsStream(SCRIPT_PATH + "test.json"));
+ assert streamAsString!=null;
+ pendingTeardownContext.getBean(StorageService.class).create("foo", "bar", streamAsString, null);
final AttributeResolutionContext context =
TestSources.createResolutionContext(TestSources.PRINCIPAL_ID, TestSources.IDP_ENTITY_ID,
@@ -215,10 +220,14 @@ public class StorageServiceDataConnectorParserTest {
final Collection<String> defs = new ArrayList<>(Arrays.asList(beanDefinitions));
defs.add("net/shibboleth/idp/attribute/resolver/spring/dc/storage/spring-beans.xml");
- builder.setServiceConfigurations(defs.stream().map(s -> loader.getResource(s)).collect(Collectors.toList()));
-
+ builder.setServiceConfigurations(
+ defs.
+ stream().
+ map(s -> { assert s != null ; return loader.getResource(s);}).
+ collect(CollectionSupport.nonnullCollector(Collectors.toList())).
+ get());
if (propSource != null) {
- builder.setPropertySources(Collections.singletonList(propSource));
+ builder.setPropertySources(CollectionSupport.singletonList(propSource));
}
final GenericApplicationContext context = builder.build();
@@ -228,7 +237,7 @@ public class StorageServiceDataConnectorParserTest {
return (StorageServiceDataConnector) context.getBean("myStorage");
}
- private MockPropertySource singletonPropertySource(final String name, final String value) {
+ private MockPropertySource singletonPropertySource(@Nonnull final String name, @Nonnull final String value) {
final MockPropertySource propSource = new MockPropertySource("localProperties");
propSource.setProperty(name, value);
return propSource;
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/failfast/AttributeResolverFailFastTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/failfast/AttributeResolverFailFastTest.java
index 4962390c3..4eb551ebb 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/failfast/AttributeResolverFailFastTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/failfast/AttributeResolverFailFastTest.java
@@ -17,16 +17,19 @@
package net.shibboleth.idp.attribute.resolver.spring.failfast;
-import static org.testng.Assert.*;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.fail;
import java.io.IOException;
import java.util.Optional;
import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
import javax.sql.DataSource;
import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
import org.springframework.mock.env.MockPropertySource;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
@@ -35,13 +38,14 @@ import org.testng.annotations.Test;
import net.shibboleth.idp.attribute.resolver.AttributeResolver;
import net.shibboleth.idp.attribute.resolver.spring.dc.rdbms.impl.RDBMSDataConnectorParserTest;
+import net.shibboleth.shared.annotation.constraint.NonnullBeforeTest;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.service.ReloadableService;
import net.shibboleth.shared.service.ServiceException;
import net.shibboleth.shared.service.ServiceableComponent;
import net.shibboleth.shared.testing.DatabaseTestingSupport;
-import net.shibboleth.spring.testing.AbstractFailFastTest;
import net.shibboleth.shared.testing.InMemoryDirectory;
+import net.shibboleth.spring.testing.AbstractFailFastTest;
@Ignore
@SuppressWarnings({"unchecked", "javadoc"})
@@ -51,20 +55,22 @@ public class AttributeResolverFailFastTest extends AbstractFailFastTest {
return "/net/shibboleth/idp/attribute/resolver/failfast/";
}
- @Nullable private InMemoryDirectory directoryServer;
- @Nullable private DataSource datasource;
+ @NonnullBeforeTest private InMemoryDirectory directoryServer;
+ @NonnullBeforeTest private DataSource datasource;
@BeforeClass(enabled = false) public void setupDirectoryServer() {
//
// LDAP
//
+ final Optional<Resource> or = Optional.of(new ClassPathResource("/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/client.keystore"));
+ assert or != null;
directoryServer =
new InMemoryDirectory(
new String[] {"dc=shibboleth,dc=net"},
new ClassPathResource("/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldapDataConnectorTest.ldif"),
20389,
new ClassPathResource("/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/server.keystore"),
- Optional.of(new ClassPathResource("/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/client.keystore")));
+ or);
directoryServer.start();
//
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/testing/BaseAttributeDefinitionParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/testing/BaseAttributeDefinitionParserTest.java
index 4fbaa4c44..6eb4a449d 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/testing/BaseAttributeDefinitionParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/testing/BaseAttributeDefinitionParserTest.java
@@ -23,6 +23,8 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
+import javax.annotation.Nonnull;
+
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
import org.springframework.context.ApplicationContext;
@@ -31,21 +33,17 @@ import org.springframework.context.support.GenericApplicationContext;
import org.testng.annotations.AfterMethod;
import net.shibboleth.idp.attribute.resolver.AttributeDefinition;
-import net.shibboleth.idp.attribute.resolver.AttributeResolver;
import net.shibboleth.idp.attribute.resolver.DataConnector;
import net.shibboleth.idp.attribute.resolver.impl.AttributeResolverImpl;
import net.shibboleth.idp.attribute.resolver.spring.ad.BaseAttributeDefinitionParser;
import net.shibboleth.idp.attribute.resolver.spring.ad.impl.SimpleAttributeDefinitionParser;
-import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverServiceStrategy;
import net.shibboleth.shared.component.ComponentInitializationException;
-import net.shibboleth.shared.service.ServiceException;
import net.shibboleth.shared.spring.config.IdentifiableBeanPostProcessor;
import net.shibboleth.shared.spring.config.StringToDurationConverter;
import net.shibboleth.shared.spring.config.StringToIPRangeConverter;
import net.shibboleth.shared.spring.config.StringToResourceConverter;
import net.shibboleth.shared.spring.context.FilesystemGenericApplicationContext;
import net.shibboleth.shared.spring.custom.SchemaTypeAwareXMLBeanDefinitionReader;
-import net.shibboleth.shared.spring.service.impl.SpringServiceableComponent;
/**
* Base class for tests for {@link SimpleAttributeDefinitionParser} and by extension {@link BaseAttributeDefinitionParser}.
@@ -192,13 +190,13 @@ public abstract class BaseAttributeDefinitionParserTest extends OpenSAMLInitBase
return getBean(DATACONNECTOR_FILE_PATH + fileName, claz, context, supressValid);
}
- static public AttributeResolverImpl getResolver(final ApplicationContext appContext) throws ComponentInitializationException {
+ static public AttributeResolverImpl getResolver(@Nonnull final ApplicationContext appContext) throws ComponentInitializationException {
final Collection<AttributeDefinition> definitions =
appContext.getBeansOfType(AttributeDefinition.class).values();
final Collection<DataConnector> connectors = appContext.getBeansOfType(DataConnector.class).values();
-
+ assert definitions!=null && connectors!=null;
final AttributeResolverImpl resolver = new AttributeResolverImpl();
resolver.setAttributeDefinitions(definitions);
resolver.setDataConnectors(connectors);
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list