[java-opensaml COMMIT] in /trunk: opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ChainingMetadat...

noreply at shibboleth.net noreply at shibboleth.net
Tue Dec 9 15:11:09 EST 2014


Author: scantor
Date: Tue Dec  9 15:11:08 2014
New Revision: 4182

URL: http://svn.shibboleth.net/view/java-opensaml?rev=4182&view=rev
Log:
IDP-92 - get last update/refresh of metadata exposed

Modified:
    trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ChainingMetadataResolver.java
    trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/RefreshableMetadataResolver.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractReloadingMetadataResolver.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/CompositeMetadataResolver.java

Modified: trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ChainingMetadataResolver.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ChainingMetadataResolver.java?rev=4182&r1=4181&r2=4182&view=diff
==============================================================================
--- trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ChainingMetadataResolver.java (original)
+++ trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/ChainingMetadataResolver.java Tue Dec  9 15:11:08 2014
@@ -33,6 +33,7 @@
 import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
 import net.shibboleth.utilities.java.support.resolver.ResolverException;
 
+import org.joda.time.DateTime;
 import org.opensaml.saml.metadata.resolver.filter.MetadataFilter;
 import org.opensaml.saml.saml2.metadata.EntityDescriptor;
 import org.slf4j.Logger;
@@ -161,6 +162,38 @@
     }
 
     /** {@inheritDoc} */
+    @Override
+    @Nullable public DateTime getLastUpdate() {
+        DateTime ret = null;
+        for (final MetadataResolver resolver : resolvers) {
+            if (resolver instanceof RefreshableMetadataResolver) {
+                final DateTime lastUpdate = ((RefreshableMetadataResolver) resolver).getLastUpdate();
+                if (ret == null || ret.isBefore(lastUpdate)) {
+                    ret = lastUpdate;
+                }
+            }
+        }
+        
+        return ret;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    @Nullable public DateTime getLastRefresh() {
+        DateTime ret = null;
+        for (final MetadataResolver resolver : resolvers) {
+            if (resolver instanceof RefreshableMetadataResolver) {
+                final DateTime lastRefresh = ((RefreshableMetadataResolver) resolver).getLastRefresh();
+                if (ret == null || ret.isBefore(lastRefresh)) {
+                    ret = lastRefresh;
+                }
+            }
+        }
+        
+        return ret;
+    }
+    
+    /** {@inheritDoc} */
     @Override protected void doInitialize() throws ComponentInitializationException {
         super.doInitialize();
         if (resolvers == null) {

Modified: trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/RefreshableMetadataResolver.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/RefreshableMetadataResolver.java?rev=4182&r1=4181&r2=4182&view=diff
==============================================================================
--- trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/RefreshableMetadataResolver.java (original)
+++ trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/RefreshableMetadataResolver.java Tue Dec  9 15:11:08 2014
@@ -16,6 +16,10 @@
  */
 
 package org.opensaml.saml.metadata.resolver;
+
+import javax.annotation.Nullable;
+
+import org.joda.time.DateTime;
 
 import net.shibboleth.utilities.java.support.resolver.ResolverException;
 
@@ -36,4 +40,20 @@
      */
     void refresh() throws ResolverException;
 
+    /**
+     * Gets the time the last refresh cycle occurred.
+     * 
+     * @return time the last refresh cycle occurred
+     */
+    @Nullable DateTime getLastRefresh();
+
+    /**
+     * Get the time that the currently available metadata was last updated. Note, this may be different than the time
+     * retrieved by {@link #getLastRefresh()} is the metadata was known not to have changed during the last refresh
+     * cycle.
+     * 
+     * @return time when the currently metadata was last updated, null if metadata has never successfully been read in
+     */
+    @Nullable DateTime getLastUpdate();
+    
 }

Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractReloadingMetadataResolver.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractReloadingMetadataResolver.java?rev=4182&r1=4181&r2=4182&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractReloadingMetadataResolver.java (original)

[... 202 lines stripped ...]


More information about the commits mailing list