[java-opensaml] 01/02: JSSH-71 Remove the impact of the DestructableComponent Interface

Codeberg noreply at shibboleth.net
Thu Jul 9 12:44:39 UTC 2026


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

codeberg pushed a commit to branch main
in repository java-opensaml.

View the commit online:
https://codeberg.org/Shibboleth/java-opensaml/commit/65e5da57d17c853bd9b74bd847788d582fddbf2d

commit 65e5da57d17c853bd9b74bd847788d582fddbf2d
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Mon Jul 6 20:15:19 2026 +0100

    JSSH-71 Remove the impact of the DestructableComponent Interface
    
    https://shibboleth.atlassian.net/browse/JSSH-71
    
    Remove function-free doDestroy() methods.
---
 .../impl/AbstractDynamicHTTPMetadataResolver.java    | 20 +++-----------------
 .../impl/AbstractDynamicMetadataResolver.java        |  5 -----
 .../resolver/impl/AbstractMetadataResolver.java      | 15 +--------------
 .../impl/AbstractReloadingMetadataResolver.java      |  9 ---------
 .../impl/FileBackedHTTPMetadataResolver.java         | 12 +-----------
 .../resolver/impl/FilesystemMetadataResolver.java    | 12 +-----------
 .../metadata/resolver/impl/HTTPMetadataResolver.java | 19 ++-----------------
 .../impl/ResourceBackedMetadataResolver.java         | 12 +-----------
 .../opensaml/storage/impl/MemoryStorageService.java  |  9 ---------
 .../impl/client/XMLClientStorageServiceStore.java    |  6 ------
 10 files changed, 9 insertions(+), 110 deletions(-)

diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractDynamicHTTPMetadataResolver.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractDynamicHTTPMetadataResolver.java
index 5927a1c81..03dcc3c71 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractDynamicHTTPMetadataResolver.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractDynamicHTTPMetadataResolver.java
@@ -78,7 +78,7 @@ public abstract class AbstractDynamicHTTPMetadataResolver extends AbstractDynami
     @Nonnull private final Logger log = LoggerFactory.getLogger(AbstractDynamicHTTPMetadataResolver.class);
     
     /** HTTP Client used to pull the metadata. */
-    @NonnullAfterInit private HttpClient httpClient;
+    @Nonnull private final HttpClient httpClient;
     
     /** List of supported MIME types for use in Accept request header and validation of 
      * response Content-Type header.*/
@@ -91,7 +91,7 @@ public abstract class AbstractDynamicHTTPMetadataResolver extends AbstractDynami
     @NonnullAfterInit private Set<MediaType> supportedMediaTypes;
     
     /** HttpClient ResponseHandler instance to use. */
-    @Nonnull private HttpClientResponseHandler<XMLObject> responseHandler;
+    @Nonnull private final HttpClientResponseHandler<XMLObject> responseHandler;
         
     /** Optional HttpClient security parameters.*/
     @Nullable private HttpClientSecurityParameters httpClientSecurityParameters;
@@ -236,21 +236,7 @@ public abstract class AbstractDynamicHTTPMetadataResolver extends AbstractDynami
         
         log.debug("{} Supported content types are: {}", getLogPrefix(), getSupportedContentTypes());
     }
-    
-   /** {@inheritDoc} */
-    @Override
-    protected void doDestroy() {
-        // TODO: if we pull this, httpClient should be Nonnull.
-        httpClient = null;
-        httpClientSecurityParameters = null;
-        
-        supportedContentTypes = null;
-        supportedContentTypesValue = null;
-        supportedMediaTypes = null;
-        
-        super.doDestroy();
-    }
-    
+
     /** {@inheritDoc} */
     @Override
     @Nullable protected XMLObject fetchFromOriginSource(@Nullable final CriteriaSet criteria) 
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractDynamicMetadataResolver.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractDynamicMetadataResolver.java
index f73f0bbda..68266ff9e 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractDynamicMetadataResolver.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractDynamicMetadataResolver.java
@@ -1512,11 +1512,6 @@ public abstract class AbstractDynamicMetadataResolver extends AbstractMetadataRe
             MetricsSupport.remove(MetricRegistry.name(getMetricsBaseName(), METRIC_GAUGE_PERSISTENT_CACHE_INIT), 
                     gaugePersistentCacheInit);
         }
-        ratioGaugeFetchToResolve = null;
-        gaugeNumLiveEntityIDs = null;
-        gaugePersistentCacheInit = null;
-        timerFetchFromOriginSource = null;
-        timerResolve = null;
         
         super.doDestroy();
     }
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractMetadataResolver.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractMetadataResolver.java
index eeda041c3..f64ad9a08 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractMetadataResolver.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractMetadataResolver.java
@@ -81,7 +81,7 @@ public abstract class AbstractMetadataResolver extends AbstractIdentifiableIniti
     @NonnullAfterInit private String metricsBaseName;
     
     /** Unmarshaller factory used to get an unmarshaller for the metadata DOM. */
-    @NonnullAfterInit private UnmarshallerFactory unmarshallerFactory;
+    @Nonnull private final UnmarshallerFactory unmarshallerFactory;
 
     /** Whether metadata is required to be valid. */
     private boolean requireValidMetadata;
@@ -382,19 +382,6 @@ public abstract class AbstractMetadataResolver extends AbstractIdentifiableIniti
         }
     }
 
-    /** {@inheritDoc} */
-    @Override protected void doDestroy() {
-        // TODO: if we pull this, unmarshallerFactory should be Nonnull.
-        unmarshallerFactory = null;
-        mdFilter = null;
-        entityBackingStore = null;
-        parser = null;
-        criterionPredicateRegistry = null;
-        activationCondition = null;
-
-        super.doDestroy();
-    }
-
     /**
      * Subclasses should override this method to perform any initialization logic necessary. Default implementation is a
      * no-op.
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractReloadingMetadataResolver.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractReloadingMetadataResolver.java
index 439aa30ee..e69a327e2 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractReloadingMetadataResolver.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractReloadingMetadataResolver.java
@@ -309,15 +309,6 @@ public abstract class AbstractReloadingMetadataResolver extends AbstractBatchMet
             taskTimer.cancel();
         }
         
-        timerRefresh = null;
-        expirationTime = null;
-        lastRefresh = null;
-        lastUpdate = null;
-        nextRefresh = null;
-        wasLastRefreshSuccess = null;
-        lastSuccessfulRefresh = null;
-        lastFailureCause = null;
-        
         super.doDestroy();
     }
 
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/FileBackedHTTPMetadataResolver.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/FileBackedHTTPMetadataResolver.java
index 5f2d1c549..ada980340 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/FileBackedHTTPMetadataResolver.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/FileBackedHTTPMetadataResolver.java
@@ -34,7 +34,6 @@ import org.w3c.dom.Document;
 
 import com.google.common.io.Files;
 
-import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.primitive.LoggerFactory;
@@ -64,7 +63,7 @@ public class FileBackedHTTPMetadataResolver extends HTTPMetadataResolver {
     @Nonnull private final Logger log = LoggerFactory.getLogger(FileBackedHTTPMetadataResolver.class);
 
     /** File containing the backup of the metadata. */
-    @NonnullAfterInit private File metadataBackupFile;
+    @Nonnull private File metadataBackupFile;
     
     /** Flag used to track state of whether currently initializing or not. */
     private boolean initializing;
@@ -176,15 +175,6 @@ public class FileBackedHTTPMetadataResolver extends HTTPMetadataResolver {
         backupFileInitNextRefreshDelay = delay;
     }
 
-    /** {@inheritDoc} */
-    @Override
-    protected void doDestroy() {
-        // TODO: if we pull this, becomes Nonnull.
-        metadataBackupFile = null;
-
-        super.doDestroy();
-    }
-
     /** {@inheritDoc} */
     @Override
     protected void initMetadataResolver() throws ComponentInitializationException {
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/FilesystemMetadataResolver.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/FilesystemMetadataResolver.java
index 7cac67788..22180beb7 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/FilesystemMetadataResolver.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/FilesystemMetadataResolver.java
@@ -25,7 +25,6 @@ import javax.annotation.Nullable;
 
 import org.slf4j.Logger;
 
-import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.primitive.LoggerFactory;
 import net.shibboleth.shared.resolver.ResolverException;
@@ -51,7 +50,7 @@ public class FilesystemMetadataResolver extends AbstractReloadingMetadataResolve
     @Nonnull private final Logger log = LoggerFactory.getLogger(FilesystemMetadataResolver.class);
 
     /** The metadata file. */
-    @NonnullAfterInit private File metadataFile;
+    @Nonnull private File metadataFile;
 
     /**
      * Constructor.
@@ -91,15 +90,6 @@ public class FilesystemMetadataResolver extends AbstractReloadingMetadataResolve
         metadataFile = Constraint.isNotNull(file, "Metadata file cannot be null");
     }
 
-    /** {@inheritDoc} */
-    @Override
-    protected void doDestroy() {
-        // TODO: if we pull this, becomes Nonnull.
-        metadataFile = null;
-          
-        super.doDestroy();
-    }
-    
     /** {@inheritDoc} */
     @Override
     @Nonnull protected String getMetadataIdentifier() {
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/HTTPMetadataResolver.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/HTTPMetadataResolver.java
index 575a5a9e8..768602a1f 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/HTTPMetadataResolver.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/HTTPMetadataResolver.java
@@ -30,13 +30,11 @@ import org.apache.hc.core5.http.ClassicHttpResponse;
 import org.apache.hc.core5.http.Header;
 import org.apache.hc.core5.http.HttpEntity;
 import org.apache.hc.core5.http.HttpStatus;
-import org.apache.hc.core5.http.io.entity.EntityUtils;
 import org.opensaml.saml.metadata.resolver.RemoteMetadataResolver;
 import org.opensaml.security.httpclient.HttpClientSecurityParameters;
 import org.opensaml.security.httpclient.HttpClientSecuritySupport;
 import org.slf4j.Logger;
 
-import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.primitive.LoggerFactory;
 import net.shibboleth.shared.resolver.ResolverException;
@@ -61,10 +59,10 @@ public class HTTPMetadataResolver extends AbstractReloadingMetadataResolver impl
     @Nonnull private final Logger log = LoggerFactory.getLogger(HTTPMetadataResolver.class);
 
     /** HTTP Client used to pull the metadata. */
-    @NonnullAfterInit private HttpClient httpClient;
+    @Nonnull private final HttpClient httpClient;
 
     /** URL to the Metadata. */
-    @NonnullAfterInit private URI metadataURI;
+    @Nonnull private final URI metadataURI;
 
     /** The ETag provided when the currently cached metadata was fetched. */
     @Nullable private String cachedMetadataETag;
@@ -165,19 +163,6 @@ public class HTTPMetadataResolver extends AbstractReloadingMetadataResolver impl
         httpClientSecurityParameters = params;
     }
 
-    /** {@inheritDoc} */
-    @Override
-    protected void doDestroy() {
-        // TODO: if we pull this, httpClient and metadataURI become Nonnull.
-        httpClient = null;
-        httpClientSecurityParameters = null;
-        metadataURI = null;
-        cachedMetadataETag = null;
-        cachedMetadataLastModified = null;
-
-        super.doDestroy();
-    }
-
     /** {@inheritDoc} */
     @Override
     protected String getMetadataIdentifier() {
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/ResourceBackedMetadataResolver.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/ResourceBackedMetadataResolver.java
index acb6b2f5a..f0aafdb73 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/ResourceBackedMetadataResolver.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/ResourceBackedMetadataResolver.java
@@ -24,7 +24,6 @@ import javax.annotation.Nullable;
 import org.slf4j.Logger;
 
 import net.shibboleth.shared.annotation.ParameterName;
-import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.shared.primitive.LoggerFactory;
 import net.shibboleth.shared.resolver.ResolverException;
 import net.shibboleth.shared.resource.Resource;
@@ -40,7 +39,7 @@ public class ResourceBackedMetadataResolver extends AbstractReloadingMetadataRes
     @Nonnull private final Logger log = LoggerFactory.getLogger(ResourceBackedMetadataResolver.class);
 
     /** Resource from which metadata is read. */
-    @NonnullAfterInit private Resource metadataResource;
+    @Nonnull private final Resource metadataResource;
 
     /**
      * Constructor.
@@ -76,15 +75,6 @@ public class ResourceBackedMetadataResolver extends AbstractReloadingMetadataRes
         metadataResource = resource;
     }
 
-    /** {@inheritDoc} */
-    @Override
-    protected void doDestroy() {
-        // If we pull this, becomes Nonnull.
-        metadataResource = null;
-        
-        super.doDestroy();
-    }
-    
     /** {@inheritDoc} */
     @Override
     @Nonnull protected String getMetadataIdentifier() {
diff --git a/opensaml-storage-impl/src/main/java/org/opensaml/storage/impl/MemoryStorageService.java b/opensaml-storage-impl/src/main/java/org/opensaml/storage/impl/MemoryStorageService.java
index 44b642e07..11cb84300 100644
--- a/opensaml-storage-impl/src/main/java/org/opensaml/storage/impl/MemoryStorageService.java
+++ b/opensaml-storage-impl/src/main/java/org/opensaml/storage/impl/MemoryStorageService.java
@@ -69,15 +69,6 @@ public class MemoryStorageService extends AbstractMapBackedStorageService implem
         lock = new ReentrantReadWriteLock(true);
     }
 
-    /** {@inheritDoc} */
-    @Override
-    protected void doDestroy() {
-        contextMap = null;
-        lock = null;
-        super.doDestroy();
-    }
-
-
     /** {@inheritDoc} */
     @Override
     @Nonnull @Live protected Map<String, Map<String, MutableStorageRecord<?>>> getContextMap() {
diff --git a/opensaml-storage-impl/src/main/java/org/opensaml/storage/impl/client/XMLClientStorageServiceStore.java b/opensaml-storage-impl/src/main/java/org/opensaml/storage/impl/client/XMLClientStorageServiceStore.java
index 970ca3af1..297c1d83e 100644
--- a/opensaml-storage-impl/src/main/java/org/opensaml/storage/impl/client/XMLClientStorageServiceStore.java
+++ b/opensaml-storage-impl/src/main/java/org/opensaml/storage/impl/client/XMLClientStorageServiceStore.java
@@ -217,12 +217,6 @@ public class XMLClientStorageServiceStore extends AbstractClientStorageServiceSt
             ((BasicParserPool) parserPool).initialize();
         }
         
-        /** {@inheritDoc} */
-        @Override
-        protected void doDestroy() {
-            ((BasicParserPool) parserPool).destroy();
-        }
-
         /** {@inheritDoc} */
         @Nonnull public ClientStorageServiceStore load(@Nullable @NotEmpty final String raw,
                 @Nonnull final ClientStorageSource src) {

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


More information about the commits mailing list