You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ga...@apache.org on 2007/04/05 21:40:42 UTC

svn commit: r525949 - in /incubator/cxf/trunk/common/common/src: main/java/org/apache/cxf/resource/URIResolver.java test/java/org/apache/cxf/resource/URIResolverTest.java test/java/org/apache/cxf/resource/resources/helloworld.bpr

Author: gawor
Date: Thu Apr  5 12:40:41 2007
New Revision: 525949

URL: http://svn.apache.org/viewvc?view=rev&rev=525949
Log:
Check jar file first before doing classpath search when resolving entires (CXF-494)

Modified:
    incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/resource/URIResolver.java
    incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/resource/URIResolverTest.java
    incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/resource/resources/helloworld.bpr

Modified: incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/resource/URIResolver.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/resource/URIResolver.java?view=diff&rev=525949&r1=525948&r2=525949
==============================================================================
--- incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/resource/URIResolver.java (original)
+++ incubator/cxf/trunk/common/common/src/main/java/org/apache/cxf/resource/URIResolver.java Thu Apr  5 12:40:41 2007
@@ -171,10 +171,14 @@
         if (i == -1) {
             tryFileSystem(baseStr, uriStr);
         }
-        baseStr = baseStr.substring(i + 1);
+
+        String jarBase = baseStr.substring(0, i + 1);
+        String jarEntry = baseStr.substring(i + 1);
         try {
-            URI u = new URI(baseStr).resolve(uriStr);
-            tryClasspath(u.toString());
+            URI u = new URI(jarEntry).resolve(uriStr);
+
+            tryJar(jarBase + u.toString());
+
             if (is != null) {
                 if (u.isAbsolute()) {
                     url = u.toURL();
@@ -195,14 +199,14 @@
         }
 
         url = new URL(uriStr);
-        is = url.openStream();
-        if (is != null) {
+        try {
+            is = url.openStream();
             try {
                 uri = url.toURI();
             } catch (URISyntaxException ex) {
                 // ignore
             }
-        } else {
+        } catch (IOException e) {
             uriStr = uriStr.substring(i + 1);
             tryClasspath(uriStr);
         }

Modified: incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/resource/URIResolverTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/resource/URIResolverTest.java?view=diff&rev=525949&r1=525948&r2=525949
==============================================================================
--- incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/resource/URIResolverTest.java (original)
+++ incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/resource/URIResolverTest.java Thu Apr  5 12:40:41 2007
@@ -62,4 +62,27 @@
         }       
         assertEquals(new String(barray), new String(barray2));
     }
+
+    @Test
+    public void testJARResolver() throws Exception {
+        uriResolver = new URIResolver();
+        
+        String uriStr = "jar:" + resourceURL.toString() + "!/wsdl/hello_world.wsdl";
+        
+        URL jarURL = new URL(uriStr);
+        InputStream is = jarURL.openStream();
+        assertNotNull(is);
+
+        String uriStr2 = "jar:" + resourceURL.toString() + "!/wsdl/hello_world_2.wsdl";
+        
+        URL jarURL2 = new URL(uriStr2);
+        InputStream is2 = jarURL2.openStream();
+        assertNotNull(is2);
+        
+        uriResolver.resolve(uriStr, "hello_world_2.wsdl", null);
+        
+        InputStream is3 = uriResolver.getInputStream();
+        assertNotNull(is3); 
+    }
+
 }

Modified: incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/resource/resources/helloworld.bpr
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/common/common/src/test/java/org/apache/cxf/resource/resources/helloworld.bpr?view=diff&rev=525949&r1=525948&r2=525949
==============================================================================
Binary files - no diff available.