[java-shib-attribute] 02/02: JSSH-71 Remove the impact of the DestructableComponent Interface

Codeberg noreply at shibboleth.net
Sun May 31 15:08:33 UTC 2026


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

codeberg pushed a commit to branch dev/JSSH-71
in repository java-shib-attribute.

View the commit online:
https://codeberg.org/Shibboleth/java-shib-attribute/commit/e16a631fbcd071008189ce1eb973717456682e2c

commit e16a631fbcd071008189ce1eb973717456682e2c
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Tue May 26 15:59:06 2026 +0100

    JSSH-71 Remove the impact of the DestructableComponent Interface
    
    https://shibboleth.atlassian.net/browse/JSSH-71
    
    Remove used of destroy() from the project.
    
    * Remove all p:destroy-method="destroy" and
      p:default-destroy-method="destroy" attribute
      from native spring files
    * Remove setDestroyMethodName("destroy") from
      custom bean parsers
    * Plug the CommonAnnotationBeanPostProcessor bean
      into any contexts we summon up
    * Replace destroy calls in tests with an explicit
      call to the annotated method or an assert that
      there isn't one.
---
 .../idp/attribute/filter/spring/BaseFilterParser.java      |  1 -
 .../spring/matcher/BaseAttributeValueMatcherParser.java    |  3 ---
 .../filter/spring/policyrule/BasePolicyRuleParser.java     |  1 -
 .../dc/storage/impl/StorageServiceDataConnectorTest.java   |  5 +++--
 .../resolver/spring/BaseResolverPluginParser.java          |  1 -
 .../ad/impl/SubjectDerivedAttributeDefinitionParser.java   |  1 -
 .../resolver/spring/ad/mapped/impl/SourceValueParser.java  |  1 -
 .../spring/dc/http/impl/HTTPDataConnectorParser.java       |  3 ---
 .../spring/dc/impl/ComputedIdDataConnectorParser.java      |  1 -
 .../spring/dc/impl/StoredIdDataConnectorParser.java        |  1 -
 .../spring/dc/impl/SubjectDataConnectorParser.java         |  1 -
 .../spring/dc/ldap/impl/LDAPDataConnectorParser.java       |  1 -
 .../spring/dc/rdbms/impl/RDBMSDataConnectorParser.java     |  3 ---
 .../dc/saml/impl/AbstractSAMLDataConnectorParser.java      |  6 ------
 .../impl/SimpleAggregationSAMLDataConnectorParser.java     |  3 ---
 .../dc/storage/impl/StorageServiceDataConnectorParser.java |  2 --
 .../attribute/resolver/failfast/attributeResolverBeans.xml | 14 +++++++++++---
 .../resolver/failfast/attributeResolverBeansDefaultFF.xml  |  7 ++++++-
 .../resolver/spring/dc/staticAttributesNative.xml          |  2 +-
 .../shibboleth/idp/attribute/resolver/spring/service.xml   |  3 +--
 .../idp/attribute/resolver/spring/serviceNullStrip.xml     |  1 -
 .../transcoding/impl/SAML1ByteAttributeTranscoderTest.java |  5 ++++-
 .../impl/SAML1ScopedStringAttributeTranscoderTest.java     |  5 ++++-
 .../impl/SAML1StringAttributeTranscoderTest.java           |  5 ++++-
 .../transcoding/impl/SAML2ByteAttributeTranscoderTest.java |  5 ++++-
 .../impl/SAML2DateTimeAttributeTranscoderTest.java         |  5 ++++-
 .../impl/SAML2ScopedStringAttributeTranscoderTest.java     |  5 ++++-
 .../impl/SAML2StringAttributeTranscoderTest.java           |  5 ++++-
 .../impl/SAML2XMLObjectAttributeTranscoderTest.java        |  5 ++++-
 .../impl/SAML2ScopedStringNameIDTranscoderTest.java        |  5 ++++-
 .../transcoding/impl/SAML2StringNameIDTranscoderTest.java  |  5 ++++-
 31 files changed, 62 insertions(+), 49 deletions(-)

diff --git a/shib-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/BaseFilterParser.java b/shib-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/BaseFilterParser.java
index e1afa6499..bf3f730da 100644
--- a/shib-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/BaseFilterParser.java
+++ b/shib-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/BaseFilterParser.java
@@ -150,7 +150,6 @@ public abstract class BaseFilterParser extends AbstractCustomBeanDefinitionParse
         super.doParse(element, parserContext, builder);
 
         builder.setInitMethodName("initialize");
-        builder.setDestroyMethodName("destroy");
         
         // We use a prototype scope because it eliminates the overhead during context closure,
         // which is a problem when there are thousands of singletons. This means the destroy()
diff --git a/shib-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/matcher/BaseAttributeValueMatcherParser.java b/shib-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/matcher/BaseAttributeValueMatcherParser.java
index 7d4f6b354..59cac4463 100644
--- a/shib-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/matcher/BaseAttributeValueMatcherParser.java
+++ b/shib-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/matcher/BaseAttributeValueMatcherParser.java
@@ -99,7 +99,6 @@ public abstract class BaseAttributeValueMatcherParser extends BaseFilterParser {
                     BeanDefinitionBuilder.genericBeanDefinition(getNativeBeanClass());
             
             childBuilder.setInitMethodName("initialize");
-            childBuilder.setDestroyMethodName("destroy");
 
             doNativeParse(element, parserContext, childBuilder);
             childBuilder.addPropertyValue("id", "PMId:" + myId);
@@ -113,12 +112,10 @@ public abstract class BaseAttributeValueMatcherParser extends BaseFilterParser {
             final BeanDefinitionBuilder childBuilder =
                     BeanDefinitionBuilder.genericBeanDefinition(PolicyFromMatcherId.class);
             childBuilder.setInitMethodName("initialize");
-            childBuilder.setDestroyMethodName("destroy");
             
             final BeanDefinitionBuilder grandChildBuilder =
                     BeanDefinitionBuilder.genericBeanDefinition(getNativeBeanClass());
             grandChildBuilder.setInitMethodName("initialize");
-            grandChildBuilder.setDestroyMethodName("destroy");
 
             doNativeParse(element, parserContext, grandChildBuilder);
             grandChildBuilder.addPropertyValue("id", "PMId:" + myId);
diff --git a/shib-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/policyrule/BasePolicyRuleParser.java b/shib-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/policyrule/BasePolicyRuleParser.java
index 188e8df92..c49b019ba 100644
--- a/shib-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/policyrule/BasePolicyRuleParser.java
+++ b/shib-attribute-filter-spring/src/main/java/net/shibboleth/idp/attribute/filter/spring/policyrule/BasePolicyRuleParser.java
@@ -86,7 +86,6 @@ public abstract class BasePolicyRuleParser extends BaseFilterParser {
                     BeanDefinitionBuilder.genericBeanDefinition(getNativeBeanClass());
 
             childBuilder.setInitMethodName("initialize");
-            childBuilder.setDestroyMethodName("destroy");
 
             doNativeParse(element, parserContext, childBuilder);
             childBuilder.addPropertyValue("id", "PMId:" + myId);
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/storage/impl/StorageServiceDataConnectorTest.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/storage/impl/StorageServiceDataConnectorTest.java
index 7dbd6ed5a..f7f8f1328 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/storage/impl/StorageServiceDataConnectorTest.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/dc/storage/impl/StorageServiceDataConnectorTest.java
@@ -38,6 +38,7 @@ import net.shibboleth.idp.attribute.resolver.dc.impl.TestCache;
 import net.shibboleth.idp.attribute.resolver.testing.TestSources;
 import net.shibboleth.shared.annotation.constraint.NonnullBeforeTest;
 import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.primitive.AnnotationsSupport;
 import net.shibboleth.shared.spring.resource.ResourceHelper;
 import net.shibboleth.shared.testing.VelocityEngine;
 
@@ -69,8 +70,8 @@ public class StorageServiceDataConnectorTest {
     }
     
     @AfterMethod public void tearDown() {
-        connector.destroy();
-        storage.destroy();
+        assertFalse(AnnotationsSupport.hasPreDestroyAnnotation(connector));
+        AnnotationsSupport.callPreDestroyAnnotation(storage);
     }
     
     @Test public void testSimpleMissing() throws ComponentInitializationException, ResolutionException, ScriptException, IOException {
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/BaseResolverPluginParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/BaseResolverPluginParser.java
index 820a283b3..2e9bb62fc 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/BaseResolverPluginParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/BaseResolverPluginParser.java
@@ -92,7 +92,6 @@ public abstract class BaseResolverPluginParser extends AbstractCustomBeanDefinit
             defnId = id;
         }
         builder.setInitMethodName("initialize");
-        builder.setDestroyMethodName("destroy");
 
         if (config.hasAttributeNS(null, "activationConditionRef")) {
             if (config.hasAttributeNS(null, "relyingParties") ||
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SubjectDerivedAttributeDefinitionParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SubjectDerivedAttributeDefinitionParser.java
index f28f09ef9..397a73258 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SubjectDerivedAttributeDefinitionParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/SubjectDerivedAttributeDefinitionParser.java
@@ -104,7 +104,6 @@ public class SubjectDerivedAttributeDefinitionParser extends BaseAttributeDefini
         final BeanDefinitionBuilder contextFunctionBuilder =
                 BeanDefinitionBuilder.genericBeanDefinition(subjectDerivedClass);
         contextFunctionBuilder.setInitMethodName("initialize");
-        contextFunctionBuilder.setDestroyMethodName("destroy");
         contextFunctionBuilder.addPropertyValue("id", getDefinitionId());
 
         if (config.hasAttributeNS(null, "forCanonicalization")) {
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/SourceValueParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/SourceValueParser.java
index 9b69a8064..628c30a64 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/SourceValueParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/mapped/impl/SourceValueParser.java
@@ -52,7 +52,6 @@ public class SourceValueParser extends AbstractCustomBeanDefinitionParser {
         super.doParse(config, parserContext, builder);
 
         builder.setInitMethodName("initialize");
-        builder.setDestroyMethodName("destroy");
         
         final String value = config.getTextContent();
         builder.addPropertyValue("value", value);
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 867e7279b..b550368d5 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
@@ -136,7 +136,6 @@ public class HTTPDataConnectorParser extends AbstractDataConnectorParser {
         }
 
         builder.setInitMethodName("initialize");
-        builder.setDestroyMethodName("destroy");
     }
 // Checkstyle: CyclomaticComplexity|MethodLength ON
     
@@ -238,7 +237,6 @@ public class HTTPDataConnectorParser extends AbstractDataConnectorParser {
             final BeanDefinitionBuilder templateBuilder =
                     BeanDefinitionBuilder.genericBeanDefinition(TemplatedURLBuilder.class);
             templateBuilder.setInitMethodName("initialize");
-            templateBuilder.setDestroyMethodName("destroy");
 
             String velocityEngineRef = StringSupport.trimOrNull(configElement.getAttributeNS(null, "templateEngine"));
             if (null == velocityEngineRef) {
@@ -300,7 +298,6 @@ public class HTTPDataConnectorParser extends AbstractDataConnectorParser {
             final BeanDefinitionBuilder templateBuilder =
                     BeanDefinitionBuilder.genericBeanDefinition(TemplatedBodyBuilder.class);
             templateBuilder.setInitMethodName("initialize");
-            templateBuilder.setDestroyMethodName("destroy");
 
             String velocityEngineRef = StringSupport.trimOrNull(configElement.getAttributeNS(null, "templateEngine"));
             if (null == velocityEngineRef) {
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIdDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIdDataConnectorParser.java
index 63d99325c..b7f46036b 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIdDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIdDataConnectorParser.java
@@ -71,7 +71,6 @@ public class ComputedIdDataConnectorParser extends PairwiseIdDataConnectorParser
         final BeanDefinitionBuilder builder =
                 BeanDefinitionBuilder.genericBeanDefinition(ComputedPairwiseIdStore.class);
         builder.setInitMethodName("initialize");
-        builder.setDestroyMethodName("destroy");
 
         if (config.hasAttributeNS(null, "algorithm")) {
             builder.addPropertyValue("algorithm", config.getAttributeNS(null, "algorithm"));
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIdDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIdDataConnectorParser.java
index 50a525249..75e4ebe82 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIdDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StoredIdDataConnectorParser.java
@@ -63,7 +63,6 @@ public class StoredIdDataConnectorParser extends ComputedIdDataConnectorParser {
         final BeanDefinitionBuilder builder =
                 BeanDefinitionBuilder.genericBeanDefinition(JDBCPairwiseIdStore.class);
         builder.setInitMethodName("initialize");
-        builder.setDestroyMethodName("destroy");
 
         final String beanDataSource = ManagedConnectionParser.getBeanDataSourceID(config);
         if (beanDataSource != null) {
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/SubjectDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/SubjectDataConnectorParser.java
index 159c709ea..fa1e38a66 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/SubjectDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/SubjectDataConnectorParser.java
@@ -85,7 +85,6 @@ public class SubjectDataConnectorParser extends AbstractDataConnectorParser {
         final BeanDefinitionBuilder contextFunctionBuilder =
                 BeanDefinitionBuilder.genericBeanDefinition(subjectDerivedClass);
         contextFunctionBuilder.setInitMethodName("initialize");
-        contextFunctionBuilder.setDestroyMethodName("destroy");
         contextFunctionBuilder.addPropertyValue("id", getDefinitionId());
 
         if (element.hasAttributeNS(null, "forCanonicalization")) {
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 c73d3ae7a..17ad651ff 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
@@ -200,7 +200,6 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
         }
 
         builder.setInitMethodName("initialize");
-        builder.setDestroyMethodName("destroy");
     }
 
     // Checkstyle: CyclomaticComplexity|MethodLength ON
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 629095d3f..c36384ddf 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
@@ -118,7 +118,6 @@ public class RDBMSDataConnectorParser extends AbstractDataConnectorParser {
         }
 
         builder.setInitMethodName("initialize");
-        builder.setDestroyMethodName("destroy");
     }
 
     /**
@@ -176,7 +175,6 @@ public class RDBMSDataConnectorParser extends AbstractDataConnectorParser {
             final BeanDefinitionBuilder templateBuilder =
                     BeanDefinitionBuilder.genericBeanDefinition(TemplatedExecutableStatementBuilder.class);
             templateBuilder.setInitMethodName("initialize");
-            templateBuilder.setDestroyMethodName("destroy");
 
             String velocityEngineRef = StringSupport.trimOrNull(configElement.getAttribute("templateEngine"));
             if (null == velocityEngineRef) {
@@ -206,7 +204,6 @@ public class RDBMSDataConnectorParser extends AbstractDataConnectorParser {
             templateBuilder.addPropertyValue("templateText", queryText);
 
             templateBuilder.setInitMethodName("initialize");
-            templateBuilder.setDestroyMethodName("destroy");
             return templateBuilder.getBeanDefinition();
         }
         
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/AbstractSAMLDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/AbstractSAMLDataConnectorParser.java
index 28c8d8ea8..4b343bb4f 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/AbstractSAMLDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/AbstractSAMLDataConnectorParser.java
@@ -210,7 +210,6 @@ public abstract class AbstractSAMLDataConnectorParser extends AbstractDataConnec
                 SpringSupport.parseCustomElements(dataConnectorDependencyElements, parserContext, samlBuilder));
         
         samlBuilder.setInitMethodName("initialize");
-        samlBuilder.setDestroyMethodName("destroy");
         
         return samlBuilder.getBeanDefinition();
     }
@@ -240,7 +239,6 @@ public abstract class AbstractSAMLDataConnectorParser extends AbstractDataConnec
                 "attributeFilterService");
         
         mappingBuilder.setInitMethodName("initialize");
-        mappingBuilder.setDestroyMethodName("destroy");
         
         return mappingBuilder.getBeanDefinition();
     }
@@ -299,7 +297,6 @@ public abstract class AbstractSAMLDataConnectorParser extends AbstractDataConnec
         }
         
         queryBuilder.setInitMethodName("initialize");
-        queryBuilder.setDestroyMethodName("destroy");
         
         return queryBuilder.getBeanDefinition();
     }
@@ -319,7 +316,6 @@ public abstract class AbstractSAMLDataConnectorParser extends AbstractDataConnec
                 BeanDefinitionBuilder.genericBeanDefinition(CriteriaDecryptionConfigurationLookup.class);
         addCustomProperties(configLookupBuilder, "decryptionConfigurationResolver", "securityConfigurationProfileId");
         configLookupBuilder.setInitMethodName("initialize");
-        configLookupBuilder.setDestroyMethodName("destroy");
 
         final BeanDefinitionBuilder builder =
                 BeanDefinitionBuilder.genericBeanDefinition(DecryptionProcessor.class);
@@ -328,7 +324,6 @@ public abstract class AbstractSAMLDataConnectorParser extends AbstractDataConnec
         addCustomProperties(builder, "decryptionParametersResolver");
         
         builder.setInitMethodName("initialize");
-        builder.setDestroyMethodName("destroy");
 
         return builder.getBeanDefinition();
     }
@@ -350,7 +345,6 @@ public abstract class AbstractSAMLDataConnectorParser extends AbstractDataConnec
         addCustomProperties(builder, "assertionValidationContextBuilder", "assertionValidator");
         
         builder.setInitMethodName("initialize");
-        builder.setDestroyMethodName("destroy");
 
         return builder.getBeanDefinition();
     }
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/SimpleAggregationSAMLDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/SimpleAggregationSAMLDataConnectorParser.java
index 3b3eb8632..d20390eef 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/SimpleAggregationSAMLDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/saml/impl/SimpleAggregationSAMLDataConnectorParser.java
@@ -110,7 +110,6 @@ public class SimpleAggregationSAMLDataConnectorParser extends AbstractSAMLDataCo
         builder.addPropertyValue("entityIDSources", entityIDSources);
         
         builder.setInitMethodName("initialize");
-        builder.setDestroyMethodName("destroy");
     }
 
     /** {@inheritDoc} */
@@ -137,7 +136,6 @@ public class SimpleAggregationSAMLDataConnectorParser extends AbstractSAMLDataCo
         addCustomProperties(strategyBuilder, "selfEntityIDResolver");
         
         strategyBuilder.setInitMethodName("initialize");
-        strategyBuilder.setDestroyMethodName("destroy");
 
         return strategyBuilder.getBeanDefinition();
     }
@@ -169,7 +167,6 @@ public class SimpleAggregationSAMLDataConnectorParser extends AbstractSAMLDataCo
         }
 
         strategyBuilder.setInitMethodName("initialize");
-        strategyBuilder.setDestroyMethodName("destroy");
 
         return strategyBuilder.getBeanDefinition();
     }
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 518d5dd0f..51a794c4c 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
@@ -108,7 +108,6 @@ public class StorageServiceDataConnectorParser extends AbstractDataConnectorPars
         }
 
         builder.setInitMethodName("initialize");
-        builder.setDestroyMethodName("destroy");
     }
 
     /**
@@ -165,7 +164,6 @@ public class StorageServiceDataConnectorParser extends AbstractDataConnectorPars
             final BeanDefinitionBuilder templateBuilder =
                     BeanDefinitionBuilder.genericBeanDefinition(TemplatedSearchBuilder.class);
             templateBuilder.setInitMethodName("initialize");
-            templateBuilder.setDestroyMethodName("destroy");
 
             String velocityEngineRef = StringSupport.trimOrNull(configElement.getAttributeNS(null, "templateEngine"));
             if (null == velocityEngineRef) {
diff --git a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/failfast/attributeResolverBeans.xml b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/failfast/attributeResolverBeans.xml
index 05fd9769f..7a193a2db 100644
--- a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/failfast/attributeResolverBeans.xml
+++ b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/failfast/attributeResolverBeans.xml
@@ -7,11 +7,19 @@
                            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
                            http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
 
-	default-init-method="initialize" default-destroy-method="destroy">
+	default-init-method="initialize" >
 
     <bean id="shibboleth.IdentifiableBeanPostProcessor" destroy-method=""
         class="net.shibboleth.shared.spring.config.IdentifiableBeanPostProcessor" />
-    
+
+    <util:list id="shibboleth.BeanPostProcessors">
+        <ref bean="shibboleth.IdentifiableBeanPostProcessor"/>
+        <bean class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor"/>
+    </util:list>
+
+    <bean id="shibboleth.IdentifiableBeanPostProcessor" destroy-method=""
+        class="net.shibboleth.shared.spring.config.IdentifiableBeanPostProcessor" />
+
     <bean id="shibboleth.VelocityEngine" destroy-method=""
         class="net.shibboleth.shared.spring.velocity.VelocityEngineFactoryBean">
         <property name="velocityProperties">
@@ -35,7 +43,7 @@
         
     <bean id="shibboleth.AttributeResolverService" class="net.shibboleth.shared.spring.service.ReloadableSpringService" 
         p:serviceConfigurations="%{ServiceConfiguration}"
-        p:beanPostProcessors-ref="shibboleth.IdentifiableBeanPostProcessor"
+        p:beanPostProcessors-ref="shibboleth.BeanPostProcessors"
         p:failFast="%{failFast}" 
         p:reloadCheckDelay="0">
         <constructor-arg name="claz" value="net.shibboleth.idp.attribute.resolver.AttributeResolver" />
diff --git a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/failfast/attributeResolverBeansDefaultFF.xml b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/failfast/attributeResolverBeansDefaultFF.xml
index 547c883b4..75fb7dfc7 100644
--- a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/failfast/attributeResolverBeansDefaultFF.xml
+++ b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/failfast/attributeResolverBeansDefaultFF.xml
@@ -12,6 +12,11 @@
     <bean id="shibboleth.IdentifiableBeanPostProcessor" destroy-method=""
         class="net.shibboleth.shared.spring.config.IdentifiableBeanPostProcessor" />
 
+    <util:list id="shibboleth.BeanPostProcessors">
+        <ref bean="shibboleth.IdentifiableBeanPostProcessor"/>
+        <bean class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor"/>
+    </util:list>
+
     <bean id="shibboleth.VelocityEngine" destroy-method=""
             class="net.shibboleth.shared.spring.velocity.VelocityEngineFactoryBean">
         <property name="velocityProperties">
@@ -35,7 +40,7 @@
         
     <bean id="shibboleth.AttributeResolverService" class="net.shibboleth.shared.spring.service.ReloadableSpringService" 
         p:serviceConfigurations="%{ServiceConfiguration}"
-        p:beanPostProcessors-ref="shibboleth.IdentifiableBeanPostProcessor"
+        p:beanPostProcessors-ref="shibboleth.BeanPostProcessors"
         p:reloadCheckDelay="0">
         <constructor-arg name="claz" value="net.shibboleth.idp.attribute.resolver.AttributeResolver" />
         <constructor-arg name="strategy">
diff --git a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/staticAttributesNative.xml b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/staticAttributesNative.xml
index 677173dde..9ae7d4572 100644
--- a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/staticAttributesNative.xml
+++ b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/staticAttributesNative.xml
@@ -7,7 +7,7 @@
                             http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
     default-init-method="initialize">
 
-    <bean class="net.shibboleth.idp.attribute.resolver.dc.impl.StaticDataConnector" id="staticAttributes" destroy-method="destroy">
+    <bean class="net.shibboleth.idp.attribute.resolver.dc.impl.StaticDataConnector" id="staticAttributes">
         <property name="values">
             <list>
                 <bean class="net.shibboleth.idp.attribute.IdPAttribute" c:attributeId="staticEpA">
diff --git a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/service.xml b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/service.xml
index 84bc21104..6f375bb69 100644
--- a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/service.xml
+++ b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/service.xml
@@ -5,8 +5,7 @@
         xmlns:c="http://www.springframework.org/schema/c"
         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                             http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
-        default-init-method="initialize"
-        default-destroy-method="destroy">
+        default-init-method="initialize">
                             
     <!-- This BeanPostProcessor auto-sets identifiable beans with the bean name (if not already set). -->
     <bean id="shibboleth.IdentifiableBeanPostProcessor" destroy-method=""
diff --git a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/serviceNullStrip.xml b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/serviceNullStrip.xml
index 6cfe31c59..c5aa11668 100644
--- a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/serviceNullStrip.xml
+++ b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/serviceNullStrip.xml
@@ -6,7 +6,6 @@
         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                             http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
         default-init-method="initialize"
-        default-destroy-method="destroy"
                             >
                             
     <!-- This BeanPostProcessor auto-sets identifiable beans with the bean name (if not already set). -->
diff --git a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ByteAttributeTranscoderTest.java b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ByteAttributeTranscoderTest.java
index 37f4b3ba6..2d9c460ad 100644
--- a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ByteAttributeTranscoderTest.java
+++ b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ByteAttributeTranscoderTest.java
@@ -14,6 +14,8 @@
 
 package net.shibboleth.idp.saml.attribute.transcoding.impl;
 
+import static org.testng.Assert.assertFalse;
+
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
@@ -55,6 +57,7 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.codec.Base64Support;
 import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.primitive.AnnotationsSupport;
 import net.shibboleth.shared.testing.MockApplicationContext;
 
 /** {@link SAML1ByteAttributeTranscoder} unit test. */
@@ -110,7 +113,7 @@ public class SAML1ByteAttributeTranscoderTest extends OpenSAMLInitBaseTestCase {
     }
     
     @AfterClass public void tearDown() {
-        registry.destroy();
+        assertFalse(AnnotationsSupport.hasPreDestroyAnnotation(registry));
         registry = null;
     }
 
diff --git a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ScopedStringAttributeTranscoderTest.java b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ScopedStringAttributeTranscoderTest.java
index 357ab92bb..e144ad632 100644
--- a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ScopedStringAttributeTranscoderTest.java
+++ b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1ScopedStringAttributeTranscoderTest.java
@@ -14,6 +14,8 @@
 
 package net.shibboleth.idp.saml.attribute.transcoding.impl;
 
+import static org.testng.Assert.assertFalse;
+
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
@@ -39,6 +41,7 @@ import net.shibboleth.idp.saml.xmlobject.ScopedValue;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.primitive.AnnotationsSupport;
 import net.shibboleth.shared.testing.MockApplicationContext;
 
 import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
@@ -115,7 +118,7 @@ public class SAML1ScopedStringAttributeTranscoderTest extends OpenSAMLInitBaseTe
     }
     
     @AfterClass public void tearDown() {
-        registry.destroy();
+        assertFalse(AnnotationsSupport.hasPreDestroyAnnotation(registry));
         registry = null;
     }
 
diff --git a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1StringAttributeTranscoderTest.java b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1StringAttributeTranscoderTest.java
index 0128c8dc9..3a5f334c4 100644
--- a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1StringAttributeTranscoderTest.java
+++ b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML1StringAttributeTranscoderTest.java
@@ -14,6 +14,8 @@
 
 package net.shibboleth.idp.saml.attribute.transcoding.impl;
 
+import static org.testng.Assert.assertFalse;
+
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
@@ -52,6 +54,7 @@ import net.shibboleth.idp.saml.attribute.transcoding.SAML1AttributeTranscoder;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.primitive.AnnotationsSupport;
 import net.shibboleth.shared.testing.MockApplicationContext;
 
 /** {@link SAML1StringAttributeTranscoder} unit test. */
@@ -104,7 +107,7 @@ public class SAML1StringAttributeTranscoderTest extends OpenSAMLInitBaseTestCase
     }
     
     @AfterClass public void tearDown() {
-        registry.destroy();
+        assertFalse(AnnotationsSupport.hasPreDestroyAnnotation(registry));
         registry = null;
     }
 
diff --git a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ByteAttributeTranscoderTest.java b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ByteAttributeTranscoderTest.java
index 7fc76bb55..faeb93935 100644
--- a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ByteAttributeTranscoderTest.java
+++ b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ByteAttributeTranscoderTest.java
@@ -14,6 +14,8 @@
 
 package net.shibboleth.idp.saml.attribute.transcoding.impl;
 
+import static org.testng.Assert.assertFalse;
+
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
@@ -55,6 +57,7 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.codec.Base64Support;
 import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.primitive.AnnotationsSupport;
 import net.shibboleth.shared.testing.MockApplicationContext;
 
 /** {@link SAML2ByteAttributeTranscoder} unit test. */
@@ -112,7 +115,7 @@ public class SAML2ByteAttributeTranscoderTest extends OpenSAMLInitBaseTestCase {
     }
     
     @AfterClass public void tearDown() {
-        registry.destroy();
+        assertFalse(AnnotationsSupport.hasPreDestroyAnnotation(registry));
         registry = null;
     }
 
diff --git a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2DateTimeAttributeTranscoderTest.java b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2DateTimeAttributeTranscoderTest.java
index 1c03e9e28..011f10c5d 100644
--- a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2DateTimeAttributeTranscoderTest.java
+++ b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2DateTimeAttributeTranscoderTest.java
@@ -14,6 +14,8 @@
 
 package net.shibboleth.idp.saml.attribute.transcoding.impl;
 
+import static org.testng.Assert.assertFalse;
+
 import java.time.Instant;
 import java.util.Collection;
 import java.util.HashMap;
@@ -53,6 +55,7 @@ import net.shibboleth.idp.saml.attribute.transcoding.SAML2AttributeTranscoder;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.primitive.AnnotationsSupport;
 import net.shibboleth.shared.testing.MockApplicationContext;
 
 /** {@link SAML2DateTimeAttributeTranscoder} unit test. */
@@ -112,7 +115,7 @@ public class SAML2DateTimeAttributeTranscoderTest extends OpenSAMLInitBaseTestCa
     }
     
     @AfterClass public void tearDown() {
-        registry.destroy();
+        assertFalse(AnnotationsSupport.hasPreDestroyAnnotation(registry));
         registry = null;
     }
 
diff --git a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ScopedStringAttributeTranscoderTest.java b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ScopedStringAttributeTranscoderTest.java
index 8461270b7..eeb7b1a9a 100644
--- a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ScopedStringAttributeTranscoderTest.java
+++ b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2ScopedStringAttributeTranscoderTest.java
@@ -14,6 +14,8 @@
 
 package net.shibboleth.idp.saml.attribute.transcoding.impl;
 
+import static org.testng.Assert.assertFalse;
+
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
@@ -52,6 +54,7 @@ import net.shibboleth.idp.saml.attribute.transcoding.SAML2AttributeTranscoder;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.primitive.AnnotationsSupport;
 import net.shibboleth.shared.testing.MockApplicationContext;
 
 /** {@link SAML2ScopedStringAttributeTranscoder} unit test. */
@@ -110,7 +113,7 @@ public class SAML2ScopedStringAttributeTranscoderTest extends OpenSAMLInitBaseTe
     }
     
     @AfterClass public void tearDown() {
-        registry.destroy();
+        assertFalse(AnnotationsSupport.hasPreDestroyAnnotation(registry));
         registry = null;
     }
 
diff --git a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2StringAttributeTranscoderTest.java b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2StringAttributeTranscoderTest.java
index 6db92d33b..369a82962 100644
--- a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2StringAttributeTranscoderTest.java
+++ b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2StringAttributeTranscoderTest.java
@@ -14,6 +14,8 @@
 
 package net.shibboleth.idp.saml.attribute.transcoding.impl;
 
+import static org.testng.Assert.assertFalse;
+
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
@@ -52,6 +54,7 @@ import net.shibboleth.idp.saml.attribute.transcoding.SAML2AttributeTranscoder;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.primitive.AnnotationsSupport;
 import net.shibboleth.shared.testing.MockApplicationContext;
 
 /** {@link SAML2StringAttributeTranscoder} unit test. */
@@ -106,7 +109,7 @@ public class SAML2StringAttributeTranscoderTest extends OpenSAMLInitBaseTestCase
     }
     
     @AfterClass public void tearDown() {
-        registry.destroy();
+        assertFalse(AnnotationsSupport.hasPreDestroyAnnotation(registry));
         registry = null;
     }
 
diff --git a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2XMLObjectAttributeTranscoderTest.java b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2XMLObjectAttributeTranscoderTest.java
index c3fde93af..c6f4e45ea 100644
--- a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2XMLObjectAttributeTranscoderTest.java
+++ b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/attribute/transcoding/impl/SAML2XMLObjectAttributeTranscoderTest.java
@@ -14,6 +14,8 @@
 
 package net.shibboleth.idp.saml.attribute.transcoding.impl;
 
+import static org.testng.Assert.assertFalse;
+
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
@@ -57,6 +59,7 @@ import net.shibboleth.idp.saml.attribute.transcoding.SAMLEncoderSupport;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.primitive.AnnotationsSupport;
 import net.shibboleth.shared.testing.MockApplicationContext;
 
 /** {@link SAML2XMLObjectAttributeTranscoder} unit test. */
@@ -112,7 +115,7 @@ public class SAML2XMLObjectAttributeTranscoderTest extends OpenSAMLInitBaseTestC
     }
     
     @AfterClass public void tearDown() {
-        registry.destroy();
+        assertFalse(AnnotationsSupport.hasPreDestroyAnnotation(registry));
         registry = null;
     }
 
diff --git a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/saml2/nameid/transcoding/impl/SAML2ScopedStringNameIDTranscoderTest.java b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/saml2/nameid/transcoding/impl/SAML2ScopedStringNameIDTranscoderTest.java
index 7f4d95589..588b6801f 100644
--- a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/saml2/nameid/transcoding/impl/SAML2ScopedStringNameIDTranscoderTest.java
+++ b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/saml2/nameid/transcoding/impl/SAML2ScopedStringNameIDTranscoderTest.java
@@ -14,6 +14,8 @@
 
 package net.shibboleth.idp.saml.saml2.nameid.transcoding.impl;
 
+import static org.testng.Assert.assertFalse;
+
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
@@ -44,6 +46,7 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.logic.FunctionSupport;
+import net.shibboleth.shared.primitive.AnnotationsSupport;
 import net.shibboleth.shared.testing.MockApplicationContext;
 
 /** {@link SAML2ScopedStringNameIDTranscoder} unit test. */
@@ -88,7 +91,7 @@ public class SAML2ScopedStringNameIDTranscoderTest extends OpenSAMLInitBaseTestC
     }
     
     @AfterClass public void tearDown() {
-        registry.destroy();
+        assertFalse(AnnotationsSupport.hasPreDestroyAnnotation(registry));
         registry = null;
     }
 
diff --git a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/saml2/nameid/transcoding/impl/SAML2StringNameIDTranscoderTest.java b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/saml2/nameid/transcoding/impl/SAML2StringNameIDTranscoderTest.java
index 2b012b0e3..8a886755a 100644
--- a/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/saml2/nameid/transcoding/impl/SAML2StringNameIDTranscoderTest.java
+++ b/shib-saml-attribute-impl/src/test/java/net/shibboleth/idp/saml/saml2/nameid/transcoding/impl/SAML2StringNameIDTranscoderTest.java
@@ -14,6 +14,8 @@
 
 package net.shibboleth.idp.saml.saml2.nameid.transcoding.impl;
 
+import static org.testng.Assert.assertFalse;
+
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
@@ -43,6 +45,7 @@ import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.logic.FunctionSupport;
+import net.shibboleth.shared.primitive.AnnotationsSupport;
 import net.shibboleth.shared.testing.MockApplicationContext;
 
 /** {@link SAML2StringNameIDTranscoder} unit test. */
@@ -86,7 +89,7 @@ public class SAML2StringNameIDTranscoderTest extends OpenSAMLInitBaseTestCase {
     }
     
     @AfterClass public void tearDown() {
-        registry.destroy();
+        assertFalse(AnnotationsSupport.hasPreDestroyAnnotation(registry));
         registry = null;
     }
 

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


More information about the commits mailing list