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