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 2016/02/26 19:21:16 UTC

svn commit: r1732530 [2/3] - in /webservices/axiom/branches/maven-site-plugin-3.5: ./ aspects/core-aspects/ aspects/core-aspects/src/main/java/org/apache/axiom/core/ aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/ aspects/core-aspe...

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerSupport.aj?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerSupport.aj (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerSupport.aj Fri Feb 26 18:21:15 2016
@@ -31,13 +31,17 @@ import javax.xml.transform.sax.SAXSource
 
 import org.apache.axiom.core.Axis;
 import org.apache.axiom.core.Builder;
+import org.apache.axiom.core.CoreElement;
 import org.apache.axiom.core.CoreModelException;
 import org.apache.axiom.core.CoreNSAwareElement;
 import org.apache.axiom.core.CoreNode;
 import org.apache.axiom.core.ElementMatcher;
 import org.apache.axiom.core.Mapper;
+import org.apache.axiom.core.stream.NamespaceRepairingFilterHandler;
 import org.apache.axiom.core.stream.StreamException;
 import org.apache.axiom.core.stream.XmlHandler;
+import org.apache.axiom.core.stream.sax.XmlHandlerContentHandler;
+import org.apache.axiom.core.stream.stax.XMLStreamWriterNamespaceContextProvider;
 import org.apache.axiom.om.NodeUnavailableException;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMException;
@@ -53,11 +57,12 @@ import org.apache.axiom.om.impl.common.A
 import org.apache.axiom.om.impl.common.AxiomSemantics;
 import org.apache.axiom.om.impl.common.NamespaceURIInterningXMLStreamReaderWrapper;
 import org.apache.axiom.om.impl.common.OMChildrenQNameIterator;
-import org.apache.axiom.om.impl.common.OMContentHandler;
 import org.apache.axiom.om.impl.common.SAXResultContentHandler;
 import org.apache.axiom.om.impl.common.builder.StAXHelper;
 import org.apache.axiom.om.impl.common.serializer.pull.OMXMLStreamReaderExAdapter;
 import org.apache.axiom.om.impl.common.serializer.pull.PullSerializer;
+import org.apache.axiom.om.impl.common.serializer.push.XmlDeclarationRewriterHandler;
+import org.apache.axiom.om.impl.common.serializer.push.XsiTypeFilterHandler;
 import org.apache.axiom.om.impl.common.serializer.push.sax.XMLReaderImpl;
 import org.apache.axiom.om.impl.common.serializer.push.stax.StAXSerializer;
 import org.apache.axiom.om.impl.intf.AxiomChildNode;
@@ -122,10 +127,6 @@ public aspect AxiomContainerSupport {
         return reader;
     }
     
-    public void AxiomContainer.addChild(OMNode omNode) {
-        addChild(omNode, false);
-    }
-
     public final AxiomChildNode AxiomContainer.prepareNewChild(OMNode omNode) {
         AxiomChildNode child;
         // Careful here: if the child was created by another Axiom implementation, it doesn't
@@ -139,17 +140,10 @@ public aspect AxiomContainerSupport {
         return child;
     }
 
-    public void AxiomContainer.addChild(OMNode omNode, boolean fromBuilder) {
-        AxiomChildNode child;
-        if (fromBuilder) {
-            // If the new child was provided by the builder, we know that it was created by
-            // the same factory
-            child = (AxiomChildNode)omNode;
-        } else {
-            child = prepareNewChild(omNode);
-        }
+    public void AxiomContainer.addChild(OMNode omNode) {
+        AxiomChildNode child = prepareNewChild(omNode);
         
-        coreAppendChild(child, fromBuilder);
+        coreAppendChild(child, false);
 
         // For a normal OMNode, the incomplete status is
         // propogated up the tree.  
@@ -158,7 +152,7 @@ public aspect AxiomContainerSupport {
         // So only propogate the incomplete setting if this
         // is a normal OMNode
         // TODO: this is crap and needs to be reviewed
-        if (!fromBuilder && !child.isComplete() && 
+        if (!child.isComplete() && 
             !(child instanceof OMSourcedElement)) {
             setComplete(false);
         }
@@ -267,98 +261,97 @@ public aspect AxiomContainerSupport {
     }
 
     public final SAXResult AxiomContainer.getSAXResult() {
-        OMContentHandler handler = new OMContentHandler(new SAXResultContentHandler(this), true);
+        XmlHandlerContentHandler handler = new XmlHandlerContentHandler(new SAXResultContentHandler(this), true);
         SAXResult result = new SAXResult();
         result.setHandler(handler);
         result.setLexicalHandler(handler);
         return result;
     }
 
-    public final void AxiomContainer.serialize(OutputStream output) throws XMLStreamException {
-        serialize(output, new OMOutputFormat());
+    private XmlHandler AxiomContainer.createSerializer(MTOMXMLStreamWriter writer, boolean useExistingNamespaceContext) {
+        StAXSerializer serializer = new StAXSerializer(writer);
+        XmlHandler handler = new XmlDeclarationRewriterHandler(serializer, writer.getOutputFormat());
+        CoreElement contextElement = getContextElement();
+        if (contextElement != null) {
+            handler = new XsiTypeFilterHandler(handler, contextElement);
+        }
+        return new NamespaceRepairingFilterHandler(handler,
+                useExistingNamespaceContext ? new XMLStreamWriterNamespaceContextProvider(writer) : null,
+                true);
+    }
+    
+    public abstract CoreElement AxiomContainer.getContextElement();
+    
+    public final void AxiomContainer.serialize(XMLStreamWriter xmlWriter, boolean cache) throws XMLStreamException {
+        // If the input xmlWriter is not an MTOMXMLStreamWriter, then wrapper it
+        MTOMXMLStreamWriter writer = xmlWriter instanceof MTOMXMLStreamWriter ?
+                (MTOMXMLStreamWriter) xmlWriter : 
+                    new MTOMXMLStreamWriter(xmlWriter);
+        try {
+            internalSerialize(createSerializer(writer, true), cache);
+        } catch (StreamException ex) {
+            throw AxiomExceptionTranslator.toXMLStreamException(ex);
+        }
+        writer.flush();
     }
 
-    public final void AxiomContainer.serialize(Writer writer) throws XMLStreamException {
-        XMLStreamWriter xmlStreamWriter = StAXUtils.createXMLStreamWriter(writer);
+    private void AxiomContainer.serialize(MTOMXMLStreamWriter writer, boolean cache) throws XMLStreamException {
         try {
-            serialize(xmlStreamWriter);
+            try {
+                internalSerialize(createSerializer(writer, false), cache);
+            } catch (StreamException ex) {
+                throw AxiomExceptionTranslator.toXMLStreamException(ex);
+            }
         } finally {
-            xmlStreamWriter.close();
+            writer.close();
         }
     }
+    
+    private void AxiomContainer.serialize(Writer writer, boolean cache) throws XMLStreamException {
+        serialize(new MTOMXMLStreamWriter(StAXUtils.createXMLStreamWriter(writer)), cache);
+    }
+
+    private void AxiomContainer.serialize(OutputStream output, OMOutputFormat format, boolean cache) throws XMLStreamException {
+        serialize(new MTOMXMLStreamWriter(output, format, cache), cache);
+    }
+
+    private void AxiomContainer.serialize(Writer writer, OMOutputFormat format, boolean cache) throws XMLStreamException {
+        serialize(new MTOMXMLStreamWriter(StAXUtils.createXMLStreamWriter(writer), format), cache);
+    }
+
+    public final void AxiomContainer.serialize(OutputStream output) throws XMLStreamException {
+        serialize(output, new OMOutputFormat());
+    }
 
     public final void AxiomContainer.serializeAndConsume(OutputStream output) throws XMLStreamException {
         serializeAndConsume(output, new OMOutputFormat());
     }
 
-    public final void AxiomContainer.serializeAndConsume(Writer writer) throws XMLStreamException {
-        XMLStreamWriter xmlStreamWriter = StAXUtils.createXMLStreamWriter(writer);
-        try {
-            serializeAndConsume(xmlStreamWriter);
-        } finally {
-            xmlStreamWriter.close();
-        }
+    public final void AxiomContainer.serialize(OutputStream output, OMOutputFormat format) throws XMLStreamException {
+        serialize(output, format, true);
     }
 
-    public final void AxiomContainer.serialize(OutputStream output, OMOutputFormat format) throws XMLStreamException {
-        MTOMXMLStreamWriter writer = new MTOMXMLStreamWriter(output, format, true);
-        try {
-            try {
-                internalSerialize(new StAXSerializer(writer).buildHandler(this), format, true);
-            } catch (StreamException ex) {
-                throw AxiomExceptionTranslator.toXMLStreamException(ex);
-            }
-        } finally {
-            writer.close();
-        }
+    public final void AxiomContainer.serializeAndConsume(OutputStream output, OMOutputFormat format) throws XMLStreamException {
+        serialize(output, format, false);
     }
 
-    public final void AxiomContainer.serialize(Writer writer2, OMOutputFormat format) throws XMLStreamException {
-        MTOMXMLStreamWriter writer =
-                new MTOMXMLStreamWriter(StAXUtils.createXMLStreamWriter(writer2));
-        writer.setOutputFormat(format);
-        try {
-            try {
-                internalSerialize(new StAXSerializer(writer).buildHandler(this), format, true);
-            } catch (StreamException ex) {
-                throw AxiomExceptionTranslator.toXMLStreamException(ex);
-            }
-        } finally {
-            writer.close();
-        }
+    public final void AxiomContainer.serialize(Writer writer) throws XMLStreamException {
+        serialize(writer, true);
     }
 
-    public final void AxiomContainer.serializeAndConsume(OutputStream output, OMOutputFormat format)
-            throws XMLStreamException {
-        MTOMXMLStreamWriter writer = new MTOMXMLStreamWriter(output, format, false);
-        try {
-            try {
-                internalSerialize(new StAXSerializer(writer).buildHandler(this), format, false);
-            } catch (StreamException ex) {
-                throw AxiomExceptionTranslator.toXMLStreamException(ex);
-            }
-        } finally {
-            writer.close();
-        }
+    public final void AxiomContainer.serializeAndConsume(Writer writer) throws XMLStreamException {
+        serialize(writer, false);
     }
 
-    public final void AxiomContainer.serializeAndConsume(Writer writer2, OMOutputFormat format)
-            throws XMLStreamException {
-        MTOMXMLStreamWriter writer =
-                new MTOMXMLStreamWriter(StAXUtils.createXMLStreamWriter(writer2));
-        writer.setOutputFormat(format);
-        try {
-            try {
-                internalSerialize(new StAXSerializer(writer).buildHandler(this), format, false);
-            } catch (StreamException ex) {
-                throw AxiomExceptionTranslator.toXMLStreamException(ex);
-            }
-        } finally {
-            writer.close();
-        }
+    public final void AxiomContainer.serialize(Writer writer, OMOutputFormat format) throws XMLStreamException {
+        serialize(writer, format, true);
+    }
+
+    public final void AxiomContainer.serializeAndConsume(Writer writer, OMOutputFormat format) throws XMLStreamException {
+        serialize(writer, format, false);
     }
 
-    final void AxiomContainer.serializeChildren(XmlHandler handler, OMOutputFormat format, boolean cache) throws StreamException {
+    final void AxiomContainer.serializeChildren(XmlHandler handler, boolean cache) throws StreamException {
         if (getState() == AxiomContainer.DISCARDED) {
             Builder builder = coreGetBuilder();
             if (builder != null) {
@@ -369,14 +362,14 @@ public aspect AxiomContainerSupport {
         if (cache) {
             AxiomChildNode child = (AxiomChildNode)getFirstOMChild();
             while (child != null) {
-                child.internalSerialize(handler, format, true);
+                child.internalSerialize(handler, true);
                 child = (AxiomChildNode)child.getNextOMSibling();
             }
         } else {
             // First, recursively serialize all child nodes that have already been created
             AxiomChildNode child = (AxiomChildNode)coreGetFirstChildIfAvailable();
             while (child != null) {
-                child.internalSerialize(handler, format, cache);
+                child.internalSerialize(handler, cache);
                 child = (AxiomChildNode)child.coreGetNextSiblingIfAvailable();
             }
             // Next, if the container is incomplete, disable caching (temporarily)
@@ -384,31 +377,37 @@ public aspect AxiomContainerSupport {
             // events from the underlying XMLStreamReader.
             if (!isComplete() && coreGetBuilder() != null) {
                 Builder builder = coreGetBuilder();
-                StAXHelper helper = new StAXHelper(builder.disableCaching(), handler);
-                int depth = 0;
-                loop: while (true) {
-                    switch (helper.lookahead()) {
-                        case XMLStreamReader.START_ELEMENT:
-                            depth++;
-                            break;
-                        case XMLStreamReader.END_ELEMENT:
-                            if (depth == 0) {
+                XMLStreamReader reader = builder.disableCaching();
+                // The reader is null in the very special case where this is an OMDocument and
+                // the current event is END_DOCUMENT (which means that auto-close is triggered
+                // and the parser is released, resulting in a null value).
+                if (reader != null) {
+                    StAXHelper helper = new StAXHelper(reader, handler);
+                    int depth = 0;
+                    loop: while (true) {
+                        switch (helper.lookahead()) {
+                            case XMLStreamReader.START_ELEMENT:
+                                depth++;
+                                break;
+                            case XMLStreamReader.END_ELEMENT:
+                                if (depth == 0) {
+                                    break loop;
+                                } else {
+                                    depth--;
+                                }
+                                break;
+                            case XMLStreamReader.END_DOCUMENT:
+                                if (depth != 0) {
+                                    // If we get here, then we have seen a START_ELEMENT event without
+                                    // a matching END_ELEMENT
+                                    throw new IllegalStateException();
+                                }
                                 break loop;
-                            } else {
-                                depth--;
-                            }
-                            break;
-                        case XMLStreamReader.END_DOCUMENT:
-                            if (depth != 0) {
-                                // If we get here, then we have seen a START_ELEMENT event without
-                                // a matching END_ELEMENT
-                                throw new IllegalStateException();
-                            }
-                            break loop;
+                        }
+                        // Note that we don't copy the final END_ELEMENT/END_DOCUMENT event for
+                        // the container. This is the responsibility of the caller.
+                        helper.next();
                     }
-                    // Note that we don't copy the final END_ELEMENT/END_DOCUMENT event for
-                    // the container. This is the responsibility of the caller.
-                    helper.next();
                 }
                 builder.reenableCaching(this);
             }
@@ -432,7 +431,6 @@ public aspect AxiomContainerSupport {
         if (build) {
             this.build();
         }
-        setComplete(true);
         
         if (builder != null) {
             builder.close();

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocTypeSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocTypeSupport.aj?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocTypeSupport.aj (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocTypeSupport.aj Fri Feb 26 18:21:15 2016
@@ -18,9 +18,13 @@
  */
 package org.apache.axiom.om.impl.mixin;
 
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
 import org.apache.axiom.core.stream.StreamException;
 import org.apache.axiom.core.stream.XmlHandler;
-import org.apache.axiom.om.OMOutputFormat;
+import org.apache.axiom.om.impl.common.AxiomExceptionTranslator;
+import org.apache.axiom.om.impl.common.serializer.push.stax.StAXSerializer;
 import org.apache.axiom.om.impl.intf.AxiomDocType;
 
 public aspect AxiomDocTypeSupport {
@@ -32,9 +36,17 @@ public aspect AxiomDocTypeSupport {
         return coreGetRootName();
     }
 
-    public final void AxiomDocType.internalSerialize(XmlHandler handler, OMOutputFormat format, boolean cache) throws StreamException {
+    public final void AxiomDocType.internalSerialize(XmlHandler handler, boolean cache) throws StreamException {
         handler.processDocumentTypeDeclaration(coreGetRootName(), coreGetPublicId(), coreGetSystemId(), coreGetInternalSubset());
     }
+
+    public final void AxiomDocType.serialize(XMLStreamWriter writer, boolean cache) throws XMLStreamException {
+        try {
+            internalSerialize(new StAXSerializer(writer), cache);
+        } catch (StreamException ex) {
+            throw AxiomExceptionTranslator.toXMLStreamException(ex);
+        }
+    }
     
     public final void AxiomDocType.buildWithAttachments() {
     }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocumentSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocumentSupport.aj?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocumentSupport.aj (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocumentSupport.aj Fri Feb 26 18:21:15 2016
@@ -18,13 +18,13 @@
  */
 package org.apache.axiom.om.impl.mixin;
 
+import org.apache.axiom.core.CoreElement;
 import org.apache.axiom.core.CoreModelException;
 import org.apache.axiom.core.stream.StreamException;
 import org.apache.axiom.core.stream.XmlHandler;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.impl.common.AxiomExceptionTranslator;
 import org.apache.axiom.om.impl.common.AxiomSemantics;
 import org.apache.axiom.om.impl.intf.AxiomDocument;
@@ -55,27 +55,9 @@ public aspect AxiomDocumentSupport {
         }
     }
 
-    public final void AxiomDocument.internalSerialize(XmlHandler handler, OMOutputFormat format, boolean cache) throws StreamException {
-        internalSerialize(handler, format, cache, !format.isIgnoreXMLDeclaration());
-    }
-
-    // Overridden in AxiomSOAPMessageSupport
-    public void AxiomDocument.internalSerialize(XmlHandler handler, OMOutputFormat format,
-            boolean cache, boolean includeXMLDeclaration) throws StreamException {
-        if (includeXMLDeclaration) {
-            //Check whether the OMOutput char encoding and OMDocument char
-            //encoding matches, if not use char encoding of OMOutput
-            String encoding = format.getCharSetEncoding();
-            if (encoding == null || "".equals(encoding)) {
-                encoding = getCharsetEncoding();
-            }
-            String version = getXMLVersion();
-            if (version == null) {
-                version = "1.0";
-            }
-            handler.startDocument(null, version, encoding, true);
-        }
-        serializeChildren(handler, format, cache);
+    public final void AxiomDocument.internalSerialize(XmlHandler handler, boolean cache) throws StreamException {
+        handler.startDocument(coreGetInputEncoding(), coreGetXmlVersion(), coreGetXmlEncoding(), coreIsStandalone());
+        serializeChildren(handler, cache);
         handler.endDocument();
     }
 
@@ -128,4 +110,8 @@ public aspect AxiomDocumentSupport {
 
     public void AxiomDocument.checkDocumentElement(OMElement element) {
     }
+
+    public final CoreElement AxiomDocument.getContextElement() {
+        return null;
+    }
 }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementSupport.aj?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementSupport.aj (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementSupport.aj Fri Feb 26 18:21:15 2016
@@ -52,7 +52,6 @@ import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.OMSourcedElement;
 import org.apache.axiom.om.OMText;
 import org.apache.axiom.om.impl.common.AxiomExceptionTranslator;
@@ -529,34 +528,17 @@ public aspect AxiomElementSupport {
         return findNamespaceURI("");
     }
 
-    public void AxiomElement.internalSerialize(XmlHandler handler, OMOutputFormat format,
-            boolean cache) throws StreamException {
-        defaultInternalSerialize(handler, format, cache);
+    public void AxiomElement.internalSerialize(XmlHandler handler, boolean cache) throws StreamException {
+        defaultInternalSerialize(handler, cache);
     }
     
-    public final void AxiomElement.defaultInternalSerialize(XmlHandler handler, OMOutputFormat format,
-            boolean cache) throws StreamException {
-        OMNamespace ns = getNamespace();
-        if (ns == null) {
-            handler.startElement("", getLocalName(), "");
-        } else {
-            handler.startElement(ns.getNamespaceURI(), getLocalName(), ns.getPrefix());
-        }
-        for (Iterator<OMNamespace> it = getAllDeclaredNamespaces(); it.hasNext(); ) {
-            ns = it.next();
-            handler.processNamespaceDeclaration(ns.getPrefix(), ns.getNamespaceURI());
-        }
-        for (Iterator<OMAttribute> it = getAllAttributes(); it.hasNext(); ) {
-            OMAttribute attr = it.next();
-            ns = attr.getNamespace();
-            if (ns == null) {
-                handler.processAttribute("", attr.getLocalName(), "", attr.getAttributeValue(), attr.getAttributeType(), ((CoreAttribute)attr).coreGetSpecified());
-            } else {
-                handler.processAttribute(ns.getNamespaceURI(), attr.getLocalName(), ns.getPrefix(), attr.getAttributeValue(), attr.getAttributeType(), ((CoreAttribute)attr).coreGetSpecified());
-            }
+    public final void AxiomElement.defaultInternalSerialize(XmlHandler handler, boolean cache) throws StreamException {
+        try {
+            coreSerializeStartPart(handler);
+        } catch (CoreModelException ex) {
+            throw new StreamException(ex);
         }
-        handler.attributesCompleted();
-        serializeChildren(handler, format, cache);
+        serializeChildren(handler, cache);
         handler.endElement();
     }
 
@@ -618,4 +600,9 @@ public aspect AxiomElementSupport {
     public final int AxiomElement.getLineNumber() {
         return 0;
     }
+
+    public final CoreElement AxiomElement.getContextElement() {
+        CoreParentNode parent = coreGetParent();
+        return parent instanceof CoreElement ? (CoreElement)parent : null;
+    }
 }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomEntityReferenceSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomEntityReferenceSupport.aj?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomEntityReferenceSupport.aj (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomEntityReferenceSupport.aj Fri Feb 26 18:21:15 2016
@@ -18,10 +18,12 @@
  */
 package org.apache.axiom.om.impl.mixin;
 
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
 import org.apache.axiom.core.stream.StreamException;
 import org.apache.axiom.core.stream.XmlHandler;
 import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.impl.intf.AxiomEntityReference;
 
 public aspect AxiomEntityReferenceSupport {
@@ -29,10 +31,14 @@ public aspect AxiomEntityReferenceSuppor
         return OMNode.ENTITY_REFERENCE_NODE;
     }
 
-    public final void AxiomEntityReference.internalSerialize(XmlHandler handler, OMOutputFormat format, boolean cache) throws StreamException {
+    public final void AxiomEntityReference.internalSerialize(XmlHandler handler, boolean cache) throws StreamException {
         handler.processEntityReference(coreGetName(), coreGetReplacementText());
     }
 
+    public final void AxiomEntityReference.serialize(XMLStreamWriter writer, boolean cache) throws XMLStreamException {
+        writer.writeEntityRef(coreGetName());
+    }
+
     public final String AxiomEntityReference.getName() {
         return coreGetName();
     }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomProcessingInstructionSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomProcessingInstructionSupport.aj?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomProcessingInstructionSupport.aj (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomProcessingInstructionSupport.aj Fri Feb 26 18:21:15 2016
@@ -18,10 +18,12 @@
  */
 package org.apache.axiom.om.impl.mixin;
 
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
 import org.apache.axiom.core.CoreModelException;
 import org.apache.axiom.core.stream.StreamException;
 import org.apache.axiom.core.stream.XmlHandler;
-import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.impl.common.AxiomExceptionTranslator;
 import org.apache.axiom.om.impl.common.AxiomSemantics;
 import org.apache.axiom.om.impl.intf.AxiomProcessingInstruction;
@@ -47,12 +49,20 @@ public aspect AxiomProcessingInstruction
         coreSetCharacterData(value, AxiomSemantics.INSTANCE);
     }
     
-    public final void AxiomProcessingInstruction.internalSerialize(XmlHandler handler, OMOutputFormat format, boolean cache) throws StreamException {
+    public final void AxiomProcessingInstruction.internalSerialize(XmlHandler handler, boolean cache) throws StreamException {
         try {
             handler.processProcessingInstruction(coreGetTarget() + " ", coreGetCharacterData().toString());
         } catch (CoreModelException ex) {
             throw AxiomExceptionTranslator.translate(ex);
         }
+    }
+
+    public final void AxiomProcessingInstruction.serialize(XMLStreamWriter writer, boolean cache) throws XMLStreamException {
+        try {
+            writer.writeProcessingInstruction(coreGetTarget() + " ", coreGetCharacterData().toString());
+        } catch (CoreModelException ex) {
+            throw AxiomExceptionTranslator.translate(ex);
+        }
     }
     
     public final void AxiomProcessingInstruction.buildWithAttachments() {

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSerializableSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSerializableSupport.aj?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSerializableSupport.aj (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSerializableSupport.aj Fri Feb 26 18:21:15 2016
@@ -21,10 +21,6 @@ package org.apache.axiom.om.impl.mixin;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 
-import org.apache.axiom.core.stream.StreamException;
-import org.apache.axiom.om.impl.MTOMXMLStreamWriter;
-import org.apache.axiom.om.impl.common.AxiomExceptionTranslator;
-import org.apache.axiom.om.impl.common.serializer.push.stax.StAXSerializer;
 import org.apache.axiom.om.impl.intf.AxiomSerializable;
 
 public aspect AxiomSerializableSupport {
@@ -35,17 +31,4 @@ public aspect AxiomSerializableSupport {
     public final void AxiomSerializable.serializeAndConsume(XMLStreamWriter xmlWriter) throws XMLStreamException {
         serialize(xmlWriter, false);
     }
-
-    public final void AxiomSerializable.serialize(XMLStreamWriter xmlWriter, boolean cache) throws XMLStreamException {
-        // If the input xmlWriter is not an MTOMXMLStreamWriter, then wrapper it
-        MTOMXMLStreamWriter writer = xmlWriter instanceof MTOMXMLStreamWriter ?
-                (MTOMXMLStreamWriter) xmlWriter : 
-                    new MTOMXMLStreamWriter(xmlWriter);
-        try {
-            internalSerialize(new StAXSerializer(writer).buildHandler(this), writer.getOutputFormat(), cache);
-        } catch (StreamException ex) {
-            throw AxiomExceptionTranslator.toXMLStreamException(ex);
-        }
-        writer.flush();
-    }
 }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj Fri Feb 26 18:21:15 2016
@@ -32,7 +32,6 @@ import org.apache.axiom.om.OMDataSourceE
 import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.OMXMLStreamReaderConfiguration;
 import org.apache.axiom.om.QNameAwareOMDataSource;
 import org.apache.axiom.om.impl.common.DeferredNamespace;
@@ -408,13 +407,13 @@ public aspect AxiomSourcedElementSupport
         }
     }
 
-    public void AxiomSourcedElement.internalSerialize(XmlHandler handler, OMOutputFormat format, boolean cache)
+    public void AxiomSourcedElement.internalSerialize(XmlHandler handler, boolean cache)
             throws StreamException {
         if (isExpanded()) {
-            defaultInternalSerialize(handler, format, cache);
+            defaultInternalSerialize(handler, cache);
         } else if (cache&& OMDataSourceUtil.isDestructiveWrite(dataSource)) {
             forceExpand();
-            defaultInternalSerialize(handler, format, true);
+            defaultInternalSerialize(handler, true);
         // Note: if we can't determine the type (push/pull) of the OMDataSource, we
         // default to push
         // TODO: the serializer ignores namespaceURI and localName

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/factory/SOAPFactoryImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/factory/SOAPFactoryImpl.java?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/factory/SOAPFactoryImpl.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/factory/SOAPFactoryImpl.java Fri Feb 26 18:21:15 2016
@@ -68,7 +68,7 @@ public abstract class SOAPFactoryImpl ex
         T element = createNode(type);
         if (parent != null) {
             element.checkParent(parent);
-            ((AxiomContainer)parent).addChild(element, false);
+            ((AxiomContainer)parent).addChild(element);
         }
         if (qname.getNamespaceURI().length() == 0) {
             element.initName(qname.getLocalPart(), null, true);

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPMessageSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPMessageSupport.aj?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPMessageSupport.aj (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPMessageSupport.aj Fri Feb 26 18:21:15 2016
@@ -20,11 +20,7 @@ package org.apache.axiom.soap.impl.mixin
 
 import org.apache.axiom.core.ClonePolicy;
 import org.apache.axiom.core.CoreNode;
-import org.apache.axiom.core.stream.StreamException;
-import org.apache.axiom.core.stream.XmlHandler;
 import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMOutputFormat;
-import org.apache.axiom.om.impl.intf.AxiomElement;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axiom.soap.impl.intf.AxiomSOAPMessage;
@@ -52,12 +48,6 @@ public aspect AxiomSOAPMessageSupport {
         return factory;
     }
     
-    // TODO: this violates OO design principles and should disappear in a future Axiom version
-    public final void AxiomSOAPMessage.internalSerialize(XmlHandler handler, OMOutputFormat format,
-            boolean cache, boolean includeXMLDeclaration) throws StreamException {
-        ((AxiomElement)getOMDocumentElement()).internalSerialize(handler, format, cache);
-    }
-
     public final SOAPEnvelope AxiomSOAPMessage.getSOAPEnvelope() {
         return (SOAPEnvelope)getOMDocumentElement();
     }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/axiom-api/src/main/java/org/apache/axiom/om/OMFactory.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/axiom-api/src/main/java/org/apache/axiom/om/OMFactory.java?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/axiom-api/src/main/java/org/apache/axiom/om/OMFactory.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/axiom-api/src/main/java/org/apache/axiom/om/OMFactory.java Fri Feb 26 18:21:15 2016
@@ -19,6 +19,7 @@
 
 package org.apache.axiom.om;
 
+import javax.activation.DataHandler;
 import javax.xml.namespace.QName;
 
 import org.apache.axiom.ext.stax.datahandler.DataHandlerProvider;
@@ -284,7 +285,7 @@ public interface OMFactory {
 
     OMText createOMText(String s, String mimeType, boolean optimize);
 
-    OMText createOMText(Object dataHandler, boolean optimize);
+    OMText createOMText(DataHandler dataHandler, boolean optimize);
 
     OMText createOMText(OMContainer parent, String s, String mimeType,
                                boolean optimize);

Modified: webservices/axiom/branches/maven-site-plugin-3.5/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java Fri Feb 26 18:21:15 2016
@@ -95,16 +95,20 @@ public class MTOMXMLStreamWriter impleme
     // Set the filter object if provided
     private XMLStreamWriterFilter xmlStreamWriterFilter  = null;
 
-    public MTOMXMLStreamWriter(XMLStreamWriter xmlWriter) {
+    public MTOMXMLStreamWriter(XMLStreamWriter xmlWriter, OMOutputFormat format) {
         this.xmlWriter = xmlWriter;
         if (log.isTraceEnabled()) {
             log.trace("Call Stack =" + CommonUtils.callStackToString());
         }
-        format = new OMOutputFormat();
+        this.format = format;
         optimizationPolicy = new OptimizationPolicyImpl(format);
         preserveAttachments = true;
     }
 
+    public MTOMXMLStreamWriter(XMLStreamWriter xmlWriter) {
+        this(xmlWriter, new OMOutputFormat());
+    }
+    
     public MTOMXMLStreamWriter(OutputStream outStream, OMOutputFormat format)
             throws XMLStreamException, FactoryConfigurationError {
         this(outStream, format, true);

Modified: webservices/axiom/branches/maven-site-plugin-3.5/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestMarkReset.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestMarkReset.java?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestMarkReset.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestMarkReset.java Fri Feb 26 18:21:15 2016
@@ -45,15 +45,19 @@ public class TestMarkReset extends SizeS
         out.write(sourceData2);
         out.close();
         InputStream in = blob.getInputStream();
-        assertThat(in.markSupported()).isTrue();
-        byte[] data1 = new byte[sourceData1.length];
-        byte[] data2 = new byte[sourceData2.length];
-        IOUtils.readFully(in, data1);
-        in.mark(sourceData2.length);
-        IOUtils.readFully(in, data2);
-        in.reset();
-        IOUtils.readFully(in, data2);
-        assertThat(data1).isEqualTo(sourceData1);
-        assertThat(data2).isEqualTo(sourceData2);
+        try {
+            assertThat(in.markSupported()).isTrue();
+            byte[] data1 = new byte[sourceData1.length];
+            byte[] data2 = new byte[sourceData2.length];
+            IOUtils.readFully(in, data1);
+            in.mark(sourceData2.length);
+            IOUtils.readFully(in, data2);
+            in.reset();
+            IOUtils.readFully(in, data2);
+            assertThat(data1).isEqualTo(sourceData1);
+            assertThat(data2).isEqualTo(sourceData2);
+        } finally {
+            in.close();
+        }
     }
 }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java Fri Feb 26 18:21:15 2016
@@ -19,13 +19,10 @@
 
 package org.apache.axiom.soap.impl.dom;
 
-import org.apache.axiom.core.stream.StreamException;
-import org.apache.axiom.core.stream.XmlHandler;
 import org.apache.axiom.om.OMConstants;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.soap.SOAP11Version;
 import org.apache.axiom.soap.SOAPBody;
 import org.apache.axiom.soap.SOAPConstants;
@@ -37,7 +34,7 @@ import org.w3c.dom.Node;
 
 public abstract class SOAPEnvelopeImpl extends SOAPElement implements AxiomSOAPEnvelope,
         OMConstants {
-    public void addChild(OMNode child, boolean fromBuilder) {
+    public void addChild(OMNode child) {
         internalCheckChild(child);
 
         if (child instanceof SOAPHeader) {
@@ -70,7 +67,7 @@ public abstract class SOAPEnvelopeImpl e
                 }
             }
         }
-        super.addChild(child, fromBuilder);
+        super.addChild(child);
     }
 
     public Node insertBefore(Node newChild, Node refChild) throws DOMException {
@@ -127,22 +124,4 @@ public abstract class SOAPEnvelopeImpl e
     public void checkParent(OMElement parent) throws SOAPProcessingException {
         // here do nothing as SOAPEnvelope doesn't have a parent !!!
     }
-
-    public void internalSerialize(XmlHandler handler, OMOutputFormat format, boolean cache)
-            throws StreamException {
-
-        if (!format.isIgnoreXMLDeclaration()) {
-            String charSetEncoding = format.getCharSetEncoding();
-            String xmlVersion = format.getXmlVersion();
-            handler.startDocument(
-                    null,
-                    xmlVersion == null ? OMConstants.DEFAULT_XML_VERSION
-                            : xmlVersion,
-                    charSetEncoding == null ? OMConstants.DEFAULT_CHAR_SET_ENCODING
-                            : charSetEncoding,
-                    true);
-        }
-        super.internalSerialize(handler, format, cache);
-        handler.endDocument();
-    }
 }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java Fri Feb 26 18:21:15 2016
@@ -23,9 +23,6 @@ import junit.framework.TestSuite;
 
 import org.apache.axiom.om.impl.dom.factory.OMDOMMetaFactory;
 import org.apache.axiom.ts.om.OMTestSuiteBuilder;
-import org.apache.axiom.ts.om.builder.TestCreateOMBuilderFromDOM;
-import org.apache.axiom.ts.om.container.TestSerialize;
-import org.apache.axiom.ts.om.document.TestClone;
 import org.apache.axiom.ts.om.document.TestDigest;
 import org.apache.axiom.ts.om.element.TestGetChildrenWithName4;
 import org.apache.axiom.ts.om.element.sr.TestClose;
@@ -41,12 +38,6 @@ public class OMImplementationTest extend
         builder.exclude(TestInsertSiblingAfterOnChild.class);
         builder.exclude(TestInsertSiblingBeforeOnChild.class);
         
-        // TODO: this case is not working because Axiom generates an XML declaration
-        //       but uses another charset encoding to serialize the document
-        builder.exclude(TestSerialize.class, "(&(file=iso-8859-1.xml)(container=document))");
-        builder.exclude(TestCreateOMBuilderFromDOM.class, "(file=iso-8859-1.xml)");
-        builder.exclude(TestClone.class, "(file=iso-8859-1.xml)");
-        
         // TODO: investigate why this is not working with DOOM
         builder.exclude(TestGetChildrenWithName4.class);
 

Modified: webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java Fri Feb 26 18:21:15 2016
@@ -19,32 +19,24 @@
 
 package org.apache.axiom.soap.impl.llom;
 
-import org.apache.axiom.core.Builder;
-import org.apache.axiom.core.stream.StreamException;
-import org.apache.axiom.core.stream.XmlHandler;
 import org.apache.axiom.om.OMConstants;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.soap.SOAPBody;
 import org.apache.axiom.soap.SOAPConstants;
 import org.apache.axiom.soap.SOAPHeader;
 import org.apache.axiom.soap.SOAPProcessingException;
 import org.apache.axiom.soap.impl.intf.AxiomSOAPEnvelope;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
 /** Class SOAPEnvelopeImpl */
 public abstract class SOAPEnvelopeImpl extends SOAPElement
         implements AxiomSOAPEnvelope, OMConstants {
-    private static final Log log = LogFactory.getLog(SOAPEnvelopeImpl.class);
-
     /**
      * Add a SOAPHeader or SOAPBody object
      * @param child an OMNode to add - must be either a SOAPHeader or a SOAPBody
      */
-    public void addChild(OMNode child, boolean fromBuilder) {
+    public void addChild(OMNode child) {
         internalCheckChild(child);
 
         if (child instanceof SOAPHeader) {
@@ -77,7 +69,7 @@ public abstract class SOAPEnvelopeImpl e
                 }
             }
         }
-        super.addChild(child, fromBuilder);        
+        super.addChild(child);
     }
     
     /**
@@ -117,39 +109,4 @@ public abstract class SOAPEnvelopeImpl e
     public void checkParent(OMElement parent) throws SOAPProcessingException {
         // here do nothing as SOAPEnvelope doesn't have a parent !!!
     }
-
-    public void internalSerialize(XmlHandler handler, OMOutputFormat format, boolean cache)
-            throws StreamException {
-        if (!format.isIgnoreXMLDeclaration()) {
-            String charSetEncoding = format.getCharSetEncoding();
-            String xmlVersion = format.getXmlVersion();
-            handler.startDocument(
-                    null,
-                    xmlVersion == null ? OMConstants.DEFAULT_XML_VERSION : xmlVersion,
-                    charSetEncoding == null ? OMConstants.DEFAULT_CHAR_SET_ENCODING
-                            : charSetEncoding,
-                    true);
-        }
-        super.internalSerialize(handler, format, cache);
-        handler.endDocument();
-        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
-            Builder builder = coreGetBuilder();
-            if (builder != null) {
-                try {
-                    if (log.isDebugEnabled()) {
-                        log.debug("closing builder: " + builder);
-                    }
-                    builder.close();
-                } catch (Exception e) {
-                    if (log.isDebugEnabled()) {
-                        log.error("Could not close builder or parser due to: ", e);
-                    }
-                }
-            } else {
-                log.debug("Could not close builder or parser due to: builder is null");
-            }
-        }
-    }
 }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPHeaderImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPHeaderImpl.java?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPHeaderImpl.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPHeaderImpl.java Fri Feb 26 18:21:15 2016
@@ -152,7 +152,7 @@ public abstract class SOAPHeaderImpl ext
     }
 
     
-    public void addChild(OMNode child, boolean fromBuilder) {
+    public void addChild(OMNode child) {
         
         // Make sure a proper element is added.  The children of a SOAPHeader should be
         // SOAPHeaderBlock objects.
@@ -167,7 +167,7 @@ public abstract class SOAPHeaderImpl ext
                 log.debug(exceptionToString(e));
             }
         }
-        super.addChild(child, fromBuilder);
+        super.addChild(child);
     }
     
     public static String exceptionToString(Throwable e) {

Modified: webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java Fri Feb 26 18:21:15 2016
@@ -23,9 +23,6 @@ import junit.framework.TestSuite;
 
 import org.apache.axiom.om.impl.llom.factory.OMLinkedListMetaFactory;
 import org.apache.axiom.ts.om.OMTestSuiteBuilder;
-import org.apache.axiom.ts.om.builder.TestCreateOMBuilderFromDOM;
-import org.apache.axiom.ts.om.container.TestSerialize;
-import org.apache.axiom.ts.om.document.TestClone;
 import org.apache.axiom.ts.om.document.TestDigest;
 import org.apache.axiom.ts.om.element.sr.TestClose;
 import org.apache.axiom.ts.om.node.TestInsertSiblingAfterOnChild;
@@ -39,12 +36,6 @@ public class OMImplementationTest extend
         builder.exclude(TestInsertSiblingAfterOnChild.class);
         builder.exclude(TestInsertSiblingBeforeOnChild.class);
         
-        // TODO: this case is not working because Axiom generates an XML declaration
-        //       but uses another charset encoding to serialize the document
-        builder.exclude(TestSerialize.class, "(&(file=iso-8859-1.xml)(container=document))");
-        builder.exclude(TestCreateOMBuilderFromDOM.class, "(file=iso-8859-1.xml)");
-        builder.exclude(TestClone.class, "(file=iso-8859-1.xml)");
-        
         // TODO: if there is a comment node surrounded by text, then these text nodes need to be merged
         builder.exclude(TestDigest.class, "(|(file=digest3.xml)(file=digest4.xml))");
         

Propchange: webservices/axiom/branches/maven-site-plugin-3.5/implementations/fom-impl/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Feb 26 18:21:15 2016
@@ -1 +1,2 @@
 /abdera/java/branches/axiom-upgrade/parser:1371877-1374810
+/webservices/axiom/trunk/implementations/fom-impl:1731125-1732529

Propchange: webservices/axiom/branches/maven-site-plugin-3.5/implementations/fom-impl/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: webservices/axiom/branches/maven-site-plugin-3.5/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMDiv.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMDiv.java?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMDiv.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMDiv.java Fri Feb 26 18:21:15 2016
@@ -106,7 +106,7 @@ public class FOMDiv extends FOMExtensibl
                 OMNode node = (OMNode)nodes.next();
                 node.serialize(writer);
             }
-            writer.writeEndElement(); 
+            writer.flush(); 
             return out.getBuffer().toString().substring(2);
         } catch (Exception e) {
         }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/pom.xml
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/pom.xml?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/pom.xml (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/pom.xml Fri Feb 26 18:21:15 2016
@@ -709,7 +709,7 @@
                 </plugin>
                 <plugin>
                     <artifactId>maven-invoker-plugin</artifactId>
-                    <version>1.8</version>
+                    <version>2.0.0</version>
                 </plugin>
                 <plugin>
                     <artifactId>maven-plugin-plugin</artifactId>
@@ -886,17 +886,19 @@
                         <configuration>
                             <scripts>
                                 <script><![CDATA[
+                                    import static groovy.json.StringEscapeUtils.escapeJava
+                                    
                                     if (project.packaging != 'pom' && project.properties['hermeticTests'] == 'true') {
                                         new File(project.build.directory, "test.policy").withWriter { out ->
                                             out.println "grant {"
-                                            out.println """  permission java.io.FilePermission "${java.home}${file.separator}-", "read";"""
-                                            out.println """  permission java.io.FilePermission "${settings.localRepository}${file.separator}-", "read";"""
+                                            out.println """  permission java.io.FilePermission "${escapeJava(System.properties.'java.home')}\${/}-", "read";"""
+                                            out.println """  permission java.io.FilePermission "${escapeJava(session.settings.localRepository)}\${/}-", "read";"""
                                             session.sortedProjects.each({
-                                                out.println """  permission java.io.FilePermission "${it.build.directory}${file.separator}*", "read";"""
+                                                out.println """  permission java.io.FilePermission "${escapeJava(it.build.directory)}\${/}*", "read";"""
                                             })
-                                            out.println """  permission java.io.FilePermission "${basedir}${file.separator}-", "read";"""
-                                            out.println """  permission java.io.FilePermission "${project.build.directory}", "read,write";"""
-                                            out.println """  permission java.io.FilePermission "${project.build.directory}${file.separator}-", "read,write,delete";"""
+                                            out.println """  permission java.io.FilePermission "${escapeJava(project.basedir.absolutePath)}\${/}-", "read";"""
+                                            out.println """  permission java.io.FilePermission "${escapeJava(project.build.directory)}", "read,write";"""
+                                            out.println """  permission java.io.FilePermission "${escapeJava(project.build.directory)}\${/}-", "read,write,delete";"""
                                             out.println """  permission java.lang.RuntimePermission "*";"""
                                             out.println """  permission java.lang.reflect.ReflectPermission "*";"""
                                             out.println """  permission java.net.NetPermission "*";"""
@@ -911,7 +913,7 @@
                                             out.println """  permission org.osgi.framework.ServicePermission "*", "register,get";"""
                                             out.println "};"
                                         }
-                                        project.properties['securityManagerArgs'] = '-Djava.security.manager -Djava.security.policy=${project.build.directory}/test.policy'
+                                        project.properties['securityManagerArgs'] = '-Djava.security.manager -Djava.security.policy=' + project.build.directory.replace('\\', '/') + '/test.policy'
                                     } else {
                                         project.properties['securityManagerArgs'] = ''
                                     }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/src/site/apt/roadmap.apt
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/src/site/apt/roadmap.apt?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/src/site/apt/roadmap.apt (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/src/site/apt/roadmap.apt Fri Feb 26 18:21:15 2016
@@ -39,24 +39,6 @@ Introduction
    
 API inconsistencies to be eliminated
 
-* Usage of <<<Object>>> instead of <<<DataHandler>>>
-
-  There are several APIs that use <<<Object>>> although they expect or return
-  a <<<DataHandler>>>. This is probably a legacy of Axis 1.x where the Activation API
-  was an optional dependency. Today this no longer makes sense:
-  
-   * The Activation API is included in Java 6.
-   
-   * It is unlikely that Axiom actually works if Activation is not in the class path
-     because there is nothing in the build that enforces or tests that and there are no
-     known downstream projects that use Axiom without also depending on the Activation API.
-  
-  The following APIs will be changed to use <<<DataHandler>>> directly:
-  
-   * <<<OMText#getDataHandler()>>>
-   
-   * <<<OMFactory#createOMText(Object, boolean)>>>
-
 * Methods declared by the wrong interface in the node type hierarchy
 
   Some methods are declared at the wrong level in the node type hierarchy so that they may

Modified: webservices/axiom/branches/maven-site-plugin-3.5/src/site/markdown/release-notes/1.3.0.md
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/src/site/markdown/release-notes/1.3.0.md?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/src/site/markdown/release-notes/1.3.0.md (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/src/site/markdown/release-notes/1.3.0.md Fri Feb 26 18:21:15 2016
@@ -10,8 +10,25 @@ Changes in this release
 *   The public API now uses generics. Note that this should in general not have
     impact on binary compatibility with Axiom 1.2.x.
 
-*   The `getDataHandler()` method defined by `OMText` has been modified to use
-    `DataHandler` instead of `Object` as return type.
+*   In Axiom 1.2.x several APIs were using `Object` as argument/return type
+    although they expect/return a `DataHandler`. This is a legacy of Axis 1.x
+    where the Activation API was an optional dependency. This no longer makes
+    sense:
+
+    *   In Java 6, the Activation API is part of the JRE.
+    *   It is unlikely that Axiom actually works if the Activation API is not
+        available: there is nothing in the build that enforces or tests that,
+        and there are no known downstream projects that use Axiom without also
+        depending on the Activation API.
+
+    In Axiom 1.3.0, the following APIs have been changed to use `DataHandler`
+    instead of `Object`:
+
+    *   `OMText.getDataHandler()`
+    *   `OMFactory.createOMText(Object, boolean)`
+
+    Note that this change breaks binary compatibility with Axiom 1.2.x (but
+    shouldn't break source code compatibility).
 
 *   The builder implementations and related classes have been removed from the
     `org.apache.axiom.om.impl.builder` and `org.apache.axiom.soap.impl.builder`
@@ -104,3 +121,16 @@ Changes in this release
     `SOAPFaultNode` interface because they conflict with methods defined by
     DOM's `Node` interface. Note that these methods were already deprecated in
     Axiom 1.2.x, with alternative methods being available.
+
+*   In Axiom 1.2.x the `SOAPMessage` and `SOAPEnvelope` implementations had
+    special serialization logic, causing the serialization of a `SOAPEnvelope`
+    to emit an XML declaration by default and the serialization of a
+    `SOAPMessage` to skip all content in the prolog and epilog. This behavior
+    was completely undocumented and violates basic object oriented design
+    principles: although `SOAPMessage` is an `OMDocument` and `SOAPEnvelope` is
+    an `OMElement`, they didn't behave in the same way as `OMDocument` and
+    `OMElement` when it comes to serialization. This in turn led to an awkward
+    design. This special serialization logic has been removed in Axiom 1.3 and
+    `SOAPMessage` and `SOAPEnvelope` now have the same behavior as any other
+    `OMDocument` and `OMElement`. The main implication is that the serialization
+    of a `SOAPEnvelope` no longer generates an XML declaration.

Modified: webservices/axiom/branches/maven-site-plugin-3.5/systests/old-tests/src/test/java/org/apache/axiom/om/impl/builder/StAXOMBuilderTest.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/systests/old-tests/src/test/java/org/apache/axiom/om/impl/builder/StAXOMBuilderTest.java?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/systests/old-tests/src/test/java/org/apache/axiom/om/impl/builder/StAXOMBuilderTest.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/systests/old-tests/src/test/java/org/apache/axiom/om/impl/builder/StAXOMBuilderTest.java Fri Feb 26 18:21:15 2016
@@ -61,28 +61,6 @@ public class StAXOMBuilderTest extends A
         assertTrue(childrenCount == 5);
     }
     
-    public void testClose1() throws Exception {
-        rootElement = stAXOMBuilder.getDocumentElement();
-        // get the first OMElement child
-        OMNode omnode = rootElement.getFirstOMChild();
-        while (omnode instanceof OMText) {
-            omnode = omnode.getNextOMSibling();
-        }
-        // Close the element immediately
-        OMElement omElement = (OMElement) omnode;
-        omElement.close(false);
-        
-        Iterator children = ((OMElement) omnode).getChildren();
-        int childrenCount = 0;
-        while (children.hasNext()) {
-            OMNode node = (OMNode) children.next();
-            if (node instanceof OMElement)
-                childrenCount++;
-        }
-        
-        assertTrue(childrenCount == 0);
-    }
-    
     public void testClose2() throws Exception {
         rootElement = stAXOMBuilder.getDocumentElement();
         // get the first OMElement child

Modified: webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/pom.xml
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/pom.xml?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/pom.xml (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/pom.xml Fri Feb 26 18:21:15 2016
@@ -94,6 +94,10 @@
             <artifactId>jaxp-testsuite</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+        </dependency>
     </dependencies>
 
     <build>

Modified: webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/dimension/serialization/SerializeToXMLStreamWriter.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/dimension/serialization/SerializeToXMLStreamWriter.java?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/dimension/serialization/SerializeToXMLStreamWriter.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/dimension/serialization/SerializeToXMLStreamWriter.java Fri Feb 26 18:21:15 2016
@@ -23,6 +23,7 @@ import java.io.ByteArrayOutputStream;
 import javax.xml.stream.XMLStreamWriter;
 
 import org.apache.axiom.om.OMContainer;
+import org.apache.axiom.om.OMDocument;
 import org.apache.axiom.om.util.StAXUtils;
 import org.apache.axiom.testutils.suite.MatrixTestCase;
 
@@ -44,7 +45,17 @@ public class SerializeToXMLStreamWriter
 
     public XML serialize(OMContainer container) throws Exception {
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        XMLStreamWriter writer = StAXUtils.createXMLStreamWriter(baos);
+        String encoding = null;
+        // Since Axiom has no way of knowing the encoding used by the XMLStreamWriter,
+        // it will just keep the original one when writing the XML declaration. Adjust
+        // the output encoding so that it will match the encoding in the XML declaration.
+        if (container instanceof OMDocument) {
+            encoding = ((OMDocument)container).getXMLEncoding();
+        }
+        if (encoding == null) {
+            encoding = "UTF-8";
+        }
+        XMLStreamWriter writer = StAXUtils.createXMLStreamWriter(baos, encoding);
         if (cache) {
             container.serialize(writer);
         } else {

Modified: webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java Fri Feb 26 18:21:15 2016
@@ -25,6 +25,7 @@ import java.lang.reflect.Method;
 import javax.xml.namespace.QName;
 
 import org.apache.axiom.om.OMMetaFactory;
+import org.apache.axiom.om.OMNode;
 import org.apache.axiom.testing.multiton.Multiton;
 import org.apache.axiom.testutils.suite.MatrixTestSuiteBuilder;
 import org.apache.axiom.ts.dimension.AddAttributeStrategy;
@@ -140,6 +141,7 @@ public class OMTestSuiteBuilder extends
         addTest(new org.apache.axiom.ts.om.builder.TestRegisterCustomBuilderForPayloadJAXBWithXOP(metaFactory));
         addTest(new org.apache.axiom.ts.om.builder.TestRootPartStreaming(metaFactory));
         addTest(new org.apache.axiom.ts.om.builder.TestStandaloneConfiguration(metaFactory));
+        addTest(new org.apache.axiom.ts.om.comment.TestSerialize(metaFactory));
         for (XMLSample file : getInstances(XMLSample.class)) {
             for (OMContainerExtractor ce : getInstances(OMContainerExtractor.class)) {
                 for (BuilderFactory bf : getInstances(BuilderFactory.class)) {
@@ -162,6 +164,7 @@ public class OMTestSuiteBuilder extends
             addTest(new org.apache.axiom.ts.om.container.TestGetDescendants(metaFactory, cf, true));
             addTest(new org.apache.axiom.ts.om.container.TestGetDescendants(metaFactory, cf, false));
         }
+        addTest(new org.apache.axiom.ts.om.doctype.TestSerialize(metaFactory));
         addTest(new org.apache.axiom.ts.om.document.TestAddChildIncomplete(metaFactory));
         addTest(new org.apache.axiom.ts.om.document.TestAddChildWithExistingDocumentElement(metaFactory));
         addTest(new org.apache.axiom.ts.om.document.TestBuild(metaFactory));
@@ -329,7 +332,8 @@ public class OMTestSuiteBuilder extends
         addTest(new org.apache.axiom.ts.om.element.TestGetTextAsStreamWithNonTextChildren(metaFactory));
         addTest(new org.apache.axiom.ts.om.element.TestGetTextAsStreamWithoutCaching(metaFactory));
         addTest(new org.apache.axiom.ts.om.element.TestGetTextAsStreamWithSingleTextNode(metaFactory));
-        addTest(new org.apache.axiom.ts.om.element.TestGetTextBinary(metaFactory));
+        addTest(new org.apache.axiom.ts.om.element.TestGetTextBinary(metaFactory, false));
+        addTest(new org.apache.axiom.ts.om.element.TestGetTextBinary(metaFactory, true));
         addTest(new org.apache.axiom.ts.om.element.TestGetTextWithCDATASectionChild(metaFactory));
         addTest(new org.apache.axiom.ts.om.element.TestGetTextWithMixedOMTextChildren(metaFactory));
         addTest(new org.apache.axiom.ts.om.element.TestGetXMLStreamReaderCDATAEventFromElement(metaFactory));
@@ -434,6 +438,7 @@ public class OMTestSuiteBuilder extends
         addTest(new org.apache.axiom.ts.om.element.sr.TestGetNamespaceContext(metaFactory, true));
         addTest(new org.apache.axiom.ts.om.element.sr.TestGetNamespaceContext(metaFactory, false));
         addTest(new org.apache.axiom.ts.om.element.sr.TestNextTag(metaFactory));
+        addTest(new org.apache.axiom.ts.om.entref.TestSerialize(metaFactory));
         addTest(new org.apache.axiom.ts.om.factory.TestCreateOMAttributeGeneratedPrefix(metaFactory));
         addTest(new org.apache.axiom.ts.om.factory.TestCreateOMAttributeInterfaces(metaFactory));
         addTest(new org.apache.axiom.ts.om.factory.TestCreateOMAttributeNullPrefixNoNamespace(metaFactory));
@@ -477,7 +482,8 @@ public class OMTestSuiteBuilder extends
         addTest(new org.apache.axiom.ts.om.factory.TestCreateOMNamespaceWithNullURI(metaFactory));
         addTest(new org.apache.axiom.ts.om.factory.TestCreateOMProcessingInstructionWithoutParent(metaFactory));
         addTest(new org.apache.axiom.ts.om.factory.TestCreateOMText(metaFactory));
-        addTest(new org.apache.axiom.ts.om.factory.TestCreateOMTextFromDataHandlerProvider(metaFactory));
+        addTest(new org.apache.axiom.ts.om.factory.TestCreateOMTextFromDataHandlerProvider(metaFactory, false));
+        addTest(new org.apache.axiom.ts.om.factory.TestCreateOMTextFromDataHandlerProvider(metaFactory, true));
         addTest(new org.apache.axiom.ts.om.factory.TestCreateOMTextFromOMText(metaFactory));
         addTest(new org.apache.axiom.ts.om.factory.TestCreateOMTextWithNullParent(metaFactory));
         addTest(new org.apache.axiom.ts.om.factory.TestFactoryIsSingleton(metaFactory));
@@ -608,6 +614,7 @@ public class OMTestSuiteBuilder extends
             addTest(new org.apache.axiom.ts.om.sourcedelement.sr.TestCloseWithoutCaching(metaFactory, events));
         }
         addTest(new org.apache.axiom.ts.om.pi.TestDigest(metaFactory));
+        addTest(new org.apache.axiom.ts.om.pi.TestSerialize(metaFactory));
         addTest(new org.apache.axiom.ts.om.text.TestBase64StreamingWithGetSAXSource(metaFactory));
         addTest(new org.apache.axiom.ts.om.text.TestBase64StreamingWithSerialize(metaFactory));
         addTest(new org.apache.axiom.ts.om.text.TestCloneBinary(metaFactory, false));
@@ -616,6 +623,9 @@ public class OMTestSuiteBuilder extends
         addTest(new org.apache.axiom.ts.om.text.TestGetNamespace(metaFactory));
         addTest(new org.apache.axiom.ts.om.text.TestGetNamespaceNoNamespace(metaFactory));
         addTest(new org.apache.axiom.ts.om.text.TestGetTextCharactersFromDataHandler(metaFactory));
+        addTest(new org.apache.axiom.ts.om.text.TestSerialize(metaFactory, OMNode.TEXT_NODE));
+        addTest(new org.apache.axiom.ts.om.text.TestSerialize(metaFactory, OMNode.SPACE_NODE));
+        addTest(new org.apache.axiom.ts.om.text.TestSerialize(metaFactory, OMNode.CDATA_SECTION_NODE));
         addTest(new org.apache.axiom.ts.om.xop.TestSerialize(metaFactory, false));
         addTest(new org.apache.axiom.ts.om.xop.TestSerialize(metaFactory, true));
         addTest(new org.apache.axiom.ts.om.xop.TestSetOptimize(metaFactory, false));

Modified: webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetTextBinary.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetTextBinary.java?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetTextBinary.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetTextBinary.java Fri Feb 26 18:21:15 2016
@@ -27,6 +27,7 @@ import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMText;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axiom.testutils.activation.RandomDataSource;
 import org.apache.axiom.testutils.io.IOTestUtils;
 import org.apache.axiom.ts.AxiomTestCase;
@@ -37,8 +38,12 @@ import org.apache.commons.codec.binary.B
  * an element that has an {@link OMText} child constructed from a {@link DataHandler}.
  */
 public class TestGetTextBinary extends AxiomTestCase {
-    public TestGetTextBinary(OMMetaFactory metaFactory) {
+    private final boolean compact;
+    
+    public TestGetTextBinary(OMMetaFactory metaFactory, boolean compact) {
         super(metaFactory);
+        this.compact = compact;
+        addTestParameter("compact", compact);
     }
 
     @Override
@@ -47,6 +52,11 @@ public class TestGetTextBinary extends A
         DataSource ds = new RandomDataSource(99999, 1000);
         OMElement element = factory.createOMElement("elem", null);
         element.addChild(factory.createOMText(new DataHandler(ds), false));
+        if (compact) {
+            // Only the builder can create a compact element containing a DataHandler
+            element = OMXMLBuilderFactory.createStAXOMBuilder(factory, element.getXMLStreamReader()).getDocumentElement();
+            element.build();
+        }
         IOTestUtils.compareStreams(ds.getInputStream(),
                 new ByteArrayInputStream(Base64.decodeBase64(element.getText())));
     }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/factory/TestCreateOMTextFromDataHandlerProvider.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/factory/TestCreateOMTextFromDataHandlerProvider.java?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/factory/TestCreateOMTextFromDataHandlerProvider.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/factory/TestCreateOMTextFromDataHandlerProvider.java Fri Feb 26 18:21:15 2016
@@ -18,6 +18,8 @@
  */
 package org.apache.axiom.ts.om.factory;
 
+import static com.google.common.truth.Truth.assertThat;
+
 import javax.activation.DataHandler;
 
 import org.apache.axiom.ext.stax.datahandler.DataHandlerProvider;
@@ -25,6 +27,7 @@ import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMText;
 import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.util.UIDGenerator;
 
 public class TestCreateOMTextFromDataHandlerProvider extends AxiomTestCase {
     static class TestDataHandlerProvider implements DataHandlerProvider {
@@ -46,16 +49,26 @@ public class TestCreateOMTextFromDataHan
         }
     }
     
-    public TestCreateOMTextFromDataHandlerProvider(OMMetaFactory metaFactory) {
+    private final boolean nullContentID;
+    
+    public TestCreateOMTextFromDataHandlerProvider(OMMetaFactory metaFactory, boolean nullContentID) {
         super(metaFactory);
+        this.nullContentID = nullContentID;
+        addTestParameter("nullContentId", nullContentID);
     }
 
     protected void runTest() throws Throwable {
         TestDataHandlerProvider prov = new TestDataHandlerProvider();
         OMFactory factory = metaFactory.getOMFactory();
-        OMText text = factory.createOMText(null, prov, true);
+        String contentID = nullContentID ? null : UIDGenerator.generateContentId();
+        OMText text = factory.createOMText(contentID, prov, true);
         assertFalse(prov.isDataHandlerCreated());
         assertEquals(text.getDataHandler().getContent(), "Data");
         assertTrue(prov.isDataHandlerCreated());
+        if (contentID == null) {
+            assertThat(text.getContentID()).isNotNull();
+        } else {
+            assertThat(text.getContentID()).isEqualTo(contentID);
+        }
     }
 }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestDetach.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestDetach.java?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestDetach.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestDetach.java Fri Feb 26 18:21:15 2016
@@ -47,7 +47,7 @@ public class TestDetach extends AxiomTes
     protected void runTest() throws Throwable {
         OMFactory factory = metaFactory.getOMFactory();
         String xml1 = "<root><a/><b/></root>";
-        String xml2 = "<child>test</child>";
+        String xml2 = "<child><c/><d/></child>";
         OMElement parent = OMXMLBuilderFactory.createOMBuilder(factory, new StringReader(xml1)).getDocumentElement();
         PullOMDataSource ds = new PullOMDataSource(xml2);
         OMSourcedElement omse = factory.createOMElement(ds, "child", null);

Modified: webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/message/TestSerialize.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/message/TestSerialize.java?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/message/TestSerialize.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/message/TestSerialize.java Fri Feb 26 18:21:15 2016
@@ -52,7 +52,6 @@ public class TestSerialize extends Axiom
         assertAbout(xml())
                 .that(serializationStrategy.serialize(soapMessage).getInputSource())
                 .ignoringRedundantNamespaceDeclarations()
-                .ignoringPrologAndEpilog()  // TODO: why???
                 .hasSameContentAs(message.getInputStream());
         soapMessage.close(false);
     }

Propchange: webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/
------------------------------------------------------------------------------
--- svn:auto-props (added)
+++ svn:auto-props Fri Feb 26 18:21:15 2016
@@ -0,0 +1 @@
+*.xml = svn:eol-style=LF

Propchange: webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/AXIOM-124.xml
------------------------------------------------------------------------------
--- svn:eol-style (original)
+++ svn:eol-style Fri Feb 26 18:21:15 2016
@@ -1 +1 @@
-native
+LF

Modified: webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/AXIS2-192.xml
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/AXIS2-192.xml?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/AXIS2-192.xml (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/AXIS2-192.xml Fri Feb 26 18:21:15 2016
@@ -1,5 +1,5 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<foo xmlns:e="http://opensource.lk">
-    <bar1 b:attr="test attr value1" xmlns:b="http://opensource.lk/ns1">test1</bar1>
-    <bar2 b:attr="test attr value2" xmlns:b="http://opensource.lk/ns1">test2</bar2>
+<?xml version='1.0' encoding='UTF-8'?>
+<foo xmlns:e="http://opensource.lk">
+    <bar1 b:attr="test attr value1" xmlns:b="http://opensource.lk/ns1">test1</bar1>
+    <bar2 b:attr="test attr value2" xmlns:b="http://opensource.lk/ns1">test2</bar2>
 </foo>
\ No newline at end of file

Propchange: webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/AXIS2-192.xml
------------------------------------------------------------------------------
    svn:eol-style = LF

Propchange: webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/AXIS2-565.xml
------------------------------------------------------------------------------
--- svn:eol-style (original)
+++ svn:eol-style Fri Feb 26 18:21:15 2016
@@ -1 +1 @@
-native
+LF

Propchange: webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/cdata.xml
------------------------------------------------------------------------------
--- svn:eol-style (original)
+++ svn:eol-style Fri Feb 26 18:21:15 2016
@@ -1 +1 @@
-native
+LF

Propchange: webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/default-namespace.xml
------------------------------------------------------------------------------
--- svn:eol-style (original)
+++ svn:eol-style Fri Feb 26 18:21:15 2016
@@ -1 +1 @@
-native
+LF

Propchange: webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/dtd.xml
------------------------------------------------------------------------------
--- svn:eol-style (original)
+++ svn:eol-style Fri Feb 26 18:21:15 2016
@@ -1 +1 @@
-native
+LF

Propchange: webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/entity-reference-external-subset.xml
------------------------------------------------------------------------------
--- svn:eol-style (original)
+++ svn:eol-style Fri Feb 26 18:21:15 2016
@@ -1 +1 @@
-native
+LF

Propchange: webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/entity-reference-internal-subset.xml
------------------------------------------------------------------------------
--- svn:eol-style (original)
+++ svn:eol-style Fri Feb 26 18:21:15 2016
@@ -1 +1 @@
-native
+LF

Propchange: webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/entity-reference-with-markup.xml
------------------------------------------------------------------------------
--- svn:eol-style (original)
+++ svn:eol-style Fri Feb 26 18:21:15 2016
@@ -1 +1 @@
-native
+LF

Propchange: webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/iso-8859-1.xml
------------------------------------------------------------------------------
--- svn:eol-style (original)
+++ svn:eol-style Fri Feb 26 18:21:15 2016
@@ -1 +1 @@
-native
+LF

Propchange: webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/many-attributes.xml
------------------------------------------------------------------------------
--- svn:eol-style (original)
+++ svn:eol-style Fri Feb 26 18:21:15 2016
@@ -1 +1 @@
-native
+LF

Propchange: webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/masked-namespace-declaration.xml
------------------------------------------------------------------------------
--- svn:eol-style (original)
+++ svn:eol-style Fri Feb 26 18:21:15 2016
@@ -1 +1 @@
-native
+LF

Propchange: webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/namespaces.xml
------------------------------------------------------------------------------
--- svn:eol-style (original)
+++ svn:eol-style Fri Feb 26 18:21:15 2016
@@ -1 +1 @@
-native
+LF