cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dk...@apache.org
Subject svn commit: r934270 - in /cxf/trunk/common/common/src: main/java/org/apache/cxf/resource/ test/java/org/apache/cxf/resource/ test/resources/schemas/configuration/folder with spaces/
Date Thu, 15 Apr 2010 03:03:57 GMT
Author: dkulp
Date: Thu Apr 15 03:03:57 2010
New Revision: 934270

URL: http://svn.apache.org/viewvc?rev=934270&view=rev
Log:
[CXF-2765] Support imports in folders with spaces
Patch from William Tam applied

Added:
    cxf/trunk/common/common/src/test/resources/schemas/configuration/folder with spaces/
    cxf/trunk/common/common/src/test/resources/schemas/configuration/folder with spaces/bar.xsd
Modified:
    cxf/trunk/common/common/src/main/java/org/apache/cxf/resource/URIResolver.java
    cxf/trunk/common/common/src/test/java/org/apache/cxf/resource/URIResolverTest.java

Modified: cxf/trunk/common/common/src/main/java/org/apache/cxf/resource/URIResolver.java
URL: http://svn.apache.org/viewvc/cxf/trunk/common/common/src/main/java/org/apache/cxf/resource/URIResolver.java?rev=934270&r1=934269&r2=934270&view=diff
==============================================================================
--- cxf/trunk/common/common/src/main/java/org/apache/cxf/resource/URIResolver.java (original)
+++ cxf/trunk/common/common/src/main/java/org/apache/cxf/resource/URIResolver.java Thu Apr
15 03:03:57 2010
@@ -181,7 +181,8 @@ public class URIResolver {
                 base = base.resolve(relative);
                 if (base.isAbsolute() && "file".equalsIgnoreCase(base.getScheme()))
{
                     try {
-                        baseFile = new File(base);
+                        // decode space before create a file
+                        baseFile = new File(base.getPath().replace("%20", " "));
                         if (baseFile.exists()) {
                             is = base.toURL().openStream();
                             uri = base;
@@ -253,7 +254,8 @@ public class URIResolver {
             } 
         }
         
-        return path;
+        // decode spaces before returning otherwise File.exists returns false 
+        return path.replace("%20", " ");
     }
 
     private void tryArchive(String baseStr, String uriStr) throws IOException {

Modified: cxf/trunk/common/common/src/test/java/org/apache/cxf/resource/URIResolverTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/common/common/src/test/java/org/apache/cxf/resource/URIResolverTest.java?rev=934270&r1=934269&r2=934270&view=diff
==============================================================================
--- cxf/trunk/common/common/src/test/java/org/apache/cxf/resource/URIResolverTest.java (original)
+++ cxf/trunk/common/common/src/test/java/org/apache/cxf/resource/URIResolverTest.java Thu
Apr 15 03:03:57 2010
@@ -110,5 +110,30 @@ public class URIResolverTest extends Ass
         assertNotNull(xsdResolver.getInputStream());
         
     }
+    
+    @Test
+    public void testResolvePathWithSpace() throws Exception {
+        URIResolver wsdlResolver = new URIResolver();
+
+        // resolve the wsdl
+        wsdlResolver.resolve(null, "wsdl/foo.wsdl", this.getClass());
+        assertTrue(wsdlResolver.isResolved());
+        
+        // get the base uri from the resolved wsdl location
+        String baseUri = wsdlResolver.getURI().toString();
+        
+        // resolve the schema using relative location
+        String schemaLocation = "../schemas/configuration/folder with spaces/bar.xsd";
+        URIResolver xsdResolver = new URIResolver();
+        xsdResolver.resolve(baseUri, schemaLocation, this.getClass());
+        assertNotNull(xsdResolver.getInputStream());
+        
+        // resolve the schema using relative location with base uri fragment
+        xsdResolver = new URIResolver();
+        xsdResolver.resolve(baseUri + "#type2", schemaLocation, this.getClass());
+        assertNotNull(xsdResolver.getInputStream());
+        
+    }
+
 
 }

Added: cxf/trunk/common/common/src/test/resources/schemas/configuration/folder with spaces/bar.xsd
URL: http://svn.apache.org/viewvc/cxf/trunk/common/common/src/test/resources/schemas/configuration/folder%20with%20spaces/bar.xsd?rev=934270&view=auto
==============================================================================
--- cxf/trunk/common/common/src/test/resources/schemas/configuration/folder with spaces/bar.xsd
(added)
+++ cxf/trunk/common/common/src/test/resources/schemas/configuration/folder with spaces/bar.xsd
Thu Apr 15 03:03:57 2010
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+ 
+  http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+	targetNamespace="urn:RelPath" xmlns:RP="urn:RelPath"
+	elementFormDefault="qualified">
+	<xs:complexType name="RPTest1CT_In">
+		<xs:sequence>
+			<xs:element name="RPTest1_CT_String" type="xs:string">
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+
+	<xs:complexType name="RPTest1CT_Out">
+		<xs:sequence>
+			<xs:element name="RPTest1_Ele_String" type="xs:string">
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+
+</xs:schema>
\ No newline at end of file



Mime
View raw message