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


Reply via email to