[java-opensaml COMMIT] in /trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl: AbstractD...
noreply at shibboleth.net
noreply at shibboleth.net
Wed Oct 29 16:59:34 EDT 2014
Author: putmanb
Date: Wed Oct 29 16:59:34 2014
New Revision: 4119
URL: http://svn.shibboleth.net/view/java-opensaml?rev=4119&view=rev
Log:
Pull more non-HTTP-related code up from abstract HTTP class, in favor of common routines in abstract dynamic class.
Modified:
trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractDynamicHTTPMetadataResolver.java
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/AbstractDynamicHTTPMetadataResolver.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractDynamicHTTPMetadataResolver.java?rev=4119&r1=4118&r2=4119&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractDynamicHTTPMetadataResolver.java (original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractDynamicHTTPMetadataResolver.java Wed Oct 29 16:59:34 2014
@@ -24,13 +24,11 @@
import java.util.Collections;
import java.util.List;
import java.util.Timer;
-import java.util.concurrent.locks.Lock;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
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.NotLive;
import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
@@ -47,11 +45,8 @@
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpUriRequest;
-import org.opensaml.core.criterion.EntityIdCriterion;
import org.opensaml.core.xml.XMLObject;
import org.opensaml.core.xml.io.UnmarshallingException;
-import org.opensaml.saml.metadata.resolver.filter.FilterException;
-import org.opensaml.saml.saml2.metadata.EntityDescriptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -153,40 +148,18 @@
}
/** {@inheritDoc} */
- @Nonnull @NonnullElements protected Iterable<EntityDescriptor> fetchByCriteria(@Nonnull final CriteriaSet criteria)
- throws ResolverException {
- String entityID = StringSupport.trimOrNull(criteria.get(EntityIdCriterion.class).getEntityId());
- Lock writeLock = getBackingStore().getManagementData(entityID).getReadWriteLock().writeLock();
-
- try {
- writeLock.lock();
+ @Nullable protected XMLObject fetchFromOriginSource(@Nonnull final CriteriaSet criteria)
+ throws IOException {
- List<EntityDescriptor> descriptors = lookupEntityID(entityID);
- if (!descriptors.isEmpty()) {
- log.debug("Metadata was resolved and stored by another thread "
- + "while this thread was waiting on the write lock");
- return descriptors;
- }
-
- HttpUriRequest request = buildHttpRequest(criteria);
- if (request == null) {
- log.debug("Could not build request based on input criteria, unable to query");
- return Collections.emptyList();
- }
-
- HttpResponse response = httpClient.execute(request);
-
- processResponse(response, request.getURI(), entityID);
-
- return lookupEntityID(entityID);
-
- } catch (IOException e) {
- log.error("Error executing HTTP request", e);
- return Collections.emptyList();
- } finally {
- writeLock.unlock();
- }
-
+ HttpUriRequest request = buildHttpRequest(criteria);
+ if (request == null) {
+ log.debug("Could not build request based on input criteria, unable to query");
+ return null;
+ }
+
+ HttpResponse response = httpClient.execute(request);
+
+ return processResponse(response, request.getURI());
}
/**
@@ -229,11 +202,10 @@
*
* @param response the received response
* @param requestURI the original request URI
- * @param expectedEntityID the expected entityID of the resolved metadata
- * @throws ResolverException if there is a fatal error processing the response
- */
- protected void processResponse(@Nonnull final HttpResponse response, @Nonnull final URI requestURI,
- @Nonnull final String expectedEntityID) throws ResolverException {
+ *
+ * @return the resolved metadata document root, or null if there was a fatal error
+ */
[... 168 lines stripped ...]
More information about the commits
mailing list