[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