Author: dkulp
Date: Tue Jan 27 17:49:44 2009
New Revision: 738167

URL: http://svn.apache.org/viewvc?rev=738167&view=rev
Log:
Merged revisions 738166 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r738166 | dkulp | 2009-01-27 12:47:59 -0500 (Tue, 27 Jan 2009) | 2 lines
  
  [CXF-1140] For http urls to wsdl/schema, well cache the results as wsdl4j 
doesn't call "close()" till the end which results in the connection to the 
server being held open consuming ports on the server.   Caching allows the 
keepalives to work and everything transferred over one connection.
........

Modified:
    cxf/branches/2.1.x-fixes/   (props changed)
    
cxf/branches/2.1.x-fixes/common/common/src/main/java/org/apache/cxf/resource/ExtendedURIResolver.java
    
cxf/branches/2.1.x-fixes/common/common/src/main/java/org/apache/cxf/resource/URIResolver.java
    
cxf/branches/2.1.x-fixes/rt/core/src/main/java/org/apache/cxf/catalog/CatalogWSDLLocator.java

Propchange: cxf/branches/2.1.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jan 27 17:49:44 2009
@@ -1 +1 @@
-/cxf/trunk:686333-686363,686764,686820,687096,687194,687363,687387,687463,687543,687722,687798,687814,687817,687891,687910,687914,688086,688102,688133,688596,688735,688870,689572,689596,689855,689924,690067,690289,691246,691271,691295,691338,691355,691488,691602,691646,691706,691728,692116,692157,692310,692466,692499,693653,693819,694179,694263,694417,694716,694744,694747,694795,694869,694981,694987,694993,695041,695096,695396,695484,695537,695552,695561,695619,695684,695835,695840,695868,695935,695977,696016,696094,696433,696720,697085,697868,698128,699289,700261,700507,700602,700981,701316,701783,701830,701862,702187,702205-702248,702267,702547,702561,702580,702602,702609,702616,702653,702656,702957,703191,703239,703309,703501,703513,703548,704584,704937,704997,705150,705235,705274,705340,705446,705548,705614,705692,705708,706482,706631,706675,706900,706909,707034,707089,707100,707902,708035,708044,708074,708410,708417,708550,708554,709353-709354,709425,710076,710150,71015
 
4,711193,711388,711410,711490,711635,711949,711975,712194,712198,712238,712272,712299,712312,712670,712893,713082,713095-713096,713099,713584,713597,713737,713804,713899,714167-714168,714245,714255,717937-717961,718281-718448,718565,718620,718640,718665,718970,719017,719210,719215-719218,719222-719273,719305,719327-719680,720053,720119-720218,720238,720293-720316,720497,721221,721241,721501,722117,722129,722412,722988,723024,723338,723378,723716-723791,724333-724372,724433-724438,724449,724481,724485,724668,724780,724782,724785,724793,724795,724940,725071,725316,725332,725335,725348,725364,725418,725425-725426,725455,725506,725554,725562,725651,725671,725688,725754,725773,725799,725839,726342,726524,726631,726634,726637,726639,726692,726724,726769,726992,727096,727445,727521,727568,727692,727754,727781,727792,728070,728087,728696,728897,729051,729430,729449,729460,729863,730082,730139,730889,730891,731598,731604,731615,731631,731635,732036,732050,732320,732363,732411,732450,
 
732710,732827,733512,733582,733901,734367,734462,734666,734762,734772,734812,734836,734965,735113,735252,735722-735723,735729,735734,735751,735782,735787,735987,736332,736343,736352,736358-736362,736408,736423,736448,736491,736621,736726,736736,736738-736739,736766,736825,736852,737032,737046,737061,737069,737124,737237,737246,737299,737356,737494,737498,737761,737817,737849,737855,737994
+/cxf/trunk:686333-686363,686764,686820,687096,687194,687363,687387,687463,687543,687722,687798,687814,687817,687891,687910,687914,688086,688102,688133,688596,688735,688870,689572,689596,689855,689924,690067,690289,691246,691271,691295,691338,691355,691488,691602,691646,691706,691728,692116,692157,692310,692466,692499,693653,693819,694179,694263,694417,694716,694744,694747,694795,694869,694981,694987,694993,695041,695096,695396,695484,695537,695552,695561,695619,695684,695835,695840,695868,695935,695977,696016,696094,696433,696720,697085,697868,698128,699289,700261,700507,700602,700981,701316,701783,701830,701862,702187,702205-702248,702267,702547,702561,702580,702602,702609,702616,702653,702656,702957,703191,703239,703309,703501,703513,703548,704584,704937,704997,705150,705235,705274,705340,705446,705548,705614,705692,705708,706482,706631,706675,706900,706909,707034,707089,707100,707902,708035,708044,708074,708410,708417,708550,708554,709353-709354,709425,710076,710150,71015
 
4,711193,711388,711410,711490,711635,711949,711975,712194,712198,712238,712272,712299,712312,712670,712893,713082,713095-713096,713099,713584,713597,713737,713804,713899,714167-714168,714245,714255,717937-717961,718281-718448,718565,718620,718640,718665,718970,719017,719210,719215-719218,719222-719273,719305,719327-719680,720053,720119-720218,720238,720293-720316,720497,721221,721241,721501,722117,722129,722412,722988,723024,723338,723378,723716-723791,724333-724372,724433-724438,724449,724481,724485,724668,724780,724782,724785,724793,724795,724940,725071,725316,725332,725335,725348,725364,725418,725425-725426,725455,725506,725554,725562,725651,725671,725688,725754,725773,725799,725839,726342,726524,726631,726634,726637,726639,726692,726724,726769,726992,727096,727445,727521,727568,727692,727754,727781,727792,728070,728087,728696,728897,729051,729430,729449,729460,729863,730082,730139,730889,730891,731598,731604,731615,731631,731635,732036,732050,732320,732363,732411,732450,
 
732710,732827,733512,733582,733901,734367,734462,734666,734762,734772,734812,734836,734965,735113,735252,735722-735723,735729,735734,735751,735782,735787,735987,736332,736343,736352,736358-736362,736408,736423,736448,736491,736621,736726,736736,736738-736739,736766,736825,736852,737032,737046,737061,737069,737124,737237,737246,737299,737356,737494,737498,737761,737817,737849,737855,737994,738166

Propchange: cxf/branches/2.1.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: 
cxf/branches/2.1.x-fixes/common/common/src/main/java/org/apache/cxf/resource/ExtendedURIResolver.java
URL: 
http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/common/common/src/main/java/org/apache/cxf/resource/ExtendedURIResolver.java?rev=738167&r1=738166&r2=738167&view=diff
==============================================================================
--- 
cxf/branches/2.1.x-fixes/common/common/src/main/java/org/apache/cxf/resource/ExtendedURIResolver.java
 (original)
+++ 
cxf/branches/2.1.x-fixes/common/common/src/main/java/org/apache/cxf/resource/ExtendedURIResolver.java
 Tue Jan 27 17:49:44 2009
@@ -52,9 +52,9 @@
                 }
                 InputStream in = currentResolver.getInputStream();
                 resourceOpened.addElement(in);
-                InputSource source = new InputSource(in);               
-                source.setSystemId(curUri); 
-                source.setPublicId(lastestImportUri);
+                InputSource source = new InputSource(in);
+                source.setSystemId(curUri);
+                source.setPublicId(curUri);
                 return source;
             }
         } catch (IOException e) {

Modified: 
cxf/branches/2.1.x-fixes/common/common/src/main/java/org/apache/cxf/resource/URIResolver.java
URL: 
http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/common/common/src/main/java/org/apache/cxf/resource/URIResolver.java?rev=738167&r1=738166&r2=738167&view=diff
==============================================================================
--- 
cxf/branches/2.1.x-fixes/common/common/src/main/java/org/apache/cxf/resource/URIResolver.java
 (original)
+++ 
cxf/branches/2.1.x-fixes/common/common/src/main/java/org/apache/cxf/resource/URIResolver.java
 Tue Jan 27 17:49:44 2009
@@ -28,12 +28,17 @@
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
+import java.net.URLConnection;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import org.apache.cxf.common.classloader.ClassLoaderUtils;
 import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.common.util.Base64Utility;
+import org.apache.cxf.helpers.IOUtils;
+import org.apache.cxf.helpers.LoadingByteArrayOutputStream;
 
 /**
  * Resolves a File, classpath resource, or URL according to the follow rules:
@@ -48,6 +53,8 @@
 public class URIResolver {
     private static final Logger LOG = LogUtils.getLogger(URIResolver.class);
     
+    private Map<String, LoadingByteArrayOutputStream> cache
+        = new HashMap<String, LoadingByteArrayOutputStream>();
     private File file;
     private URI uri;
     private URL url;
@@ -159,7 +166,7 @@
                 }
                 
                 base = base.resolve(relative);
-                if (base.isAbsolute()) {
+                if (base.isAbsolute() && 
"file".equalsIgnoreCase(base.getScheme())) {
                     try {
                         baseFile = new File(base);
                         if (baseFile.exists()) {
@@ -173,6 +180,9 @@
                         tryClasspath(base.toString().startsWith("file:") 
                                      ? base.toString().substring(5) : 
base.toString());
                     }
+                } else {
+                    tryClasspath(base.toString().startsWith("file:") 
+                                 ? base.toString().substring(5) : 
base.toString());
                 }
             }
         } catch (URISyntaxException e) {
@@ -285,9 +295,18 @@
 
     private void tryRemote(String uriStr) throws IOException {
         try {
+            LoadingByteArrayOutputStream bout = cache.get(uriStr);
             url = new URL(uriStr);
             uri = new URI(url.toString());
-            is = url.openStream();
+            if (bout == null) {
+                URLConnection connection = url.openConnection();
+                is = connection.getInputStream();
+                bout = new LoadingByteArrayOutputStream(1024);
+                IOUtils.copy(is, bout);
+                is.close();
+                cache.put(uriStr, bout);
+            }
+            is = bout.createInputStream();
         } catch (MalformedURLException e) {
             // do nothing
         } catch (URISyntaxException e) {

Modified: 
cxf/branches/2.1.x-fixes/rt/core/src/main/java/org/apache/cxf/catalog/CatalogWSDLLocator.java
URL: 
http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/core/src/main/java/org/apache/cxf/catalog/CatalogWSDLLocator.java?rev=738167&r1=738166&r2=738167&view=diff
==============================================================================
--- 
cxf/branches/2.1.x-fixes/rt/core/src/main/java/org/apache/cxf/catalog/CatalogWSDLLocator.java
 (original)
+++ 
cxf/branches/2.1.x-fixes/rt/core/src/main/java/org/apache/cxf/catalog/CatalogWSDLLocator.java
 Tue Jan 27 17:49:44 2009
@@ -96,8 +96,6 @@
     }
 
     public InputSource getImportInputSource(String parent, String 
importLocation) {
-        this.baseUri = parent;
-
         String resolvedImportLocation = null;
         if (catalogResolver != null) {
             try {
@@ -115,7 +113,7 @@
 
         InputSource in = null;
         if (resolvedImportLocation == null) {
-            in = this.resolver.resolve(importLocation, this.baseUri);
+            in = this.resolver.resolve(importLocation, parent);
         } else {
             in = this.resolver.resolve(resolvedImportLocation, null);
         }


Reply via email to