[jboss-cvs] JBossAS SVN: r108283 - projects/cluster/ha-server-ispn/trunk/src/main/java/org/jboss/ha/ispn/config/xml.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Sep 22 13:32:35 EDT 2010


Author: pferraro
Date: 2010-09-22 13:32:34 -0400 (Wed, 22 Sep 2010)
New Revision: 108283

Modified:
   projects/cluster/ha-server-ispn/trunk/src/main/java/org/jboss/ha/ispn/config/xml/XMLCacheContainerRegistryConfigurationSource.java
Log:
Add temporary workaround for ISPN-657.

Modified: projects/cluster/ha-server-ispn/trunk/src/main/java/org/jboss/ha/ispn/config/xml/XMLCacheContainerRegistryConfigurationSource.java
===================================================================
--- projects/cluster/ha-server-ispn/trunk/src/main/java/org/jboss/ha/ispn/config/xml/XMLCacheContainerRegistryConfigurationSource.java	2010-09-22 17:13:49 UTC (rev 108282)
+++ projects/cluster/ha-server-ispn/trunk/src/main/java/org/jboss/ha/ispn/config/xml/XMLCacheContainerRegistryConfigurationSource.java	2010-09-22 17:32:34 UTC (rev 108283)
@@ -21,6 +21,7 @@
  */
 package org.jboss.ha.ispn.config.xml;
 
+import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.Collections;
 import java.util.Map;
@@ -33,10 +34,12 @@
 import javax.xml.transform.sax.SAXSource;
 import javax.xml.validation.SchemaFactory;
 
+import org.infinispan.Version;
 import org.infinispan.config.InfinispanConfiguration;
 import org.infinispan.config.parsing.NamespaceFilter;
 import org.jboss.ha.ispn.config.CacheContainerRegistryConfiguration;
 import org.jboss.ha.ispn.config.CacheContainerRegistryConfigurationSource;
+import org.jboss.logging.Logger;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 import org.xml.sax.XMLReader;
@@ -54,6 +57,8 @@
    private static final String INFINISPAN_NAMESPACE = NamespaceFilter.ISPN_NS;
    private static final String INFINISPAN_SCHEMA = InfinispanConfiguration.resolveSchemaPath();
 
+   private static final Logger log = Logger.getLogger(XMLCacheContainerRegistryConfigurationSource.class);
+   
    private final URL infinispanSchemaURL;
    private final URL schemaURL;
    private final URL xmlURL;
@@ -76,8 +81,32 @@
    {
       this.xmlURL = url;
       this.schemaURL = findResource(SCHEMA);
-      this.infinispanSchemaURL = findResource(INFINISPAN_SCHEMA);
+      this.infinispanSchemaURL = findResource(INFINISPAN_SCHEMA, String.format("http://infinispan.org/schemas/infinispan-config-%s.xsd", Version.getMajorVersion()));
    }
+
+   private URL findResource(String... resources)
+   {
+      RuntimeException exception = null;
+      
+      for (String resource: resources)
+      {
+         try
+         {
+            return findResource(resource);
+         }
+         catch (RuntimeException e)
+         {
+            if (exception != null)
+            {
+               log.warn(exception.getMessage());
+            }
+            
+            exception = e;
+         }
+      }
+      
+      throw exception;
+   }
    
    /**
     * Creates a new XMLCacheContainerRegistryConfigurationSource using the specified classpath resource containing
@@ -91,14 +120,21 @@
    
    private static URL findResource(String resource)
    {
-      URL url = Thread.currentThread().getContextClassLoader().getResource(resource);
-      
-      if (url == null)
+      try
       {
-         throw new IllegalArgumentException("Failed to locate resource: " + resource);
+         return new URL(resource);
       }
-      
-      return url;
+      catch (MalformedURLException e)
+      {
+         URL url = Thread.currentThread().getContextClassLoader().getResource(resource);
+         
+         if (url == null)
+         {
+            throw new IllegalArgumentException("Failed to locate resource: " + resource);
+         }
+         
+         return url;
+      }
    }
    
    /**



More information about the jboss-cvs-commits mailing list