[spring-extensions] 01/01: JSPT-98 Integrate lifecycle checking methods in base classes
Rod Widdowson
rdw at steadingsoftware.com
Fri Jul 1 11:01:44 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=dff26206bcfed639da30c0e9bf5870a28c7a1f29
commit dff26206bcfed639da30c0e9bf5870a28c7a1f29
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