You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2009/11/04 19:18:14 UTC

svn commit: r832832 - in /cxf/branches/2.1.x-fixes: ./ api/src/main/java/org/apache/cxf/wsdl/EndpointReferenceUtils.java

Author: dkulp
Date: Wed Nov  4 18:18:14 2009
New Revision: 832832

URL: http://svn.apache.org/viewvc?rev=832832&view=rev
Log:
Merged revisions 832283 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/branches/2.2.x-fixes

................
  r832283 | dkulp | 2009-11-02 21:52:55 -0500 (Mon, 02 Nov 2009) | 9 lines
  
  Merged revisions 832282 via svnmerge from 
  https://svn.apache.org/repos/asf/cxf/trunk
  
  ........
    r832282 | dkulp | 2009-11-02 21:51:13 -0500 (Mon, 02 Nov 2009) | 1 line
    
    Slight performance enhancement
  ........
................

Modified:
    cxf/branches/2.1.x-fixes/   (props changed)
    cxf/branches/2.1.x-fixes/api/src/main/java/org/apache/cxf/wsdl/EndpointReferenceUtils.java

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

Modified: cxf/branches/2.1.x-fixes/api/src/main/java/org/apache/cxf/wsdl/EndpointReferenceUtils.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/api/src/main/java/org/apache/cxf/wsdl/EndpointReferenceUtils.java?rev=832832&r1=832831&r2=832832&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/api/src/main/java/org/apache/cxf/wsdl/EndpointReferenceUtils.java (original)
+++ cxf/branches/2.1.x-fixes/api/src/main/java/org/apache/cxf/wsdl/EndpointReferenceUtils.java Wed Nov  4 18:18:14 2009
@@ -19,10 +19,9 @@
 
 package org.apache.cxf.wsdl;
 
-import java.io.IOException;
+import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 import java.io.Reader;
-import java.io.StringReader;
 import java.net.MalformedURLException;
 import java.net.URI;
 import java.net.URISyntaxException;
@@ -73,6 +72,7 @@
 import org.apache.cxf.endpoint.EndpointResolverRegistry;
 import org.apache.cxf.endpoint.Server;
 import org.apache.cxf.endpoint.ServerRegistry;
+import org.apache.cxf.helpers.IOUtils;
 import org.apache.cxf.helpers.LoadingByteArrayOutputStream;
 import org.apache.cxf.helpers.XMLUtils;
 import org.apache.cxf.resource.ExtendedURIResolver;
@@ -106,11 +106,11 @@
      * the code in here.
      */
     private static final class SchemaLSResourceResolver implements LSResourceResolver {
-        private final Map<String, String> schemas;
+        private final Map<String, byte[]> schemas;
         private final Set<String> done = new HashSet<String>();
         private final ExtendedURIResolver resolver = new ExtendedURIResolver();
         
-        private SchemaLSResourceResolver(Map<String, String> schemas) {
+        private SchemaLSResourceResolver(Map<String, byte[]> schemas) {
             this.schemas = schemas;
         }
         
@@ -138,20 +138,20 @@
                 return null;
             }
             if (schemas.containsKey(newId + ":" + namespaceURI)) {
-                String ds = schemas.remove(newId + ":" + namespaceURI);
+                byte[] ds = schemas.remove(newId + ":" + namespaceURI);
                 LSInputImpl impl = new LSInputImpl();
                 impl.setSystemId(newId);
                 impl.setBaseURI(newId);
-                impl.setCharacterStream(new StringReader(ds));
+                impl.setByteStream(new ByteArrayInputStream(ds));
                 done.add(newId + ":" + namespaceURI);
                 return impl;
             }
             if (schemas.containsKey(newId + ":null")) {
-                String ds = schemas.get(newId + ":null");
+                byte[] ds = schemas.get(newId + ":null");
                 LSInputImpl impl = new LSInputImpl();
                 impl.setSystemId(newId);
                 impl.setBaseURI(newId);
-                impl.setCharacterStream(new StringReader(ds));
+                impl.setByteStream(new ByteArrayInputStream(ds));
                 done.add(newId + ":" + namespaceURI);
                 return impl;                
             }
@@ -586,7 +586,7 @@
         Schema schema = serviceInfo.getProperty(Schema.class.getName(), Schema.class);
         if (schema == null) {
             SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
-            Map<String, String> schemaSourcesMap = new LinkedHashMap<String, String>();
+            Map<String, byte[]> schemaSourcesMap = new LinkedHashMap<String, byte[]>();
             Map<String, Source> schemaSourcesMap2 = new LinkedHashMap<String, Source>();
 
             try {
@@ -598,9 +598,9 @@
                     }
                     DOMSource ds = new DOMSource(el, baseURI);   
                     schemaSourcesMap2.put(si.getSystemId() + ":" + si.getNamespaceURI(), ds);
-                    
-                    String s = StaxUtils.toString(el);
-                    schemaSourcesMap.put(si.getSystemId() + ":" + si.getNamespaceURI(), s);
+                    LoadingByteArrayOutputStream out = new LoadingByteArrayOutputStream();
+                    StaxUtils.copy(el, StaxUtils.createXMLStreamWriter(out));
+                    schemaSourcesMap.put(si.getSystemId() + ":" + si.getNamespaceURI(), out.toByteArray());
                 }
 
                 
@@ -618,22 +618,17 @@
                             //bugs in XmlSchema could make this less useful)
                         }
                         
+                        LoadingByteArrayOutputStream out = new LoadingByteArrayOutputStream();
                         if (ins == null) {
-                            LoadingByteArrayOutputStream out = new LoadingByteArrayOutputStream();
                             sch.write(out);
-                            ins = out.createInputStream();
-                        }
-                        Document doc = XMLUtils.parse(ins);
-                        try {
-                            ins.close();
-                        } catch (IOException ex) {
-                            //ignore
+                        } else {
+                            IOUtils.copyAndCloseInput(ins, out);
                         }
-                        String s = StaxUtils.toString(doc);
+
                         schemaSourcesMap.put(sch.getSourceURI() + ":" 
-                                             + sch.getTargetNamespace(), s);
+                                             + sch.getTargetNamespace(), out.toByteArray());
                         
-                        Source source = new StreamSource(new StringReader(s), sch.getSourceURI());
+                        Source source = new StreamSource(out.createInputStream(), sch.getSourceURI());
                         schemaSourcesMap2.put(sch.getSourceURI() + ":" 
                                               + sch.getTargetNamespace(), source);
                     }