You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by co...@apache.org on 2011/04/29 14:43:26 UTC

svn commit: r1097795 - in /santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security: Init.java utils/resolver/ResourceResolver.java

Author: coheigea
Date: Fri Apr 29 12:43:26 2011
New Revision: 1097795

URL: http://svn.apache.org/viewvc?rev=1097795&view=rev
Log:
Some minor changes to the ResourceResolver

Modified:
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/Init.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/utils/resolver/ResourceResolver.java

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/Init.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/Init.java?rev=1097795&r1=1097794&r2=1097795&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/Init.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/Init.java Fri Apr 29 12:43:26 2011
@@ -21,7 +21,9 @@ package org.apache.xml.security;
 import java.io.InputStream;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import javax.xml.parsers.DocumentBuilder;
@@ -64,6 +66,11 @@ import org.apache.xml.security.utils.Ele
 import org.apache.xml.security.utils.I18n;
 import org.apache.xml.security.utils.XMLUtils;
 import org.apache.xml.security.utils.resolver.ResourceResolver;
+import org.apache.xml.security.utils.resolver.ResourceResolverSpi;
+import org.apache.xml.security.utils.resolver.implementations.ResolverDirectHTTP;
+import org.apache.xml.security.utils.resolver.implementations.ResolverFragment;
+import org.apache.xml.security.utils.resolver.implementations.ResolverLocalFilesystem;
+import org.apache.xml.security.utils.resolver.implementations.ResolverXPointer;
 import org.w3c.dom.Attr;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -97,6 +104,8 @@ public class Init {
         new HashMap<String, JCEMapper.Algorithm>();
     private static Map<String, Class<? extends CanonicalizerSpi>> defaultC14nAlgorithms = 
         new HashMap<String, Class<? extends CanonicalizerSpi>>();
+    private static List<ResourceResolverSpi> defaultResolverList = 
+        new ArrayList<ResourceResolverSpi>();
     
     static {
         //
@@ -368,6 +377,14 @@ public class Init {
         defaultC14nAlgorithms.put(
             Canonicalizer.ALGO_ID_C14N11_WITH_COMMENTS, Canonicalizer11_WithComments.class
         );
+        
+        //
+        // Default Resolvers
+        //
+        defaultResolverList.add(new ResolverFragment());
+        defaultResolverList.add(new ResolverLocalFilesystem());
+        defaultResolverList.add(new ResolverXPointer());
+        defaultResolverList.add(new ResolverDirectHTTP());
     }
     
     /**
@@ -659,7 +676,9 @@ public class Init {
             //
             // Register the default resolvers
             //
-            ResourceResolver.registerDefaultResolvers();
+            for (ResourceResolverSpi resourceResolverSpi : defaultResolverList) {
+                ResourceResolver.register(resourceResolverSpi, false);
+            }
         } catch (Exception ex) {
             log.error(ex);
             ex.printStackTrace();

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/utils/resolver/ResourceResolver.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/utils/resolver/ResourceResolver.java?rev=1097795&r1=1097794&r2=1097795&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/utils/resolver/ResourceResolver.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/utils/resolver/ResourceResolver.java Fri Apr 29 12:43:26 2011
@@ -23,10 +23,6 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.xml.security.signature.XMLSignatureInput;
-import org.apache.xml.security.utils.resolver.implementations.ResolverDirectHTTP;
-import org.apache.xml.security.utils.resolver.implementations.ResolverFragment;
-import org.apache.xml.security.utils.resolver.implementations.ResolverLocalFilesystem;
-import org.apache.xml.security.utils.resolver.implementations.ResolverXPointer;
 import org.w3c.dom.Attr;
 
 /**
@@ -44,34 +40,12 @@ public class ResourceResolver {
     /** these are the system-wide resolvers */
     private static List<ResourceResolver> resolverList = new ArrayList<ResourceResolver>();
     
-    private static List<Class<? extends ResourceResolverSpi>> defaultResolverList = 
-        new ArrayList<Class<? extends ResourceResolverSpi>>();
-    
-    static {
-        defaultResolverList.add(ResolverFragment.class);
-        defaultResolverList.add(ResolverLocalFilesystem.class);
-        defaultResolverList.add(ResolverXPointer.class);
-        defaultResolverList.add(ResolverDirectHTTP.class);
-    }
-    
     /** Field resolverSpi */
     private final ResourceResolverSpi resolverSpi;
 
     /**
      * Constructor ResourceResolver
      *
-     * @param className
-     * @throws IllegalAccessException
-     * @throws InstantiationException
-     */
-    private ResourceResolver(Class<? extends ResourceResolverSpi> className)
-        throws IllegalAccessException, InstantiationException {
-        this.resolverSpi = className.newInstance();
-    }
-
-    /**
-     * Constructor ResourceResolver
-     *
      * @param resourceResolver
      */
     public ResourceResolver(ResourceResolverSpi resourceResolver) {
@@ -203,17 +177,8 @@ public class ResourceResolver {
      */
     public static void register(Class<ResourceResolverSpi> className, boolean start) {
         try {
-            ResourceResolver resolver = new ResourceResolver(className);
-            synchronized(resolverList) {
-                if (start) {
-                    resolverList.add(0, resolver);
-                } else {	       
-                    resolverList.add(resolver);
-                }
-            }
-            if (log.isDebugEnabled()) {
-                log.debug("Registered resolver: " + className);
-            }
+            ResourceResolverSpi resourceResolverSpi = className.newInstance();
+            register(resourceResolverSpi, start);
         } catch (IllegalAccessException e) {
             log.warn("Error loading resolver " + className + " disabling it");
         } catch (InstantiationException e) {
@@ -222,22 +187,24 @@ public class ResourceResolver {
     }
     
     /**
-     * Register the default ResourceResolvers
+     * Registers a ResourceResolverSpi instance. This method logs a warning if the class 
+     * cannot be registered.
+     * @param className
+     * @param start
      */
-    public static void registerDefaultResolvers() {
+    public static void register(ResourceResolverSpi resourceResolverSpi, boolean start) {
         synchronized(resolverList) {
-            for (Class<? extends ResourceResolverSpi> defaultResolverClass : defaultResolverList) {
-                try {
-                    resolverList.add(new ResourceResolver(defaultResolverClass));
-                } catch (IllegalAccessException e) {
-                    log.warn("Error loading resolver " + defaultResolverClass + " disabling it");
-                } catch (InstantiationException e) {
-                    log.warn("Error loading resolver " + defaultResolverClass + " disabling it");
-                }
+            if (start) {
+                resolverList.add(0, new ResourceResolver(resourceResolverSpi));
+            } else {               
+                resolverList.add(new ResourceResolver(resourceResolverSpi));
             }
         }
+        if (log.isDebugEnabled()) {
+            log.debug("Registered resolver: " + resourceResolverSpi.toString());
+        }
     }
-
+    
     /**
      * Method resolve
      *