Author: veithen
Date: Thu May 5 10:21:32 2016
New Revision: 1742396
URL: http://svn.apache.org/viewvc?rev=1742396&view=rev
Log:
Avoid instantiating Axiom implementation classes (MTOMXMLStreamWriter) directly.
Modified:
axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/message/JAXBDSContextTests.java
Modified:
axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/message/JAXBDSContextTests.java
URL:
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/message/JAXBDSContextTests.java?rev=1742396&r1=1742395&r2=1742396&view=diff
==============================================================================
---
axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/message/JAXBDSContextTests.java
(original)
+++
axis/axis2/java/core/trunk/modules/jaxws/test/org/apache/axis2/jaxws/message/JAXBDSContextTests.java
Thu May 5 10:21:32 2016
@@ -20,15 +20,22 @@
package org.apache.axis2.jaxws.message;
import junit.framework.TestCase;
+
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMException;
import org.apache.axiom.om.OMOutputFormat;
-import org.apache.axiom.om.impl.MTOMXMLStreamWriter;
+import org.apache.axiom.om.ds.AbstractPushOMDataSource;
import org.apache.axis2.datasource.jaxb.JAXBDSContext;
import org.apache.axis2.jaxws.unitTest.TestLogger;
import test.Data;
import test.ObjectFactory;
import javax.xml.bind.JAXBElement;
+import javax.xml.bind.JAXBException;
import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
import java.io.ByteArrayOutputStream;
import java.util.TreeSet;
@@ -48,7 +55,7 @@ public class JAXBDSContextTests extends
// Create a JAXBDSContext for the package containing Data
TreeSet<String> packages = new TreeSet<String>();
packages.add(Data.class.getPackage().getName());
- JAXBDSContext context = new JAXBDSContext(packages);
+ final JAXBDSContext context = new JAXBDSContext(packages);
TestLogger.logger.debug(context.getJAXBContext().toString());
@@ -62,21 +69,31 @@ public class JAXBDSContextTests extends
// Create a JAXBElement
QName qName = new QName("urn://sample", "data");
- JAXBElement<Data> jaxbElement = new JAXBElement<Data>(qName,
Data.class, value);
+ final JAXBElement<Data> jaxbElement = new JAXBElement<Data>(qName,
Data.class, value);
// Create a writer
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OMOutputFormat format = new OMOutputFormat();
format.setDoOptimize(true);
- MTOMXMLStreamWriter writer = new MTOMXMLStreamWriter(baos, format);
// Marshal the value
- writer.writeStartDocument();
- writer.writeStartElement("root");
- context.marshal(jaxbElement, writer);
- writer.writeEndElement();
- writer.writeEndDocument();
- writer.flush();
+ OMAbstractFactory.getOMFactory().createOMElement(new
AbstractPushOMDataSource() {
+ @Override
+ public void serialize(XMLStreamWriter writer) throws
XMLStreamException {
+ writer.writeStartElement("root");
+ try {
+ context.marshal(jaxbElement, writer);
+ } catch (JAXBException ex) {
+ throw new OMException(ex);
+ }
+ writer.writeEndElement();
+ }
+
+ @Override
+ public boolean isDestructiveWrite() {
+ return false;
+ }
+ }).serialize(baos, format);
assertTrue(baos.toString().indexOf("Hello World") > 0);
assertTrue(baos.toString().indexOf("</root>") > 0);
@@ -92,7 +109,7 @@ public class JAXBDSContextTests extends
// Create a JAXBDSContext for the package containing Data
TreeSet<String> packages = new TreeSet<String>();
packages.add(Data.class.getPackage().getName());
- JAXBDSContext context = new JAXBDSContext(packages);
+ final JAXBDSContext context = new JAXBDSContext(packages);
TestLogger.logger.debug(context.getJAXBContext().toString());
@@ -114,20 +131,31 @@ public class JAXBDSContextTests extends
// an OccurrenceArray
QName qName = new QName("urn://sample", "data");
OccurrenceArray occurrenceArray = new OccurrenceArray(value);
- JAXBElement jaxbElement = new JAXBElement(qName, Data[].class,
occurrenceArray);
+ final JAXBElement jaxbElement = new JAXBElement(qName, Data[].class,
occurrenceArray);
// Create a writer
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OMOutputFormat format = new OMOutputFormat();
format.setDoOptimize(true);
- MTOMXMLStreamWriter writer = new MTOMXMLStreamWriter(baos, format);
// Marshal the value
- writer.writeStartElement("root");
- context.marshal(jaxbElement, writer);
- writer.writeEndElement();
-
- writer.flush();
+ OMAbstractFactory.getOMFactory().createOMElement(new
AbstractPushOMDataSource() {
+ @Override
+ public void serialize(XMLStreamWriter writer) throws
XMLStreamException {
+ writer.writeStartElement("root");
+ try {
+ context.marshal(jaxbElement, writer);
+ } catch (JAXBException ex) {
+ throw new OMException(ex);
+ }
+ writer.writeEndElement();
+ }
+
+ @Override
+ public boolean isDestructiveWrite() {
+ return false;
+ }
+ }).serialize(baos, format);
String outputText = baos.toString();
String subText = outputText;