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 [1/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...

Author: veithen
Date: Fri Feb 26 18:21:15 2016
New Revision: 1732530

URL: http://svn.apache.org/viewvc?rev=1732530&view=rev
Log:
Merge latest changes from trunk.

Added:
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/NamespaceContextProvider.java
      - copied unchanged from r1732529, webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/NamespaceContextProvider.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/
      - copied from r1732529, webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/stax/
      - copied from r1732529, webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/stax/
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/Context.java
      - copied unchanged from r1732529, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/Context.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/XmlDeclarationRewriterHandler.java
      - copied unchanged from r1732529, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/XmlDeclarationRewriterHandler.java
    webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/comment/
      - copied from r1732529, webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/comment/
    webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/doctype/
      - copied from r1732529, webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/doctype/
    webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/entref/
      - copied from r1732529, webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/entref/
    webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/pi/TestSerialize.java
      - copied unchanged from r1732529, webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/pi/TestSerialize.java
    webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/text/TestSerialize.java
      - copied unchanged from r1732529, webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/text/TestSerialize.java
Removed:
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/OMContentHandler.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/NamespaceHelper.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/SerializerImpl.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/ContentHandlerWriter.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/SAXHelper.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/SAXSerializer.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/sax/
Modified:
    webservices/axiom/branches/maven-site-plugin-3.5/   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/pom.xml
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/CharacterData.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreAttribute.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSAwareAttributeSupport.aj
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSAwareElementSupport.aj
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSUnawareAttributeSupport.aj
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNamespaceDeclarationSupport.aj
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeSupport.aj
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/NamespaceRepairingFilterHandler.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandler.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/AbstractBuilder.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderHandler.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderListener.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/StAXOMBuilder.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/OMFactoryImpl.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/XMLReaderImpl.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/stax/StAXSerializer.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/intf/AxiomContainer.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/intf/AxiomSerializable.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/intf/TextContent.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCDATASectionSupport.aj
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCharacterDataNodeSupport.aj
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCommentSupport.aj
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerSupport.aj
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocTypeSupport.aj
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomDocumentSupport.aj
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementSupport.aj
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomEntityReferenceSupport.aj
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomProcessingInstructionSupport.aj
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSerializableSupport.aj
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/factory/SOAPFactoryImpl.java
    webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPMessageSupport.aj
    webservices/axiom/branches/maven-site-plugin-3.5/axiom-api/src/main/java/org/apache/axiom/om/OMFactory.java
    webservices/axiom/branches/maven-site-plugin-3.5/axiom-api/src/main/java/org/apache/axiom/om/impl/MTOMXMLStreamWriter.java
    webservices/axiom/branches/maven-site-plugin-3.5/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestMarkReset.java
    webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java
    webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java
    webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java
    webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPHeaderImpl.java
    webservices/axiom/branches/maven-site-plugin-3.5/implementations/axiom-impl/src/test/java/org/apache/axiom/om/impl/llom/OMImplementationTest.java
    webservices/axiom/branches/maven-site-plugin-3.5/implementations/fom-impl/   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/implementations/fom-impl/pom.xml   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/implementations/fom-impl/src/main/java/org/apache/abdera/parser/stax/FOMDiv.java
    webservices/axiom/branches/maven-site-plugin-3.5/pom.xml
    webservices/axiom/branches/maven-site-plugin-3.5/src/site/apt/roadmap.apt
    webservices/axiom/branches/maven-site-plugin-3.5/src/site/markdown/release-notes/1.3.0.md
    webservices/axiom/branches/maven-site-plugin-3.5/systests/old-tests/src/test/java/org/apache/axiom/om/impl/builder/StAXOMBuilderTest.java
    webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/pom.xml
    webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/dimension/serialization/SerializeToXMLStreamWriter.java
    webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuiteBuilder.java
    webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetTextBinary.java
    webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/factory/TestCreateOMTextFromDataHandlerProvider.java
    webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestDetach.java
    webservices/axiom/branches/maven-site-plugin-3.5/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/message/TestSerialize.java
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/AXIOM-124.xml   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/AXIS2-192.xml   (contents, props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/AXIS2-565.xml   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/cdata.xml   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/default-namespace.xml   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/dtd.xml   (props changed)
    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   (props changed)
    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   (props changed)
    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   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/iso-8859-1.xml   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/many-attributes.xml   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/masked-namespace-declaration.xml   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/namespaces.xml   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/namespaces2.xml   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/namespaces3.xml   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/null-namespace.xml   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/processingInstruction.xml   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/sax-attribute-namespace-bug.xml   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/sigEncr.xml   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/spaces.xml   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/utf-8.xml   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/bulk/xml-prefix.xml   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/dtd-full.xml   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/entity-reference-nested.xml   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/large.xml   (props changed)
    webservices/axiom/branches/maven-site-plugin-3.5/testing/xml-testsuite/src/main/resources/org/apache/axiom/ts/xml/simple.xml   (props changed)

Propchange: webservices/axiom/branches/maven-site-plugin-3.5/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Feb 26 18:21:15 2016
@@ -13,3 +13,4 @@
 /webservices/axiom/branches/attrs-aspects:1685218-1686663
 /webservices/axiom/branches/namespaceURIInterning:1293148-1293587
 /webservices/axiom/branches/osgi-redesign:1180368-1180596
+/webservices/axiom/trunk:1731125-1732529

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/pom.xml
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/pom.xml?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/pom.xml (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/pom.xml Fri Feb 26 18:21:15 2016
@@ -37,5 +37,9 @@
             <groupId>org.aspectj</groupId>
             <artifactId>aspectjrt</artifactId>
         </dependency>
+        <dependency>
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+        </dependency>
     </dependencies>
 </project>

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/CharacterData.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/CharacterData.java?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/CharacterData.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/CharacterData.java Fri Feb 26 18:21:15 2016
@@ -18,6 +18,9 @@
  */
 package org.apache.axiom.core;
 
+import java.io.IOException;
+import java.io.Writer;
+
 /**
  * Represents character data stored by a {@link CoreCharacterDataNode} instance. The content of a
  * {@link CoreCharacterDataNode} is either a {@link String} object or an instance of this interface.
@@ -25,4 +28,5 @@ package org.apache.axiom.core;
 public interface CharacterData {
     <T> CharacterData clone(ClonePolicy<T> policy, T options);
     String toString();
+    void writeTo(Writer writer) throws IOException;
 }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreAttribute.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreAttribute.java?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreAttribute.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreAttribute.java Fri Feb 26 18:21:15 2016
@@ -18,6 +18,9 @@
  */
 package org.apache.axiom.core;
 
+import org.apache.axiom.core.stream.StreamException;
+import org.apache.axiom.core.stream.XmlHandler;
+
 public interface CoreAttribute extends NonDeferringParentNode, CoreCharacterDataContainingParentNode {
     /**
      * Get the owner element of this attribute.
@@ -59,4 +62,6 @@ public interface CoreAttribute extends N
      *         of its owner element or if the attribute has no owner element
      */
     CoreAttribute coreGetPreviousAttribute();
+    
+    void coreSerialize(XmlHandler handler) throws CoreModelException, StreamException;
 }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSAwareAttributeSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSAwareAttributeSupport.aj?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSAwareAttributeSupport.aj (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSAwareAttributeSupport.aj Fri Feb 26 18:21:15 2016
@@ -18,11 +18,18 @@
  */
 package org.apache.axiom.core.impl.mixin;
 
+import org.apache.axiom.core.CoreModelException;
 import org.apache.axiom.core.CoreNSAwareAttribute;
 import org.apache.axiom.core.NodeType;
+import org.apache.axiom.core.stream.StreamException;
+import org.apache.axiom.core.stream.XmlHandler;
 
 public aspect CoreNSAwareAttributeSupport {
     public final NodeType CoreNSAwareAttribute.coreGetNodeType() {
         return NodeType.NS_AWARE_ATTRIBUTE;
     }
+
+    public final void CoreNSAwareAttribute.coreSerialize(XmlHandler handler) throws CoreModelException, StreamException {
+        handler.processAttribute(coreGetNamespaceURI(), coreGetLocalName(), coreGetPrefix(), coreGetCharacterData().toString(), coreGetType(), coreGetSpecified());
+    }
 }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSAwareElementSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSAwareElementSupport.aj?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSAwareElementSupport.aj (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSAwareElementSupport.aj Fri Feb 26 18:21:15 2016
@@ -18,8 +18,12 @@
  */
 package org.apache.axiom.core.impl.mixin;
 
+import org.apache.axiom.core.CoreAttribute;
+import org.apache.axiom.core.CoreModelException;
 import org.apache.axiom.core.CoreNSAwareElement;
 import org.apache.axiom.core.NodeType;
+import org.apache.axiom.core.stream.StreamException;
+import org.apache.axiom.core.stream.XmlHandler;
 
 public aspect CoreNSAwareElementSupport {
     public final NodeType CoreNSAwareElement.coreGetNodeType() {
@@ -33,4 +37,14 @@ public aspect CoreNSAwareElementSupport
     public final String CoreNSAwareElement.getImplicitPrefix(String namespaceURI) {
         return namespaceURI.equals(coreGetNamespaceURI()) ? coreGetPrefix() : null;
     }
+    
+    public final void CoreNSAwareElement.coreSerializeStartPart(XmlHandler handler) throws CoreModelException, StreamException {
+        handler.startElement(coreGetNamespaceURI(), coreGetLocalName(), coreGetPrefix());
+        CoreAttribute attr = coreGetFirstAttribute();
+        while (attr != null) {
+            attr.coreSerialize(handler);
+            attr = attr.coreGetNextAttribute();
+        }
+        handler.attributesCompleted();
+    }
 }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSUnawareAttributeSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSUnawareAttributeSupport.aj?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSUnawareAttributeSupport.aj (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSUnawareAttributeSupport.aj Fri Feb 26 18:21:15 2016
@@ -18,11 +18,19 @@
  */
 package org.apache.axiom.core.impl.mixin;
 
+import org.apache.axiom.core.CoreModelException;
 import org.apache.axiom.core.CoreNSUnawareAttribute;
 import org.apache.axiom.core.NodeType;
+import org.apache.axiom.core.stream.StreamException;
+import org.apache.axiom.core.stream.XmlHandler;
 
 public aspect CoreNSUnawareAttributeSupport {
     public final NodeType CoreNSUnawareAttribute.coreGetNodeType() {
         return NodeType.NS_UNAWARE_ATTRIBUTE;
     }
+
+    public final void CoreNSUnawareAttribute.coreSerialize(XmlHandler handler) throws CoreModelException, StreamException {
+        // TODO
+        throw new UnsupportedOperationException();
+    }
 }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNamespaceDeclarationSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNamespaceDeclarationSupport.aj?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNamespaceDeclarationSupport.aj (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNamespaceDeclarationSupport.aj Fri Feb 26 18:21:15 2016
@@ -19,9 +19,12 @@
 package org.apache.axiom.core.impl.mixin;
 
 import org.apache.axiom.core.ClonePolicy;
+import org.apache.axiom.core.CoreModelException;
 import org.apache.axiom.core.CoreNamespaceDeclaration;
 import org.apache.axiom.core.CoreNode;
 import org.apache.axiom.core.NodeType;
+import org.apache.axiom.core.stream.StreamException;
+import org.apache.axiom.core.stream.XmlHandler;
 
 public aspect CoreNamespaceDeclarationSupport {
     public final NodeType CoreNamespaceDeclaration.coreGetNodeType() {
@@ -32,4 +35,8 @@ public aspect CoreNamespaceDeclarationSu
         // TODO: this is correct but bad for performance with the Axiom API
         coreSetDeclaredNamespace(((CoreNamespaceDeclaration)other).coreGetDeclaredPrefix(), "");
     }
+    
+    public final void CoreNamespaceDeclaration.coreSerialize(XmlHandler handler) throws CoreModelException, StreamException {
+        handler.processNamespaceDeclaration(coreGetDeclaredPrefix(), coreGetCharacterData().toString());
+    }
 }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeSupport.aj?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeSupport.aj (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeSupport.aj Fri Feb 26 18:21:15 2016
@@ -67,7 +67,7 @@ public aspect CoreParentNodeSupport {
             Content content = new Content();
             CoreCharacterDataNode cdata = coreGetNodeFactory().createNode(CoreCharacterDataNode.class);
             cdata.internalSetParent(this);
-            cdata.coreSetCharacterData((String)this.content);
+            cdata.coreSetCharacterData(this.content);
             content.firstChild = cdata;
             content.lastChild = cdata;
             this.content = content;
@@ -129,8 +129,8 @@ public aspect CoreParentNodeSupport {
                 case CoreParentNode.INCOMPLETE:
                     do {
                         buildNext();
-                    } while (getState() == CoreParentNode.INCOMPLETE
-                            && (firstChild = coreGetFirstChildIfAvailable()) == null);
+                    } while ((firstChild = coreGetFirstChildIfAvailable()) == null
+                            && getState() == CoreParentNode.INCOMPLETE);
             }
         }
         return firstChild;
@@ -241,7 +241,7 @@ public aspect CoreParentNodeSupport {
     
     final Object CoreParentNode.internalGetCharacterData(ElementAction elementAction) throws CoreModelException {
         if (getState() == COMPACT) {
-            return (String)content;
+            return content;
         } else {
             Object textContent = null;
             StringBuilder buffer = null;

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/NamespaceRepairingFilterHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/NamespaceRepairingFilterHandler.java?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/NamespaceRepairingFilterHandler.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/NamespaceRepairingFilterHandler.java Fri Feb 26 18:21:15 2016
@@ -21,28 +21,19 @@ package org.apache.axiom.core.stream;
 import javax.xml.XMLConstants;
 
 public final class NamespaceRepairingFilterHandler extends XmlHandlerWrapper {
+    private final NamespaceContextProvider parentNamespaceContext;
+    private final boolean removeRedundantDeclarations;
     private String[] namespaceStack = new String[32];
     private int bindings;
     private int[] scopeStack = new int[8];
     private int scopes;
 
-    public NamespaceRepairingFilterHandler(XmlHandler parent) {
+    public NamespaceRepairingFilterHandler(XmlHandler parent, NamespaceContextProvider parentNamespaceContext, boolean removeRedundantDeclarations) {
         super(parent);
+        this.parentNamespaceContext = parentNamespaceContext;
+        this.removeRedundantDeclarations = removeRedundantDeclarations;
     }
 
-    private boolean isBound(String prefix, String namespaceURI) {
-        if (prefix.equals(XMLConstants.XML_NS_PREFIX) && namespaceURI.equals(XMLConstants.XML_NS_URI)) {
-            return true;
-        } else {
-            for (int i=(bindings-1)*2; i>=0; i-=2) {
-                if (prefix.equals(namespaceStack[i])) {
-                    return namespaceURI.equals(namespaceStack[i+1]);
-                }
-            }
-            return prefix.length() == 0 && namespaceURI.length() == 0;
-        }
-    }
-    
     private void setPrefix(String prefix, String namespaceURI) {
         if (bindings*2 == namespaceStack.length) {
             int len = namespaceStack.length;
@@ -56,7 +47,27 @@ public final class NamespaceRepairingFil
     }
     
     private void ensureNamespaceDeclared(String prefix, String namespaceURI) throws StreamException {
-        if (!isBound(prefix, namespaceURI)) {
+        if (prefix.equals(XMLConstants.XML_NS_PREFIX) && namespaceURI.equals(XMLConstants.XML_NS_URI)) {
+            return;
+        }
+        boolean prefixFound = false;
+        for (int i=(bindings-1)*2; i>=0; i-=2) {
+            if (prefix.equals(namespaceStack[i])) {
+                if (namespaceURI.equals(namespaceStack[i+1])) {
+                    return;
+                } else {
+                    prefixFound = true;
+                    break;
+                }
+            }
+        }
+        if (!prefixFound && parentNamespaceContext != null) {
+            if (!parentNamespaceContext.isBound(prefix, namespaceURI)) {
+                super.processNamespaceDeclaration(prefix, namespaceURI);
+            }
+            // Always call setPrefix even if the namespace is bound, so that we cache the lookup
+            setPrefix(prefix, namespaceURI);
+        } else if (prefixFound || !prefix.isEmpty() || !namespaceURI.isEmpty()) {
             super.processNamespaceDeclaration(prefix, namespaceURI);
             setPrefix(prefix, namespaceURI);
         }
@@ -86,17 +97,21 @@ public final class NamespaceRepairingFil
     }
     
     public void processNamespaceDeclaration(String prefix, String namespaceURI) throws StreamException {
-        for (int i = scopeStack[scopes-1]; i < bindings; i++) {
-            if (namespaceStack[i*2].equals(prefix)) {
-                if (namespaceStack[i*2+1].equals(namespaceURI)) {
-                    return;
-                } else {
-                    // TODO: this causes a failure in the FOM tests
+        if (removeRedundantDeclarations) {
+            ensureNamespaceDeclared(prefix, namespaceURI);
+        } else {
+            for (int i = scopeStack[scopes-1]; i < bindings; i++) {
+                if (namespaceStack[i*2].equals(prefix)) {
+                    if (namespaceStack[i*2+1].equals(namespaceURI)) {
+                        return;
+                    } else {
+                        // TODO: this causes a failure in the FOM tests
 //                        throw new OMException("The same prefix cannot be bound to two different namespaces");
+                    }
                 }
             }
+            super.processNamespaceDeclaration(prefix, namespaceURI);
+            setPrefix(prefix, namespaceURI);
         }
-        super.processNamespaceDeclaration(prefix, namespaceURI);
-        setPrefix(prefix, namespaceURI);
     }
 }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandler.java?rev=1732530&r1=1732529&r2=1732530&view=diff
==============================================================================
--- webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandler.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandler.java Fri Feb 26 18:21:15 2016
@@ -26,12 +26,50 @@ public interface XmlHandler {
     void processDocumentTypeDeclaration(String rootName, String publicId,
             String systemId, String internalSubset) throws StreamException;
 
+    /**
+     * Prepare to write an element start tag. A call to this method will be followed by zero or more
+     * calls to {@link #processNamespaceDeclaration(String, String)} and
+     * {@link #processAttribute(String, String, String, String, String)} and a single call to
+     * {@link #attributesCompleted()}.
+     * 
+     * @param namespaceURI
+     *            the namespace URI of the element; never <code>null</code>
+     * @param localName
+     *            the local name of the element; never <code>null</code>
+     * @param prefix
+     *            the prefix of the element; never <code>null</code>
+     * @throws StreamException
+     */
     void startElement(String namespaceURI, String localName, String prefix) throws StreamException;
     
     void endElement() throws StreamException;
     
+    /**
+     * Add the given attribute to the element.
+     * 
+     * @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 prefix
+     *            the namespace prefix of the attribute; never <code>null</code>
+     * @param value
+     *            the value of the attribute; never <code>null</code>
+     * @param type
+     *            the attribute type (e.g. <tt>CDATA</tt>); never <code>null</code>
+     * @throws StreamException
+     */
     void processAttribute(String namespaceURI, String localName, String prefix, String value, String type, boolean specified) throws StreamException;
     
+    /**
+     * Add the given namespace declaration to the element.
+     * 
+     * @param prefix
+     *            the namespace prefix; never <code>null</code>
+     * @param namespaceURI
+     *            the namespace URI; never <code>null</code>
+     * @throws StreamException
+     */
     void processNamespaceDeclaration(String prefix, String namespaceURI) throws StreamException;
     
     void attributesCompleted() throws StreamException;

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/AbstractBuilder.java
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/common/builder/AbstractBuilder.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/om/impl/common/builder/AbstractBuilder.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/AbstractBuilder.java Fri Feb 26 18:21:15 2016
@@ -33,7 +33,7 @@ public abstract class AbstractBuilder im
 
     public AbstractBuilder(NodeFactory nodeFactory, Model model, AxiomSourcedElement root, boolean repairNamespaces) {
         builderHandler = new BuilderHandler(nodeFactory, model, root, this);
-        handler = repairNamespaces ? new NamespaceRepairingFilterHandler(builderHandler) : builderHandler;
+        handler = repairNamespaces ? new NamespaceRepairingFilterHandler(builderHandler, null, false) : builderHandler;
     }
 
     public final void addListener(BuilderListener listener) {

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderHandler.java
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/common/builder/BuilderHandler.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/om/impl/common/builder/BuilderHandler.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderHandler.java Fri Feb 26 18:21:15 2016
@@ -30,23 +30,8 @@ import org.apache.axiom.core.Builder;
 import org.apache.axiom.core.CoreNode;
 import org.apache.axiom.core.CoreParentNode;
 import org.apache.axiom.core.NodeFactory;
-import org.apache.axiom.core.stream.StreamException;
 import org.apache.axiom.core.stream.XmlHandler;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.impl.common.AxiomSemantics;
-import org.apache.axiom.om.impl.common.OMNamespaceImpl;
-import org.apache.axiom.om.impl.intf.AxiomAttribute;
-import org.apache.axiom.om.impl.intf.AxiomCDATASection;
-import org.apache.axiom.om.impl.intf.AxiomCharacterDataNode;
-import org.apache.axiom.om.impl.intf.AxiomChildNode;
-import org.apache.axiom.om.impl.intf.AxiomComment;
-import org.apache.axiom.om.impl.intf.AxiomContainer;
-import org.apache.axiom.om.impl.intf.AxiomDocType;
 import org.apache.axiom.om.impl.intf.AxiomDocument;
-import org.apache.axiom.om.impl.intf.AxiomElement;
-import org.apache.axiom.om.impl.intf.AxiomEntityReference;
-import org.apache.axiom.om.impl.intf.AxiomNamespaceDeclaration;
-import org.apache.axiom.om.impl.intf.AxiomProcessingInstruction;
 import org.apache.axiom.om.impl.intf.AxiomSourcedElement;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -54,14 +39,12 @@ import org.apache.commons.logging.LogFac
 public final class BuilderHandler implements XmlHandler {
     private static final Log log = LogFactory.getLog(BuilderHandler.class);
     
-    private static final OMNamespace DEFAULT_NS = new OMNamespaceImpl("", "");
-    
-    private final NodeFactory nodeFactory;
-    private final Model model;
-    private final AxiomSourcedElement root;
-    private final Builder builder;
-    private final OMNamespaceCache nsCache = new OMNamespaceCache();
-    public AxiomContainer target;
+    final NodeFactory nodeFactory;
+    final Model model;
+    final AxiomSourcedElement root;
+    final Builder builder;
+    final OMNamespaceCache nsCache = new OMNamespaceCache();
+    public Context context;
     // returns the state of completion
     public boolean done;
     // keeps the state of the cache
@@ -89,6 +72,7 @@ public final class BuilderHandler implem
         this.model = model;
         this.root = root;
         this.builder = builder;
+        context = new Context(this, null, 0);
     }
 
     public void addListener(BuilderListener listener) {
@@ -98,7 +82,7 @@ public final class BuilderHandler implem
         listeners.add(listener);
     }
     
-    private void nodeAdded(CoreNode node) {
+    void nodeAdded(CoreNode node) {
         if (listeners != null) {
             for (int i=0, size=listeners.size(); i<size; i++) {
                 Runnable action = listeners.get(i).nodeAdded(node, depth);
@@ -133,11 +117,6 @@ public final class BuilderHandler implem
         }
     }
     
-    private void addChild(AxiomChildNode node) {
-        target.addChild(node, true);
-        nodeAdded(node);
-    }
-    
     public void startDocument(String inputEncoding, String xmlVersion, String xmlEncoding, boolean standalone) {
         if (root == null) {
             document = nodeFactory.createNode(model.getDocumentType());
@@ -147,123 +126,68 @@ public final class BuilderHandler implem
             document.coreSetStandalone(standalone);
             document.coreSetBuilder(builder);
             nodeAdded(document);
-            target = document;
+            context.target = document;
         }
     }
     
     public void processDocumentTypeDeclaration(String rootName, String publicId, String systemId,
             String internalSubset) {
         model.validateEventType(XMLStreamConstants.DTD);
-        AxiomDocType node = nodeFactory.createNode(AxiomDocType.class);
-        node.coreSetRootName(rootName);
-        node.coreSetPublicId(publicId);
-        node.coreSetSystemId(systemId);
-        node.coreSetInternalSubset(internalSubset);
-        addChild(node);
+        context.processDocumentTypeDeclaration(rootName, publicId, systemId, internalSubset);
     }
     
     public void startElement(String namespaceURI, String localName, String prefix) {
         depth++;
-        AxiomElement element;
-        OMNamespace ns = nsCache.getOMNamespace(namespaceURI, prefix);
-        if (depth == 1 && root != null) {
-            root.validateName(prefix, localName, namespaceURI);
-            root.initName(localName, ns, false);
-            element = root;
-        } else {
-            element = nodeFactory.createNode(model.determineElementType(
-                    target, depth, namespaceURI, localName));
-            element.coreSetBuilder(builder);
-            element.coreSetState(CoreParentNode.ATTRIBUTES_PENDING);
-            element.initName(localName, ns, false);
-            addChild(element);
-        }
-        target = element;
+        context = context.startElement(namespaceURI, localName, prefix);
     }
     
     public void endElement() {
+        context = context.endElement();
         depth--;
-        target.setComplete(true);
-        if (depth == 0) {
-            // This is relevant for OMSourcedElements and for the case where the document has been discarded
-            // using getDocumentElement(true). In these cases, this will actually set target to null. In all
-            // other cases, this will have the same effect as the instruction in the else clause.
-            target = document;
-        } else {
-            target = (AxiomContainer)((AxiomElement)target).getParent();
-        }
     }
 
     public void processAttribute(String namespaceURI, String localName, String prefix, String value, String type, boolean specified) {
-        OMNamespace ns = nsCache.getOMNamespace(namespaceURI, prefix);
-        AxiomAttribute attr = nodeFactory.createNode(AxiomAttribute.class);
-        attr.internalSetLocalName(localName);
-        attr.coreSetCharacterData(value, AxiomSemantics.INSTANCE);
-        attr.internalSetNamespace(ns);
-        attr.coreSetType(type);
-        attr.coreSetSpecified(specified);
-        ((AxiomElement)target).coreAppendAttribute(attr);
+        context.processAttribute(namespaceURI, localName, prefix, value, type, specified);
     }
     
     public void processNamespaceDeclaration(String prefix, String namespaceURI) {
-        OMNamespace ns = nsCache.getOMNamespace(namespaceURI, prefix);
-        if (ns == null) {
-            ns = DEFAULT_NS;
-        }
-        AxiomNamespaceDeclaration decl = nodeFactory.createNode(AxiomNamespaceDeclaration.class);
-        decl.setDeclaredNamespace(ns);
-        ((AxiomElement)target).coreAppendAttribute(decl);
+        context.processNamespaceDeclaration(prefix, namespaceURI);
     }
     
     public void attributesCompleted() {
-        target.coreSetState(CoreParentNode.INCOMPLETE);
+        context.attributesCompleted();
     }
     
     public void processCharacterData(Object data, boolean ignorable) {
-        AxiomCharacterDataNode node = nodeFactory.createNode(AxiomCharacterDataNode.class);
-        node.coreSetCharacterData(data);
-        node.coreSetIgnorable(ignorable);
-        addChild(node);
+        context.processCharacterData(data, ignorable);
     }
     
     public void processProcessingInstruction(String piTarget, String piData) {
         model.validateEventType(XMLStreamConstants.PROCESSING_INSTRUCTION);
-        AxiomProcessingInstruction node = nodeFactory.createNode(AxiomProcessingInstruction.class);
-        node.coreSetTarget(piTarget);
-        node.coreSetCharacterData(piData, AxiomSemantics.INSTANCE);
-        addChild(node);
+        context.processProcessingInstruction(piTarget, piData);
     }
 
     public void processComment(String content) {
         model.validateEventType(XMLStreamConstants.COMMENT);
-        AxiomComment node = nodeFactory.createNode(AxiomComment.class);
-        node.coreSetCharacterData(content, AxiomSemantics.INSTANCE);
-        addChild(node);
+        context.processComment(content);
     }
     
     public void processCDATASection(String content) {
         model.validateEventType(XMLStreamConstants.CDATA);
-        AxiomCDATASection node = nodeFactory.createNode(AxiomCDATASection.class);
-        node.coreSetCharacterData(content, AxiomSemantics.INSTANCE);
-        addChild(node);
+        context.processCDATASection(content);
     }
     
     public void processEntityReference(String name, String replacementText) {
         model.validateEventType(XMLStreamConstants.ENTITY_REFERENCE);
-        AxiomEntityReference node = nodeFactory.createNode(AxiomEntityReference.class);
-        node.coreSetName(name);
-        node.coreSetReplacementText(replacementText);
-        addChild(node);
+        context.processEntityReference(name, replacementText);
     }
     
     public void endDocument() {
         if (depth != 0) {
             throw new IllegalStateException();
         }
-        if (document != null) {
-            document.setComplete(true);
-        }
-        target = null;
+        context.endDocument();
+        context = null;
         done = true;
     }
 }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderListener.java
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/common/builder/BuilderListener.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/om/impl/common/builder/BuilderListener.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderListener.java Fri Feb 26 18:21:15 2016
@@ -18,17 +18,19 @@
  */
 package org.apache.axiom.om.impl.common.builder;
 
+import org.apache.axiom.core.CoreCharacterDataNode;
 import org.apache.axiom.core.CoreDocument;
 import org.apache.axiom.core.CoreNode;
 
 public interface BuilderListener {
     /**
-     * Inform the listener that a node has been added to the tree. Note that this method will also
-     * be invoked for the {@link CoreDocument}. Since the builder is not reentrant, implementations
-     * must not perform any operations on the node that would require building additional nodes. If
-     * such operations need to be executed, the listener should return a {@link Runnable}
-     * encapsulating these operations. The builder will then execute that runnable as soon as it is
-     * safe to do so.
+     * Inform the listener that a node has been added to the tree. Note that this method will not be
+     * invoked for {@link CoreCharacterDataNode}s (because they are created lazily). On the other
+     * hand, it will be invoked for the {@link CoreDocument}. Since the builder is not reentrant,
+     * implementations must not perform any operations on the node that would require building
+     * additional nodes. If such operations need to be executed, the listener should return a
+     * {@link Runnable} encapsulating these operations. The builder will then execute that runnable
+     * as soon as it is safe to do so.
      * 
      * @param node
      *            the node that has been added

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/StAXOMBuilder.java
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/common/builder/StAXOMBuilder.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/om/impl/common/builder/StAXOMBuilder.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/StAXOMBuilder.java Fri Feb 26 18:21:15 2016
@@ -104,20 +104,20 @@ public class StAXOMBuilder extends Abstr
     
     public final void discard(CoreParentNode container) {
         int targetElementLevel = builderHandler.depth;
-        AxiomContainer current = builderHandler.target;
-        while (current != container) {
+        Context current = builderHandler.context;
+        while (current.target != container) {
             targetElementLevel--;
-            current = (AxiomContainer)((OMElement)current).getParent();
+            current = current.parentContext;
         }
         if (targetElementLevel == 0 || targetElementLevel == 1 && builderHandler.document == null) {
             close();
-            current = builderHandler.target;
+            current = builderHandler.context;
             while (true) {
-                discarded(current);
-                if (current == container) {
+                discarded(current.target);
+                if (current.target == container) {
                     break;
                 }
-                current = (AxiomContainer)((OMElement)current).getParent();
+                current = current.parentContext;
             }
             return;
         }
@@ -131,9 +131,9 @@ public class StAXOMBuilder extends Abstr
                     if (skipDepth > 0) {
                         skipDepth--;
                     } else {
-                        discarded(builderHandler.target);
-                        boolean found = container == builderHandler.target;
-                        builderHandler.target = (AxiomContainer)((OMElement)builderHandler.target).getParent();
+                        discarded(builderHandler.context.target);
+                        boolean found = container == builderHandler.context.target;
+                        builderHandler.context = builderHandler.context.parentContext;
                         builderHandler.depth--;
                         if (found) {
                             break loop;
@@ -144,11 +144,11 @@ public class StAXOMBuilder extends Abstr
                     if (skipDepth != 0 || builderHandler.depth != 0) {
                         throw new OMException("Unexpected END_DOCUMENT");
                     }
-                    if (builderHandler.target != builderHandler.document) {
+                    if (builderHandler.context.target != builderHandler.document) {
                         throw new OMException("Called discard for an element that is not being built by this builder");
                     }
-                    discarded(builderHandler.target);
-                    builderHandler.target = null;
+                    discarded(builderHandler.context.target);
+                    builderHandler.context = null;
                     builderHandler.done = true;
                     break loop;
             }
@@ -214,16 +214,16 @@ public class StAXOMBuilder extends Abstr
         if (!builderHandler.cache) {
             parserAccessed = true;
             // Mark all containers in the hierarchy as discarded because they can no longer be built
-            AxiomContainer current = builderHandler.target;
+            Context current = builderHandler.context;
             while (builderHandler.depth > 0) {
-                discarded(current);
-                current = (AxiomContainer)((OMElement)current).getParent();
+                discarded(current.target);
+                current = current.parentContext;
                 builderHandler.depth--;
             }
-            if (current != null && current == builderHandler.document) {
-                discarded(current);
+            if (current != null && current.target == builderHandler.document) {
+                discarded(current.target);
             }
-            builderHandler.target = null;
+            builderHandler.context = null;
             return helper.parser;
         } else {
             throw new IllegalStateException(
@@ -245,34 +245,34 @@ public class StAXOMBuilder extends Abstr
     // This method expects that the parser is currently positioned on the
     // end event corresponding to the container passed as parameter
     public final void reenableCaching(CoreParentNode container) {
-        AxiomContainer current = builderHandler.target;
+        Context current = builderHandler.context;
         while (true) {
-            discarded(current);
+            discarded(current.target);
             if (builderHandler.depth == 0) {
-                if (current != container || current != builderHandler.document) {
+                if (current.target != container || current.target != builderHandler.document) {
                     throw new IllegalStateException();
                 }
                 break;
             }
             builderHandler.depth--;
-            if (current == container) {
+            if (current.target == container) {
                 break;
             }
-            current = (AxiomContainer)((OMElement)current).getParent();
+            current = current.parentContext;
         }
         // Note that at this point current == container
         if (container == builderHandler.document) {
-            builderHandler.target = null;
+            builderHandler.context = null;
             builderHandler.done = true;
         } else if (builderHandler.depth == 0 && builderHandler.document == null) {
             // Consume the remaining event; for the rationale, see StAXOMBuilder#next()
             while (helper.parserNext() != XMLStreamConstants.END_DOCUMENT) {
                 // Just loop
             }
-            builderHandler.target = null;
+            builderHandler.context = null;
             builderHandler.done = true;
         } else {
-            builderHandler.target = (AxiomContainer)((OMElement)container).getParent();
+            builderHandler.context = builderHandler.context.parentContext;
         }
         if (log.isDebugEnabled()) {
             log.debug("Caching re-enabled; new element level: " + builderHandler.depth + "; done=" + builderHandler.done);
@@ -349,7 +349,7 @@ public class StAXOMBuilder extends Abstr
         builderHandler.executeDeferredListenerActions();
         
         // TODO: this will fail if there is whitespace before the document element
-        if (event != XMLStreamConstants.START_DOCUMENT && builderHandler.target == null && !builderHandler.done) {
+        if (event != XMLStreamConstants.START_DOCUMENT && builderHandler.depth == 0 && builderHandler.document == null && !builderHandler.done) {
             // We get here if the document has been discarded (by getDocumentElement(true)
             // or because the builder is linked to an OMSourcedElement) and
             // we just processed the END_ELEMENT event for the root element. In this case, we consume
@@ -398,6 +398,6 @@ public class StAXOMBuilder extends Abstr
     }
 
     public final AxiomContainer getTarget() {
-        return builderHandler.target;
+        return builderHandler.context.target;
     }
 }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java
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/common/factory/AbstractOMMetaFactory.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/om/impl/common/factory/AbstractOMMetaFactory.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java Fri Feb 26 18:21:15 2016
@@ -32,6 +32,7 @@ import javax.xml.transform.sax.SAXSource
 import javax.xml.transform.stream.StreamSource;
 
 import org.apache.axiom.core.NodeFactory;
+import org.apache.axiom.core.stream.sax.SAXInput;
 import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMMetaFactory;
@@ -40,7 +41,6 @@ import org.apache.axiom.om.impl.builder.
 import org.apache.axiom.om.impl.common.builder.PlainXMLModel;
 import org.apache.axiom.om.impl.common.builder.PushBuilder;
 import org.apache.axiom.om.impl.common.builder.StAXOMBuilder;
-import org.apache.axiom.om.impl.stream.sax.SAXInput;
 import org.apache.axiom.om.util.StAXParserConfiguration;
 import org.apache.axiom.om.util.StAXUtils;
 import org.apache.axiom.soap.SOAP12Constants;

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/OMFactoryImpl.java
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/common/factory/OMFactoryImpl.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/om/impl/common/factory/OMFactoryImpl.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/OMFactoryImpl.java Fri Feb 26 18:21:15 2016
@@ -20,6 +20,7 @@ package org.apache.axiom.om.impl.common.
 
 import static org.apache.axiom.util.xml.NSUtils.generatePrefix;
 
+import javax.activation.DataHandler;
 import javax.xml.namespace.QName;
 
 import org.apache.axiom.core.CoreModelException;
@@ -98,7 +99,7 @@ public class OMFactoryImpl implements OM
         node.coreSetSystemId(systemId);
         node.coreSetInternalSubset(internalSubset);
         if (parent != null) {
-            ((AxiomContainer)parent).addChild(node, false);
+            ((AxiomContainer)parent).addChild(node);
         }
         return node;
     }
@@ -124,7 +125,7 @@ public class OMFactoryImpl implements OM
                 throw new IllegalArgumentException("Invalid node type");
         }
         if (parent != null) {
-            ((AxiomContainer)parent).addChild(node, false);
+            ((AxiomContainer)parent).addChild(node);
         }
         node.coreSetCharacterData(content, AxiomSemantics.INSTANCE);
         return node;
@@ -179,7 +180,7 @@ public class OMFactoryImpl implements OM
         }
     }
 
-    public final OMText createOMText(Object dataHandler, boolean optimize) {
+    public final OMText createOMText(DataHandler dataHandler, boolean optimize) {
         return createAxiomText(null, new TextContent(null, dataHandler, optimize), OMNode.TEXT_NODE);
     }
 
@@ -193,7 +194,7 @@ public class OMFactoryImpl implements OM
         node.coreSetTarget(piTarget);
         node.coreSetCharacterData(piData, AxiomSemantics.INSTANCE);
         if (parent != null) {
-            ((AxiomContainer)parent).addChild(node, false);
+            ((AxiomContainer)parent).addChild(node);
         }
         return node;
     }
@@ -202,7 +203,7 @@ public class OMFactoryImpl implements OM
         AxiomEntityReference node = createNode(AxiomEntityReference.class);
         node.coreSetName(name);
         if (parent != null) {
-            ((AxiomContainer)parent).addChild(node, false);
+            ((AxiomContainer)parent).addChild(node);
         }
         return node;
     }
@@ -211,7 +212,7 @@ public class OMFactoryImpl implements OM
         AxiomComment node = createNode(AxiomComment.class);
         node.coreSetCharacterData(content, AxiomSemantics.INSTANCE);
         if (parent != null) {
-            ((AxiomContainer)parent).addChild(node, false);
+            ((AxiomContainer)parent).addChild(node);
         }
         return node;
     }
@@ -224,7 +225,7 @@ public class OMFactoryImpl implements OM
             OMContainer parent, String localName, OMNamespace ns) {
         T element = createNode(type);
         if (parent != null) {
-            ((AxiomContainer)parent).addChild(element, false);
+            ((AxiomContainer)parent).addChild(element);
         }
         element.initName(localName, ns, true);
         return element;

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/XMLReaderImpl.java
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/common/serializer/push/sax/XMLReaderImpl.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/om/impl/common/serializer/push/sax/XMLReaderImpl.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/XMLReaderImpl.java Fri Feb 26 18:21:15 2016
@@ -20,8 +20,11 @@ package org.apache.axiom.om.impl.common.
 
 import java.io.IOException;
 
+import org.apache.axiom.core.CoreElement;
 import org.apache.axiom.core.stream.StreamException;
-import org.apache.axiom.om.OMOutputFormat;
+import org.apache.axiom.core.stream.XmlHandler;
+import org.apache.axiom.core.stream.sax.ContentHandlerXmlHandler;
+import org.apache.axiom.om.impl.common.serializer.push.NamespaceContextPreservationFilterHandler;
 import org.apache.axiom.om.impl.intf.AxiomContainer;
 import org.apache.axiom.util.sax.AbstractXMLReader;
 import org.xml.sax.InputSource;
@@ -45,9 +48,13 @@ public class XMLReaderImpl extends Abstr
     }
     
     private void parse() throws SAXException {
+        XmlHandler handler = new ContentHandlerXmlHandler(contentHandler, lexicalHandler);
+        CoreElement contextElement = root.getContextElement();
+        if (contextElement != null) {
+            handler = new NamespaceContextPreservationFilterHandler(handler, contextElement);
+        }
         try {
-            root.internalSerialize(new SAXSerializer(contentHandler, lexicalHandler).buildHandler(root, false, true),
-                    new OMOutputFormat(), cache);
+            root.internalSerialize(handler, cache);
         } catch (StreamException ex) {
             throw (SAXException)ex.getCause();
         }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/stax/StAXSerializer.java
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/common/serializer/push/stax/StAXSerializer.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/om/impl/common/serializer/push/stax/StAXSerializer.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/stax/StAXSerializer.java Fri Feb 26 18:21:15 2016
@@ -24,22 +24,13 @@ import org.apache.axiom.core.stream.Stre
 import org.apache.axiom.core.stream.XmlHandler;
 import org.apache.axiom.ext.stax.datahandler.DataHandlerProvider;
 import org.apache.axiom.ext.stax.datahandler.DataHandlerWriter;
-import org.apache.axiom.om.OMException;
-import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.OMSerializable;
-import org.apache.axiom.om.impl.common.serializer.push.SerializerImpl;
+import org.apache.axiom.om.impl.intf.TextContent;
 import org.apache.axiom.util.stax.XMLStreamWriterUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
-import javax.activation.DataHandler;
-import javax.xml.namespace.NamespaceContext;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 
-public class StAXSerializer extends SerializerImpl {
-    private static final Log log = LogFactory.getLog(StAXSerializer.class);
-    
+public class StAXSerializer implements XmlHandler {
     private final XMLStreamWriter writer;
     private DataHandlerWriter dataHandlerWriter;
     
@@ -47,10 +38,6 @@ public class StAXSerializer extends Seri
         this.writer = writer;
     }
 
-    public XmlHandler buildHandler(OMSerializable root) {
-        return buildHandler(root, true, false);
-    }
-    
     public XMLStreamWriter getWriter() {
         return writer;
     }
@@ -109,102 +96,40 @@ public class StAXSerializer extends Seri
         // Nothing to do here
     }
 
-    /**
-     * @param prefix 
-     * @param namespace
-     * @return true if the prefix is associated with the namespace in the current context
-     */
-    protected boolean isAssociated(String prefix, String namespace) throws StreamException {
-        try {
-            // The "xml" prefix is always (implicitly) associated. Returning true here makes sure that
-            // we never write a declaration for the xml namespace. See AXIOM-37 for a discussion
-            // of this issue.
-            if ("xml".equals(prefix)) {
-                return true;
-            }
-            
-            // NOTE: Calling getNamespaceContext() on many XMLStreamWriter implementations is expensive.
-            // Please use other writer methods first.
-            
-            // For consistency, convert null arguments.
-            // This helps get around the parser implementation differences.
-            // In addition, the getPrefix/getNamespace methods cannot be called with null parameters.
-            prefix = (prefix == null) ? "" : prefix;
-            namespace = (namespace == null) ? "" : namespace;
-            
-            if (namespace.length() > 0) {
-                // QUALIFIED NAMESPACE
-                // Get the namespace associated with the prefix
-                String writerPrefix = writer.getPrefix(namespace);
-                if (prefix.equals(writerPrefix)) {
-                    return true;
-                }
-                
-                // It is possible that the namespace is associated with multiple prefixes,
-                // So try getting the namespace as a second step.
-                if (writerPrefix != null) {
-                    NamespaceContext nsContext = writer.getNamespaceContext();
-                    if(nsContext != null) {
-                        String writerNS = nsContext.getNamespaceURI(prefix);
-                        return namespace.equals(writerNS);
-                    }
-                }
-                return false;
-            } else {
-                // UNQUALIFIED NAMESPACE
-                
-                // Neither XML 1.0 nor XML 1.1 allow to associate a prefix with an unqualified name (see also AXIOM-372).
-                if (prefix.length() > 0) {
-                    throw new OMException("Invalid namespace declaration: Prefixed namespace bindings may not be empty.");  
-                }
-                
-                // Get the namespace associated with the prefix.
-                // It is illegal to call getPrefix with null, but the specification is not
-                // clear on what happens if called with "".  So the following code is 
-                // protected
-                try {
-                    String writerPrefix = writer.getPrefix("");
-                    if (writerPrefix != null && writerPrefix.length() == 0) {
-                        return true;
-                    }
-                } catch (Throwable t) {
-                    if (log.isDebugEnabled()) {
-                        log.debug("Caught exception from getPrefix(\"\"). Processing continues: " + t);
-                    }
-                }
-                
-                
-                
-                // Fallback to using the namespace context
-                NamespaceContext nsContext = writer.getNamespaceContext();
-                if (nsContext != null) {
-                    String writerNS = nsContext.getNamespaceURI("");
-                    if (writerNS != null && writerNS.length() > 0) {
-                        return false;
-                    }
-                }
-                return true;
-            }
+    public void endElement() throws StreamException {
+        try {
+            writer.writeEndElement();
         } catch (XMLStreamException ex) {
             throw new StreamException(ex);
         }
     }
 
-    public void endElement() throws StreamException {
+    public void processCharacterData(Object data, boolean ignorable) throws StreamException {
         try {
-            writer.writeEndElement();
+            if (data instanceof TextContent) {
+                TextContent textContent = (TextContent)data;
+                if (textContent.isBinary()) {
+                    Object dataHandlerObject = textContent.getDataHandlerObject();
+                    if (dataHandlerObject instanceof DataHandlerProvider) {
+                        getDataHandlerWriter().writeDataHandler((DataHandlerProvider)dataHandlerObject, textContent.getContentID(), textContent.isOptimize());
+                    } else {
+                        getDataHandlerWriter().writeDataHandler(textContent.getDataHandler(), textContent.getContentID(), textContent.isOptimize());
+                    }
+                    return;
+                }
+            }
+            writer.writeCharacters(data.toString());
         } catch (XMLStreamException ex) {
             throw new StreamException(ex);
+        } catch (IOException ex) {
+            throw new StreamException(ex);
         }
     }
-
-    public void writeText(int type, String data) throws StreamException {
+    
+    @Override
+    public void processCDATASection(String content) throws StreamException {
         try {
-            if (type == OMNode.CDATA_SECTION_NODE) {
-                writer.writeCData(data);
-            } else {
-                writer.writeCharacters(data);
-            }
+            writer.writeCData(content);
         } catch (XMLStreamException ex) {
             throw new StreamException(ex);
         }
@@ -242,26 +167,6 @@ public class StAXSerializer extends Seri
         return dataHandlerWriter;
     }
 
-    public void writeDataHandler(DataHandler dataHandler, String contentID, boolean optimize) throws StreamException {
-        try {
-            getDataHandlerWriter().writeDataHandler(dataHandler, contentID, optimize);
-        } catch (IOException ex) {
-            throw new StreamException("Error while reading data handler", ex);
-        } catch (XMLStreamException ex) {
-            throw new StreamException(ex);
-        }
-    }
-
-    public void writeDataHandler(DataHandlerProvider dataHandlerProvider, String contentID, boolean optimize) throws StreamException {
-        try {
-            getDataHandlerWriter().writeDataHandler(dataHandlerProvider, contentID, optimize);
-        } catch (IOException ex) {
-            throw new StreamException("Error while reading data handler", ex);
-        } catch (XMLStreamException ex) {
-            throw new StreamException(ex);
-        }
-    }
-
     public void endDocument() throws StreamException {
         // TODO: the original StAX serialization code newer called writeEndDocument; this is probably a mistake
     }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/intf/AxiomContainer.java
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/intf/AxiomContainer.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/om/impl/intf/AxiomContainer.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/intf/AxiomContainer.java Fri Feb 26 18:21:15 2016
@@ -25,8 +25,6 @@ import org.apache.axiom.om.OMNode;
 public interface AxiomContainer extends OMContainer, AxiomCoreParentNode {
     void discarded();
     
-    void addChild(OMNode omNode, boolean fromBuilder);
-    
     /**
      * Check if the node can be added as a child of this container.
      * 

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/intf/AxiomSerializable.java
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/intf/AxiomSerializable.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/om/impl/intf/AxiomSerializable.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/intf/AxiomSerializable.java Fri Feb 26 18:21:15 2016
@@ -20,7 +20,6 @@ package org.apache.axiom.om.impl.intf;
 
 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.OMSerializable;
 
 public interface AxiomSerializable extends OMSerializable, AxiomInformationItem {
@@ -30,9 +29,8 @@ public interface AxiomSerializable exten
      * Serializes the node.
      *
      * @param serializer
-     * @param format
      * @param cache indicates if caching should be enabled
      * @throws StreamException 
      */
-    void internalSerialize(XmlHandler handler, OMOutputFormat format, boolean cache) throws StreamException;
+    void internalSerialize(XmlHandler handler, boolean cache) throws StreamException;
 }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/intf/TextContent.java
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/intf/TextContent.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/om/impl/intf/TextContent.java (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/intf/TextContent.java Fri Feb 26 18:21:15 2016
@@ -19,6 +19,7 @@
 package org.apache.axiom.om.impl.intf;
 
 import java.io.IOException;
+import java.io.Writer;
 
 import javax.activation.DataHandler;
 
@@ -29,6 +30,7 @@ import org.apache.axiom.ext.stax.datahan
 import org.apache.axiom.om.OMCloneOptions;
 import org.apache.axiom.om.OMException;
 import org.apache.axiom.util.UIDGenerator;
+import org.apache.axiom.util.base64.Base64EncodingWriterOutputStream;
 import org.apache.axiom.util.base64.Base64Utils;
 
 public final class TextContent implements CharacterData {
@@ -158,8 +160,19 @@ public final class TextContent implement
         if (binary && options instanceof OMCloneOptions && ((OMCloneOptions)options).isFetchDataHandlers()) {
             // Force loading of the reference to the DataHandler and ensure that its content is
             // completely fetched into memory (or temporary storage).
-            ((DataHandler)getDataHandler()).getDataSource();
+            getDataHandler().getDataSource();
         }
         return new TextContent(this);
     }
+
+    @Override
+    public void writeTo(Writer writer) throws IOException {
+        if (binary) {
+            Base64EncodingWriterOutputStream out = new Base64EncodingWriterOutputStream(writer, 4096, true);
+            getDataHandler().writeTo(out);
+            out.complete();
+        } else {
+            writer.write(value);
+        }
+    }
 }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCDATASectionSupport.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/AxiomCDATASectionSupport.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/AxiomCDATASectionSupport.aj (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCDATASectionSupport.aj Fri Feb 26 18:21:15 2016
@@ -18,11 +18,13 @@
  */
 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.OMNode;
-import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.impl.common.AxiomExceptionTranslator;
 import org.apache.axiom.om.impl.intf.AxiomCDATASection;
 
@@ -31,11 +33,19 @@ public aspect AxiomCDATASectionSupport {
         return OMNode.CDATA_SECTION_NODE;
     }
 
-    public final void AxiomCDATASection.internalSerialize(XmlHandler handler, OMOutputFormat format, boolean cache) throws StreamException {
+    public final void AxiomCDATASection.internalSerialize(XmlHandler handler, boolean cache) throws StreamException {
         try {
             handler.processCDATASection(coreGetCharacterData().toString());
         } catch (CoreModelException ex) {
             throw AxiomExceptionTranslator.translate(ex);
         }
+    }
+
+    public final void AxiomCDATASection.serialize(XMLStreamWriter writer, boolean cache) throws XMLStreamException {
+        try {
+            writer.writeCData(coreGetCharacterData().toString());
+        } catch (CoreModelException ex) {
+            throw AxiomExceptionTranslator.translate(ex);
+        }
     }
 }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCharacterDataNodeSupport.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/AxiomCharacterDataNodeSupport.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/AxiomCharacterDataNodeSupport.aj (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCharacterDataNodeSupport.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.AxiomCharacterDataNode;
 
 public aspect AxiomCharacterDataNodeSupport {
@@ -29,7 +31,11 @@ public aspect AxiomCharacterDataNodeSupp
         return coreIsIgnorable() ? OMNode.SPACE_NODE : OMNode.TEXT_NODE;
     }
 
-    public final void AxiomCharacterDataNode.internalSerialize(XmlHandler handler, OMOutputFormat format, boolean cache) throws StreamException {
+    public final void AxiomCharacterDataNode.internalSerialize(XmlHandler handler, boolean cache) throws StreamException {
         handler.processCharacterData(coreGetCharacterData(), coreIsIgnorable());
     }
+
+    public final void AxiomCharacterDataNode.serialize(XMLStreamWriter writer, boolean cache) throws XMLStreamException {
+        writer.writeCharacters(coreGetCharacterData().toString());
+    }
 }

Modified: webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCommentSupport.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/AxiomCommentSupport.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/AxiomCommentSupport.aj (original)
+++ webservices/axiom/branches/maven-site-plugin-3.5/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomCommentSupport.aj Fri Feb 26 18:21:15 2016
@@ -18,11 +18,13 @@
  */
 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.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.AxiomComment;
@@ -44,12 +46,20 @@ public aspect AxiomCommentSupport {
         coreSetCharacterData(text, AxiomSemantics.INSTANCE);
     }
     
-    public final void AxiomComment.internalSerialize(XmlHandler handler, OMOutputFormat format, boolean cache) throws StreamException {
+    public final void AxiomComment.internalSerialize(XmlHandler handler, boolean cache) throws StreamException {
         try {
             handler.processComment(coreGetCharacterData().toString());
         } catch (CoreModelException ex) {
             throw AxiomExceptionTranslator.translate(ex);
         }
+    }
+
+    public final void AxiomComment.serialize(XMLStreamWriter writer, boolean cache) throws XMLStreamException {
+        try {
+            writer.writeComment(coreGetCharacterData().toString());
+        } catch (CoreModelException ex) {
+            throw AxiomExceptionTranslator.translate(ex);
+        }
     }
     
     public final void AxiomComment.buildWithAttachments() {