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));