Author: veithen
Date: Sun Feb 10 18:54:56 2013
New Revision: 1444582
URL: http://svn.apache.org/r1444582
Log:
Switched to the new SAX serialization code.
Added:
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/ContentHandlerWriter.java
- copied, changed from r1444567,
webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/serialize/ContentHandlerWriter.java
Modified:
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMDocumentHelper.java
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/Serializer.java
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/SAXSerializer.java
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/stax/StAXSerializer.java
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ParentNode.java
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java
webservices/axiom/trunk/modules/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java
webservices/axiom/trunk/modules/axiom-dom/src/test/java/org/apache/axiom/soap/impl/dom/SOAPImplementationTest.java
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMDocumentImpl.java
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java
webservices/axiom/trunk/modules/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java
webservices/axiom/trunk/modules/axiom-impl/src/test/java/org/apache/axiom/soap/impl/llom/SOAPImplementationTest.java
Modified:
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMDocumentHelper.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMDocumentHelper.java?rev=1444582&r1=1444581&r2=1444582&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMDocumentHelper.java
(original)
+++
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMDocumentHelper.java
Sun Feb 10 18:54:56 2013
@@ -53,5 +53,6 @@ public class OMDocumentHelper {
}
serializer.serializeChildren(document, format, cache);
+ serializer.writeEndDocument();
}
}
Modified:
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/Serializer.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/Serializer.java?rev=1444582&r1=1444581&r2=1444582&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/Serializer.java
(original)
+++
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/Serializer.java
Sun Feb 10 18:54:56 2013
@@ -78,9 +78,9 @@ public abstract class Serializer {
OMAttribute attr = (OMAttribute)it.next();
ns = attr.getNamespace();
if (ns == null) {
- processAttribute("", "", attr.getLocalName(),
attr.getAttributeValue());
+ processAttribute("", "", attr.getLocalName(),
attr.getAttributeType(), attr.getAttributeValue());
} else {
- processAttribute(ns.getPrefix(), ns.getNamespaceURI(),
attr.getLocalName(), attr.getAttributeValue());
+ processAttribute(ns.getPrefix(), ns.getNamespaceURI(),
attr.getLocalName(), attr.getAttributeType(), attr.getAttributeValue());
}
}
finishStartElement();
@@ -112,6 +112,7 @@ public abstract class Serializer {
normalize(reader.getAttributePrefix(i)),
normalize(reader.getAttributeNamespace(i)),
reader.getAttributeLocalName(i),
+ reader.getAttributeType(i),
reader.getAttributeValue(i));
}
finishStartElement();
@@ -161,7 +162,7 @@ public abstract class Serializer {
addNamespaceIfNecessary(prefix, namespaceURI, false);
}
- private void processAttribute(String prefix, String namespaceURI, String
localName, String value) throws OutputException {
+ private void processAttribute(String prefix, String namespaceURI, String
localName, String type, String value) throws OutputException {
addNamespaceIfNecessary(prefix, namespaceURI, true);
if (contextElement != null && namespaceURI.equals(XSI_URI) &&
localName.equals(XSI_LOCAL_NAME)) {
String trimmedValue = value.trim();
@@ -173,7 +174,7 @@ public abstract class Serializer {
}
}
}
- addAttribute(prefix, namespaceURI, localName, value);
+ addAttribute(prefix, namespaceURI, localName, type, value);
}
/**
@@ -347,7 +348,22 @@ public abstract class Serializer {
*/
protected abstract void addNamespace(String prefix, String namespaceURI)
throws OutputException;
- protected abstract void addAttribute(String prefix, String namespaceURI,
String localName, String value) throws OutputException;
+ /**
+ * Add the given attribute to the element.
+ *
+ * @param prefix
+ * the namespace prefix of the attribute; never
<code>null</code>
+ * @param namespaceURI
+ * the namespace URI or the attribute; never <code>null</code>
+ * @param localName
+ * the local name of the attribute; never <code>null</code>
+ * @param type
+ * the attribute type (e.g. <tt>CDATA</tt>); never
<code>null</code>
+ * @param value
+ * the value of the attribute; never <code>null</code>
+ * @throws OutputException
+ */
+ protected abstract void addAttribute(String prefix, String namespaceURI,
String localName, String type, String value) throws OutputException;
protected abstract void finishStartElement() throws OutputException;
@@ -379,4 +395,6 @@ public abstract class Serializer {
* if an error occurs while reading from the data source
*/
protected abstract void serializePushOMDataSource(OMDataSource dataSource)
throws OutputException;
+
+ public abstract void writeEndDocument() throws OutputException;
}
Copied:
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/ContentHandlerWriter.java
(from r1444567,
webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/serialize/ContentHandlerWriter.java)
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/ContentHandlerWriter.java?p2=webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/ContentHandlerWriter.java&p1=webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/serialize/ContentHandlerWriter.java&r1=1444567&r2=1444582&rev=1444582&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/serialize/ContentHandlerWriter.java
(original)
+++
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/ContentHandlerWriter.java
Sun Feb 10 18:54:56 2013
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.axiom.om.impl.serialize;
+package org.apache.axiom.om.impl.common.serializer.push.sax;
import java.io.IOException;
import java.io.Writer;
Modified:
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/SAXSerializer.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/SAXSerializer.java?rev=1444582&r1=1444581&r2=1444582&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/SAXSerializer.java
(original)
+++
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/SAXSerializer.java
Sun Feb 10 18:54:56 2013
@@ -18,6 +18,7 @@
*/
package org.apache.axiom.om.impl.common.serializer.push.sax;
+import java.io.IOException;
import java.util.Stack;
import javax.activation.DataHandler;
@@ -28,6 +29,7 @@ import org.apache.axiom.om.OMNode;
import org.apache.axiom.om.OMSerializable;
import org.apache.axiom.om.impl.common.serializer.push.OutputException;
import org.apache.axiom.om.impl.common.serializer.push.Serializer;
+import org.apache.axiom.util.base64.Base64EncodingWriterOutputStream;
import org.apache.axiom.util.namespace.ScopedNamespaceContext;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
@@ -38,6 +40,8 @@ public class SAXSerializer extends Seria
private final ContentHandler contentHandler;
private final LexicalHandler lexicalHandler;
private final ScopedNamespaceContext nsContext = new
ScopedNamespaceContext();
+ private boolean startDocumentWritten;
+ private boolean autoStartDocument;
private int depth;
private Stack elementNameStack = new Stack();
private String elementURI;
@@ -55,31 +59,52 @@ public class SAXSerializer extends Seria
return nsContext.getNamespaceURI(prefix).equals(namespace);
}
+ private static String getQName(String prefix, String localName) {
+ if (prefix.length() == 0) {
+ return localName;
+ } else {
+ return prefix + ":" + localName;
+ }
+ }
+
+ private void writeStartDocument() throws OutputException {
+ try {
+ contentHandler.startDocument();
+ startDocumentWritten = true;
+ } catch (SAXException ex) {
+ throw new SAXOutputException(ex);
+ }
+ }
+
public void writeStartDocument(String version) throws OutputException {
- // TODO
- throw new UnsupportedOperationException();
+ writeStartDocument();
}
public void writeStartDocument(String encoding, String version) throws
OutputException {
- // TODO
- throw new UnsupportedOperationException();
+ writeStartDocument();
}
- public void writeDTD(String rootName, String publicId, String systemId,
String internalSubset)
- throws OutputException {
- // TODO
- throw new UnsupportedOperationException();
+ public void writeDTD(String rootName, String publicId, String systemId,
String internalSubset) throws OutputException {
+ if (lexicalHandler != null) {
+ try {
+ lexicalHandler.startDTD(rootName, publicId, systemId);
+ lexicalHandler.endDTD();
+ } catch (SAXException ex) {
+ throw new SAXOutputException(ex);
+ }
+ }
}
protected void beginStartElement(String prefix, String namespaceURI,
String localName) throws OutputException {
+ if (!startDocumentWritten) {
+ writeStartDocument();
+ autoStartDocument = true;
+ }
elementURI = namespaceURI;
elementLocalName = localName;
- if (prefix.length() == 0) {
- elementQName = localName;
- } else {
- elementQName = prefix + ":" + localName;
- }
+ elementQName = getQName(prefix, localName);
nsContext.startScope();
+ depth++;
}
protected void addNamespace(String prefix, String namespaceURI) throws
OutputException {
@@ -92,9 +117,8 @@ public class SAXSerializer extends Seria
// TODO: depending on the http://xml.org/sax/features/xmlns-uris
feature, we also need to add an attribute
}
- protected void addAttribute(String prefix, String namespaceURI, String
localName, String value) throws OutputException {
- // TODO
- throw new UnsupportedOperationException();
+ protected void addAttribute(String prefix, String namespaceURI, String
localName, String type, String value) throws OutputException {
+ attributes.addAttribute(namespaceURI, localName, getQName(prefix,
localName), type, value);
}
protected void finishStartElement() throws OutputException {
@@ -121,6 +145,10 @@ public class SAXSerializer extends Seria
for (int i=nsContext.getBindingsCount()-1;
i>=nsContext.getFirstBindingInCurrentScope(); i--) {
contentHandler.endPrefixMapping(nsContext.getPrefix(i));
}
+ nsContext.endScope();
+ if (--depth == 0 && autoStartDocument) {
+ contentHandler.endDocument();
+ }
} catch (SAXException ex) {
throw new SAXOutputException(ex);
}
@@ -170,14 +198,28 @@ public class SAXSerializer extends Seria
}
public void writeEntityRef(String name) throws OutputException {
- // TODO
- throw new UnsupportedOperationException();
+ try {
+ contentHandler.skippedEntity(name);
+ } catch (SAXException ex) {
+ throw new SAXOutputException(ex);
+ }
}
- public void writeDataHandler(DataHandler dataHandler, String contentID,
boolean optimize)
- throws OutputException {
- // TODO
- throw new UnsupportedOperationException();
+ public void writeDataHandler(DataHandler dataHandler, String contentID,
boolean optimize) throws OutputException {
+ Base64EncodingWriterOutputStream out = new
Base64EncodingWriterOutputStream(new ContentHandlerWriter(contentHandler));
+ try {
+ dataHandler.writeTo(out);
+ out.complete();
+ } catch (IOException ex) {
+ Throwable cause = ex.getCause();
+ SAXException saxException;
+ if (cause instanceof SAXException) {
+ saxException = (SAXException)ex.getCause();
+ } else {
+ saxException = new SAXException(ex);
+ }
+ throw new SAXOutputException(saxException);
+ }
}
public void writeDataHandler(DataHandlerProvider dataHandlerProvider,
String contentID,
@@ -190,4 +232,12 @@ public class SAXSerializer extends Seria
// TODO
throw new UnsupportedOperationException();
}
+
+ public void writeEndDocument() throws OutputException {
+ try {
+ contentHandler.endDocument();
+ } catch (SAXException ex) {
+ throw new SAXOutputException(ex);
+ }
+ }
}
Modified:
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/stax/StAXSerializer.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/stax/StAXSerializer.java?rev=1444582&r1=1444581&r2=1444582&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/stax/StAXSerializer.java
(original)
+++
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/push/stax/StAXSerializer.java
Sun Feb 10 18:54:56 2013
@@ -106,7 +106,7 @@ public class StAXSerializer extends Seri
}
}
- protected void addAttribute(String prefix, String namespaceURI, String
localName, String value) throws OutputException {
+ protected void addAttribute(String prefix, String namespaceURI, String
localName, String type, String value) throws OutputException {
try {
writer.writeAttribute(prefix, namespaceURI, localName, value);
} catch (XMLStreamException ex) {
@@ -262,4 +262,8 @@ public class StAXSerializer extends Seri
throw new StAXOutputException(ex);
}
}
+
+ public void writeEndDocument() throws OutputException {
+ // TODO: the original StAX serialization code newer called
writeEndDocument; this is probably a mistake
+ }
}
Modified:
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ParentNode.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ParentNode.java?rev=1444582&r1=1444581&r2=1444582&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ParentNode.java
(original)
+++
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ParentNode.java
Sun Feb 10 18:54:56 2013
@@ -35,12 +35,13 @@ import org.apache.axiom.om.impl.common.O
import org.apache.axiom.om.impl.common.OMChildrenQNameIterator;
import org.apache.axiom.om.impl.common.OMContainerHelper;
import org.apache.axiom.om.impl.common.OMDescendantsIterator;
-import org.apache.axiom.om.impl.jaxp.OMSource;
+import org.apache.axiom.om.impl.common.serializer.push.sax.XMLReaderImpl;
import org.apache.axiom.om.impl.traverse.OMChildrenIterator;
import org.w3c.dom.DOMException;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamReader;
@@ -538,7 +539,7 @@ public abstract class ParentNode extends
}
public SAXSource getSAXSource(boolean cache) {
- return new OMSource((OMContainer)this);
+ return new SAXSource(new XMLReaderImpl((IContainer)this, cache), new
InputSource());
}
void notifyChildComplete() {
Modified:
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java?rev=1444582&r1=1444581&r2=1444582&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java
(original)
+++
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java
Sun Feb 10 18:54:56 2013
@@ -210,6 +210,7 @@ public class SOAPEnvelopeImpl extends SO
}
}
serializer.writeEndElement();
+ serializer.writeEndDocument();
}
public boolean hasFault() {
Modified:
webservices/axiom/trunk/modules/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java?rev=1444582&r1=1444581&r2=1444582&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java
(original)
+++
webservices/axiom/trunk/modules/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java
Sun Feb 10 18:54:56 2013
@@ -66,9 +66,6 @@ public class OMImplementationTest extend
// TODO: this is not supported yet
builder.exclude(TestGetXMLStreamReaderWithIncompleteDescendant.class,
"(cache=false)");
- // TODO: getSAXSource doesn't honor the cache flag yet
- builder.exclude(TestSerialize.class,
"(&(serializationStrategy=SAXSource)(cache=false))");
-
return builder.build();
}
}
Modified:
webservices/axiom/trunk/modules/axiom-dom/src/test/java/org/apache/axiom/soap/impl/dom/SOAPImplementationTest.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/test/java/org/apache/axiom/soap/impl/dom/SOAPImplementationTest.java?rev=1444582&r1=1444581&r2=1444582&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-dom/src/test/java/org/apache/axiom/soap/impl/dom/SOAPImplementationTest.java
(original)
+++
webservices/axiom/trunk/modules/axiom-dom/src/test/java/org/apache/axiom/soap/impl/dom/SOAPImplementationTest.java
Sun Feb 10 18:54:56 2013
@@ -52,7 +52,7 @@ public class SOAPImplementationTest exte
builder.exclude(TestSetValueFromQNameWithExistingValue.class);
// TODO: AXIOM-430
- builder.exclude(TestSerialize.class,
"(&(file=*/empty-header.xml)(|(serializationStrategy=OutputStream)(serializationStrategy=Writer)(serializationStrategy=XMLStreamWriter)))");
+ builder.exclude(TestSerialize.class,
"(&(file=*/empty-header.xml)(|(serializationStrategy=OutputStream)(serializationStrategy=Writer)(serializationStrategy=XMLStreamWriter)(serializationStrategy=SAXSource)))");
return builder.build();
}
Modified:
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMDocumentImpl.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMDocumentImpl.java?rev=1444582&r1=1444581&r2=1444582&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMDocumentImpl.java
(original)
+++
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMDocumentImpl.java
Sun Feb 10 18:54:56 2013
@@ -38,8 +38,9 @@ import org.apache.axiom.om.impl.common.O
import org.apache.axiom.om.impl.common.OMDocumentHelper;
import org.apache.axiom.om.impl.common.serializer.push.OutputException;
import org.apache.axiom.om.impl.common.serializer.push.Serializer;
-import org.apache.axiom.om.impl.jaxp.OMSource;
+import org.apache.axiom.om.impl.common.serializer.push.sax.XMLReaderImpl;
import org.apache.axiom.om.impl.traverse.OMChildrenIterator;
+import org.xml.sax.InputSource;
import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamReader;
@@ -328,7 +329,7 @@ public class OMDocumentImpl extends OMSe
}
public SAXSource getSAXSource(boolean cache) {
- return new OMSource(this);
+ return new SAXSource(new XMLReaderImpl(this, cache), new
InputSource());
}
public void build() {
Modified:
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java?rev=1444582&r1=1444581&r2=1444582&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java
(original)
+++
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java
Sun Feb 10 18:54:56 2013
@@ -47,7 +47,6 @@ import org.apache.axiom.om.impl.common.O
import org.apache.axiom.om.impl.common.serializer.push.OutputException;
import org.apache.axiom.om.impl.common.serializer.push.Serializer;
import org.apache.axiom.om.impl.common.serializer.push.sax.XMLReaderImpl;
-import org.apache.axiom.om.impl.jaxp.OMSource;
import org.apache.axiom.om.impl.traverse.OMChildrenIterator;
import org.apache.axiom.om.impl.util.EmptyIterator;
import org.apache.axiom.om.impl.util.OMSerializerUtil;
@@ -1017,8 +1016,7 @@ public class OMElementImpl extends OMNod
}
public SAXSource getSAXSource(boolean cache) {
-// return new SAXSource(new XMLReaderImpl(this, cache), new
InputSource());
- return new OMSource(this);
+ return new SAXSource(new XMLReaderImpl(this, cache), new
InputSource());
}
public void removeChildren() {
Modified:
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java?rev=1444582&r1=1444581&r2=1444582&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java
(original)
+++
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java
Sun Feb 10 18:54:56 2013
@@ -211,6 +211,7 @@ public class SOAPEnvelopeImpl extends SO
}
}
serializer.writeEndElement();
+ serializer.writeEndDocument();
if (!cache) {
// let's try to close the builder/parser here since we are now
done with the
// non-caching code block serializing the top-level SOAPEnvelope
element
Modified:
webservices/axiom/trunk/modules/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java?rev=1444582&r1=1444581&r2=1444582&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java
(original)
+++
webservices/axiom/trunk/modules/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java
Sun Feb 10 18:54:56 2013
@@ -52,7 +52,6 @@ public class OMImplementationTest extend
builder.exclude(TestDigest.class,
"(|(file=digest3.xml)(file=digest4.xml))");
// TODO: getSAXSource doesn't honor the cache flag yet
- builder.exclude(org.apache.axiom.ts.om.container.TestSerialize.class,
"(&(serializationStrategy=SAXSource)(cache=false))");
builder.exclude(org.apache.axiom.ts.om.sourcedelement.TestSerialize.class,
"(&(serializationStrategy=SAXSource)(cache=false))");
// TODO: the SAXSource returned by getSAXSource always expands
OMSourcedElements
Modified:
webservices/axiom/trunk/modules/axiom-impl/src/test/java/org/apache/axiom/soap/impl/llom/SOAPImplementationTest.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-impl/src/test/java/org/apache/axiom/soap/impl/llom/SOAPImplementationTest.java?rev=1444582&r1=1444581&r2=1444582&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-impl/src/test/java/org/apache/axiom/soap/impl/llom/SOAPImplementationTest.java
(original)
+++
webservices/axiom/trunk/modules/axiom-impl/src/test/java/org/apache/axiom/soap/impl/llom/SOAPImplementationTest.java
Sun Feb 10 18:54:56 2013
@@ -30,7 +30,7 @@ public class SOAPImplementationTest exte
SOAPTestSuiteBuilder builder = new SOAPTestSuiteBuilder(new
OMLinkedListMetaFactory(), true, true);
// TODO: AXIOM-430
- builder.exclude(TestSerialize.class,
"(&(file=*/empty-header.xml)(|(serializationStrategy=OutputStream)(serializationStrategy=Writer)(serializationStrategy=XMLStreamWriter)))");
+ builder.exclude(TestSerialize.class,
"(&(file=*/empty-header.xml)(|(serializationStrategy=OutputStream)(serializationStrategy=Writer)(serializationStrategy=XMLStreamWriter)(serializationStrategy=SAXSource)))");
return builder.build();
}