[java-identity-provider] branch master updated: Test cleanup.

Scott Cantor cantor.2 at osu.edu
Tue Mar 19 20:19:41 EDT 2019


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

scantor 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=e5023fff6520a9d30a9b9d984f22e7bf79d6f673

The following commit(s) were added to refs/heads/master by this push:
       new  e5023ff   Test cleanup.
e5023ff is described below

commit e5023fff6520a9d30a9b9d984f22e7bf79d6f673
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue Mar 19 20:19:38 2019 -0400

    Test cleanup.
    
    Remove DurationToLong converter from tests.
    Convert test classes to use common Spring context builder.
---
 .../spring/BaseAttributeDefinitionParserTest.java  |  8 +--
 .../spring/dc/StoredIdDataConnectorParserTest.java | 42 +++++--------
 .../dc/http/HTTPDataConnectorParserTest.java       | 51 ++++++---------
 .../dc/ldap/LDAPDataConnectorParserTest.java       | 58 ++++++-----------
 .../dc/rdbms/RDBMSDataConnectorParserTest.java     | 54 ++++++----------
 .../ldap-attribute-resolver-spring-props.xml       |  2 -
 .../attribute/resolver/spring/storageService.xml   |  1 -
 .../src/test/resources/spring/test-flow-beans.xml  |  1 -
 .../main/resources/system/conf/global-system.xml   |  1 -
 .../metadata/AbstractMetadataParserTest.java       | 73 ++++++----------------
 .../metadata/InlineMetadataParserTest.java         | 47 ++++++--------
 .../security/AbstractSecurityParserTest.java       | 67 +++++---------------
 .../security/credential/BasicInlineParserTest.java |  8 +--
 .../credential/BasicResourceParserTest.java        | 12 ++--
 .../credential/X509FilesystemParserTest.java       |  2 +-
 .../security/credential/X509InlineParserTest.java  |  6 +-
 .../trustengine/ChainingTrustEngineTest.java       |  2 +-
 .../trustengine/PKIXFilesystemParserTest.java      |  2 +-
 .../security/trustengine/PKIXInlineParserTest.java |  2 +-
 .../PKIXValidationOptionsParserTest.java           |  4 +-
 .../trustengine/SignatureChainingParserTest.java   |  2 +-
 .../StaticExplicitKeyFactoryBeanTest.java          |  8 +--
 .../trustengine/StaticExplicitKeyParserTest.java   |  2 +-
 .../StaticExplicitKeySignatureParserTest.java      |  2 +-
 .../trustengine/StaticPKIXSignatureParserTest.java |  8 +--
 .../StaticPKIXX509CredentialParserTest.java        |  4 +-
 .../spring/logic/relyingPartyIdPredicates.xml      |  1 -
 .../profile/spring/relyingparty/metadata/beans.xml |  4 ++
 .../spring/relyingparty/metadata/parent.xml        |  1 -
 .../profile/spring/relyingparty/reload/beans.xml   |  1 -
 .../spring/relyingparty/reload/chainingbeans.xml   |  1 -
 .../credential/fileCertElementsKeyName.xml         |  2 +-
 .../security/credential/fileKeyCertCrl.xml         |  8 +--
 .../security/credential/filePublicPrivate.xml      |  4 +-
 .../security/credential/fileTwoCert.xml            |  2 +-
 .../security/credential/fileWrongCert.xml          |  4 +-
 .../security/credential/fileWrongPublic.xml        |  4 +-
 .../security/credential/resourceBasic.xml          |  2 +-
 .../security/credential/resourceX509.xml           |  2 +-
 .../trustengine/filesystemValidationInfoValues.xml |  4 +-
 40 files changed, 184 insertions(+), 325 deletions(-)

diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/BaseAttributeDefinitionParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/BaseAttributeDefinitionParserTest.java
index bfa34dc..ea34367 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/BaseAttributeDefinitionParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/BaseAttributeDefinitionParserTest.java
@@ -21,7 +21,6 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashSet;
 
-import net.shibboleth.ext.spring.config.DurationToLongConverter;
 import net.shibboleth.ext.spring.config.IdentifiableBeanPostProcessor;
 import net.shibboleth.ext.spring.config.StringToDurationConverter;
 import net.shibboleth.ext.spring.config.StringToIPRangeConverter;
@@ -98,7 +97,6 @@ public abstract class BaseAttributeDefinitionParserTest extends OpenSAMLInitBase
 
         final ConversionServiceFactoryBean service = new ConversionServiceFactoryBean();
         service.setConverters(new HashSet<>(Arrays.asList(
-                new DurationToLongConverter(),
                 new StringToIPRangeConverter(),
                 new StringToResourceConverter(),
                 new StringToDurationConverter())));
@@ -147,8 +145,10 @@ public abstract class BaseAttributeDefinitionParserTest extends OpenSAMLInitBase
         final XmlBeanDefinitionReader configReader = new SchemaTypeAwareXMLBeanDefinitionReader(context);
 
         final ConversionServiceFactoryBean service = new ConversionServiceFactoryBean();
-        service.setConverters(new HashSet<>(Arrays.asList(new DurationToLongConverter(), new StringToIPRangeConverter(),
-                new StringToResourceConverter())));
+        service.setConverters(new HashSet<>(Arrays.asList(
+                new StringToIPRangeConverter(),
+                new StringToResourceConverter(),
+                new StringToDurationConverter())));
         service.afterPropertiesSet();
 
         context.getBeanFactory().setConversionService(service.getObject());
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/StoredIdDataConnectorParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/StoredIdDataConnectorParserTest.java
index e3fabb6..6e2115c 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/StoredIdDataConnectorParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/StoredIdDataConnectorParserTest.java
@@ -20,18 +20,16 @@ package net.shibboleth.idp.attribute.resolver.spring.dc;
 import java.io.IOException;
 import java.time.Duration;
 import java.util.Arrays;
-import java.util.HashSet;
 
-import org.springframework.context.support.ConversionServiceFactoryBean;
 import org.springframework.context.support.GenericApplicationContext;
+import org.springframework.core.io.ResourceLoader;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-import net.shibboleth.ext.spring.config.DurationToLongConverter;
-import net.shibboleth.ext.spring.config.StringToDurationConverter;
-import net.shibboleth.ext.spring.config.StringToIPRangeConverter;
-import net.shibboleth.ext.spring.config.StringToResourceConverter;
-import net.shibboleth.ext.spring.util.SchemaTypeAwareXMLBeanDefinitionReader;
+import com.google.common.collect.Collections2;
+
+import net.shibboleth.ext.spring.resource.PreferFileSystemResourceLoader;
+import net.shibboleth.ext.spring.util.ApplicationContextBuilder;
 import net.shibboleth.idp.attribute.impl.ComputedPairwiseIdStore;
 import net.shibboleth.idp.attribute.impl.JDBCPairwiseIdStore;
 import net.shibboleth.idp.attribute.resolver.ResolverAttributeDefinitionDependency;
@@ -72,27 +70,17 @@ public class StoredIdDataConnectorParserTest extends BaseAttributeDefinitionPars
     }
 
     protected PairwiseIdDataConnector getStoredDataConnector(final String... beanDefinitions) throws IOException {
-        final GenericApplicationContext context = new GenericApplicationContext();
-        setTestContext(context);
-        context.setDisplayName("ApplicationContext: " + RDBMSDataConnectorParserTest.class);
-
-        final ConversionServiceFactoryBean service = new ConversionServiceFactoryBean();
-        service.setConverters(new HashSet<>(Arrays.asList(
-                new DurationToLongConverter(),
-                new StringToIPRangeConverter(),
-                new StringToResourceConverter(),
-                new StringToDurationConverter())));
-        service.afterPropertiesSet();
-
-        context.getBeanFactory().setConversionService(service.getObject());
-
-        final SchemaTypeAwareXMLBeanDefinitionReader beanDefinitionReader =
-                new SchemaTypeAwareXMLBeanDefinitionReader(context);
-
-        beanDefinitionReader.setValidating(true);
-        beanDefinitionReader.loadBeanDefinitions(beanDefinitions);
-        context.refresh();
+        
+        final ResourceLoader loader = new PreferFileSystemResourceLoader();
+        
+        final ApplicationContextBuilder builder = new ApplicationContextBuilder();
+        builder.setName("ApplicationContext: " + RDBMSDataConnectorParserTest.class);
+        builder.setServiceConfigurations(Collections2.transform(Arrays.asList(beanDefinitions), s -> loader.getResource(s)));
+        
+        final GenericApplicationContext context = builder.build();
 
+        setTestContext(context);
+        
         return (PairwiseIdDataConnector) context.getBean(PairwiseIdDataConnector.class);
     }
 
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/HTTPDataConnectorParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/HTTPDataConnectorParserTest.java
index 0d95fed..65ea74b 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/HTTPDataConnectorParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/HTTPDataConnectorParserTest.java
@@ -18,24 +18,24 @@
 package net.shibboleth.idp.attribute.resolver.spring.dc.http;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.HashSet;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.Map;
 
-import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
-import org.springframework.context.support.ConversionServiceFactoryBean;
 import org.springframework.context.support.GenericApplicationContext;
 import org.springframework.core.env.PropertySource;
+import org.springframework.core.io.ResourceLoader;
 import org.springframework.mock.env.MockPropertySource;
 import org.testng.Assert;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.Test;
 
-import net.shibboleth.ext.spring.config.DurationToLongConverter;
-import net.shibboleth.ext.spring.config.StringToDurationConverter;
-import net.shibboleth.ext.spring.config.StringToIPRangeConverter;
-import net.shibboleth.ext.spring.config.StringToResourceConverter;
-import net.shibboleth.ext.spring.util.SchemaTypeAwareXMLBeanDefinitionReader;
+import com.google.common.collect.Collections2;
+
+import net.shibboleth.ext.spring.resource.PreferFileSystemResourceLoader;
+import net.shibboleth.ext.spring.util.ApplicationContextBuilder;
 import net.shibboleth.idp.attribute.IdPAttribute;
 import net.shibboleth.idp.attribute.resolver.ResolutionException;
 import net.shibboleth.idp.attribute.resolver.context.AttributeResolutionContext;
@@ -341,36 +341,25 @@ public class HTTPDataConnectorParserTest {
     
     private HTTPDataConnector getDataConnector(final PropertySource propSource, final String... beanDefinitions)
             throws IOException {
-        final GenericApplicationContext context = new GenericApplicationContext();
-        setTestContext(context);
-        context.setDisplayName("ApplicationContext: " + HTTPDataConnectorParserTest.class);
 
-        final ConversionServiceFactoryBean service = new ConversionServiceFactoryBean();
-        service.setConverters(new HashSet<>(Arrays.asList(
-                new DurationToLongConverter(),
-                new StringToDurationConverter(),
-                new StringToIPRangeConverter(),
-                new StringToResourceConverter(),
-                new StringToDurationConverter())));
-        service.afterPropertiesSet();
+        final ResourceLoader loader = new PreferFileSystemResourceLoader();
+        
+        final ApplicationContextBuilder builder = new ApplicationContextBuilder();
+        builder.setName("ApplicationContext: " + HTTPDataConnectorParserTest.class);
+
+        final Collection<String> defs = new ArrayList<>(Arrays.asList(beanDefinitions));
+        defs.add("net/shibboleth/idp/attribute/resolver/spring/dc/http/spring-beans.xml");
 
-        context.getBeanFactory().setConversionService(service.getObject());
+        builder.setServiceConfigurations(Collections2.transform(defs, s -> loader.getResource(s)));
 
         if (propSource != null) {
-            context.getEnvironment().getPropertySources().addFirst(propSource);
+            builder.setPropertySources(Collections.singletonList(propSource));
         }
         
-        final XmlBeanDefinitionReader configReader = new SchemaTypeAwareXMLBeanDefinitionReader(context);
-
-        configReader.loadBeanDefinitions("net/shibboleth/idp/attribute/resolver/spring/dc/http/spring-beans.xml");
-        
-        final SchemaTypeAwareXMLBeanDefinitionReader beanDefinitionReader =
-                new SchemaTypeAwareXMLBeanDefinitionReader(context);
-
-        beanDefinitionReader.setValidating(true);
-        beanDefinitionReader.loadBeanDefinitions(beanDefinitions);
-        context.refresh();
+        final GenericApplicationContext context = builder.build();
 
+        setTestContext(context);
+                
         return (HTTPDataConnector) context.getBean("myHTTP");
     }
 
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/LDAPDataConnectorParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/LDAPDataConnectorParserTest.java
index b914645..60bcd19 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/LDAPDataConnectorParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/LDAPDataConnectorParserTest.java
@@ -20,9 +20,11 @@ package net.shibboleth.idp.attribute.resolver.spring.dc.ldap;
 import java.io.IOException;
 import java.security.GeneralSecurityException;
 import java.time.Duration;
+import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.Map;
 
 import org.ldaptive.BindConnectionInitializer;
@@ -38,12 +40,10 @@ import org.ldaptive.provider.ProviderConfig;
 import org.ldaptive.ssl.CredentialConfig;
 import org.ldaptive.ssl.SslConfig;
 import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
-import org.springframework.context.support.ConversionServiceFactoryBean;
 import org.springframework.context.support.GenericApplicationContext;
-import org.springframework.core.env.ConfigurableEnvironment;
-import org.springframework.core.env.StandardEnvironment;
 import org.springframework.core.io.ClassPathResource;
 import org.springframework.core.io.Resource;
+import org.springframework.core.io.ResourceLoader;
 import org.springframework.core.io.support.ResourcePropertySource;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.AfterTest;
@@ -52,6 +52,7 @@ import org.testng.annotations.Test;
 
 import com.google.common.cache.Cache;
 import com.google.common.cache.CacheBuilder;
+import com.google.common.collect.Collections2;
 import com.unboundid.ldap.listener.InMemoryDirectoryServer;
 import com.unboundid.ldap.listener.InMemoryDirectoryServerConfig;
 import com.unboundid.ldap.listener.InMemoryListenerConfig;
@@ -60,12 +61,9 @@ import com.unboundid.util.ssl.KeyStoreKeyManager;
 import com.unboundid.util.ssl.SSLUtil;
 import com.unboundid.util.ssl.TrustStoreTrustManager;
 
-import net.shibboleth.ext.spring.config.DurationToLongConverter;
-import net.shibboleth.ext.spring.config.StringToDurationConverter;
-import net.shibboleth.ext.spring.config.StringToIPRangeConverter;
-import net.shibboleth.ext.spring.config.StringToResourceConverter;
 import net.shibboleth.ext.spring.context.FilesystemGenericApplicationContext;
-import net.shibboleth.ext.spring.util.SchemaTypeAwareXMLBeanDefinitionReader;
+import net.shibboleth.ext.spring.resource.PreferFileSystemResourceLoader;
+import net.shibboleth.ext.spring.util.ApplicationContextBuilder;
 import net.shibboleth.idp.attribute.IdPAttribute;
 import net.shibboleth.idp.attribute.resolver.ResolutionException;
 import net.shibboleth.idp.attribute.resolver.context.AttributeResolutionContext;
@@ -148,7 +146,6 @@ public class LDAPDataConnectorParserTest {
         assertNotNull(attrs);
         assertNotNull(attrs.get("entryDN"));
     }
-
     
     @Test public void v2NoSec() throws Exception {
         final LDAPDataConnector dataConnector =
@@ -177,8 +174,6 @@ public class LDAPDataConnectorParserTest {
         doTest(dataConnector);
     }
 
-
-
     @Test public void v2MinimalConfig() throws Exception {
         final LDAPDataConnector dataConnector =
                 getLdapDataConnector(new String[] {"net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-minimal.xml"});
@@ -422,37 +417,24 @@ public class LDAPDataConnectorParserTest {
     }
 
     protected LDAPDataConnector getLdapDataConnector(final Resource properties, final String[] beanDefinitions) throws IOException {
-        final GenericApplicationContext context = new FilesystemGenericApplicationContext() ;
-        setTestContext(context);
-        context.setDisplayName("ApplicationContext: " + LDAPDataConnectorParserTest.class);
-        
-        
-        final ConversionServiceFactoryBean service = new ConversionServiceFactoryBean();
-        service.setConverters(new HashSet<>(Arrays.asList(new DurationToLongConverter(), new StringToIPRangeConverter(),
-                new StringToResourceConverter(), new StringToDurationConverter())));
-        service.afterPropertiesSet();
 
-        context.getBeanFactory().setConversionService(service.getObject());
+        final ResourceLoader loader = new PreferFileSystemResourceLoader();
         
-        if (null != properties) {
-            final ConfigurableEnvironment env = context.getEnvironment();
-            env.getPropertySources().replace(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME, new ResourcePropertySource(properties));
-            
-           env.setPlaceholderPrefix("%{");
-           env.setPlaceholderSuffix("}");
-        }
+        final ApplicationContextBuilder builder = new ApplicationContextBuilder();
+        builder.setName("ApplicationContext: " + LDAPDataConnectorParserTest.class);
 
-        final XmlBeanDefinitionReader configReader = new SchemaTypeAwareXMLBeanDefinitionReader(context);
+        final Collection<String> defs = new ArrayList<>(Arrays.asList(beanDefinitions));
+        defs.add("net/shibboleth/idp/attribute/resolver/spring/externalBeans.xml");
 
-        configReader.loadBeanDefinitions("net/shibboleth/idp/attribute/resolver/spring/externalBeans.xml");
+        builder.setServiceConfigurations(Collections2.transform(defs, s -> loader.getResource(s)));
 
-        final SchemaTypeAwareXMLBeanDefinitionReader beanDefinitionReader =
-                new SchemaTypeAwareXMLBeanDefinitionReader(context);
-
-        beanDefinitionReader.setValidating(true);
-
-        beanDefinitionReader.loadBeanDefinitions(beanDefinitions);
-        context.refresh();
+        if (properties != null) {
+            builder.setPropertySources(Collections.singletonList(new ResourcePropertySource(properties)));
+        }
+        
+        final GenericApplicationContext context = builder.build();
+        
+        setTestContext(context);
 
         return (LDAPDataConnector) context.getBean("myLDAP");
     }
diff --git a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/RDBMSDataConnectorParserTest.java b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/RDBMSDataConnectorParserTest.java
index 52bf1a4..67d700b 100644
--- a/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/RDBMSDataConnectorParserTest.java
+++ b/idp-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/rdbms/RDBMSDataConnectorParserTest.java
@@ -20,20 +20,19 @@ package net.shibboleth.idp.attribute.resolver.spring.dc.rdbms;
 import java.io.IOException;
 import java.sql.SQLException;
 import java.time.Duration;
+import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.HashSet;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.Map;
 
 import javax.sql.DataSource;
 
 import org.apache.commons.dbcp2.BasicDataSource;
-import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
-import org.springframework.context.support.ConversionServiceFactoryBean;
 import org.springframework.context.support.GenericApplicationContext;
-import org.springframework.core.env.ConfigurableEnvironment;
-import org.springframework.core.env.StandardEnvironment;
 import org.springframework.core.io.ClassPathResource;
 import org.springframework.core.io.Resource;
+import org.springframework.core.io.ResourceLoader;
 import org.springframework.core.io.support.ResourcePropertySource;
 import org.testng.Assert;
 import org.testng.AssertJUnit;
@@ -42,12 +41,10 @@ import org.testng.annotations.BeforeTest;
 import org.testng.annotations.Test;
 
 import com.google.common.cache.Cache;
+import com.google.common.collect.Collections2;
 
-import net.shibboleth.ext.spring.config.DurationToLongConverter;
-import net.shibboleth.ext.spring.config.StringToDurationConverter;
-import net.shibboleth.ext.spring.config.StringToIPRangeConverter;
-import net.shibboleth.ext.spring.config.StringToResourceConverter;
-import net.shibboleth.ext.spring.util.SchemaTypeAwareXMLBeanDefinitionReader;
+import net.shibboleth.ext.spring.resource.PreferFileSystemResourceLoader;
+import net.shibboleth.ext.spring.util.ApplicationContextBuilder;
 import net.shibboleth.idp.attribute.IdPAttribute;
 import net.shibboleth.idp.attribute.resolver.ResolutionException;
 import net.shibboleth.idp.attribute.resolver.dc.impl.ExecutableSearchBuilder;
@@ -158,35 +155,24 @@ public class RDBMSDataConnectorParserTest {
     }
 
     protected RDBMSDataConnector getRdbmsDataConnector(final Resource properties, final String... beanDefinitions) throws IOException {
-        final GenericApplicationContext context = new GenericApplicationContext();
-        setTestContext(context);
-        context.setDisplayName("ApplicationContext: " + RDBMSDataConnectorParserTest.class);
         
-        if (null != properties) {
-            final ConfigurableEnvironment env = context.getEnvironment();
-            env.getPropertySources().replace(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME, new ResourcePropertySource(properties));
-            
-           env.setPlaceholderPrefix("%{");
-           env.setPlaceholderSuffix("}");
-        }
-
-        final ConversionServiceFactoryBean service = new ConversionServiceFactoryBean();
-        service.setConverters(new HashSet<>(Arrays.asList(new DurationToLongConverter(), new StringToIPRangeConverter(),
-                new StringToResourceConverter(), new StringToDurationConverter())));
-        service.afterPropertiesSet();
+        final ResourceLoader loader = new PreferFileSystemResourceLoader();
+        
+        final ApplicationContextBuilder builder = new ApplicationContextBuilder();
+        builder.setName("ApplicationContext: " + RDBMSDataConnectorParserTest.class);
 
-        context.getBeanFactory().setConversionService(service.getObject());
+        final Collection<String> defs = new ArrayList<>(Arrays.asList(beanDefinitions));
+        defs.add("net/shibboleth/idp/attribute/resolver/spring/externalBeans.xml");
 
-        final XmlBeanDefinitionReader configReader = new SchemaTypeAwareXMLBeanDefinitionReader(context);
+        builder.setServiceConfigurations(Collections2.transform(defs, s -> loader.getResource(s)));
 
-        configReader.loadBeanDefinitions("net/shibboleth/idp/attribute/resolver/spring/externalBeans.xml");
+        if (properties != null) {
+            builder.setPropertySources(Collections.singletonList(new ResourcePropertySource(properties)));
+        }
         
-        final SchemaTypeAwareXMLBeanDefinitionReader beanDefinitionReader =
-                new SchemaTypeAwareXMLBeanDefinitionReader(context);
-
-        beanDefinitionReader.setValidating(true);
-        beanDefinitionReader.loadBeanDefinitions(beanDefinitions);
-        context.refresh();
+        final GenericApplicationContext context = builder.build();
+        
+        setTestContext(context);
 
         return (RDBMSDataConnector) context.getBean("myDatabase");
     }
diff --git a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-spring-props.xml b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-spring-props.xml
index 358c7ce..9ac166c 100644
--- a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-spring-props.xml
+++ b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-spring-props.xml
@@ -7,8 +7,6 @@
       id="myLDAP"
       xsi:type="LDAPDirectory"
       noRetryDelay="%{noRetryDelay}"
-      factoryPostProcessorsRef="shibboleth.PropertySourcesPlaceholderConfigurer"
-      postProcessorsRef="emptyList"
       springResources="classpath:net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldap-attribute-resolver-spring-props-context.xml"/>
 
 </AttributeResolver>
diff --git a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/storageService.xml b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/storageService.xml
index 6782289..eec8099 100644
--- a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/storageService.xml
+++ b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/storageService.xml
@@ -12,7 +12,6 @@
     <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
         <property name="converters">
             <list>
-                <bean class="net.shibboleth.ext.spring.config.DurationToLongConverter"/>
                 <bean class="net.shibboleth.ext.spring.config.StringToIPRangeConverter"/>
                 <bean class="net.shibboleth.ext.spring.config.StringToDurationConverter"/>
             </list>
diff --git a/idp-cas-impl/src/test/resources/spring/test-flow-beans.xml b/idp-cas-impl/src/test/resources/spring/test-flow-beans.xml
index 3777d41..78c09ec 100644
--- a/idp-cas-impl/src/test/resources/spring/test-flow-beans.xml
+++ b/idp-cas-impl/src/test/resources/spring/test-flow-beans.xml
@@ -19,7 +19,6 @@
           class="org.springframework.context.support.ConversionServiceFactoryBean">
         <property name="converters">
             <set>
-                <bean class="net.shibboleth.ext.spring.config.DurationToLongConverter" />
                 <bean class="net.shibboleth.ext.spring.config.StringToIPRangeConverter" />
                 <bean class="net.shibboleth.ext.spring.config.BooleanToPredicateConverter" />
                 <bean class="net.shibboleth.ext.spring.config.StringBooleanToPredicateConverter" />
diff --git a/idp-conf/src/main/resources/system/conf/global-system.xml b/idp-conf/src/main/resources/system/conf/global-system.xml
index 6a3f0f9..742370a 100644
--- a/idp-conf/src/main/resources/system/conf/global-system.xml
+++ b/idp-conf/src/main/resources/system/conf/global-system.xml
@@ -20,7 +20,6 @@
     <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
         <property name="converters">
             <set>
-                <bean class="net.shibboleth.ext.spring.config.DurationToLongConverter" />
                 <bean class="net.shibboleth.ext.spring.config.StringToIPRangeConverter" />
                 <bean class="net.shibboleth.ext.spring.config.BooleanToPredicateConverter" />
                 <bean class="net.shibboleth.ext.spring.config.StringBooleanToPredicateConverter" />
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/AbstractMetadataParserTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/AbstractMetadataParserTest.java
index d1ee3ef..e286ebd 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/AbstractMetadataParserTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/AbstractMetadataParserTest.java
@@ -23,30 +23,22 @@ import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.HashSet;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 
 import org.opensaml.core.OpenSAMLInitBaseTestCase;
 import org.opensaml.core.criterion.EntityIdCriterion;
 import org.springframework.context.ApplicationContext;
-import org.springframework.context.support.ConversionServiceFactoryBean;
 import org.springframework.context.support.GenericApplicationContext;
-import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
-import org.springframework.core.env.MutablePropertySources;
 import org.springframework.core.env.PropertySource;
-import org.springframework.core.env.StandardEnvironment;
 import org.springframework.core.io.ClassPathResource;
 import org.springframework.core.io.Resource;
 import org.springframework.mock.env.MockPropertySource;
 import org.testng.annotations.AfterSuite;
 import org.testng.annotations.BeforeSuite;
 
-import net.shibboleth.ext.spring.config.StringToDurationConverter;
-import net.shibboleth.ext.spring.config.StringToIPRangeConverter;
-import net.shibboleth.ext.spring.config.StringToResourceConverter;
-import net.shibboleth.ext.spring.context.FilesystemGenericApplicationContext;
-import net.shibboleth.ext.spring.util.SchemaTypeAwareXMLBeanDefinitionReader;
+import net.shibboleth.ext.spring.util.ApplicationContextBuilder;
 import net.shibboleth.ext.spring.util.SpringSupport;
 import net.shibboleth.idp.saml.metadata.RelyingPartyMetadataProvider;
 import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
@@ -114,63 +106,34 @@ public class AbstractMetadataParserTest extends OpenSAMLInitBaseTestCase {
             context.close();
         }
     }
-
-    /**
-     * Set up a property placeholder called DIR which points to the test directory this makes the test location
-     * insensitive but able to look at the local filesystem.
-     * 
-     * @param context the context
-     * @throws IOException
-     */
-    protected void setDirectoryPlaceholder(final GenericApplicationContext context) throws IOException {
-        final PropertySourcesPlaceholderConfigurer placeholderConfig = new PropertySourcesPlaceholderConfigurer();
-        placeholderConfig.setPlaceholderPrefix("%{");
-        placeholderConfig.setPlaceholderSuffix("}");
-
-        final MutablePropertySources propertySources = context.getEnvironment().getPropertySources();
-        final MockPropertySource mockEnvVars = new MockPropertySource();
-        mockEnvVars.setProperty("DIR", workspaceDirName);
-        mockEnvVars.setProperty("TMPDIR", tempDirName);
-
-        propertySources.replace(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME, mockEnvVars);
-        placeholderConfig.setPropertySources(propertySources);
-
-        context.addBeanFactoryPostProcessor(placeholderConfig);
-
-    }
     
-    protected ApplicationContext getApplicationContext(final String contextName, final PropertySource propSource, final String... files) throws IOException {
+    protected ApplicationContext getApplicationContext(final String contextName, final PropertySource propSource, final String... files)
+            throws IOException {
         final Resource[] resources = new Resource[files.length];
 
         for (int i = 0; i < files.length; i++) {
             resources[i] = new ClassPathResource(PATH + files[i]);
         }
 
-        final GenericApplicationContext context = new FilesystemGenericApplicationContext();
-        registerContext(context);
+        final ApplicationContextBuilder builder = new ApplicationContextBuilder();
         
+        builder.setName(contextName);
+        
+        final MockPropertySource mockEnvVars = new MockPropertySource();
+        mockEnvVars.setProperty("DIR", workspaceDirName);
+        mockEnvVars.setProperty("TMPDIR", tempDirName);
+
         if (propSource != null) {
-            context.getEnvironment().getPropertySources().addFirst(propSource);
+            builder.setPropertySources(Arrays.asList(propSource, mockEnvVars));
+        } else {
+            builder.setPropertySources(Collections.singletonList(mockEnvVars));
         }
         
-        setDirectoryPlaceholder(context);
-
-        final ConversionServiceFactoryBean service = new ConversionServiceFactoryBean();
-        context.setDisplayName("ApplicationContext: " + contextName);
-        service.setConverters(new HashSet<>(Arrays.asList(
-                new StringToDurationConverter(),
-                new StringToIPRangeConverter(),
-                new StringToResourceConverter())));
-        service.afterPropertiesSet();
+        builder.setServiceConfigurations(Arrays.asList(resources));
 
-        context.getBeanFactory().setConversionService(service.getObject());
-
-        final SchemaTypeAwareXMLBeanDefinitionReader configReader = new SchemaTypeAwareXMLBeanDefinitionReader(context);
-
-        configReader.setValidating(true);
-
-        configReader.loadBeanDefinitions(resources);
-        context.refresh();
+        final GenericApplicationContext context = builder.build();
+        
+        registerContext(context);
         
         return context;
     }
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/InlineMetadataParserTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/InlineMetadataParserTest.java
index 1b5e6b6..27b0e6a 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/InlineMetadataParserTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/InlineMetadataParserTest.java
@@ -18,29 +18,26 @@
 package net.shibboleth.idp.profile.spring.relyingparty.metadata;
 
 import java.io.IOException;
-import java.util.Arrays;
-import java.util.HashSet;
+import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Iterator;
 
-import net.shibboleth.ext.spring.config.DurationToLongConverter;
-import net.shibboleth.ext.spring.config.StringToDurationConverter;
-import net.shibboleth.ext.spring.config.StringToIPRangeConverter;
-import net.shibboleth.ext.spring.context.FilesystemGenericApplicationContext;
+import net.shibboleth.ext.spring.resource.PreferFileSystemResourceLoader;
 import net.shibboleth.ext.spring.service.ReloadableSpringService;
-import net.shibboleth.ext.spring.util.SchemaTypeAwareXMLBeanDefinitionReader;
+import net.shibboleth.ext.spring.util.ApplicationContextBuilder;
 import net.shibboleth.utilities.java.support.resolver.ResolverException;
 import net.shibboleth.utilities.java.support.service.ServiceableComponent;
 
 import org.opensaml.saml.metadata.resolver.MetadataResolver;
 import org.opensaml.saml.metadata.resolver.impl.DOMMetadataResolver;
 import org.opensaml.saml.saml2.metadata.EntityDescriptor;
-import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
-import org.springframework.context.support.ConversionServiceFactoryBean;
 import org.springframework.context.support.GenericApplicationContext;
-import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.ResourceLoader;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
+import com.google.common.collect.Collections2;
+
 public class InlineMetadataParserTest extends AbstractMetadataParserTest {
 
     @Test public void entity() throws ResolverException, IOException {
@@ -80,29 +77,21 @@ public class InlineMetadataParserTest extends AbstractMetadataParserTest {
 
     @Test public void multiple() throws ResolverException, IOException {
 
-        final GenericApplicationContext context = new FilesystemGenericApplicationContext();
-        registerContext(context);
+        final ResourceLoader loader = new PreferFileSystemResourceLoader();
         
-        final ConversionServiceFactoryBean service = new ConversionServiceFactoryBean();
-        context.setDisplayName("ApplicationContext: ");
-        service.setConverters(new HashSet<>(Arrays.asList(
-                new DurationToLongConverter(),
-                new StringToIPRangeConverter(),
-                new StringToDurationConverter())));
-        service.afterPropertiesSet();
-
-        context.getBeanFactory().setConversionService(service.getObject());
-
-        final XmlBeanDefinitionReader configReader = new SchemaTypeAwareXMLBeanDefinitionReader(context);
+        final ApplicationContextBuilder builder = new ApplicationContextBuilder();
+        builder.setName("ApplicationContext: " + InlineMetadataParserTest.class);
 
-        configReader.setValidating(true);
+        final Collection<String> defs = new ArrayList<>();
+        defs.add("net/shibboleth/idp/profile/spring/relyingparty/metadata/beans.xml");
+        defs.add("net/shibboleth/idp/profile/spring/relyingparty/metadata/multipleResolvers.xml");
 
-        configReader.loadBeanDefinitions(
-                new ClassPathResource("/net/shibboleth/idp/profile/spring/relyingparty/metadata/beans.xml"),
-                new ClassPathResource("/net/shibboleth/idp/profile/spring/relyingparty/metadata/multipleResolvers.xml")
-                );
-        context.refresh();
+        builder.setServiceConfigurations(Collections2.transform(defs, s -> loader.getResource(s)));
 
+        final GenericApplicationContext context = builder.build();
+        
+        registerContext(context);
+        
         final ReloadableSpringService<MetadataResolver> ms =
                 context.getBean("shibboleth.MetadataResolverService", ReloadableSpringService.class);
 
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/AbstractSecurityParserTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/AbstractSecurityParserTest.java
index 465c300..1602467 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/AbstractSecurityParserTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/AbstractSecurityParserTest.java
@@ -19,19 +19,11 @@ package net.shibboleth.idp.profile.spring.relyingparty.security;
 
 import java.io.IOException;
 import java.util.Arrays;
-import java.util.HashSet;
+import java.util.Collections;
 
-import net.shibboleth.ext.spring.config.DurationToLongConverter;
-import net.shibboleth.ext.spring.config.StringToIPRangeConverter;
-import net.shibboleth.ext.spring.context.FilesystemGenericApplicationContext;
-import net.shibboleth.ext.spring.util.SchemaTypeAwareXMLBeanDefinitionReader;
+import net.shibboleth.ext.spring.util.ApplicationContextBuilder;
 
-import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
-import org.springframework.context.support.ConversionServiceFactoryBean;
 import org.springframework.context.support.GenericApplicationContext;
-import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
-import org.springframework.core.env.MutablePropertySources;
-import org.springframework.core.env.StandardEnvironment;
 import org.springframework.core.io.ClassPathResource;
 import org.springframework.core.io.Resource;
 import org.springframework.mock.env.MockPropertySource;
@@ -70,55 +62,30 @@ public class AbstractSecurityParserTest {
         workspaceDirName = resource.getFile().getAbsolutePath();
     }
 
-    /**
-     * Set up a property placeholder called DIR which points to the test directory
-     * this makes the test location insensitive but able to look at the local
-     * filesystem.
-     * @param context the context
-     * @throws IOException 
-     */
-    protected void setDirectoryPlaceholder(final GenericApplicationContext context) throws IOException {
-        final PropertySourcesPlaceholderConfigurer placeholderConfig = new PropertySourcesPlaceholderConfigurer();
-        
-        final MutablePropertySources propertySources = context.getEnvironment().getPropertySources();
-        final MockPropertySource mockEnvVars = new MockPropertySource();
-        mockEnvVars.setProperty("DIR", workspaceDirName);
-        
-        propertySources.replace(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME, mockEnvVars);
-        placeholderConfig.setPropertySources(propertySources);
-        
-        context.addBeanFactoryPostProcessor(placeholderConfig);
-    }
-    
-    protected <T> T getBean(final Class<T> claz,  final boolean validating, final String... files) throws IOException{
-        return getBean(null, claz, validating, files);
+    protected <T> T getBean(final Class<T> claz, final String... files) throws IOException{
+        return getBean(null, claz, files);
     }
 
-    protected <T> T getBean(final String name, final Class<T> claz,  final boolean validating, final String... files) throws IOException{
-        final Resource[] resources = new Resource[files.length];
-       
+    protected <T> T getBean(final String name, final Class<T> claz, final String... files) throws IOException{
+        final Resource[] resources = new Resource[files.length + 1];
+        
         for (int i = 0; i < files.length; i++) {
             resources[i] = new ClassPathResource(PATH + files[i]);
         }
         
-        final GenericApplicationContext context = new FilesystemGenericApplicationContext();
-        setTestContext(context);
-        setDirectoryPlaceholder(context);
+        final ApplicationContextBuilder builder = new ApplicationContextBuilder();
         
-        final ConversionServiceFactoryBean service = new ConversionServiceFactoryBean();
-        context.setDisplayName("ApplicationContext: " + claz);
-        service.setConverters(new HashSet<>(Arrays.asList(new DurationToLongConverter(), new StringToIPRangeConverter())));
-        service.afterPropertiesSet();
-
-        context.getBeanFactory().setConversionService(service.getObject());
-
-        final XmlBeanDefinitionReader configReader = new SchemaTypeAwareXMLBeanDefinitionReader(context);
-
+        builder.setName("ApplicationContext: " + claz);
+        
+        final MockPropertySource mockEnvVars = new MockPropertySource();
+        mockEnvVars.setProperty("DIR", workspaceDirName);
+        builder.setPropertySources(Collections.singletonList(mockEnvVars));
+        
+        builder.setServiceConfigurations(Arrays.asList(resources));
 
-        configReader.setValidating(true);
+        final GenericApplicationContext context = builder.build();
         
-        configReader.loadBeanDefinitions(resources);
-        context.refresh();
+        setTestContext(context);
         
         if (name != null) {
             return context.getBean(name, claz);
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/credential/BasicInlineParserTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/credential/BasicInlineParserTest.java
index 18b8d3f..1392dbf 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/credential/BasicInlineParserTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/credential/BasicInlineParserTest.java
@@ -35,7 +35,7 @@ public class BasicInlineParserTest extends AbstractSecurityParserTest {
 
     @Test public void publicOnly() throws IOException {
         final BasicCredential credential =
-                (BasicCredential) getBean(Credential.class, true, "credential/inlinePublicOnly.xml");
+                (BasicCredential) getBean(Credential.class, "credential/inlinePublicOnly.xml");
 
         Assert.assertNull(credential.getPrivateKey());
     }
@@ -46,14 +46,14 @@ public class BasicInlineParserTest extends AbstractSecurityParserTest {
   */  
     @Test public void publicPrivate() throws IOException {
         final BasicCredential credential =
-                (BasicCredential) getBean(Credential.class, true, "credential/inlinePublicPrivate.xml");
+                (BasicCredential) getBean(Credential.class, "credential/inlinePublicPrivate.xml");
         Assert.assertNotNull(credential.getPrivateKey());
 
     }
     
     @Test public void secretBase64() throws IOException {
         final BasicCredential credential =
-                (BasicCredential) getBean(Credential.class, true, "credential/secretKeyAESBase64.xml");
+                (BasicCredential) getBean(Credential.class, "credential/secretKeyAESBase64.xml");
         Assert.assertNotNull(credential.getSecretKey());
         SecretKey key = credential.getSecretKey();
         Assert.assertEquals(key.getAlgorithm(), "AES");
@@ -61,7 +61,7 @@ public class BasicInlineParserTest extends AbstractSecurityParserTest {
     
     @Test public void secretHex() throws IOException {
         final BasicCredential credential =
-                (BasicCredential) getBean(Credential.class, true, "credential/secretKeyAESHex.xml");
+                (BasicCredential) getBean(Credential.class, "credential/secretKeyAESHex.xml");
         Assert.assertNotNull(credential.getSecretKey());
         SecretKey key = credential.getSecretKey();
         Assert.assertEquals(key.getAlgorithm(), "AES");
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/credential/BasicResourceParserTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/credential/BasicResourceParserTest.java
index c6fcc4f..4ded4b7 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/credential/BasicResourceParserTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/credential/BasicResourceParserTest.java
@@ -36,25 +36,25 @@ public class BasicResourceParserTest extends AbstractSecurityParserTest {
 
     @Test public void publicOnly() throws IOException {
         final BasicCredential credential =
-                (BasicCredential) getBean(Credential.class, true, "credential/filePublicOnly.xml");
+                (BasicCredential) getBean(Credential.class, "credential/filePublicOnly.xml");
 
         Assert.assertNull(credential.getPrivateKey());
     }
 
     @Test(expectedExceptions={BeanCreationException.class,}) public void wrongCert() throws IOException {
-        getBean(Credential.class, true, "credential/fileWrongPublic.xml");
+        getBean(Credential.class, "credential/fileWrongPublic.xml");
     }
 
     @Test public void publicPrivate() throws IOException {
         final BasicCredential credential =
-                (BasicCredential) getBean(Credential.class, true, "credential/filePublicPrivate.xml");
+                (BasicCredential) getBean(Credential.class, "credential/filePublicPrivate.xml");
         Assert.assertNotNull(credential.getPrivateKey());
 
     }
     
     @Test public void secretBase64() throws IOException {
         final BasicCredential credential =
-                (BasicCredential) getBean(Credential.class, true, "credential/fileSecretAESBase64.xml");
+                (BasicCredential) getBean(Credential.class, "credential/fileSecretAESBase64.xml");
         Assert.assertNotNull(credential.getSecretKey());
         SecretKey key = credential.getSecretKey();
         Assert.assertEquals(key.getAlgorithm(), "AES");
@@ -62,7 +62,7 @@ public class BasicResourceParserTest extends AbstractSecurityParserTest {
     
     @Test public void secretHex() throws IOException {
         final BasicCredential credential =
-                (BasicCredential) getBean(Credential.class, true, "credential/fileSecretAESHex.xml");
+                (BasicCredential) getBean(Credential.class, "credential/fileSecretAESHex.xml");
         Assert.assertNotNull(credential.getSecretKey());
         SecretKey key = credential.getSecretKey();
         Assert.assertEquals(key.getAlgorithm(), "AES");
@@ -70,7 +70,7 @@ public class BasicResourceParserTest extends AbstractSecurityParserTest {
     
     @Test public void secretBinary() throws IOException {
         final BasicCredential credential =
-                (BasicCredential) getBean(Credential.class, true, "credential/fileSecretAESBinary.xml");
+                (BasicCredential) getBean(Credential.class, "credential/fileSecretAESBinary.xml");
         Assert.assertNotNull(credential.getSecretKey());
         SecretKey key = credential.getSecretKey();
         Assert.assertEquals(key.getAlgorithm(), "AES");
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/credential/X509FilesystemParserTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/credential/X509FilesystemParserTest.java
index 7f5931d..89501c1 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/credential/X509FilesystemParserTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/credential/X509FilesystemParserTest.java
@@ -35,7 +35,7 @@ import org.testng.annotations.Test;
 public class X509FilesystemParserTest extends AbstractSecurityParserTest {
 
     private BasicX509Credential lookup(String file) throws IOException {
-        return (BasicX509Credential) getBean(Credential.class, true, "credential/" + file);
+        return (BasicX509Credential) getBean(Credential.class,  "credential/" + file);
     }
 
     @Test public void certOnly() throws IOException {
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/credential/X509InlineParserTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/credential/X509InlineParserTest.java
index 02ea26f..431ac6f 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/credential/X509InlineParserTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/credential/X509InlineParserTest.java
@@ -35,7 +35,7 @@ public class X509InlineParserTest extends AbstractSecurityParserTest {
 
     @Test public void certOnly() throws IOException {
         final BasicX509Credential credential =
-                (BasicX509Credential) getBean(Credential.class, true, "credential/inlineCertOnly.xml");
+                (BasicX509Credential) getBean(Credential.class, "credential/inlineCertOnly.xml");
 
         Assert.assertEquals(credential.getEntityCertificateChain().size(), 1);
         Assert.assertTrue(credential.getEntityCertificateChain().contains(credential.getEntityCertificate()));
@@ -44,12 +44,12 @@ public class X509InlineParserTest extends AbstractSecurityParserTest {
     }
     
     @Test(expectedExceptions={BeanCreationException.class,}) public void wrongCert() throws IOException {
-        getBean(Credential.class, true, "credential/inlineWrongCert.xml");
+        getBean(Credential.class, "credential/inlineWrongCert.xml");
     }
     
     @Test public void certKeyCrl() throws IOException {
         final BasicX509Credential credential =
-                (BasicX509Credential) getBean(Credential.class, true, "credential/inlineKeyCertCrl.xml");
+                (BasicX509Credential) getBean(Credential.class, "credential/inlineKeyCertCrl.xml");
 
         Assert.assertEquals(credential.getEntityCertificate().getNotAfter().getTime(), Instant.parse("2024-04-08T13:39:18Z").toEpochMilli());
         Assert.assertEquals(credential.getEntityCertificateChain().size(), 3);
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/ChainingTrustEngineTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/ChainingTrustEngineTest.java
index b29996c..1dc9be6 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/ChainingTrustEngineTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/ChainingTrustEngineTest.java
@@ -29,7 +29,7 @@ import org.testng.annotations.Test;
 public class ChainingTrustEngineTest extends AbstractSecurityParserTest {
     
     private ChainingTrustEngine lookup(String file) throws IOException {
-        return getBean(ChainingTrustEngine.class, true, "trustengine/" + file);
+        return getBean(ChainingTrustEngine.class, "trustengine/" + file);
     }
 
     
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/PKIXFilesystemParserTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/PKIXFilesystemParserTest.java
index bbc91c4..9b4b6e0 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/PKIXFilesystemParserTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/PKIXFilesystemParserTest.java
@@ -32,7 +32,7 @@ import org.testng.annotations.Test;
 public class PKIXFilesystemParserTest extends AbstractSecurityParserTest {
 
     private BasicPKIXValidationInformation lookup(String file) throws IOException {
-        return (BasicPKIXValidationInformation) getBean(PKIXValidationInformation.class, true, "trustengine/" + file);
+        return (BasicPKIXValidationInformation) getBean(PKIXValidationInformation.class, "trustengine/" + file);
     }
 
     @Test public void simple() throws IOException {
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/PKIXInlineParserTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/PKIXInlineParserTest.java
index 81bdc7a..56ec4e6 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/PKIXInlineParserTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/PKIXInlineParserTest.java
@@ -32,7 +32,7 @@ import org.testng.annotations.Test;
 public class PKIXInlineParserTest extends AbstractSecurityParserTest {
 
     private BasicPKIXValidationInformation lookup(String file) throws IOException {
-        return (BasicPKIXValidationInformation) getBean(PKIXValidationInformation.class, true, "trustengine/" + file);
+        return (BasicPKIXValidationInformation) getBean(PKIXValidationInformation.class, "trustengine/" + file);
     }
 
     @Test public void simple() throws IOException {
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/PKIXValidationOptionsParserTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/PKIXValidationOptionsParserTest.java
index 2099845..4a15a1d 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/PKIXValidationOptionsParserTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/PKIXValidationOptionsParserTest.java
@@ -33,7 +33,7 @@ public class PKIXValidationOptionsParserTest extends AbstractSecurityParserTest
     
     
     @Test public void simple() throws IOException {
-        PKIXValidationOptions what = getBean(PKIXValidationOptions.class, false, "trustengine/validationOptions.xml");
+        PKIXValidationOptions what = getBean(PKIXValidationOptions.class, "trustengine/validationOptions.xml");
 
         Assert.assertTrue(what.isProcessCredentialCRLs());
         Assert.assertTrue(what.isProcessEmptyCRLs());
@@ -42,7 +42,7 @@ public class PKIXValidationOptionsParserTest extends AbstractSecurityParserTest
     }
     
     @Test public void complex() throws IOException {
-        PKIXValidationOptions what = getBean(PKIXValidationOptions.class, false, "trustengine/validationOptionsValues.xml");
+        PKIXValidationOptions what = getBean(PKIXValidationOptions.class, "trustengine/validationOptionsValues.xml");
 
         Assert.assertFalse(what.isProcessCredentialCRLs());
         Assert.assertFalse(what.isProcessEmptyCRLs());
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/SignatureChainingParserTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/SignatureChainingParserTest.java
index ebeb48e..0ff274c 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/SignatureChainingParserTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/SignatureChainingParserTest.java
@@ -36,7 +36,7 @@ import org.testng.annotations.Test;
 public class SignatureChainingParserTest extends AbstractSecurityParserTest {
  
     @Test public void simple() throws IOException, ResolverException {
-        final ChainingSignatureTrustEngine chain =  getBean(ChainingSignatureTrustEngine.class, true, "trustengine/chain.xml");
+        final ChainingSignatureTrustEngine chain =  getBean(ChainingSignatureTrustEngine.class, "trustengine/chain.xml");
         
         Assert.assertEquals(chain.getChain().size(),2);
         
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/StaticExplicitKeyFactoryBeanTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/StaticExplicitKeyFactoryBeanTest.java
index 6002177..aee7fbf 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/StaticExplicitKeyFactoryBeanTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/StaticExplicitKeyFactoryBeanTest.java
@@ -40,7 +40,7 @@ public class StaticExplicitKeyFactoryBeanTest extends AbstractSecurityParserTest
     static private String TESTPATH = "trustengine/staticExplicitNative.xml";
     
     @Test public void singleKey() throws IOException, ResolverException {
-        final ExplicitKeyTrustEngine engine = (ExplicitKeyTrustEngine) getBean("staticKeySingle", TrustEngine.class, true, TESTPATH);
+        final ExplicitKeyTrustEngine engine = (ExplicitKeyTrustEngine) getBean("staticKeySingle", TrustEngine.class, TESTPATH);
         
         final StaticCredentialResolver resolver = (StaticCredentialResolver) engine.getCredentialResolver();
         Credential credential  = (Credential) resolver.resolveSingle(null);
@@ -49,7 +49,7 @@ public class StaticExplicitKeyFactoryBeanTest extends AbstractSecurityParserTest
     }
     
     @Test public void singleCert() throws IOException, ResolverException {
-        final ExplicitKeyTrustEngine engine = (ExplicitKeyTrustEngine) getBean("staticX509Single", TrustEngine.class, true, TESTPATH);
+        final ExplicitKeyTrustEngine engine = (ExplicitKeyTrustEngine) getBean("staticX509Single", TrustEngine.class, TESTPATH);
         
         final StaticCredentialResolver resolver = (StaticCredentialResolver) engine.getCredentialResolver();
         X509Credential credential  = (X509Credential) resolver.resolveSingle(null);
@@ -61,7 +61,7 @@ public class StaticExplicitKeyFactoryBeanTest extends AbstractSecurityParserTest
     }
     
     @Test public void multipleCert() throws IOException, ResolverException {
-        final ExplicitKeyTrustEngine engine = (ExplicitKeyTrustEngine) getBean("staticX509Multiple", TrustEngine.class, true, TESTPATH);
+        final ExplicitKeyTrustEngine engine = (ExplicitKeyTrustEngine) getBean("staticX509Multiple", TrustEngine.class, TESTPATH);
         
         final StaticCredentialResolver resolver = (StaticCredentialResolver) engine.getCredentialResolver();
         
@@ -77,7 +77,7 @@ public class StaticExplicitKeyFactoryBeanTest extends AbstractSecurityParserTest
     }
 
     @Test public void mixed() throws IOException, ResolverException {
-        final ExplicitKeyTrustEngine engine = (ExplicitKeyTrustEngine) getBean("staticMixed", TrustEngine.class, true, TESTPATH);
+        final ExplicitKeyTrustEngine engine = (ExplicitKeyTrustEngine) getBean("staticMixed", TrustEngine.class, TESTPATH);
         
         final StaticCredentialResolver resolver = (StaticCredentialResolver) engine.getCredentialResolver();
         
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/StaticExplicitKeyParserTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/StaticExplicitKeyParserTest.java
index b891424..4ee144b 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/StaticExplicitKeyParserTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/StaticExplicitKeyParserTest.java
@@ -36,7 +36,7 @@ import org.testng.annotations.Test;
 public class StaticExplicitKeyParserTest extends AbstractSecurityParserTest {
  
     @Test public void simple() throws IOException, ResolverException {
-        final ExplicitKeyTrustEngine engine = (ExplicitKeyTrustEngine) getBean(TrustEngine.class, true, "trustengine/staticExplicit.xml");
+        final ExplicitKeyTrustEngine engine = (ExplicitKeyTrustEngine) getBean(TrustEngine.class, "trustengine/staticExplicit.xml");
         
         final StaticCredentialResolver resolver = (StaticCredentialResolver) engine.getCredentialResolver();
         
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/StaticExplicitKeySignatureParserTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/StaticExplicitKeySignatureParserTest.java
index b9500e2..e7312de 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/StaticExplicitKeySignatureParserTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/StaticExplicitKeySignatureParserTest.java
@@ -36,7 +36,7 @@ import org.testng.annotations.Test;
 public class StaticExplicitKeySignatureParserTest extends AbstractSecurityParserTest {
  
     @Test public void simple() throws IOException, ResolverException {
-        final TrustedCredentialTrustEngine engine = (TrustedCredentialTrustEngine) getBean(TrustEngine.class, true, "trustengine/staticExplicitSignature.xml");
+        final TrustedCredentialTrustEngine engine = (TrustedCredentialTrustEngine) getBean(TrustEngine.class, "trustengine/staticExplicitSignature.xml");
         
         final StaticCredentialResolver resolver = (StaticCredentialResolver) engine.getCredentialResolver();
         
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/StaticPKIXSignatureParserTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/StaticPKIXSignatureParserTest.java
index f7a5402..bfdaca0 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/StaticPKIXSignatureParserTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/StaticPKIXSignatureParserTest.java
@@ -43,7 +43,7 @@ public class StaticPKIXSignatureParserTest extends AbstractSecurityParserTest {
 
     @Test public void simple() throws IOException, ResolverException {
         final PKIXSignatureTrustEngine engine =
-                (PKIXSignatureTrustEngine) getBean(TrustEngine.class, true, "trustengine/staticPKIX.xml");
+                (PKIXSignatureTrustEngine) getBean(TrustEngine.class, "trustengine/staticPKIX.xml");
         
         Assert.assertNotNull(engine.getX509CredentialNameEvaluator());
 
@@ -67,7 +67,7 @@ public class StaticPKIXSignatureParserTest extends AbstractSecurityParserTest {
     
     @Test public void nameCheckDisabled() throws IOException, ResolverException {
         final PKIXSignatureTrustEngine engine =
-                (PKIXSignatureTrustEngine) getBean(TrustEngine.class, true, "trustengine/staticPKIX-nameCheckDisabled.xml");
+                (PKIXSignatureTrustEngine) getBean(TrustEngine.class, "trustengine/staticPKIX-nameCheckDisabled.xml");
         
         Assert.assertNull(engine.getX509CredentialNameEvaluator());
 
@@ -91,7 +91,7 @@ public class StaticPKIXSignatureParserTest extends AbstractSecurityParserTest {
 
     @Test public void values() throws IOException, ResolverException {
         final PKIXSignatureTrustEngine engine =
-                (PKIXSignatureTrustEngine) getBean(TrustEngine.class, true, "trustengine/staticPKIXValues.xml");
+                (PKIXSignatureTrustEngine) getBean(TrustEngine.class, "trustengine/staticPKIXValues.xml");
         
         Assert.assertNotNull(engine.getX509CredentialNameEvaluator());
 
@@ -125,7 +125,7 @@ public class StaticPKIXSignatureParserTest extends AbstractSecurityParserTest {
     
     @Test public void certPath() throws IOException, ResolverException {
         final PKIXSignatureTrustEngine engine =
-                (PKIXSignatureTrustEngine) getBean(TrustEngine.class, true, "trustengine/staticPKIXValuesCertPathOpts.xml");
+                (PKIXSignatureTrustEngine) getBean(TrustEngine.class, "trustengine/staticPKIXValuesCertPathOpts.xml");
         
         Assert.assertNotNull(engine.getX509CredentialNameEvaluator());
 
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/StaticPKIXX509CredentialParserTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/StaticPKIXX509CredentialParserTest.java
index 3346d22..8f6a5aa 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/StaticPKIXX509CredentialParserTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/StaticPKIXX509CredentialParserTest.java
@@ -42,7 +42,7 @@ public class StaticPKIXX509CredentialParserTest extends AbstractSecurityParserTe
 
     @Test public void certPath() throws IOException, ResolverException {
         final PKIXX509CredentialTrustEngine engine =
-                (PKIXX509CredentialTrustEngine) getBean(TrustEngine.class, true, "trustengine/staticPKIXCredentials.xml");
+                (PKIXX509CredentialTrustEngine) getBean(TrustEngine.class, "trustengine/staticPKIXCredentials.xml");
         
         Assert.assertNotNull(engine.getX509CredentialNameEvaluator());
 
@@ -78,7 +78,7 @@ public class StaticPKIXX509CredentialParserTest extends AbstractSecurityParserTe
     
     @Test public void nameCheckDisabled() throws IOException, ResolverException {
         final PKIXX509CredentialTrustEngine engine =
-                (PKIXX509CredentialTrustEngine) getBean(TrustEngine.class, true, "trustengine/staticPKIXCredentials-nameCheckDisabled.xml");
+                (PKIXX509CredentialTrustEngine) getBean(TrustEngine.class, "trustengine/staticPKIXCredentials-nameCheckDisabled.xml");
         
         Assert.assertNull(engine.getX509CredentialNameEvaluator());
 
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/logic/relyingPartyIdPredicates.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/logic/relyingPartyIdPredicates.xml
index 8ed397e..8545b11 100644
--- a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/logic/relyingPartyIdPredicates.xml
+++ b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/logic/relyingPartyIdPredicates.xml
@@ -11,7 +11,6 @@
     <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
         <property name="converters">
             <set>
-                <bean class="net.shibboleth.ext.spring.config.DurationToLongConverter" />
                 <bean class="net.shibboleth.ext.spring.config.StringToIPRangeConverter" />
                 <bean class="net.shibboleth.ext.spring.config.BooleanToPredicateConverter" />
                 <bean class="net.shibboleth.ext.spring.config.StringBooleanToPredicateConverter" />
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/beans.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/beans.xml
index f5d4127..2dff5df 100644
--- a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/beans.xml
+++ b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/beans.xml
@@ -9,6 +9,10 @@
 
 	default-init-method="initialize" default-destroy-method="destroy" default-lazy-init="true">
 
+    <bean id="shibboleth.PropertySourcesPlaceholderConfigurer"
+        class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"
+        p:placeholderPrefix="%{" p:placeholderSuffix="}" />
+
 	<bean id="shibboleth.ParserPool"
 		class="net.shibboleth.utilities.java.support.xml.BasicParserPool"
 		p:maxPoolSize="100"
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/parent.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/parent.xml
index e81584a..78bf71d 100644
--- a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/parent.xml
+++ b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/parent.xml
@@ -20,7 +20,6 @@
     <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
         <property name="converters">
             <set>
-                <bean class="net.shibboleth.ext.spring.config.DurationToLongConverter" />
                 <bean class="net.shibboleth.ext.spring.config.StringToIPRangeConverter" />
                 <bean class="net.shibboleth.ext.spring.config.BooleanToPredicateConverter" />
                 <bean class="net.shibboleth.ext.spring.config.StringBooleanToPredicateConverter" />
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/reload/beans.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/reload/beans.xml
index 57312f9..f3c441f 100644
--- a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/reload/beans.xml
+++ b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/reload/beans.xml
@@ -13,7 +13,6 @@
     <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
         <property name="converters">
             <set>
-                <bean class="net.shibboleth.ext.spring.config.DurationToLongConverter" />
                 <bean class="net.shibboleth.ext.spring.config.StringToIPRangeConverter" />
                 <bean class="net.shibboleth.ext.spring.config.BooleanToPredicateConverter" />
                 <bean class="net.shibboleth.ext.spring.config.StringBooleanToPredicateConverter" />
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/reload/chainingbeans.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/reload/chainingbeans.xml
index 5e8f792..a2ad669 100644
--- a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/reload/chainingbeans.xml
+++ b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/reload/chainingbeans.xml
@@ -13,7 +13,6 @@
     <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
         <property name="converters">
             <set>
-                <bean class="net.shibboleth.ext.spring.config.DurationToLongConverter" />
                 <bean class="net.shibboleth.ext.spring.config.StringToIPRangeConverter" />
                 <bean class="net.shibboleth.ext.spring.config.BooleanToPredicateConverter" />
                 <bean class="net.shibboleth.ext.spring.config.StringBooleanToPredicateConverter" />
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/fileCertElementsKeyName.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/fileCertElementsKeyName.xml
index 4bd612e..8376f7f 100644
--- a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/fileCertElementsKeyName.xml
+++ b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/fileCertElementsKeyName.xml
@@ -5,6 +5,6 @@
 	id="IdPCredential" xsi:type="security:X509Filesystem" entityID="https://sp.example.org/sp/shibboleth" usage="Signing" >
 	<security:KeyName>Name1</security:KeyName>
     <security:KeyName>Name2</security:KeyName>
-	<security:Certificate>${DIR}/credential/cert.pem</security:Certificate>
+	<security:Certificate>%{DIR}/credential/cert.pem</security:Certificate>
 </security:Credential>
     
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/fileKeyCertCrl.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/fileKeyCertCrl.xml
index d3d21d8..215069e 100644
--- a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/fileKeyCertCrl.xml
+++ b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/fileKeyCertCrl.xml
@@ -3,9 +3,9 @@
 	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
 
 	id="IdPCredential" xsi:type="security:X509Filesystem">
-	<security:PrivateKey>${DIR}/credential/key.pem</security:PrivateKey>
-    <security:Certificate>${DIR}/credential/certificate.pem</security:Certificate>
-    <security:Certificate entityCertificate="true">${DIR}/credential/cert.pem</security:Certificate>
-    <security:CRL>${DIR}/credential/crl.pem</security:CRL>
+	<security:PrivateKey>%{DIR}/credential/key.pem</security:PrivateKey>
+    <security:Certificate>%{DIR}/credential/certificate.pem</security:Certificate>
+    <security:Certificate entityCertificate="true">%{DIR}/credential/cert.pem</security:Certificate>
+    <security:CRL>%{DIR}/credential/crl.pem</security:CRL>
 </security:Credential>
     
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/filePublicPrivate.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/filePublicPrivate.xml
index 7d389bb..cbd11aa 100644
--- a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/filePublicPrivate.xml
+++ b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/filePublicPrivate.xml
@@ -3,7 +3,7 @@
 	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
 
 	id="IdPCredential" xsi:type="security:BasicFilesystem">
-	<security:PrivateKey >${DIR}/credential/key.pem</security:PrivateKey>
-    <security:PublicKey>${DIR}/credential/publicKey.pem</security:PublicKey>
+	<security:PrivateKey>%{DIR}/credential/key.pem</security:PrivateKey>
+    <security:PublicKey>%{DIR}/credential/publicKey.pem</security:PublicKey>
 </security:Credential>
     
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/fileTwoCert.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/fileTwoCert.xml
index f45e4c4..c853711 100644
--- a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/fileTwoCert.xml
+++ b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/fileTwoCert.xml
@@ -3,6 +3,6 @@
 	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
 
 	id="IdPCredential" xsi:type="security:X509Filesystem">
-	<security:Certificate entityCertificate="true">${DIR}/credential/certificate.pem</security:Certificate>
+	<security:Certificate entityCertificate="true">%{DIR}/credential/certificate.pem</security:Certificate>
 </security:Credential>
     
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/fileWrongCert.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/fileWrongCert.xml
index 6f3ee53..9cbda29 100644
--- a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/fileWrongCert.xml
+++ b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/fileWrongCert.xml
@@ -3,7 +3,7 @@
 	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
 
 	id="IdPCredential" xsi:type="security:X509Filesystem">
-	<security:PrivateKey>${DIR}/credential/key.pem</security:PrivateKey>
-    <security:Certificate>${DIR}/credential/certificate.pem</security:Certificate>
+	<security:PrivateKey>%{DIR}/credential/key.pem</security:PrivateKey>
+    <security:Certificate>%{DIR}/credential/certificate.pem</security:Certificate>
 </security:Credential>
     
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/fileWrongPublic.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/fileWrongPublic.xml
index 148d570..1a07d3a 100644
--- a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/fileWrongPublic.xml
+++ b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/fileWrongPublic.xml
@@ -3,7 +3,7 @@
 	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
 
 	id="IdPCredential" xsi:type="security:BasicFilesystem">
-	<security:PrivateKey >${DIR}/credential/key.pem</security:PrivateKey>
-    <security:PublicKey>${DIR}/credential/wrongPublicKey.pem</security:PublicKey>
+	<security:PrivateKey>%{DIR}/credential/key.pem</security:PrivateKey>
+    <security:PublicKey>%{DIR}/credential/wrongPublicKey.pem</security:PublicKey>
 </security:Credential>
     
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/resourceBasic.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/resourceBasic.xml
index 1ff878e..9212452 100644
--- a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/resourceBasic.xml
+++ b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/resourceBasic.xml
@@ -3,6 +3,6 @@
 	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
 
 	id="IdPCredential" xsi:type="security:BasicResourceBacked">
-	<security:PublicKey>${DIR}/credential/cert.pem</security:PublicKey>
+	<security:PublicKey>%{DIR}/credential/cert.pem</security:PublicKey>
 </security:Credential>
     
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/resourceX509.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/resourceX509.xml
index fc3191d..b087dd9 100644
--- a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/resourceX509.xml
+++ b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/credential/resourceX509.xml
@@ -3,6 +3,6 @@
 	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
 
 	id="IdPCredential" xsi:type="security:X509ResourceBacked">
-	<security:Certificate>${DIR}/credential/cert.pem</security:Certificate>
+	<security:Certificate>%{DIR}/credential/cert.pem</security:Certificate>
 </security:Credential>
     
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/filesystemValidationInfoValues.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/filesystemValidationInfoValues.xml
index c95b154..3aec7ee 100644
--- a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/filesystemValidationInfoValues.xml
+++ b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/filesystemValidationInfoValues.xml
@@ -4,7 +4,7 @@
 	xsi:schemaLocation="urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"
 	id="validInfoValues" xsi:type="security:PKIXFilesystem" verifyDepth="99">
 	
-	<security:Certificate>${DIR}/trustengine/cert.pem</security:Certificate>
+	<security:Certificate>%{DIR}/trustengine/cert.pem</security:Certificate>
 	<security:Certificate>classpath:/net/shibboleth/idp/profile/spring/relyingparty/security/trustengine/cert.pem</security:Certificate>
-	<security:CRL>${DIR}/trustengine/crl.pem</security:CRL>
+	<security:CRL>%{DIR}/trustengine/crl.pem</security:CRL>
 </security:ValidationInfo>

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


More information about the commits mailing list