[java-support] 02/03: JSPT-98 Integrate lifecycle checking methods in base classes
Rod Widdowson
rdw at steadingsoftware.com
Wed Jul 13 08:51:23 UTC 2022
This is an automated email from the git hooks/post-receive script.
rdw pushed a commit to branch main
in repository java-support.
View the commit online:
http://git.shibboleth.net/view/?p=java-support.git;a=commit;h=1df57c2240e22eaf4452f578cc5ee58c5da85cae
commit 1df57c2240e22eaf4452f578cc5ee58c5da85cae
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Sun Jun 12 14:30:37 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.
---
.../httpclient/FileCachingHttpClientBuilder.java | 48 +++++++++------
.../utilities/java/support/net/CookieManager.java | 31 +++-------
.../java/support/scripting/EvaluableScript.java | 11 ++--
.../java/support/scripting/ScriptedRunnable.java | 7 +--
.../java/support/security/DataSealer.java | 35 ++++++-----
.../security/impl/BasicAccessControlService.java | 6 +-
.../security/impl/BasicKeystoreKeyStrategy.java | 21 +++----
.../impl/DelegatingAccessControlService.java | 3 +-
.../security/impl/IPRangeAccessControl.java | 16 +++--
.../support/security/impl/ScriptedKeyStrategy.java | 26 +++-----
.../support/service/AbstractReloadableService.java | 13 ++--
.../support/service/ReloadableServiceGaugeSet.java | 17 +++---
.../java/support/xml/BasicParserPool.java | 71 +++++++++-------------
13 files changed, 139 insertions(+), 166 deletions(-)
diff --git a/src/main/java/net/shibboleth/utilities/java/support/httpclient/FileCachingHttpClientBuilder.java b/src/main/java/net/shibboleth/utilities/java/support/httpclient/FileCachingHttpClientBuilder.java
index a75fe1f..819e033 100644
--- a/src/main/java/net/shibboleth/utilities/java/support/httpclient/FileCachingHttpClientBuilder.java
+++ b/src/main/java/net/shibboleth/utilities/java/support/httpclient/FileCachingHttpClientBuilder.java
@@ -25,15 +25,6 @@ import java.util.TimerTask;
import javax.annotation.Nonnull;
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.component.DestructableComponent;
-import net.shibboleth.utilities.java.support.component.InitializableComponent;
-import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-import net.shibboleth.utilities.java.support.primitive.TimerSupport;
-
import org.apache.http.HttpHost;
import org.apache.http.HttpRequest;
import org.apache.http.client.ClientProtocolException;
@@ -48,6 +39,17 @@ import org.apache.http.protocol.HttpContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
+import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
+import net.shibboleth.utilities.java.support.component.DestroyedComponentException;
+import net.shibboleth.utilities.java.support.component.DestructableComponent;
+import net.shibboleth.utilities.java.support.component.InitializableComponent;
+import net.shibboleth.utilities.java.support.component.UninitializedComponentException;
+import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
+import net.shibboleth.utilities.java.support.primitive.TimerSupport;
+
/**
* An {@link org.apache.http.client.HttpClient} builder that supports RFC 2616 caching.
* <p>
@@ -301,12 +303,27 @@ public class FileCachingHttpClientBuilder extends HttpClientBuilder {
maintenanceTaskInterval = taskInterval;
}
+ /**
+ * Common code (exbedded from {@link AbstractInitializableComponent} to check
+ * component state.
+ */
+ protected final void throwComponentStateExceptions() {
+ if (!isInitialized()) {
+ throw new UninitializedComponentException(
+ "StorageManagingHttpClient has not yet been initialized and cannot be used.");
+ }
+ if (isDestroyed()) {
+ throw new DestroyedComponentException(
+ "StorageManagingHttpClient has already been destroyed and can no longer be used.");
+ }
+ }
+
+
/** {@inheritDoc} */
protected CloseableHttpResponse doExecute(final HttpHost target, final HttpRequest request,
final HttpContext context)
throws IOException, ClientProtocolException {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+ throwComponentStateExceptions();
return httpClient.execute(target, request, context);
}
@@ -314,8 +331,7 @@ public class FileCachingHttpClientBuilder extends HttpClientBuilder {
@Override
@Deprecated
public org.apache.http.params.HttpParams getParams() {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+ throwComponentStateExceptions();
return httpClient.getParams();
}
@@ -323,16 +339,14 @@ public class FileCachingHttpClientBuilder extends HttpClientBuilder {
@Override
@Deprecated
public org.apache.http.conn.ClientConnectionManager getConnectionManager() {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+ throwComponentStateExceptions();
return httpClient.getConnectionManager();
}
/** {@inheritDoc} */
@Override
public void close() throws IOException {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+ throwComponentStateExceptions();
httpClient.close();
}
diff --git a/src/main/java/net/shibboleth/utilities/java/support/net/CookieManager.java b/src/main/java/net/shibboleth/utilities/java/support/net/CookieManager.java
index f9fa9a7..058fc45 100644
--- a/src/main/java/net/shibboleth/utilities/java/support/net/CookieManager.java
+++ b/src/main/java/net/shibboleth/utilities/java/support/net/CookieManager.java
@@ -27,7 +27,6 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterI
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
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;
@@ -76,8 +75,7 @@ public final class CookieManager extends AbstractInitializableComponent {
* @param path cookie path to use, or null for the default
*/
public void setCookiePath(@Nullable final String path) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+ throwSetterPreconditionExceptions();
cookiePath = StringSupport.trimOrNull(path);
}
@@ -88,8 +86,7 @@ public final class CookieManager extends AbstractInitializableComponent {
* @param domain the cookie domain to use, or null for the default
*/
public void setCookieDomain(@Nullable final String domain) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+ throwSetterPreconditionExceptions();
cookieDomain = StringSupport.trimOrNull(domain);
}
@@ -100,8 +97,7 @@ public final class CookieManager extends AbstractInitializableComponent {
* @param request servlet request
*/
public void setHttpServletRequest(@Nonnull final HttpServletRequest request) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+ throwSetterPreconditionExceptions();
httpRequest = Constraint.isNotNull(request, "HttpServletRequest cannot be null");
}
@@ -112,8 +108,7 @@ public final class CookieManager extends AbstractInitializableComponent {
* @param response servlet response
*/
public void setHttpServletResponse(@Nonnull final HttpServletResponse response) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+ throwSetterPreconditionExceptions();
httpResponse = Constraint.isNotNull(response, "HttpServletResponse cannot be null");
}
@@ -124,8 +119,7 @@ public final class CookieManager extends AbstractInitializableComponent {
* @param flag flag to set
*/
public void setSecure(final boolean flag) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+ throwSetterPreconditionExceptions();
secure = flag;
}
@@ -137,8 +131,7 @@ public final class CookieManager extends AbstractInitializableComponent {
* @param flag flag to set
*/
public void setHttpOnly(final boolean flag) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+ throwSetterPreconditionExceptions();
httpOnly = flag;
}
@@ -149,8 +142,7 @@ public final class CookieManager extends AbstractInitializableComponent {
* @param age max age to set
*/
public void setMaxAge(final int age) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+ throwSetterPreconditionExceptions();
maxAge = age;
}
@@ -171,8 +163,7 @@ public final class CookieManager extends AbstractInitializableComponent {
* @param value value of cookie
*/
public void addCookie(@Nonnull @NotEmpty final String name, @Nonnull @NotEmpty final String value) {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+ throwComponentStateExceptions();
final Cookie cookie = new Cookie(name, value);
cookie.setPath(cookiePath != null ? cookiePath : contextPathToCookiePath());
@@ -192,8 +183,7 @@ public final class CookieManager extends AbstractInitializableComponent {
* @param name name of cookie
*/
public void unsetCookie(@Nonnull @NotEmpty final String name) {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+ throwComponentStateExceptions();
final Cookie cookie = new Cookie(name, null);
cookie.setPath(cookiePath != null ? cookiePath : contextPathToCookiePath());
@@ -234,8 +224,7 @@ public final class CookieManager extends AbstractInitializableComponent {
* @return cookie value
*/
@Nullable public String getCookieValue(@Nonnull @NotEmpty final String name, @Nullable final String defValue) {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+ throwComponentStateExceptions();
final Cookie[] cookies = httpRequest.getCookies();
if (cookies != null) {
diff --git a/src/main/java/net/shibboleth/utilities/java/support/scripting/EvaluableScript.java b/src/main/java/net/shibboleth/utilities/java/support/scripting/EvaluableScript.java
index 5fa4546..269a454 100644
--- a/src/main/java/net/shibboleth/utilities/java/support/scripting/EvaluableScript.java
+++ b/src/main/java/net/shibboleth/utilities/java/support/scripting/EvaluableScript.java
@@ -35,21 +35,20 @@ import javax.script.ScriptException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.google.common.io.Files;
+
import net.shibboleth.utilities.java.support.annotation.ParameterName;
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.AbstractInitializableComponent;
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.logic.ConstraintViolationException;
import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
import net.shibboleth.utilities.java.support.resource.Resource;
-import com.google.common.io.Files;
-
/** This is a helper class that takes care of reading in, optionally compiling, and evaluating a script. */
public final class EvaluableScript extends AbstractInitializableComponent {
@@ -358,7 +357,7 @@ public final class EvaluableScript extends AbstractInitializableComponent {
* @throws ScriptException thrown if there was a problem evaluating the script
*/
@Nullable public Object eval(@Nonnull final Bindings scriptBindings) throws ScriptException {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+ throwComponentStateExceptions();
if (compiledScript != null) {
return compiledScript.eval(scriptBindings);
}
@@ -375,7 +374,7 @@ public final class EvaluableScript extends AbstractInitializableComponent {
* @throws ScriptException thrown if there was a problem evaluating the script
*/
@Nullable public Object eval(@Nonnull final ScriptContext scriptContext) throws ScriptException {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+ throwComponentStateExceptions();
if (compiledScript != null) {
return compiledScript.eval(scriptContext);
}
diff --git a/src/main/java/net/shibboleth/utilities/java/support/scripting/ScriptedRunnable.java b/src/main/java/net/shibboleth/utilities/java/support/scripting/ScriptedRunnable.java
index e3b91b2..420c9aa 100644
--- a/src/main/java/net/shibboleth/utilities/java/support/scripting/ScriptedRunnable.java
+++ b/src/main/java/net/shibboleth/utilities/java/support/scripting/ScriptedRunnable.java
@@ -27,7 +27,6 @@ import org.slf4j.LoggerFactory;
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
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.component.UnmodifiableComponent;
import net.shibboleth.utilities.java.support.logic.Constraint;
@@ -79,8 +78,7 @@ public class ScriptedRunnable extends AbstractIdentifiableInitializableComponent
* @param object the custom object
*/
public void setCustomObject(@Nullable final Object object) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+ throwSetterPreconditionExceptions();
customObject = object;
}
@@ -100,8 +98,7 @@ public class ScriptedRunnable extends AbstractIdentifiableInitializableComponent
* @param matcherScript the script to be evaluated
*/
public void setScript(@Nonnull final EvaluableScript matcherScript) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+ throwSetterPreconditionExceptions();
script = Constraint.isNotNull(matcherScript, "Attribute value matching script cannot be null");
}
diff --git a/src/main/java/net/shibboleth/utilities/java/support/security/DataSealer.java b/src/main/java/net/shibboleth/utilities/java/support/security/DataSealer.java
index ca63b5f..e875a1a 100644
--- a/src/main/java/net/shibboleth/utilities/java/support/security/DataSealer.java
+++ b/src/main/java/net/shibboleth/utilities/java/support/security/DataSealer.java
@@ -37,23 +37,22 @@ import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.GCMParameterSpec;
+import org.apache.commons.codec.BinaryDecoder;
+import org.apache.commons.codec.BinaryEncoder;
+import org.apache.commons.codec.DecoderException;
+import org.apache.commons.codec.binary.Base64;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.collection.Pair;
import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
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.logic.ConstraintViolationException;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
-import org.apache.commons.codec.BinaryDecoder;
-import org.apache.commons.codec.BinaryEncoder;
-import org.apache.commons.codec.DecoderException;
-import org.apache.commons.codec.binary.Base64;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
/**
* Applies a MAC to time-limited information and encrypts with a symmetric key.
@@ -109,7 +108,7 @@ public class DataSealer extends AbstractInitializableComponent {
* @since 7.4.0
*/
public void setLockedAtStartup(final boolean flag) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+ throwSetterPreconditionExceptions();
lockedAtStartup = flag;
}
@@ -120,7 +119,7 @@ public class DataSealer extends AbstractInitializableComponent {
* @param strategy key strategy
*/
public void setKeyStrategy(@Nonnull final DataSealerKeyStrategy strategy) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+ throwSetterPreconditionExceptions();
keyStrategy = Constraint.isNotNull(strategy, "DataSealerKeyStrategy cannot be null");
}
@@ -131,7 +130,7 @@ public class DataSealer extends AbstractInitializableComponent {
* @param r the pseudorandom generator to set
*/
public void setRandom(@Nonnull final SecureRandom r) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+ throwSetterPreconditionExceptions();
random = Constraint.isNotNull(r, "SecureRandom cannot be null");
}
@@ -143,7 +142,7 @@ public class DataSealer extends AbstractInitializableComponent {
* @param e Byte-to-string encoder.
*/
public void setEncoder(@Nonnull final BinaryEncoder e) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+ throwSetterPreconditionExceptions();
encoder = Constraint.isNotNull(e, "Encoder cannot be null");
}
@@ -154,7 +153,7 @@ public class DataSealer extends AbstractInitializableComponent {
* @param d String-to-byte decoder.
*/
public void setDecoder(@Nonnull final BinaryDecoder d) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+ throwSetterPreconditionExceptions();
decoder = Constraint.isNotNull(d, "Decoder cannot be null");
}
@@ -170,7 +169,7 @@ public class DataSealer extends AbstractInitializableComponent {
* @since 8.3.0
*/
public void setNodePrefix(@Nullable @NotEmpty final String prefix) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+ throwSetterPreconditionExceptions();
nodePrefix = StringSupport.trimOrNull(prefix);
if (nodePrefix != null) {
@@ -239,8 +238,8 @@ public class DataSealer extends AbstractInitializableComponent {
*/
@Nonnull public String unwrap(@Nonnull @NotEmpty final String wrapped, @Nullable final StringBuffer keyUsed)
throws DataSealerException {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
-
+ throwComponentStateExceptions();
+
final int magicLen = MAGIC_STRING.length();
try {
@@ -379,8 +378,8 @@ public class DataSealer extends AbstractInitializableComponent {
*/
@Nonnull public String wrap(@Nonnull @NotEmpty final String data, @Nullable final Instant exp)
throws DataSealerException {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
-
+ throwComponentStateExceptions();
+
if (data == null || data.length() == 0) {
throw new IllegalArgumentException("Data must be supplied for the wrapping operation");
}
diff --git a/src/main/java/net/shibboleth/utilities/java/support/security/impl/BasicAccessControlService.java b/src/main/java/net/shibboleth/utilities/java/support/security/impl/BasicAccessControlService.java
index c9a5599..f64a5a9 100644
--- a/src/main/java/net/shibboleth/utilities/java/support/security/impl/BasicAccessControlService.java
+++ b/src/main/java/net/shibboleth/utilities/java/support/security/impl/BasicAccessControlService.java
@@ -30,7 +30,7 @@ import org.slf4j.LoggerFactory;
import jakarta.servlet.ServletRequest;
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
import net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent;
-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.security.AccessControl;
import net.shibboleth.utilities.java.support.security.AccessControlService;
@@ -55,8 +55,8 @@ public class BasicAccessControlService extends AbstractIdentifiableInitializable
*
* @param map map of named policies
*/
- public void setPolicyMap(@Nullable @NonnullElements final Map<String,AccessControl> map) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+ public void setPolicyMap(@Nonnull @NonnullElements final Map<String,AccessControl> map) {
+ throwSetterPreconditionExceptions();
if (map != null) {
policyMap = new HashMap<>(map.size());
diff --git a/src/main/java/net/shibboleth/utilities/java/support/security/impl/BasicKeystoreKeyStrategy.java b/src/main/java/net/shibboleth/utilities/java/support/security/impl/BasicKeystoreKeyStrategy.java
index a868088..aeac40b 100644
--- a/src/main/java/net/shibboleth/utilities/java/support/security/impl/BasicKeystoreKeyStrategy.java
+++ b/src/main/java/net/shibboleth/utilities/java/support/security/impl/BasicKeystoreKeyStrategy.java
@@ -37,12 +37,14 @@ import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.crypto.SecretKey;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.collection.Pair;
import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
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.logic.ConstraintViolationException;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
@@ -51,9 +53,6 @@ import net.shibboleth.utilities.java.support.resource.Resource;
import net.shibboleth.utilities.java.support.security.DataSealerKeyStrategy;
import net.shibboleth.utilities.java.support.security.KeyNotFoundException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
/**
* Implements a strategy for access to versioned symmetric keys using a keystore, and a standalone file
@@ -119,7 +118,7 @@ public class BasicKeystoreKeyStrategy extends AbstractInitializableComponent imp
* @param type the keystore type
*/
public void setKeystoreType(@Nonnull @NotEmpty final String type) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+ throwSetterPreconditionExceptions();
keystoreType = Constraint.isNotNull(StringSupport.trimOrNull(type), "Keystore type cannot be null or empty");
}
@@ -130,7 +129,7 @@ public class BasicKeystoreKeyStrategy extends AbstractInitializableComponent imp
* @param resource the keystore resource
*/
public void setKeystoreResource(@Nonnull @NotEmpty final Resource resource) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+ throwSetterPreconditionExceptions();
keystoreResource = Constraint.isNotNull(resource, "Keystore resource cannot be null");
}
@@ -141,7 +140,7 @@ public class BasicKeystoreKeyStrategy extends AbstractInitializableComponent imp
* @param resource the key version resource
*/
public void setKeyVersionResource(@Nonnull @NotEmpty final Resource resource) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+ throwSetterPreconditionExceptions();
keyVersionResource = Constraint.isNotNull(resource, "Key version resource cannot be null");
}
@@ -175,7 +174,7 @@ public class BasicKeystoreKeyStrategy extends AbstractInitializableComponent imp
* @param alias the encryption key alias base
*/
public void setKeyAlias(@Nonnull @NotEmpty final String alias) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+ throwSetterPreconditionExceptions();
keyAlias = Constraint.isNotNull(StringSupport.trimOrNull(alias),
"Key alias base cannot be null or empty");
@@ -213,7 +212,7 @@ public class BasicKeystoreKeyStrategy extends AbstractInitializableComponent imp
* @param interval time between key update checks
*/
public void setUpdateInterval(@Nonnull final Duration interval) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+ throwSetterPreconditionExceptions();
Constraint.isNotNull(interval, "Interval cannot be null");
Constraint.isFalse(interval.isNegative(), "Interval cannot be negative");
@@ -229,7 +228,7 @@ public class BasicKeystoreKeyStrategy extends AbstractInitializableComponent imp
* @param timer timer used to schedule update tasks
*/
public void setUpdateTaskTimer(@Nullable final Timer timer) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+ throwSetterPreconditionExceptions();
updateTaskTimer = timer;
}
@@ -291,7 +290,7 @@ public class BasicKeystoreKeyStrategy extends AbstractInitializableComponent imp
/** {@inheritDoc} */
@Override
@Nonnull public Pair<String,SecretKey> getDefaultKey() throws KeyException {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+ throwComponentStateExceptions();
synchronized(this) {
if (defaultKey != null) {
diff --git a/src/main/java/net/shibboleth/utilities/java/support/security/impl/DelegatingAccessControlService.java b/src/main/java/net/shibboleth/utilities/java/support/security/impl/DelegatingAccessControlService.java
index 6201144..058d113 100644
--- a/src/main/java/net/shibboleth/utilities/java/support/security/impl/DelegatingAccessControlService.java
+++ b/src/main/java/net/shibboleth/utilities/java/support/security/impl/DelegatingAccessControlService.java
@@ -26,7 +26,6 @@ import org.slf4j.LoggerFactory;
import jakarta.servlet.ServletRequest;
import net.shibboleth.utilities.java.support.annotation.ParameterName;
import net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
import net.shibboleth.utilities.java.support.logic.Constraint;
import net.shibboleth.utilities.java.support.security.AccessControl;
import net.shibboleth.utilities.java.support.security.AccessControlService;
@@ -59,7 +58,7 @@ public class DelegatingAccessControlService extends AbstractIdentifiableInitiali
/** {@inheritDoc} */
@Override
@Nonnull public AccessControl getInstance(@Nonnull final String name) {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
+ throwComponentStateExceptions();
ServiceableComponent<AccessControlService> component = null;
try {
component = service.getServiceableComponent();
diff --git a/src/main/java/net/shibboleth/utilities/java/support/security/impl/IPRangeAccessControl.java b/src/main/java/net/shibboleth/utilities/java/support/security/impl/IPRangeAccessControl.java
index 4f1be6c..7f09017 100644
--- a/src/main/java/net/shibboleth/utilities/java/support/security/impl/IPRangeAccessControl.java
+++ b/src/main/java/net/shibboleth/utilities/java/support/security/impl/IPRangeAccessControl.java
@@ -24,20 +24,18 @@ import java.util.List;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
-import net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
-import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.net.HttpServletSupport;
-import net.shibboleth.utilities.java.support.net.IPRange;
-import net.shibboleth.utilities.java.support.security.AccessControl;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.net.InetAddresses;
import jakarta.servlet.ServletRequest;
+import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
+import net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent;
+import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.net.HttpServletSupport;
+import net.shibboleth.utilities.java.support.net.IPRange;
+import net.shibboleth.utilities.java.support.security.AccessControl;
/**
* Simple access control implementation based on IP address checking.
@@ -64,7 +62,7 @@ public class IPRangeAccessControl extends AbstractIdentifiableInitializableCompo
* @param ranges ranges to allow
*/
public void setAllowedRanges(@Nonnull @NonnullElements final Collection<IPRange> ranges) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+ throwSetterPreconditionExceptions();
Constraint.isNotNull(ranges, "IPRange collection cannot be null");
allowedRanges = List.copyOf(ranges);
diff --git a/src/main/java/net/shibboleth/utilities/java/support/security/impl/ScriptedKeyStrategy.java b/src/main/java/net/shibboleth/utilities/java/support/security/impl/ScriptedKeyStrategy.java
index 219fc4c..e33c07e 100644
--- a/src/main/java/net/shibboleth/utilities/java/support/security/impl/ScriptedKeyStrategy.java
+++ b/src/main/java/net/shibboleth/utilities/java/support/security/impl/ScriptedKeyStrategy.java
@@ -31,21 +31,20 @@ import javax.script.ScriptContext;
import javax.script.ScriptException;
import javax.script.SimpleScriptContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import net.shibboleth.utilities.java.support.annotation.constraint.NonNegative;
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.collection.Pair;
import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
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.TimerSupport;
import net.shibboleth.utilities.java.support.scripting.EvaluableScript;
import net.shibboleth.utilities.java.support.security.DataSealerKeyStrategy;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
/**
* Implements a strategy for access to versioned symmetric keys using scripts.
@@ -100,8 +99,7 @@ public class ScriptedKeyStrategy extends AbstractInitializableComponent implemen
* @param script script to run
*/
public void setKeyScript(@Nonnull final EvaluableScript script) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+ throwSetterPreconditionExceptions();
keyScript = Constraint.isNotNull(script, "Script cannot be null");
}
@@ -113,8 +111,7 @@ public class ScriptedKeyStrategy extends AbstractInitializableComponent implemen
* @param object the custom object
*/
public void setCustomObject(@Nullable final Object object) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+ throwSetterPreconditionExceptions();
customObject = object;
}
@@ -128,8 +125,7 @@ public class ScriptedKeyStrategy extends AbstractInitializableComponent implemen
* @param interval time between key update checks
*/
public void setUpdateInterval(@Nonnull final Duration interval) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+ throwSetterPreconditionExceptions();
Constraint.isNotNull(interval, "Interval cannot be null");
Constraint.isFalse(interval.isNegative(), "Interval cannot be negative");
@@ -145,8 +141,7 @@ public class ScriptedKeyStrategy extends AbstractInitializableComponent implemen
* @param timer timer used to schedule update tasks
*/
public void setUpdateTaskTimer(@Nullable final Timer timer) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+ throwSetterPreconditionExceptions();
updateTaskTimer = timer;
}
@@ -159,8 +154,7 @@ public class ScriptedKeyStrategy extends AbstractInitializableComponent implemen
* @param size size of cache
*/
public void setCacheSize(@NonNegative final long size) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+ throwSetterPreconditionExceptions();
cacheSize = Constraint.isGreaterThanOrEqual(0, size, "Key cache size cannot be negative");
}
@@ -217,8 +211,8 @@ public class ScriptedKeyStrategy extends AbstractInitializableComponent implemen
/** {@inheritDoc} */
@Nonnull public Pair<String,SecretKey> getDefaultKey() throws KeyException {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
-
+ throwComponentStateExceptions();
+
synchronized(this) {
if (defaultKey != null) {
return new Pair<>(currentAlias, defaultKey);
diff --git a/src/main/java/net/shibboleth/utilities/java/support/service/AbstractReloadableService.java b/src/main/java/net/shibboleth/utilities/java/support/service/AbstractReloadableService.java
index 4bc4e3d..75b01e6 100644
--- a/src/main/java/net/shibboleth/utilities/java/support/service/AbstractReloadableService.java
+++ b/src/main/java/net/shibboleth/utilities/java/support/service/AbstractReloadableService.java
@@ -25,17 +25,16 @@ import java.util.TimerTask;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
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.component.UnmodifiableComponent;
import net.shibboleth.utilities.java.support.logic.Constraint;
import net.shibboleth.utilities.java.support.primitive.TimerSupport;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
/**
* Base class for {@link ReloadableService}. This base class will use a background thread that will perform a periodic
* check, via {@link #shouldReload()}, and, if required, invoke the service's {@link #reload()} method.
@@ -105,7 +104,7 @@ public abstract class AbstractReloadableService<T> extends AbstractIdentifiableI
* @param delay between one reload check and another
*/
public void setReloadCheckDelay(@Nonnull final Duration delay) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+ throwSetterPreconditionExceptions();
reloadCheckDelay = Constraint.isNotNull(delay, "Delay cannot be null");
}
@@ -127,7 +126,7 @@ public abstract class AbstractReloadableService<T> extends AbstractIdentifiableI
* @param timer timer used to schedule configuration reload tasks
*/
public void setReloadTaskTimer(@Nullable final Timer timer) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+ throwSetterPreconditionExceptions();
reloadTaskTimer = timer;
}
@@ -162,7 +161,7 @@ public abstract class AbstractReloadableService<T> extends AbstractIdentifiableI
* @param value what to set.
*/
public void setFailFast(final boolean value) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+ throwSetterPreconditionExceptions();
failFast = value;
}
diff --git a/src/main/java/net/shibboleth/utilities/java/support/service/ReloadableServiceGaugeSet.java b/src/main/java/net/shibboleth/utilities/java/support/service/ReloadableServiceGaugeSet.java
index 4ff941d..cbdf1a5 100644
--- a/src/main/java/net/shibboleth/utilities/java/support/service/ReloadableServiceGaugeSet.java
+++ b/src/main/java/net/shibboleth/utilities/java/support/service/ReloadableServiceGaugeSet.java
@@ -16,6 +16,13 @@
*/
package net.shibboleth.utilities.java.support.service;
+import java.time.Instant;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.annotation.Nonnull;
+
import com.codahale.metrics.Gauge;
import com.codahale.metrics.Metric;
import com.codahale.metrics.MetricFilter;
@@ -29,16 +36,8 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElemen
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
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 java.time.Instant;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.annotation.Nonnull;
-
/**
* A set of gauges for a reloadable service.
* @param <T> Type of service we are monitoring
@@ -106,7 +105,7 @@ public class ReloadableServiceGaugeSet<T> extends AbstractInitializableComponent
* @param svc service instance
*/
public void setService(@Nonnull final ReloadableService<T> svc) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+ throwSetterPreconditionExceptions();
service = Constraint.isNotNull(svc, "ReloadableService cannot be null");
}
diff --git a/src/main/java/net/shibboleth/utilities/java/support/xml/BasicParserPool.java b/src/main/java/net/shibboleth/utilities/java/support/xml/BasicParserPool.java
index e224b33..c10c2a1 100644
--- a/src/main/java/net/shibboleth/utilities/java/support/xml/BasicParserPool.java
+++ b/src/main/java/net/shibboleth/utilities/java/support/xml/BasicParserPool.java
@@ -36,16 +36,6 @@ import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.validation.Schema;
-import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
-import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
-import net.shibboleth.utilities.java.support.annotation.constraint.NullableElements;
-import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
-import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
-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 org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.DOMImplementation;
@@ -59,6 +49,15 @@ import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Maps;
+import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
+import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+import net.shibboleth.utilities.java.support.annotation.constraint.NullableElements;
+import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
+import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
+import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
+import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.primitive.StringSupport;
+
//TODO(lajoie) see if we can use either java.util.concurrent or Guava
// classes for the pool so we don't have to manage synchronicity
@@ -151,7 +150,7 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
/** {@inheritDoc} */
@Override
@Nonnull public DocumentBuilder getBuilder() throws XMLParserException {
- checkInitializedNotDestroyed();
+ throwComponentStateExceptions();
DocumentBuilder builder = null;
@@ -178,7 +177,7 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
//CheckStyle: ReturnCount OFF
/** {@inheritDoc} */
@Override public void returnBuilder(@Nullable final DocumentBuilder builder) {
- checkInitializedNotDestroyed();
+ throwComponentStateExceptions();
if (builder == null || !(builder instanceof DocumentBuilderProxy)) {
return;
@@ -216,7 +215,7 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
/** {@inheritDoc} */
@Override
@Nonnull public Document newDocument() throws XMLParserException {
- checkInitializedNotDestroyed();
+ throwComponentStateExceptions();
DocumentBuilder builder = null;
final Document document;
@@ -238,7 +237,7 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
/** {@inheritDoc} */
@Override
@Nonnull public Document parse(@Nonnull final InputStream input) throws XMLParserException {
- checkInitializedNotDestroyed();
+ throwComponentStateExceptions();
Constraint.isNotNull(input, "Input stream can not be null");
@@ -261,7 +260,7 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
/** {@inheritDoc} */
@Override
@Nonnull public Document parse(@Nonnull final Reader input) throws XMLParserException {
- checkInitializedNotDestroyed();
+ throwComponentStateExceptions();
Constraint.isNotNull(input, "Input reader can not be null");
@@ -290,7 +289,7 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
* @param name name of attribute
*/
public void setSecurityManagerAttributeName(@Nullable final String name) {
- checkNotInitializedNotDestroyed();
+ throwSetterPreconditionExceptions();
securityManagerAttributeName = StringSupport.trimOrNull(name);
}
@@ -310,7 +309,7 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
* @param newSize max number of builders the pool will hold
*/
public void setMaxPoolSize(final int newSize) {
- checkNotInitializedNotDestroyed();
+ throwSetterPreconditionExceptions();
maxPoolSize = (int) Constraint.isGreaterThan(0, newSize, "New maximum pool size must be greater than 0");
}
@@ -330,7 +329,7 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
* @param newAttributes builder attributes used when creating builders
*/
public void setBuilderAttributes(@Nullable @NullableElements final Map<String, Object> newAttributes) {
- checkNotInitializedNotDestroyed();
+ throwSetterPreconditionExceptions();
if (newAttributes == null) {
builderAttributes = Collections.emptyMap();
@@ -354,7 +353,7 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
* @param isCoalescing whether the builders are coalescing
*/
public void setCoalescing(final boolean isCoalescing) {
- checkNotInitializedNotDestroyed();
+ throwSetterPreconditionExceptions();
coalescing = isCoalescing;
}
@@ -374,7 +373,7 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
* @param expand whether builders expand entity references
*/
public void setExpandEntityReferences(final boolean expand) {
- checkNotInitializedNotDestroyed();
+ throwSetterPreconditionExceptions();
expandEntityReferences = expand;
}
@@ -394,7 +393,7 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
* @param newFeatures the builders' features
*/
public void setBuilderFeatures(@Nullable @NullableElements final Map<String, Boolean> newFeatures) {
- checkNotInitializedNotDestroyed();
+ throwSetterPreconditionExceptions();
if (newFeatures == null) {
builderFeatures = Collections.emptyMap();
@@ -418,7 +417,7 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
* @param ignore The ignoreComments to set.
*/
public void setIgnoreComments(final boolean ignore) {
- checkNotInitializedNotDestroyed();
+ throwSetterPreconditionExceptions();
ignoreComments = ignore;
}
@@ -438,7 +437,7 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
* @param ignore whether the builders ignore element content whitespace
*/
public void setIgnoreElementContentWhitespace(final boolean ignore) {
- checkNotInitializedNotDestroyed();
+ throwSetterPreconditionExceptions();
ignoreElementContentWhitespace = ignore;
}
@@ -458,7 +457,7 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
* @param isNamespaceAware whether the builders are namespace aware
*/
public void setNamespaceAware(final boolean isNamespaceAware) {
- checkNotInitializedNotDestroyed();
+ throwSetterPreconditionExceptions();
namespaceAware = isNamespaceAware;
}
@@ -478,7 +477,7 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
* @param newSchema schema used to validate the XML document during the parsing process
*/
public void setSchema(@Nullable final Schema newSchema) {
- checkNotInitializedNotDestroyed();
+ throwSetterPreconditionExceptions();
schema = newSchema;
if (schema != null) {
@@ -503,7 +502,7 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
* @param resolver the new entity resolver, may be null
*/
public void setEntityResolver(@Nullable final EntityResolver resolver) {
- checkNotInitializedNotDestroyed();
+ throwSetterPreconditionExceptions();
entityResolver = resolver;
}
@@ -522,7 +521,7 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
* @param handler the new error handler
*/
public void setErrorHandler(@Nonnull final ErrorHandler handler) {
- checkNotInitializedNotDestroyed();
+ throwSetterPreconditionExceptions();
errorHandler = Constraint.isNotNull(handler, "ErrorHandler may not be null");
}
@@ -541,7 +540,7 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
* @param isValidating whether the builders are validating
*/
public void setDTDValidating(final boolean isValidating) {
- checkNotInitializedNotDestroyed();
+ throwSetterPreconditionExceptions();
dtdValidating = isValidating;
}
@@ -561,7 +560,7 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
* @param isXIncludeAware whether the builders are XInclude aware
*/
public void setXincludeAware(final boolean isXIncludeAware) {
- checkNotInitializedNotDestroyed();
+ throwSetterPreconditionExceptions();
xincludeAware = isXIncludeAware;
}
@@ -583,7 +582,7 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
* @throws XMLParserException thrown if their is a configuration error with the builder factory
*/
@Nonnull protected DocumentBuilder createBuilder() throws XMLParserException {
- checkInitializedNotDestroyed();
+ throwComponentStateExceptions();
try {
final DocumentBuilder builder = builderFactory.newDocumentBuilder();
@@ -663,18 +662,6 @@ public class BasicParserPool extends AbstractInitializableComponent implements P
builderPool.clear();
super.doDestroy();
}
-
- /** Helper method to test class state. */
- private void checkInitializedNotDestroyed() {
- ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
- }
-
- /** Helper method to test class state. */
- private void checkNotInitializedNotDestroyed() {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
- ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
- }
/**
* Build the default set of parser features to use.
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list