[java-opensaml] 02/02: OSJ-206: Promote new public methods to MetadataResolver subinterfaces
Brent Putman
putmanb at georgetown.edu
Thu Apr 18 01:49:12 EDT 2019
This is an automated email from the git hooks/post-receive script.
putmanb pushed a commit to branch master
in repository java-opensaml.
View the commit online:
http://git.shibboleth.net/view/?p=java-opensaml.git;a=commit;h=0576a11b7100a1cee2662fb8e6817fff586c0b6a
commit 0576a11b7100a1cee2662fb8e6817fff586c0b6a
Author: Brent Putman <putmanb at georgetown.edu>
AuthorDate: Wed Apr 17 22:06:24 2019 -0400
OSJ-206: Promote new public methods to MetadataResolver subinterfaces
---
.../metadata/resolver/BatchMetadataResolver.java | 18 ++++++++-
.../resolver/ChainingMetadataResolver.java | 29 ++++++++++++++
.../resolver/ExtendedBatchMetadataResolver.java | 45 ----------------------
.../ExtendedRefreshableMetadataResolver.java | 45 ----------------------
.../resolver/RefreshableMetadataResolver.java | 15 +++++++-
.../impl/AbstractBatchMetadataResolver.java | 5 ++-
.../impl/AbstractReloadingMetadataResolver.java | 4 +-
.../resolver/impl/CompositeMetadataResolver.java | 29 ++++++++++++++
8 files changed, 93 insertions(+), 97 deletions(-)
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/BatchMetadataResolver.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/BatchMetadataResolver.java
index 35a1ce6..0546a4c 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/BatchMetadataResolver.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/BatchMetadataResolver.java
@@ -17,6 +17,10 @@
package org.opensaml.saml.metadata.resolver;
+import java.time.Instant;
+
+import javax.annotation.Nullable;
+
/**
* Marker interface for {@link MetadataResolver} implementations which resolve
* metadata from a batch of data loaded and processed in advance of resolution operations,
@@ -25,6 +29,18 @@ package org.opensaml.saml.metadata.resolver;
*/
public interface BatchMetadataResolver extends MetadataResolver {
- //TODO For 4.0: promote getRootValidUntil() and isRootValid() from ExtendedBatchMetadataResolver
+ /**
+ * Get the validUntil of of the metadata batch root element, if present.
+ *
+ * @return the validUntil date/time of the root element, or null if not available
+ */
+ @Nullable public Instant getRootValidUntil();
+
+ /**
+ * Get the validity state of the metadata batch root element, as determined in an implementation-specific manner.
+ *
+ * @return true if root element is valid, false if not valid, null if indeterminate
+ */
+ @Nullable public Boolean isRootValid();
}
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ChainingMetadataResolver.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ChainingMetadataResolver.java
index 559eadf..6d32b7a 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ChainingMetadataResolver.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ChainingMetadataResolver.java
@@ -211,6 +211,35 @@ public class ChainingMetadataResolver extends AbstractIdentifiableInitializableC
}
/** {@inheritDoc} */
+ public Instant getLastSuccessfulRefresh() {
+ Instant ret = null;
+ for (final MetadataResolver resolver : resolvers) {
+ if (resolver instanceof RefreshableMetadataResolver) {
+ final Instant lastSuccessRefresh = ((RefreshableMetadataResolver) resolver).getLastSuccessfulRefresh();
+ if (ret == null || ret.isBefore(lastSuccessRefresh)) {
+ ret = lastSuccessRefresh;
+ }
+ }
+ }
+
+ return ret;
+ }
+
+ /** {@inheritDoc} */
+ public Boolean wasLastRefreshSuccess() {
+ for (final MetadataResolver resolver : resolvers) {
+ if (resolver instanceof RefreshableMetadataResolver) {
+ final RefreshableMetadataResolver refreshable = (RefreshableMetadataResolver) resolver;
+ if (refreshable.wasLastRefreshSuccess() != null && !refreshable.wasLastRefreshSuccess()) {
+ return false;
+ }
+ }
+ }
+
+ return true;
+ }
+
+ /** {@inheritDoc} */
@Override protected void doInitialize() throws ComponentInitializationException {
super.doInitialize();
if (resolvers == null) {
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ExtendedBatchMetadataResolver.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ExtendedBatchMetadataResolver.java
deleted file mode 100644
index 6552f40..0000000
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ExtendedBatchMetadataResolver.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements. See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.saml.metadata.resolver;
-
-import java.time.Instant;
-
-import javax.annotation.Nullable;
-
-/**
- * Extended {@link BatchMetadataResolver}.
- */
-public interface ExtendedBatchMetadataResolver extends BatchMetadataResolver {
-
- //TODO promote methods up and remove in 4.0.0
-
- /**
- * Get the validUntil of of the metadata batch root element, if present.
- *
- * @return the validUntil date/time of the root element, or null if not available
- */
- @Nullable public Instant getRootValidUntil();
-
- /**
- * Get the validity state of the metadata batch root element, as determined in an implementation-specific manner.
- *
- * @return true if root element is valid, false if not valid, null if indeterminate
- */
- @Nullable public Boolean isRootValid();
-
-}
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ExtendedRefreshableMetadataResolver.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ExtendedRefreshableMetadataResolver.java
deleted file mode 100644
index f87eb33..0000000
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ExtendedRefreshableMetadataResolver.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements. See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.opensaml.saml.metadata.resolver;
-
-import java.time.Instant;
-
-import javax.annotation.Nullable;
-
-/**
- * Extended {@link RefreshableMetadataResolver}.
- */
-public interface ExtendedRefreshableMetadataResolver extends RefreshableMetadataResolver {
-
- //TODO promote methods up and remove in 4.0.0
-
- /**
- * Gets the time the last successful refresh cycle occurred.
- *
- * @return time the last successful refresh cycle occurred
- */
- @Nullable public Instant getLastSuccessfulRefresh();
-
- /**
- * Gets whether the last refresh cycle was successful.
- *
- * @return true if last refresh cycle was successful, false if not
- */
- @Nullable public Boolean wasLastRefreshSuccess();
-
-}
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/RefreshableMetadataResolver.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/RefreshableMetadataResolver.java
index 30ed744..b0fac11 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/RefreshableMetadataResolver.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/RefreshableMetadataResolver.java
@@ -56,7 +56,18 @@ public interface RefreshableMetadataResolver extends MetadataResolver {
*/
@Nullable Instant getLastUpdate();
- //TODO For 4.0: promote getLastSuccessfulRefresh() and wasLastRefreshSuccess()
- // from ExtendedRefreshableMetadataResolver
+ /**
+ * Gets the time the last successful refresh cycle occurred.
+ *
+ * @return time the last successful refresh cycle occurred
+ */
+ @Nullable public Instant getLastSuccessfulRefresh();
+
+ /**
+ * Gets whether the last refresh cycle was successful.
+ *
+ * @return true if last refresh cycle was successful, false if not
+ */
+ @Nullable public Boolean wasLastRefreshSuccess();
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractBatchMetadataResolver.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractBatchMetadataResolver.java
index c42fcb9..b994a3b 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractBatchMetadataResolver.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractBatchMetadataResolver.java
@@ -18,6 +18,7 @@
package org.opensaml.saml.metadata.resolver.impl;
import java.time.Instant;
+
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
@@ -29,7 +30,7 @@ import javax.annotation.Nullable;
import org.opensaml.core.criterion.EntityIdCriterion;
import org.opensaml.core.xml.XMLObject;
import org.opensaml.saml.metadata.IterableMetadataSource;
-import org.opensaml.saml.metadata.resolver.ExtendedBatchMetadataResolver;
+import org.opensaml.saml.metadata.resolver.BatchMetadataResolver;
import org.opensaml.saml.metadata.resolver.filter.FilterException;
import org.opensaml.saml.metadata.resolver.index.MetadataIndex;
import org.opensaml.saml.metadata.resolver.index.impl.MetadataIndexManager;
@@ -58,7 +59,7 @@ import net.shibboleth.utilities.java.support.resolver.ResolverException;
* in time from a single metadata source document.
*/
public abstract class AbstractBatchMetadataResolver extends AbstractMetadataResolver
- implements ExtendedBatchMetadataResolver, IterableMetadataSource {
+ implements BatchMetadataResolver, IterableMetadataSource {
/** Class logger. */
private final Logger log = LoggerFactory.getLogger(AbstractBatchMetadataResolver.class);
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 5db4c5d..619847c 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
@@ -32,7 +32,7 @@ import javax.annotation.Nullable;
import org.opensaml.core.xml.XMLObject;
import org.opensaml.core.xml.io.UnmarshallingException;
-import org.opensaml.saml.metadata.resolver.ExtendedRefreshableMetadataResolver;
+import org.opensaml.saml.metadata.resolver.RefreshableMetadataResolver;
import org.opensaml.saml.metadata.resolver.filter.FilterException;
import org.opensaml.saml.saml2.common.SAML2Support;
import org.opensaml.saml.saml2.common.TimeBoundSAMLObject;
@@ -61,7 +61,7 @@ import net.shibboleth.utilities.java.support.resolver.ResolverException;
* expires.
*/
public abstract class AbstractReloadingMetadataResolver extends AbstractBatchMetadataResolver
- implements ExtendedRefreshableMetadataResolver {
+ implements RefreshableMetadataResolver {
/** Class logger. */
@Nonnull private final Logger log = LoggerFactory.getLogger(AbstractReloadingMetadataResolver.class);
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/CompositeMetadataResolver.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/CompositeMetadataResolver.java
index 9fde86d..d566af7 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/CompositeMetadataResolver.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/CompositeMetadataResolver.java
@@ -211,6 +211,35 @@ public class CompositeMetadataResolver extends AbstractIdentifiedInitializableCo
return ret;
}
+
+ /** {@inheritDoc} */
+ public Instant getLastSuccessfulRefresh() {
+ Instant ret = null;
+ for (final MetadataResolver resolver : resolvers) {
+ if (resolver instanceof RefreshableMetadataResolver) {
+ final Instant lastSuccessRefresh = ((RefreshableMetadataResolver) resolver).getLastSuccessfulRefresh();
+ if (ret == null || ret.isBefore(lastSuccessRefresh)) {
+ ret = lastSuccessRefresh;
+ }
+ }
+ }
+
+ return ret;
+ }
+
+ /** {@inheritDoc} */
+ public Boolean wasLastRefreshSuccess() {
+ for (final MetadataResolver resolver : resolvers) {
+ if (resolver instanceof RefreshableMetadataResolver) {
+ final RefreshableMetadataResolver refreshable = (RefreshableMetadataResolver) resolver;
+ if (refreshable.wasLastRefreshSuccess() != null && !refreshable.wasLastRefreshSuccess()) {
+ return false;
+ }
+ }
+ }
+
+ return true;
+ }
/**
* {@link Iterable} implementation that provides an {@link Iterator} that lazily iterates over each composed
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list