You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2015/06/07 11:48:08 UTC

svn commit: r1684011 - in /webservices/axiom/trunk: aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/ axiom-api/src/main/java/org/apache/axiom/om/impl/ testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/

Author: veithen
Date: Sun Jun  7 09:48:08 2015
New Revision: 1684011

URL: http://svn.apache.org/r1684011
Log:
Enable direct writing to OutputStream from OMDataSource implementations when serializing without specifying an OMOutputFormat. Also fixed a related issue in MTOMXMLStreamWriter.

Modified:
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomContainerSupport.aj
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java
    webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomContainerSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomContainerSupport.aj?rev=1684011&r1=1684010&r2=1684011&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomContainerSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomContainerSupport.aj Sun Jun  7 09:48:08 2015
@@ -248,12 +248,7 @@ public aspect AxiomContainerSupport {
     }
 
     public final void AxiomContainer.serialize(OutputStream output) throws XMLStreamException {
-        XMLStreamWriter xmlStreamWriter = StAXUtils.createXMLStreamWriter(output);
-        try {
-            serialize(xmlStreamWriter);
-        } finally {
-            xmlStreamWriter.close();
-        }
+        serialize(output, new OMOutputFormat());
     }
 
     public final void AxiomContainer.serialize(Writer writer) throws XMLStreamException {
@@ -266,12 +261,7 @@ public aspect AxiomContainerSupport {
     }
 
     public final void AxiomContainer.serializeAndConsume(OutputStream output) throws XMLStreamException {
-        XMLStreamWriter xmlStreamWriter = StAXUtils.createXMLStreamWriter(output);
-        try {
-            serializeAndConsume(xmlStreamWriter);
-        } finally {
-            xmlStreamWriter.close();
-        }
+        serializeAndConsume(output, new OMOutputFormat());
     }
 
     public final void AxiomContainer.serializeAndConsume(Writer writer) throws XMLStreamException {

Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java?rev=1684011&r1=1684010&r2=1684011&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java Sun Jun  7 09:48:08 2015
@@ -218,7 +218,10 @@ public class MTOMXMLStreamWriter impleme
     public void close() throws XMLStreamException {
         // TODO: we should probably call flush if the attachments have not been written yet
         log.debug("close");
-        xmlWriter.close();
+        // Only call flush because data may have been written to the underlying output stream
+        // without ever calling writeStartElement. In this case, close would trigger an
+        // exception.
+        xmlWriter.flush();
     }
 
     /**

Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java?rev=1684011&r1=1684010&r2=1684011&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java Sun Jun  7 09:48:08 2015
@@ -569,6 +569,10 @@ public class OMTestSuiteBuilder extends
                 }
             }
             addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerializeModifiedOMSEWithNonDestructiveDataSource(metaFactory));
+            for (SerializationStrategy ss : getInstances(SerializationStrategy.class)) {
+                addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerializeOMDataSourceWritingToOutputStream(metaFactory, ss, false));
+                addTest(new org.apache.axiom.ts.om.sourcedelement.TestSerializeOMDataSourceWritingToOutputStream(metaFactory, ss, true));
+            }
             addTest(new org.apache.axiom.ts.om.sourcedelement.TestSetDataSource(metaFactory));
             addTest(new org.apache.axiom.ts.om.sourcedelement.TestSetDataSourceOnAlreadyExpandedElement(metaFactory));
             addTest(new org.apache.axiom.ts.om.sourcedelement.TestSetLocalName(metaFactory, false));