[spring-extensions] 01/01: JSPT-98 Integrate lifecycle checking methods in base classes

Rod Widdowson rdw at steadingsoftware.com
Sun Jun 12 14:11:29 UTC 2022


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

rdw pushed a commit to branch dev/JSPT-98
in repository spring-extensions.

View the commit online:
http://git.shibboleth.net/view/?p=spring-extensions.git;a=commit;h=435c98956bce372c080ff391e2ce7736b1f8fb9d

commit 435c98956bce372c080ff391e2ce7736b1f8fb9d
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Sun Jun 12 15:01:46 2022 +0100

    JSPT-98 Integrate lifecycle checking methods in base classes
    
    https://shibboleth.atlassian.net/browse/JSPT-98
    
    Stop using ComponentSupport and use the appropriate methods instead.
---
 .../ext/spring/resource/ConditionalResource.java   | 36 +++++++++----------
 .../ext/spring/resource/HTTPResource.java          | 19 +++++-----
 .../service/AbstractServiceableComponent.java      | 11 +++---
 .../spring/service/ReloadableSpringService.java    | 41 +++++++++-------------
 4 files changed, 49 insertions(+), 58 deletions(-)

diff --git a/src/main/java/net/shibboleth/ext/spring/resource/ConditionalResource.java b/src/main/java/net/shibboleth/ext/spring/resource/ConditionalResource.java
index 263ca33..c7e2624 100644
--- a/src/main/java/net/shibboleth/ext/spring/resource/ConditionalResource.java
+++ b/src/main/java/net/shibboleth/ext/spring/resource/ConditionalResource.java
@@ -36,7 +36,6 @@ import org.springframework.core.io.Resource;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.component.AbstractIdentifiedInitializableComponent;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 
 
@@ -78,11 +77,13 @@ public class ConditionalResource extends AbstractIdentifiedInitializableComponen
         defaultContent = DEFAULT_CONTENT;
     }
     
-    /** {@inheritDoc} */
+    /** {@inheritDoc}
+     * NOTE - this declaration makes the method public
+     */
     @Override public synchronized void setId(@Nonnull @NotEmpty final String id) {
         super.setId(id);
     }
-    
+
     /**
      * Set the default content to return if the underlying resource is absent.
      * 
@@ -91,14 +92,14 @@ public class ConditionalResource extends AbstractIdentifiedInitializableComponen
      * @since 6.1.0
      */
     public void setDefaultContent(@Nonnull final String content) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         
         defaultContent = Constraint.isNotEmpty(content, "Empty content cannot be null");
     }
 
     /** {@inheritDoc} */
     @Nonnull public InputStream getInputStream() throws IOException {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
         
         try {
             return wrappedResource.getInputStream();
@@ -116,7 +117,7 @@ public class ConditionalResource extends AbstractIdentifiedInitializableComponen
     public net.shibboleth.utilities.java.support.resource.Resource createRelativeResource(final String relativePath)
             throws IOException {
         
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
         final Resource relative = wrappedResource.createRelative(relativePath);
         if (relative instanceof net.shibboleth.utilities.java.support.resource.Resource) {
             return (net.shibboleth.utilities.java.support.resource.Resource) relative;
@@ -132,7 +133,7 @@ public class ConditionalResource extends AbstractIdentifiedInitializableComponen
 
     /** {@inheritDoc} */
     public boolean exists() {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
         
         try {
             if (!wrappedResource.exists()) {
@@ -146,21 +147,21 @@ public class ConditionalResource extends AbstractIdentifiedInitializableComponen
 
     /** {@inheritDoc} */
     public boolean isReadable() {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
         
         return true;
     }
 
     /** {@inheritDoc} */
     public boolean isOpen() {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
         
         return wrappedResource.isOpen();
     }
 
     /** {@inheritDoc} */
     public URL getURL() throws IOException {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
         
         try {
             return wrappedResource.getURL();
@@ -174,7 +175,7 @@ public class ConditionalResource extends AbstractIdentifiedInitializableComponen
 
     /** {@inheritDoc} */
     public URI getURI() throws IOException {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
         
         try {
             return wrappedResource.getURI();
@@ -188,7 +189,7 @@ public class ConditionalResource extends AbstractIdentifiedInitializableComponen
 
     /** {@inheritDoc} */
     public File getFile() throws IOException {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
         
         try {
             return wrappedResource.getFile();
@@ -202,7 +203,7 @@ public class ConditionalResource extends AbstractIdentifiedInitializableComponen
 
     /** {@inheritDoc} */
     public long contentLength() throws IOException {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
         
         try {
             return wrappedResource.contentLength();
@@ -216,7 +217,7 @@ public class ConditionalResource extends AbstractIdentifiedInitializableComponen
 
     /** {@inheritDoc} */
     public long lastModified() throws IOException {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
         
         try {
             return wrappedResource.lastModified();
@@ -230,21 +231,21 @@ public class ConditionalResource extends AbstractIdentifiedInitializableComponen
 
     /** {@inheritDoc} */
     public Resource createRelative(final String relativePath) throws IOException {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
         
         return wrappedResource.createRelative(relativePath);
     }
 
     /** {@inheritDoc} */
     public String getFilename() {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
         
         return wrappedResource.getFilename();
     }
 
     /** {@inheritDoc} */
     public String getDescription() {
-        ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+        throwComponentStateExceptions();
         
         return wrappedResource.getDescription();
     }
@@ -263,5 +264,4 @@ public class ConditionalResource extends AbstractIdentifiedInitializableComponen
         logPrefix = "ConditionalResource " + getId() + ":";
         return logPrefix;
     }
-    
 }
\ No newline at end of file
diff --git a/src/main/java/net/shibboleth/ext/spring/resource/HTTPResource.java b/src/main/java/net/shibboleth/ext/spring/resource/HTTPResource.java
index 1695dbd..6e2a574 100644
--- a/src/main/java/net/shibboleth/ext/spring/resource/HTTPResource.java
+++ b/src/main/java/net/shibboleth/ext/spring/resource/HTTPResource.java
@@ -28,15 +28,6 @@ import java.net.URL;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import net.shibboleth.utilities.java.support.annotation.ParameterName;
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.component.AbstractIdentifiedInitializableComponent;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.httpclient.HttpClientContextHandler;
-import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-
 import org.apache.http.Header;
 import org.apache.http.HttpHeaders;
 import org.apache.http.HttpResponse;
@@ -56,6 +47,14 @@ import org.springframework.beans.factory.BeanNameAware;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.core.io.Resource;
 
+import net.shibboleth.utilities.java.support.annotation.ParameterName;
+import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+import net.shibboleth.utilities.java.support.component.AbstractIdentifiedInitializableComponent;
+import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
+import net.shibboleth.utilities.java.support.httpclient.HttpClientContextHandler;
+import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
+
 /**
  * Resource for looking up HTTP URLs. Allows injection and therefore configuration of an Apache {@link HttpClient}. Code
  * based on OpenSAML <code>HTTPMetadataResolver</code> and {@link org.springframework.core.io.UrlResource}.
@@ -113,7 +112,7 @@ public class HTTPResource extends AbstractIdentifiedInitializableComponent imple
      * @since 5.4.0
      */
     public void setHttpClientContextHandler(@Nonnull final HttpClientContextHandler handler) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         
         httpClientContextHandler = handler;
     }
diff --git a/src/main/java/net/shibboleth/ext/spring/service/AbstractServiceableComponent.java b/src/main/java/net/shibboleth/ext/spring/service/AbstractServiceableComponent.java
index 3f47bb5..49e4ee1 100644
--- a/src/main/java/net/shibboleth/ext/spring/service/AbstractServiceableComponent.java
+++ b/src/main/java/net/shibboleth/ext/spring/service/AbstractServiceableComponent.java
@@ -22,17 +22,16 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.service.ServiceableComponent;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
 import org.springframework.context.ConfigurableApplicationContext;
 
+import net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent;
+import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
+import net.shibboleth.utilities.java.support.service.ServiceableComponent;
+
 /**
  * Implementation of {@link ServiceableComponent} that does most of the work required. It leverages the spring
  * environment to allow easy cleanup.
@@ -61,7 +60,7 @@ public abstract class AbstractServiceableComponent<T> extends AbstractIdentifiab
     
     /** {@inheritDoc} */
     @Override public void setApplicationContext(final ApplicationContext context) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
         applicationContext = context;
     }
 
diff --git a/src/main/java/net/shibboleth/ext/spring/service/ReloadableSpringService.java b/src/main/java/net/shibboleth/ext/spring/service/ReloadableSpringService.java
index fb2d1f8..a9a8794 100644
--- a/src/main/java/net/shibboleth/ext/spring/service/ReloadableSpringService.java
+++ b/src/main/java/net/shibboleth/ext/spring/service/ReloadableSpringService.java
@@ -28,17 +28,6 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import javax.annotation.concurrent.ThreadSafe;
 
-import net.shibboleth.ext.spring.util.ApplicationContextBuilder;
-import net.shibboleth.utilities.java.support.annotation.ParameterName;
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-import net.shibboleth.utilities.java.support.service.AbstractReloadableService;
-import net.shibboleth.utilities.java.support.service.ServiceException;
-import net.shibboleth.utilities.java.support.service.ServiceableComponent;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.FatalBeanException;
@@ -53,6 +42,16 @@ import org.springframework.context.support.GenericApplicationContext;
 import org.springframework.core.convert.ConversionService;
 import org.springframework.core.io.Resource;
 
+import net.shibboleth.ext.spring.util.ApplicationContextBuilder;
+import net.shibboleth.utilities.java.support.annotation.ParameterName;
+import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
+import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
+import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
+import net.shibboleth.utilities.java.support.service.AbstractReloadableService;
+import net.shibboleth.utilities.java.support.service.ServiceException;
+import net.shibboleth.utilities.java.support.service.ServiceableComponent;
+
 
 /**
  * This class provides a reloading interface to a {@link ServiceableComponent} via Spring.
@@ -153,7 +152,7 @@ public class ReloadableSpringService<T> extends AbstractReloadableService<T> imp
      * @param context context that is the parent to this service's context, may be null
      */
     public void setParentContext(@Nullable final ApplicationContext context) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        throwSetterPreconditionExceptions();
 
         parentContext = context;
     }
@@ -175,8 +174,7 @@ public class ReloadableSpringService<T> extends AbstractReloadableService<T> imp
      * @param configs list of configurations for this service
      */
     public void setServiceConfigurations(@Nonnull @NonnullElements final List<Resource> configs) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+        throwSetterPreconditionExceptions();
 
         serviceConfigurations = List.copyOf(Constraint.isNotNull(configs, "Service configurations cannot be null"));
         if (!serviceConfigurations.isEmpty()) {
@@ -211,8 +209,7 @@ public class ReloadableSpringService<T> extends AbstractReloadableService<T> imp
      * @param strategy the way to get the resources.  Precise details are tbd.
      */
     public void setServiceConfigurationStrategy(@Nonnull final Function<?, List<Resource>> strategy) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+        throwSetterPreconditionExceptions();
         throw new UnsupportedOperationException("This UnsupportedOperationException method has not been implemented");
     }
 
@@ -223,8 +220,7 @@ public class ReloadableSpringService<T> extends AbstractReloadableService<T> imp
      */
     public void setBeanFactoryPostProcessors(
             @Nonnull @NonnullElements final List<BeanFactoryPostProcessor> processors) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+        throwSetterPreconditionExceptions();
         Constraint.isNotNull(processors, "BeanFactoryPostProcessor collection cannot be null");
 
         factoryPostProcessors = List.copyOf(processors);
@@ -236,8 +232,7 @@ public class ReloadableSpringService<T> extends AbstractReloadableService<T> imp
      * @param processors bean post processors to apply
      */
     public void setBeanPostProcessors(@Nonnull @NonnullElements final List<BeanPostProcessor> processors) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+        throwSetterPreconditionExceptions();
         Constraint.isNotNull(processors, "BeanPostProcessor collection cannot be null");
 
         postProcessors = List.copyOf(processors);
@@ -251,8 +246,7 @@ public class ReloadableSpringService<T> extends AbstractReloadableService<T> imp
      * @since 5.4.0
      */
     public void setBeanProfiles(@Nonnull @NonnullElements final Collection<String> profiles) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+        throwSetterPreconditionExceptions();
         
         beanProfiles = StringSupport.normalizeStringCollection(profiles);
     }
@@ -265,8 +259,7 @@ public class ReloadableSpringService<T> extends AbstractReloadableService<T> imp
      * @since 5.4.0
      */
     public void setConversionService(@Nullable final ConversionService service) {
-        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+        throwSetterPreconditionExceptions();
 
         conversionService = service;
     }

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


More information about the commits mailing list