[java-opensaml COMMIT] in /trunk: opensaml-core/src/main/java/org/opensaml/core/xml/persist/ opensaml-core/src/main/j...
noreply at shibboleth.net
noreply at shibboleth.net
Fri Sep 16 22:39:48 EDT 2016
Author: putmanb
Date: Fri Sep 16 22:39:48 2016
New Revision: 4485
URL: http://svn.shibboleth.net/view/java-opensaml?rev=4485&view=rev
Log:
OSJ-168: On-disk caching of dynamically acquired metadata
Added:
trunk/opensaml-core/src/main/java/org/opensaml/core/xml/persist/
trunk/opensaml-core/src/main/java/org/opensaml/core/xml/persist/MapLoadSaveManager.java (with props)
trunk/opensaml-core/src/main/java/org/opensaml/core/xml/persist/XMLObjectLoadSaveManager.java (with props)
trunk/opensaml-core/src/main/java/org/opensaml/core/xml/persist/package-info.java (with props)
trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/impl/AbstractDynamicMetadataResolverTest.java (with props)
Modified:
trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractDynamicMetadataResolver.java
Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractDynamicMetadataResolver.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractDynamicMetadataResolver.java?rev=4485&r1=4484&r2=4485&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractDynamicMetadataResolver.java (original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractDynamicMetadataResolver.java Fri Sep 16 22:39:48 2016
@@ -18,6 +18,7 @@
package org.opensaml.saml.metadata.resolver.impl;
import java.io.IOException;
+import java.security.NoSuchAlgorithmException;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -32,10 +33,31 @@
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
+import org.joda.time.DateTime;
+import org.joda.time.chrono.ISOChronology;
+import org.opensaml.core.criterion.EntityIdCriterion;
+import org.opensaml.core.xml.XMLObject;
+import org.opensaml.core.xml.persist.XMLObjectLoadSaveManager;
+import org.opensaml.saml.metadata.resolver.DynamicMetadataResolver;
+import org.opensaml.saml.metadata.resolver.filter.FilterException;
+import org.opensaml.saml.saml2.common.SAML2Support;
+import org.opensaml.saml.saml2.metadata.EntityDescriptor;
+import org.opensaml.security.crypto.JCAConstants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Function;
+import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
+import com.google.common.base.Strings;
+
import net.shibboleth.utilities.java.support.annotation.Duration;
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
import net.shibboleth.utilities.java.support.annotation.constraint.Positive;
+import net.shibboleth.utilities.java.support.codec.StringDigester;
+import net.shibboleth.utilities.java.support.codec.StringDigester.OutputFormat;
+import net.shibboleth.utilities.java.support.collection.Pair;
import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
import net.shibboleth.utilities.java.support.component.ComponentSupport;
import net.shibboleth.utilities.java.support.logic.Constraint;
@@ -43,19 +65,6 @@
import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
import net.shibboleth.utilities.java.support.resolver.ResolverException;
-import org.joda.time.DateTime;
-import org.joda.time.chrono.ISOChronology;
-import org.opensaml.core.criterion.EntityIdCriterion;
-import org.opensaml.core.xml.XMLObject;
-import org.opensaml.saml.metadata.resolver.DynamicMetadataResolver;
-import org.opensaml.saml.metadata.resolver.filter.FilterException;
-import org.opensaml.saml.saml2.common.SAML2Support;
-import org.opensaml.saml.saml2.metadata.EntityDescriptor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Strings;
-
/**
* Abstract subclass for metadata resolvers that resolve metadata dynamically, as needed and on demand.
*/
@@ -93,6 +102,19 @@
/** The backing store cleanup sweeper background task. */
private BackingStoreCleanupSweeper cleanupTask;
+ /** The manager for the persistent cache store for resolved metadata. */
+ private XMLObjectLoadSaveManager<EntityDescriptor> persistentCacheManager;
+
+ /** Function for generating the String key used with the cache manager. */
+ private Function<EntityDescriptor, String> persistentCacheKeyGenerator;
+
+ /** Predicate which determines whether a given entity should be loaded from the persistent cache
+ * at resolver initialization time. */
+ private Predicate<EntityDescriptor> initializationFromCachePredicate;
+
+ /** Flag used to track state of whether currently initializing or not. */
+ private boolean initializing;
+
/**
* Constructor.
*
@@ -126,6 +148,77 @@
removeIdleEntityData = true;
}
[... 272 lines stripped ...]
More information about the commits
mailing list