You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by rr...@apache.org on 2009/11/30 14:41:34 UTC

svn commit: r885424 - in /ode/branches/APACHE_ODE_1.X: bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ utils/src/main/java/org/apache/ode/utils/xsd/

Author: rr
Date: Mon Nov 30 13:41:34 2009
New Revision: 885424

URL: http://svn.apache.org/viewvc?rev=885424&view=rev
Log:
ODE-712: Resolving relative URIs as full paths - fix for schema loader imports problem

Modified:
    ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/DefaultResourceFinder.java
    ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/WsdlFinderXMLEntityResolver.java
    ode/branches/APACHE_ODE_1.X/utils/src/main/java/org/apache/ode/utils/xsd/SchemaModelImpl.java

Modified: ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/DefaultResourceFinder.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/DefaultResourceFinder.java?rev=885424&r1=885423&r2=885424&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/DefaultResourceFinder.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/DefaultResourceFinder.java Mon Nov 30 13:41:34 2009
@@ -71,6 +71,8 @@
     }
 
     public InputStream openResource(URI uri) throws MalformedURLException, IOException {
+        uri = relativize(uri);
+        
         InputStream r = openFileResource(uri);
         if (r != null) {
             return r;
@@ -130,15 +132,22 @@
         return _absoluteDir.toURI();
     }
 
+    private URI relativize(URI u) {
+        if (u.isAbsolute()) {
+            return _absoluteDir.toURI().relativize(u);
+        } else return u;
+    }
+    
     public URI resolve(URI parent, URI child) {
-        if (parent.isAbsolute()) {
-            parent = _absoluteDir.toURI().relativize(parent);
-        }
+        parent = relativize(parent);
+        child = relativize(child);
         URI result = parent.resolve(child);
+        URI result2 = _absoluteDir.toURI().resolve(result);
         if (__log.isDebugEnabled()) {
-            __log.debug("resolving URI: parent " + parent + " child " + child + " result " + result);
+            __log.debug("resolving URI: parent " + parent + " child " + child + " result " + result + " resultAbsolute:" + result2);
         }
-        return result;
+        
+        return result2;
     }
 
 }

Modified: ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/WsdlFinderXMLEntityResolver.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/WsdlFinderXMLEntityResolver.java?rev=885424&r1=885423&r2=885424&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/WsdlFinderXMLEntityResolver.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/WsdlFinderXMLEntityResolver.java Mon Nov 30 13:41:34 2009
@@ -95,7 +95,7 @@
             }
             return null;
         } else {
-            location = _wsdlFinder.resolve(_baseURI, URI.create(resourceIdentifier.getLiteralSystemId()));
+            location = _wsdlFinder.resolve(URI.create(resourceIdentifier.getBaseSystemId()), URI.create(resourceIdentifier.getLiteralSystemId()));
         }
 
         if (__log.isDebugEnabled())

Modified: ode/branches/APACHE_ODE_1.X/utils/src/main/java/org/apache/ode/utils/xsd/SchemaModelImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/utils/src/main/java/org/apache/ode/utils/xsd/SchemaModelImpl.java?rev=885424&r1=885423&r2=885424&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/utils/src/main/java/org/apache/ode/utils/xsd/SchemaModelImpl.java (original)
+++ ode/branches/APACHE_ODE_1.X/utils/src/main/java/org/apache/ode/utils/xsd/SchemaModelImpl.java Mon Nov 30 13:41:34 2009
@@ -189,10 +189,14 @@
             String location = "";
             if (resourceIdentifier.getNamespace() != null && _schemas.get(resourceIdentifier.getNamespace()) != null)
                 location = resourceIdentifier.getNamespace();
-            else if (resourceIdentifier.getLiteralSystemId() != null && _schemas.get(resourceIdentifier.getLiteralSystemId()) != null)
-                location = resourceIdentifier.getLiteralSystemId();
-            else if (resourceIdentifier.getBaseSystemId() != null && _schemas.get(resourceIdentifier.getBaseSystemId()) != null)
-                location = resourceIdentifier.getBaseSystemId();
+            else if (resourceIdentifier.getExpandedSystemId() != null && _schemas.get(resourceIdentifier.getExpandedSystemId()) != null)
+                location = resourceIdentifier.getExpandedSystemId();
+            else {
+                if (__log.isDebugEnabled()) {
+                    __log.debug("Available schemas " + _schemas.keySet());
+                }
+                throw new IllegalStateException("Schema " + resourceIdentifier + " not captured");
+            }
 
             src.setByteStream(new ByteArrayInputStream(_schemas.get(location)));
             return src;