You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2016/04/28 12:17:36 UTC

cxf git commit: More stream work

Repository: cxf
Updated Branches:
  refs/heads/master b630ca48a -> c65c7b5fe


More stream work


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/c65c7b5f
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/c65c7b5f
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/c65c7b5f

Branch: refs/heads/master
Commit: c65c7b5fe18991208d1cc0c809207edc15850488
Parents: b630ca4
Author: Colm O hEigeartaigh <co...@apache.org>
Authored: Thu Apr 28 11:17:19 2016 +0100
Committer: Colm O hEigeartaigh <co...@apache.org>
Committed: Thu Apr 28 11:17:19 2016 +0100

----------------------------------------------------------------------
 .../jaxws/interceptors/SwAOutInterceptor.java   | 14 ++--
 .../cxf/jaxrs/model/wadl/WadlGenerator.java     | 21 ++---
 .../provider/datasource/TestProvider.java       |  9 ++-
 .../apache/cxf/tools/util/ToolsStaxUtils.java   | 85 ++++++++++----------
 .../wsdl11/WrapperBeanGeneratorTest.java        | 15 ++--
 .../internal/jaxws/JaxwsServiceBuilderTest.java | 11 ++-
 6 files changed, 78 insertions(+), 77 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/c65c7b5f/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java
index 7eeb9c2..8b13a6b 100644
--- a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/SwAOutInterceptor.java
@@ -183,12 +183,11 @@ public class SwAOutInterceptor extends AbstractSoapInterceptor {
                 // TODO: make this streamable. This is one of my pet
                 // peeves in JAXB RI as well, so if you fix this, submit the 
                 // code to the JAXB RI as well (see RuntimeBuiltinLeafInfoImpl)! - DD
-                ByteArrayOutputStream bos = new ByteArrayOutputStream(2048);
                 Iterator<ImageWriter> writers = ImageIO.getImageWritersByMIMEType(ct);
                 if (writers.hasNext()) {
                     ImageWriter writer = writers.next();
                     
-                    try {
+                    try (ByteArrayOutputStream bos = new ByteArrayOutputStream(2048)) {
                         BufferedImage bimg = convertToBufferedImage((Image) o);
                         ImageOutputStream out = ImageIO.createImageOutputStream(bos); 
                         writer.setOutput(out);
@@ -196,7 +195,7 @@ public class SwAOutInterceptor extends AbstractSoapInterceptor {
                         writer.dispose();
                         out.flush();
                         out.close();
-                        bos.close();
+                        dh = new DataHandler(new ByteDataSource(bos.toByteArray(), ct));
                     } catch (IOException e) {
                         throw new Fault(e);
                     }
@@ -204,8 +203,6 @@ public class SwAOutInterceptor extends AbstractSoapInterceptor {
                     throw new Fault(new org.apache.cxf.common.i18n.Message("ATTACHMENT_NOT_SUPPORTED", 
                                      LOG, ct));                    
                 }
-                
-                dh = new DataHandler(new ByteDataSource(bos.toByteArray(), ct));
             } else if (o instanceof DataHandler) {
                 dh = (DataHandler) o;
                 ct = dh.getContentType();
@@ -253,9 +250,10 @@ public class SwAOutInterceptor extends AbstractSoapInterceptor {
             StreamSource src = (StreamSource)o;
             try {
                 if (src.getInputStream() != null) {
-                    ByteArrayOutputStream bos = new ByteArrayOutputStream(2048);
-                    IOUtils.copy(src.getInputStream(), bos, 1024);
-                    ds = new ByteDataSource(bos.toByteArray(), ct);
+                    try (ByteArrayOutputStream bos = new ByteArrayOutputStream(2048)) {
+                        IOUtils.copy(src.getInputStream(), bos, 1024);
+                        ds = new ByteDataSource(bos.toByteArray(), ct);
+                    }
                 } else {
                     ds = new ByteDataSource(IOUtils.toString(src.getReader()).getBytes(StandardCharsets.UTF_8),
                                                  ct);                            

http://git-wip-us.apache.org/repos/asf/cxf/blob/c65c7b5f/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
----------------------------------------------------------------------
diff --git a/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java b/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
index 5f3aeb0..3a37814 100644
--- a/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
+++ b/rt/rs/description/src/main/java/org/apache/cxf/jaxrs/model/wadl/WadlGenerator.java
@@ -1803,16 +1803,17 @@ public class WadlGenerator implements ContainerRequestFilter {
         if (is == null) {
             return;
         }
-        ByteArrayInputStream bis = IOUtils.loadIntoBAIS(is);
-        XMLSource source = new XMLSource(bis);
-        source.setBuffering();
-        String targetNs = source.getValue("/*/@targetNamespace");
-
-        Map<String, String> nsMap = Collections.singletonMap("xs", Constants.URI_2001_SCHEMA_XSD);
-        String[] elementNames = source.getValues("/*/xs:element/@name", nsMap);
-        externalQnamesMap.put(targetNs, Arrays.asList(elementNames));
-        String schemaValue = source.getNode("/xs:schema", nsMap, String.class);
-        externalSchemasCache.add(schemaValue);
+        try (ByteArrayInputStream bis = IOUtils.loadIntoBAIS(is)) {
+            XMLSource source = new XMLSource(bis);
+            source.setBuffering();
+            String targetNs = source.getValue("/*/@targetNamespace");
+
+            Map<String, String> nsMap = Collections.singletonMap("xs", Constants.URI_2001_SCHEMA_XSD);
+            String[] elementNames = source.getValues("/*/xs:element/@name", nsMap);
+            externalQnamesMap.put(targetNs, Arrays.asList(elementNames));
+            String schemaValue = source.getNode("/xs:schema", nsMap, String.class);
+            externalSchemasCache.add(schemaValue);
+        }
     }
 
     public void setUseJaxbContextForQnames(boolean checkJaxbOnly) {

http://git-wip-us.apache.org/repos/asf/cxf/blob/c65c7b5f/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/datasource/TestProvider.java
----------------------------------------------------------------------
diff --git a/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/datasource/TestProvider.java b/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/datasource/TestProvider.java
index d3185a4..46e558a 100644
--- a/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/datasource/TestProvider.java
+++ b/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/datasource/TestProvider.java
@@ -66,11 +66,12 @@ public class TestProvider extends AbstractProvider<DataSource> implements Provid
             ByteArrayOutputStream baos = new ByteArrayOutputStream();
             IOUtils.copy(req.getInputStream(), baos);
             LOG.info("body [" + new String(baos.toByteArray())  + "]");
-            ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
-            msg = "<ok/>";
+            try (ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray())) {
+                msg = "<ok/>";
 
-            MimeMultipart multipart = DataSourceProviderTest.readAttachmentParts(req.getContentType(), bais);
-            LOG.info("found " + multipart.getCount() + " parts");
+                MimeMultipart multipart = DataSourceProviderTest.readAttachmentParts(req.getContentType(), bais);
+                LOG.info("found " + multipart.getCount() + " parts");
+            }
             return new ByteArrayDataSource(baos.toByteArray(), req.getContentType());
         } catch (Exception e) {
             e.printStackTrace();

http://git-wip-us.apache.org/repos/asf/cxf/blob/c65c7b5f/tools/common/src/main/java/org/apache/cxf/tools/util/ToolsStaxUtils.java
----------------------------------------------------------------------
diff --git a/tools/common/src/main/java/org/apache/cxf/tools/util/ToolsStaxUtils.java b/tools/common/src/main/java/org/apache/cxf/tools/util/ToolsStaxUtils.java
index 2806f26..2a5a35e 100644
--- a/tools/common/src/main/java/org/apache/cxf/tools/util/ToolsStaxUtils.java
+++ b/tools/common/src/main/java/org/apache/cxf/tools/util/ToolsStaxUtils.java
@@ -45,56 +45,57 @@ public final class ToolsStaxUtils {
         List<Tag> tags = new ArrayList<Tag>();
         List<String> ignoreEmptyTags = Arrays.asList(new String[]{"sequence"});
 
-        InputStream is = new BufferedInputStream(new FileInputStream(source));
-        XMLStreamReader reader = StaxUtils.createXMLStreamReader(is);
-        Tag newTag = null;
-        int count = 0;
-        QName checkingPoint = null;
-        
-        Stack<Tag> stack = new Stack<Tag>();
+        try (InputStream is = new BufferedInputStream(new FileInputStream(source))) {
+            XMLStreamReader reader = StaxUtils.createXMLStreamReader(is);
+            Tag newTag = null;
+            int count = 0;
+            QName checkingPoint = null;
 
-        while (reader.hasNext()) {
-            int event = reader.next();
+            Stack<Tag> stack = new Stack<Tag>();
 
-            if (checkingPoint != null) {
-                count++;
-            }
+            while (reader.hasNext()) {
+                int event = reader.next();
 
-            if (event == XMLStreamReader.START_ELEMENT) {
-                newTag = new Tag();
-                newTag.setName(reader.getName());
-
-                if (ignoreEmptyTags.contains(reader.getLocalName())) {
-                    checkingPoint = reader.getName();
+                if (checkingPoint != null) {
+                    count++;
                 }
 
-                for (int i = 0; i < reader.getAttributeCount(); i++) {
-                    newTag.getAttributes().put(reader.getAttributeName(i), 
-                                               reader.getAttributeValue(i));
+                if (event == XMLStreamReader.START_ELEMENT) {
+                    newTag = new Tag();
+                    newTag.setName(reader.getName());
+
+                    if (ignoreEmptyTags.contains(reader.getLocalName())) {
+                        checkingPoint = reader.getName();
+                    }
+
+                    for (int i = 0; i < reader.getAttributeCount(); i++) {
+                        newTag.getAttributes().put(reader.getAttributeName(i), 
+                                reader.getAttributeValue(i));
+                    }
+                    stack.push(newTag);
+                }
+                if (event == XMLStreamReader.CHARACTERS) {
+                    newTag.setText(reader.getText());
                 }
-                stack.push(newTag);
-            }
-            if (event == XMLStreamReader.CHARACTERS) {
-                newTag.setText(reader.getText());
-            }
 
-            if (event == XMLStreamReader.END_ELEMENT) {
-                Tag startTag = stack.pop();
+                if (event == XMLStreamReader.END_ELEMENT) {
+                    Tag startTag = stack.pop();
 
-                if (checkingPoint != null && checkingPoint.equals(reader.getName())) {
-                    if (count == 1) {
-                        //Tag is empty, and it's in the ignore collection, so we just skip this tag
+                    if (checkingPoint != null && checkingPoint.equals(reader.getName())) {
+                        if (count == 1) {
+                            //Tag is empty, and it's in the ignore collection, so we just skip this tag
+                        } else {
+                            tags.add(startTag);
+                        }
+                        count = 0;
+                        checkingPoint = null;
                     } else {
                         tags.add(startTag);
                     }
-                    count = 0;
-                    checkingPoint = null;
-                } else {
-                    tags.add(startTag);
                 }
             }
+            reader.close();
         }
-        reader.close();
         return tags;
     }
 
@@ -103,14 +104,16 @@ public final class ToolsStaxUtils {
     }
 
     public static Tag getTagTree(final File source, final List<String> ignoreAttr) throws Exception {
-        InputStream is = new BufferedInputStream(new FileInputStream(source));
-        return getTagTree(is, ignoreAttr, null);
+        try (InputStream is = new BufferedInputStream(new FileInputStream(source))) {
+            return getTagTree(is, ignoreAttr, null);
+        }
     }
     public static Tag getTagTree(final File source,
                                  final List<String> ignoreAttr,
                                  Map<QName, Set<String>> types) throws Exception {
-        InputStream is = new BufferedInputStream(new FileInputStream(source));
-        return getTagTree(is, ignoreAttr, types);        
+        try (InputStream is = new BufferedInputStream(new FileInputStream(source))) {
+            return getTagTree(is, ignoreAttr, types);        
+        }
     }    
     public static Tag getTagTree(final InputStream is,
                                  final List<String> ignoreAttr,
@@ -179,4 +182,4 @@ public final class ToolsStaxUtils {
         return a != null && a.contains(attributeName.getLocalPart());
     }
 
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/cxf/blob/c65c7b5f/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/WrapperBeanGeneratorTest.java
----------------------------------------------------------------------
diff --git a/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/WrapperBeanGeneratorTest.java b/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/WrapperBeanGeneratorTest.java
index 748d517..cd12311 100644
--- a/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/WrapperBeanGeneratorTest.java
+++ b/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/generator/wsdl11/WrapperBeanGeneratorTest.java
@@ -20,14 +20,13 @@
 package org.apache.cxf.tools.java2wsdl.generator.wsdl11;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.lang.reflect.Field;
 import java.net.URL;
 import java.net.URLClassLoader;
+import java.nio.file.Files;
 
 import javax.xml.bind.annotation.XmlList;
 
-import org.apache.cxf.helpers.IOUtils;
 import org.apache.cxf.service.model.ServiceInfo;
 import org.apache.cxf.tools.common.ProcessorTestBase;
 import org.apache.cxf.tools.common.ToolConstants;
@@ -77,7 +76,7 @@ public class WrapperBeanGeneratorTest extends ProcessorTestBase {
         String pkgBase = "org/apache/cxf";
         File requestWrapperClass = new File(output, pkgBase + "/EchoDataBean.java");
         assertTrue(requestWrapperClass.exists());
-        String contents = IOUtils.toString(new FileInputStream(requestWrapperClass));
+        String contents = new String(Files.readAllBytes(requestWrapperClass.toPath()));
         assertTrue(contents.indexOf("org.apache.cxf.tools.fortest.withannotation.doc") != -1);
         
         File responseWrapperClass = new File(output, pkgBase + "/EchoDataBeanResponse.java");
@@ -103,12 +102,12 @@ public class WrapperBeanGeneratorTest extends ProcessorTestBase {
         String pkgBase = "org/apache/cxf/tools/fortest/withannotation/doc/jaxws";
         File requestWrapperClass = new File(output, pkgBase + "/SayIntArray.java");
         assertTrue(requestWrapperClass.exists());
-        String contents = IOUtils.toString(new FileInputStream(requestWrapperClass));
+        String contents = new String(Files.readAllBytes(requestWrapperClass.toPath()));
         assertTrue(contents.indexOf("int[]") != -1);
         
         File responseWrapperClass = new File(output, pkgBase + "/SayIntArrayResponse.java");
         assertTrue(responseWrapperClass.exists());
-        contents = IOUtils.toString(new FileInputStream(responseWrapperClass));
+        contents = new String(Files.readAllBytes(responseWrapperClass.toPath()));
         assertTrue(contents.indexOf("_return") != -1);
         
         requestWrapperClass = new File(output, pkgBase + "/SayStringArray.java");
@@ -120,7 +119,7 @@ public class WrapperBeanGeneratorTest extends ProcessorTestBase {
         assertTrue(requestWrapperClass.exists());
         responseWrapperClass = new File(output, pkgBase + "/SayTestDataBeanArrayResponse.java");
         assertTrue(responseWrapperClass.exists());
-        contents = IOUtils.toString(new FileInputStream(requestWrapperClass));
+        contents = new String(Files.readAllBytes(requestWrapperClass.toPath()));
         assertTrue(contents.indexOf("org.apache.cxf.tools.fortest.withannotation.doc.TestDataBean[]") != -1);
     }
     
@@ -154,12 +153,12 @@ public class WrapperBeanGeneratorTest extends ProcessorTestBase {
         String pkgBase = "org/apache/cxf";
         File requestWrapperClass = new File(output, pkgBase + "/EchoGeneric.java");
         assertTrue(requestWrapperClass.exists());
-        String contents = IOUtils.toString(new FileInputStream(requestWrapperClass));
+        String contents = new String(Files.readAllBytes(requestWrapperClass.toPath()));
         assertTrue(contents.indexOf("public java.util.List<java.lang.String> get") != -1);
         
         File responseWrapperClass = new File(output, pkgBase + "/EchoGenericResponse.java");
         assertTrue(responseWrapperClass.exists());
-        contents = IOUtils.toString(new FileInputStream(responseWrapperClass));
+        contents = new String(Files.readAllBytes(responseWrapperClass.toPath()));
         assertTrue(contents.indexOf("public java.util.List<java.lang.String> getReturn()") != -1);
     }
     

http://git-wip-us.apache.org/repos/asf/cxf/blob/c65c7b5f/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/JaxwsServiceBuilderTest.java
----------------------------------------------------------------------
diff --git a/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/JaxwsServiceBuilderTest.java b/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/JaxwsServiceBuilderTest.java
index a97c3ea..009fbcf 100644
--- a/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/JaxwsServiceBuilderTest.java
+++ b/tools/javato/ws/src/test/java/org/apache/cxf/tools/java2wsdl/processor/internal/jaxws/JaxwsServiceBuilderTest.java
@@ -20,8 +20,8 @@
 package org.apache.cxf.tools.java2wsdl.processor.internal.jaxws;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.net.URI;
+import java.nio.file.Files;
 import java.util.Collection;
 
 import javax.xml.namespace.QName;
@@ -29,7 +29,6 @@ import javax.xml.namespace.QName;
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusFactory;
 import org.apache.cxf.common.jaxb.JAXBContextCache;
-import org.apache.cxf.helpers.IOUtils;
 import org.apache.cxf.jaxws.JaxwsServiceBuilder;
 import org.apache.cxf.service.model.BindingInfo;
 import org.apache.cxf.service.model.ServiceInfo;
@@ -307,7 +306,7 @@ public class JaxwsServiceBuilderTest extends ProcessorTestBase {
         generator.generate(output);
         assertTrue(output.exists());
 
-        String s = IOUtils.toString(new FileInputStream(output));
+        String s = new String(Files.readAllBytes(output.toPath()));
         assertTrue(s.indexOf("EchoPort") != -1);
         URI expectedFile = this.getClass()
             .getResource("expected/expected_rpclist_no_sei.wsdl").toURI();
@@ -344,18 +343,18 @@ public class JaxwsServiceBuilderTest extends ProcessorTestBase {
         File schema = new File(output, "HelloService_schema1.xsd");
         assertTrue(schema.exists());
 
-        String s = IOUtils.toString(new FileInputStream(wsdl));
+        String s = new String(Files.readAllBytes(wsdl.toPath()));
         assertTrue(s.indexOf("<wsdl:import namespace=\"http://foo.com/HelloWorld\" "
                              + "location=\"HelloWorld.wsdl\">") != -1);
         assertTrue(s.indexOf("targetNamespace=\"http://foo.com/HelloWorldService\"") != -1);
 
-        s = IOUtils.toString(new FileInputStream(logical));
+        s = new String(Files.readAllBytes(logical.toPath()));
 
         assertTrue(s.indexOf("<import namespace=\"http://foo.com/HelloWorld\"") != -1);
         assertTrue(s.indexOf("schemaLocation=\"HelloService_schema1.xsd\"/>") != -1);
         assertTrue(s.indexOf("targetNamespace=\"http://foo.com/HelloWorld\"") != -1);
 
-        s = IOUtils.toString(new FileInputStream(schema));
+        s = new String(Files.readAllBytes(schema.toPath()));
         assertTrue(s.indexOf("targetNamespace=\"http://foo.com/HelloWorld\"") != -1);
 
         generator.setAllowImports(oldSetting);