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 2013/02/02 19:58:28 UTC

svn commit: r1441790 [1/2] - in /webservices/axiom/trunk/modules: axiom-api/src/main/java/org/apache/axiom/om/ axiom-api/src/main/java/org/apache/axiom/om/impl/builder/ axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/ axiom-common-impl/...

Author: veithen
Date: Sat Feb  2 18:58:27 2013
New Revision: 1441790

URL: http://svn.apache.org/viewvc?rev=1441790&view=rev
Log:
* Defined a new exception (DeferredParsingException) specifically for errors occurring when fetching data from the underlying parser.
* Finalized the Serializer API so that we can start implement it for SAX.

Added:
    webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/om/DeferredParsingException.java   (with props)
Modified:
    webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXBuilder.java
    webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java
    webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/ISerializable.java
    webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMDocumentHelper.java
    webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/SAXSerializer.java
    webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/Serializer.java
    webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/StAXSerializer.java
    webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/AttrImpl.java
    webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/CommentImpl.java
    webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentFragmentImpl.java
    webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentImpl.java
    webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentTypeImpl.java
    webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java
    webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/EntityReferenceImpl.java
    webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NodeImpl.java
    webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ProcessingInstructionImpl.java
    webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/TextNodeImpl.java
    webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java
    webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPMessageImpl.java
    webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMCommentImpl.java
    webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMDocTypeImpl.java
    webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMDocumentImpl.java
    webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java
    webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMEntityReferenceImpl.java
    webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMProcessingInstructionImpl.java
    webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java
    webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMTextImpl.java
    webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java
    webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPFaultImpl.java
    webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPMessageImpl.java

Added: webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/om/DeferredParsingException.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/om/DeferredParsingException.java?rev=1441790&view=auto
==============================================================================
--- webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/om/DeferredParsingException.java (added)
+++ webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/om/DeferredParsingException.java Sat Feb  2 18:58:27 2013
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axiom.om;
+
+/**
+ * Exception indicating that an operation could not be completed because it needed to read
+ * additional data from the underlying parser and that action failed. This is typically caused by
+ * malformed XML.
+ */
+public class DeferredParsingException extends OMException {
+    private static final long serialVersionUID = -4000648685202187908L;
+
+    public DeferredParsingException(Throwable cause) {
+        super(cause);
+    }
+}

Propchange: webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/om/DeferredParsingException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXBuilder.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXBuilder.java (original)
+++ webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXBuilder.java Sat Feb  2 18:58:27 2013
@@ -312,42 +312,38 @@ public abstract class StAXBuilder implem
 //        if (element.isComplete() || !cache) {
 //            throw new OMException();
 //        }
-        try {
-            int skipDepth = 0;
-            loop: while (true) {
-                switch (parserNext()) {
-                    case XMLStreamReader.START_ELEMENT:
-                        skipDepth++;
-                        break;
-                    case XMLStreamReader.END_ELEMENT:
-                        if (skipDepth > 0) {
-                            skipDepth--;
-                        } else {
-                            discarded(target);
-                            boolean found = container == target;
-                            target = (OMContainerEx)((OMElement)target).getParent();
-                            elementLevel--;
-                            if (found) {
-                                break loop;
-                            }
-                        }
-                        break;
-                    case XMLStreamReader.END_DOCUMENT:
-                        if (skipDepth != 0 || elementLevel != 0) {
-                            throw new OMException("Unexpected END_DOCUMENT");
-                        }
-                        if (target != document) {
-                            throw new OMException("Called discard for an element that is not being built by this builder");
-                        }
+        int skipDepth = 0;
+        loop: while (true) {
+            switch (parserNext()) {
+                case XMLStreamReader.START_ELEMENT:
+                    skipDepth++;
+                    break;
+                case XMLStreamReader.END_ELEMENT:
+                    if (skipDepth > 0) {
+                        skipDepth--;
+                    } else {
                         discarded(target);
-                        target = null;
-                        done = true;
-                        break loop;
-                }
+                        boolean found = container == target;
+                        target = (OMContainerEx)((OMElement)target).getParent();
+                        elementLevel--;
+                        if (found) {
+                            break loop;
+                        }
+                    }
+                    break;
+                case XMLStreamReader.END_DOCUMENT:
+                    if (skipDepth != 0 || elementLevel != 0) {
+                        throw new OMException("Unexpected END_DOCUMENT");
+                    }
+                    if (target != document) {
+                        throw new OMException("Called discard for an element that is not being built by this builder");
+                    }
+                    discarded(target);
+                    target = null;
+                    done = true;
+                    break loop;
             }
-        } catch (XMLStreamException e) {
-            throw new OMException(e);
-        } 
+        }
     }
 
     /**
@@ -554,7 +550,7 @@ public abstract class StAXBuilder implem
      */
     // This method expects that the parser is currently positioned on the
     // end event corresponding to the container passed as parameter
-    public void reenableCaching(OMContainer container) throws XMLStreamException {
+    public void reenableCaching(OMContainer container) {
         OMContainerEx current = target;
         while (true) {
             discarded(current);
@@ -604,7 +600,7 @@ public abstract class StAXBuilder implem
      */
     protected abstract OMNode createOMElement() throws OMException;
 
-    abstract int parserNext() throws XMLStreamException;
+    abstract int parserNext();
     
     /**
      * Forwards the parser one step further, if parser is not completed yet. If this is called after

Modified: webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java (original)
+++ webservices/axiom/trunk/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/builder/StAXOMBuilder.java Sat Feb  2 18:58:27 2013
@@ -20,6 +20,7 @@
 package org.apache.axiom.om.impl.builder;
 
 import org.apache.axiom.ext.stax.DTDReader;
+import org.apache.axiom.om.DeferredParsingException;
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMContainer;
 import org.apache.axiom.om.OMDocument;
@@ -186,123 +187,119 @@ public class StAXOMBuilder extends StAXB
      * @throws OMException
      */
     public int next() throws OMException {
-        try {
-            // We need a loop here because we may decide to skip an event
-            while (true) {
-                if (done) {
-                    throw new OMException();
-                }
-                createDocumentIfNecessary();
-                int token = parserNext();
-                if (!cache) {
-                    return token;
+        // We need a loop here because we may decide to skip an event
+        while (true) {
+            if (done) {
+                throw new OMException();
+            }
+            createDocumentIfNecessary();
+            int token = parserNext();
+            if (!cache) {
+                return token;
+            }
+           
+            // The current token should be the same as the 
+            // one just obtained.  This bit of code is used to 
+            // detect invalid parser state.
+            if (doTrace) {
+                int currentParserToken = parser.getEventType();
+                if (currentParserToken != token) {
+
+
+                    log.debug("WARNING: The current state of the parser is not equal to the " +
+                              "state just received from the parser. The current state in the paser is " +
+                              XMLEventUtils.getEventTypeString(currentParserToken) + " the state just received is " +
+                              XMLEventUtils.getEventTypeString(token));
+
+                    /*
+                      throw new OMException("The current token " + token + 
+                                     " does not match the current event " +
+                                     "reported by the parser token.  The parser did not update its state correctly.  " +
+                                     "The parser is " + parser);
+                     */
                 }
-               
-                // The current token should be the same as the 
-                // one just obtained.  This bit of code is used to 
-                // detect invalid parser state.
-                if (doTrace) {
-                    int currentParserToken = parser.getEventType();
-                    if (currentParserToken != token) {
-    
-    
-                        log.debug("WARNING: The current state of the parser is not equal to the " +
-                                  "state just received from the parser. The current state in the paser is " +
-                                  XMLEventUtils.getEventTypeString(currentParserToken) + " the state just received is " +
-                                  XMLEventUtils.getEventTypeString(token));
-    
-                        /*
-                          throw new OMException("The current token " + token + 
-                                         " does not match the current event " +
-                                         "reported by the parser token.  The parser did not update its state correctly.  " +
-                                         "The parser is " + parser);
-                         */
+            }
+            
+            // Now log the current state of the parser
+            if (doTrace) {
+                logParserState();
+            }
+           
+            switch (token) {
+                case XMLStreamConstants.START_ELEMENT: {
+                    elementLevel++;
+                    OMNode node = createNextOMElement();
+                    // If the node was created by a custom builder, then it will be complete;
+                    // in this case, the target doesn't change
+                    if (!node.isComplete()) {
+                        target = (OMContainerEx)node;
                     }
+                    break;
                 }
-                
-                // Now log the current state of the parser
-                if (doTrace) {
-                    logParserState();
-                }
-               
-                switch (token) {
-                    case XMLStreamConstants.START_ELEMENT: {
-                        elementLevel++;
-                        OMNode node = createNextOMElement();
-                        // If the node was created by a custom builder, then it will be complete;
-                        // in this case, the target doesn't change
-                        if (!node.isComplete()) {
-                            target = (OMContainerEx)node;
-                        }
-                        break;
-                    }
-                    case XMLStreamConstants.CHARACTERS:
-                        createOMText(XMLStreamConstants.CHARACTERS);
-                        break;
-                    case XMLStreamConstants.CDATA:
-                        createOMText(XMLStreamConstants.CDATA);
-                        break;
-                    case XMLStreamConstants.END_ELEMENT:
-                        elementLevel--;
-                        endElement();
-                        break;
-                    case XMLStreamConstants.END_DOCUMENT:
-                        done = true;
-                        ((OMContainerEx) this.document).setComplete(true);
-                        target = null;
-                        break;
-                    case XMLStreamConstants.SPACE:
-                        try {
-                            OMNode node = createOMText(XMLStreamConstants.SPACE);
-                            if (node == null) {
-                                continue;
-                            }
-                        } catch (OMHierarchyException ex) {
-                            // The OM implementation doesn't allow text nodes at the current
-                            // position in the tree. Since it is only whitespace, we can safely
-                            // skip this event.
+                case XMLStreamConstants.CHARACTERS:
+                    createOMText(XMLStreamConstants.CHARACTERS);
+                    break;
+                case XMLStreamConstants.CDATA:
+                    createOMText(XMLStreamConstants.CDATA);
+                    break;
+                case XMLStreamConstants.END_ELEMENT:
+                    elementLevel--;
+                    endElement();
+                    break;
+                case XMLStreamConstants.END_DOCUMENT:
+                    done = true;
+                    ((OMContainerEx) this.document).setComplete(true);
+                    target = null;
+                    break;
+                case XMLStreamConstants.SPACE:
+                    try {
+                        OMNode node = createOMText(XMLStreamConstants.SPACE);
+                        if (node == null) {
                             continue;
                         }
-                        break;
-                    case XMLStreamConstants.COMMENT:
-                        createComment();
-                        break;
-                    case XMLStreamConstants.DTD:
-                        createDTD();
-                        break;
-                    case XMLStreamConstants.PROCESSING_INSTRUCTION:
-                        createPI();
-                        break;
-                    case XMLStreamConstants.ENTITY_REFERENCE:
-                        createEntityReference();
-                        break;
-                    default :
-                        throw new OMException();
-                }
-                
-                if (target == null && !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
-                    // the remaining events until we reach the end of the document. This serves several purposes:
-                    //  * It allows us to detect documents that have an epilog that is not well formed.
-                    //  * Many parsers will perform some cleanup when the end of the document is reached.
-                    //    For example, Woodstox will recycle the symbol table if the parser gets past the
-                    //    last END_ELEMENT. This improves performance because Woodstox by default interns
-                    //    all symbols; if the symbol table can be recycled, then this reduces the number of
-                    //    calls to String#intern().
-                    //  * If autoClose is set, the parser will be closed so that even more resources
-                    //    can be released.
-                    while (parserNext() != XMLStreamConstants.END_DOCUMENT) {
-                        // Just loop
+                    } catch (OMHierarchyException ex) {
+                        // The OM implementation doesn't allow text nodes at the current
+                        // position in the tree. Since it is only whitespace, we can safely
+                        // skip this event.
+                        continue;
                     }
-                    done = true;
+                    break;
+                case XMLStreamConstants.COMMENT:
+                    createComment();
+                    break;
+                case XMLStreamConstants.DTD:
+                    createDTD();
+                    break;
+                case XMLStreamConstants.PROCESSING_INSTRUCTION:
+                    createPI();
+                    break;
+                case XMLStreamConstants.ENTITY_REFERENCE:
+                    createEntityReference();
+                    break;
+                default :
+                    throw new OMException();
+            }
+            
+            if (target == null && !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
+                // the remaining events until we reach the end of the document. This serves several purposes:
+                //  * It allows us to detect documents that have an epilog that is not well formed.
+                //  * Many parsers will perform some cleanup when the end of the document is reached.
+                //    For example, Woodstox will recycle the symbol table if the parser gets past the
+                //    last END_ELEMENT. This improves performance because Woodstox by default interns
+                //    all symbols; if the symbol table can be recycled, then this reduces the number of
+                //    calls to String#intern().
+                //  * If autoClose is set, the parser will be closed so that even more resources
+                //    can be released.
+                while (parserNext() != XMLStreamConstants.END_DOCUMENT) {
+                    // Just loop
                 }
-                
-                return token;
+                done = true;
             }
-        } catch (XMLStreamException e) {
-            throw new OMException(e);
+            
+            return token;
         }
     }
     
@@ -675,39 +672,43 @@ public class StAXOMBuilder extends StAXB
      * Pushes the virtual parser ahead one token.
      * If a look ahead token was calculated it is returned.
      * @return next token
-     * @throws XMLStreamException
+     * @throws DeferredParsingException
      */
-    int parserNext() throws XMLStreamException {
+    int parserNext() {
         if (lookAheadToken >= 0) {
             int token = lookAheadToken;
             lookAheadToken = -1; // Reset
             return token;
         } else {
-            if (parserException != null) {
-                log.warn("Attempt to access a parser that has thrown a parse exception before; " +
-                		"rethrowing the original exception.");
-                if (parserException instanceof XMLStreamException) {
-                    throw (XMLStreamException)parserException;
-                } else {
-                    throw (RuntimeException)parserException;
-                }
-            }
-            int event;
             try {
-                event = parser.next();
-            } catch (XMLStreamException ex) {
-                parserException = ex;
-                throw ex;
-            }
-            if (event == XMLStreamConstants.END_DOCUMENT) {
-                if (cache && elementLevel != 0) {
-                    throw new OMException("Unexpected END_DOCUMENT event");
+                if (parserException != null) {
+                    log.warn("Attempt to access a parser that has thrown a parse exception before; " +
+                    		"rethrowing the original exception.");
+                    if (parserException instanceof XMLStreamException) {
+                        throw (XMLStreamException)parserException;
+                    } else {
+                        throw (RuntimeException)parserException;
+                    }
                 }
-                if (autoClose) {
-                    close();
+                int event;
+                try {
+                    event = parser.next();
+                } catch (XMLStreamException ex) {
+                    parserException = ex;
+                    throw ex;
+                }
+                if (event == XMLStreamConstants.END_DOCUMENT) {
+                    if (cache && elementLevel != 0) {
+                        throw new OMException("Unexpected END_DOCUMENT event");
+                    }
+                    if (autoClose) {
+                        close();
+                    }
                 }
+                return event;
+            } catch (XMLStreamException ex) {
+                throw new DeferredParsingException(ex);
             }
-            return event;
         }
     }
     
@@ -716,24 +717,20 @@ public class StAXOMBuilder extends StAXB
      * @return true if successful
      */
     public boolean lookahead()  {
-        try {
-            while (true) {
-                if (lookAheadToken < 0) {
-                    lookAheadToken = parserNext();
-                }
-                if (lookAheadToken == XMLStreamConstants.START_ELEMENT) {
-                    return true;
-                } else if (lookAheadToken == XMLStreamConstants.END_ELEMENT ||
-                        lookAheadToken == XMLStreamConstants.START_DOCUMENT ||
-                        lookAheadToken == XMLStreamConstants.END_DOCUMENT) {
-                    next();
-                    return false;  // leaving scope...start element not found
-                } else {
-                    next();  // continue looking past whitespace etc.
-                }
+        while (true) {
+            if (lookAheadToken < 0) {
+                lookAheadToken = parserNext();
+            }
+            if (lookAheadToken == XMLStreamConstants.START_ELEMENT) {
+                return true;
+            } else if (lookAheadToken == XMLStreamConstants.END_ELEMENT ||
+                    lookAheadToken == XMLStreamConstants.START_DOCUMENT ||
+                    lookAheadToken == XMLStreamConstants.END_DOCUMENT) {
+                next();
+                return false;  // leaving scope...start element not found
+            } else {
+                next();  // continue looking past whitespace etc.
             }
-        } catch (XMLStreamException e) {
-            throw new OMException(e);
         }
     }
     

Modified: webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/ISerializable.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/ISerializable.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/ISerializable.java (original)
+++ webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/ISerializable.java Sat Feb  2 18:58:27 2013
@@ -18,12 +18,11 @@
  */
 package org.apache.axiom.om.impl.common;
 
-import javax.xml.stream.XMLStreamException;
 
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.OMSerializable;
 import org.apache.axiom.om.impl.common.serializer.OutputException;
-import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 
 public interface ISerializable extends OMSerializable {
     /**
@@ -32,8 +31,7 @@ public interface ISerializable extends O
      * @param serializer
      * @param format
      * @param cache indicates if caching should be enabled
-     * @throws XMLStreamException
      * @throws OutputException 
      */
-    void internalSerialize(StAXSerializer serializer, OMOutputFormat format, boolean cache) throws XMLStreamException, OutputException;
+    void internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache) throws OutputException;
 }

Modified: webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMDocumentHelper.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMDocumentHelper.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMDocumentHelper.java (original)
+++ webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMDocumentHelper.java Sat Feb  2 18:58:27 2013
@@ -19,12 +19,10 @@
 
 package org.apache.axiom.om.impl.common;
 
-import javax.xml.stream.XMLStreamException;
-
 import org.apache.axiom.om.OMDocument;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.impl.common.serializer.OutputException;
-import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 
 /**
  * Utility class with default implementations for some of the methods defined by the
@@ -33,8 +31,8 @@ import org.apache.axiom.om.impl.common.s
 public class OMDocumentHelper {
     private OMDocumentHelper() {}
     
-    public static void internalSerialize(IDocument document, StAXSerializer serializer,
-            OMOutputFormat format, boolean cache, boolean includeXMLDeclaration) throws XMLStreamException, OutputException {
+    public static void internalSerialize(IDocument document, Serializer serializer,
+            OMOutputFormat format, boolean cache, boolean includeXMLDeclaration) throws OutputException {
         
         if (includeXMLDeclaration) {
             //Check whether the OMOutput char encoding and OMDocument char

Modified: webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/SAXSerializer.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/SAXSerializer.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/SAXSerializer.java (original)
+++ webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/SAXSerializer.java Sat Feb  2 18:58:27 2013
@@ -19,9 +19,9 @@
 package org.apache.axiom.om.impl.common.serializer;
 
 import javax.activation.DataHandler;
-import javax.xml.stream.XMLStreamWriter;
 
 import org.apache.axiom.ext.stax.datahandler.DataHandlerProvider;
+import org.apache.axiom.om.OMDataSource;
 import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMSerializable;
 import org.xml.sax.ContentHandler;
@@ -146,8 +146,8 @@ public class SAXSerializer extends Seria
         
     }
 
-    protected XMLStreamWriter getWriter() {
+    protected void serializePushOMDataSource(OMDataSource dataSource) throws OutputException {
         // TODO Auto-generated method stub
-        return null;
+        
     }
 }

Modified: webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/Serializer.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/Serializer.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/Serializer.java (original)
+++ webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/Serializer.java Sat Feb  2 18:58:27 2013
@@ -29,13 +29,20 @@ import javax.xml.stream.XMLStreamWriter;
 import org.apache.axiom.ext.stax.DTDReader;
 import org.apache.axiom.ext.stax.datahandler.DataHandlerProvider;
 import org.apache.axiom.ext.stax.datahandler.DataHandlerReader;
+import org.apache.axiom.om.DeferredParsingException;
+import org.apache.axiom.om.NodeUnavailableException;
 import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMContainer;
 import org.apache.axiom.om.OMDataSource;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.OMNode;
+import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.OMSerializable;
+import org.apache.axiom.om.impl.builder.StAXBuilder;
+import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.impl.common.IChildNode;
+import org.apache.axiom.om.impl.common.IContainer;
 import org.apache.axiom.om.impl.common.OMDataSourceUtil;
 import org.apache.axiom.util.stax.XMLStreamReaderUtils;
 
@@ -83,65 +90,69 @@ public abstract class Serializer {
         finishStartElement();
     }
     
-    public final void copyEvent(XMLStreamReader reader, DataHandlerReader dataHandlerReader) throws XMLStreamException, OutputException {
-        int eventType = reader.getEventType();
-        switch (eventType) {
-            case XMLStreamReader.DTD:
-                DTDReader dtdReader;
-                try {
-                    dtdReader = (DTDReader)reader.getProperty(DTDReader.PROPERTY);
-                } catch (IllegalArgumentException ex) {
-                    dtdReader = null;
-                }
-                if (dtdReader == null) {
-                    throw new XMLStreamException("Cannot serialize the DTD because the XMLStreamReader doesn't support the DTDReader extension");
-                }
-                writeDTD(dtdReader.getRootName(), dtdReader.getPublicId(), dtdReader.getSystemId(), reader.getText());
-                break;
-            case XMLStreamReader.START_ELEMENT:
-                beginStartElement(normalize(reader.getPrefix()), normalize(reader.getNamespaceURI()), reader.getLocalName());
-                for (int i=0, count=reader.getNamespaceCount(); i<count; i++) {
-                    generateSetPrefix(normalize(reader.getNamespacePrefix(i)), normalize(reader.getNamespaceURI(i)), false);
-                }
-                for (int i=0, count=reader.getAttributeCount(); i<count; i++) {
-                    processAttribute(
-                            normalize(reader.getAttributePrefix(i)),
-                            normalize(reader.getAttributeNamespace(i)),
-                            reader.getAttributeLocalName(i),
-                            reader.getAttributeValue(i));
-                }
-                finishStartElement();
-                break;
-            case XMLStreamReader.END_ELEMENT:
-                writeEndElement();
-                break;
-            case XMLStreamReader.CHARACTERS:
-                if (dataHandlerReader != null && dataHandlerReader.isBinary()) {
-                    if (dataHandlerReader.isDeferred()) {
-                        writeDataHandler(dataHandlerReader.getDataHandlerProvider(),
-                                dataHandlerReader.getContentID(), dataHandlerReader.isOptimized());
-                    } else {
-                        writeDataHandler(dataHandlerReader.getDataHandler(),
-                                dataHandlerReader.getContentID(), dataHandlerReader.isOptimized());
+    private void copyEvent(XMLStreamReader reader, DataHandlerReader dataHandlerReader) throws OutputException {
+        try {
+            int eventType = reader.getEventType();
+            switch (eventType) {
+                case XMLStreamReader.DTD:
+                    DTDReader dtdReader;
+                    try {
+                        dtdReader = (DTDReader)reader.getProperty(DTDReader.PROPERTY);
+                    } catch (IllegalArgumentException ex) {
+                        dtdReader = null;
+                    }
+                    if (dtdReader == null) {
+                        throw new XMLStreamException("Cannot serialize the DTD because the XMLStreamReader doesn't support the DTDReader extension");
                     }
+                    writeDTD(dtdReader.getRootName(), dtdReader.getPublicId(), dtdReader.getSystemId(), reader.getText());
                     break;
-                }
-                // Fall through
-            case XMLStreamReader.SPACE:
-            case XMLStreamReader.CDATA:
-                writeText(eventType, reader.getText());
-                break;
-            case XMLStreamReader.PROCESSING_INSTRUCTION:
-                writeProcessingInstruction(reader.getPITarget(), reader.getPIData());
-                break;
-            case XMLStreamReader.COMMENT:
-                writeComment(reader.getText());
-                break;
-            case XMLStreamReader.ENTITY_REFERENCE:
-                writeEntityRef(reader.getLocalName());
-                break;
-            default:
-                throw new IllegalStateException();
+                case XMLStreamReader.START_ELEMENT:
+                    beginStartElement(normalize(reader.getPrefix()), normalize(reader.getNamespaceURI()), reader.getLocalName());
+                    for (int i=0, count=reader.getNamespaceCount(); i<count; i++) {
+                        generateSetPrefix(normalize(reader.getNamespacePrefix(i)), normalize(reader.getNamespaceURI(i)), false);
+                    }
+                    for (int i=0, count=reader.getAttributeCount(); i<count; i++) {
+                        processAttribute(
+                                normalize(reader.getAttributePrefix(i)),
+                                normalize(reader.getAttributeNamespace(i)),
+                                reader.getAttributeLocalName(i),
+                                reader.getAttributeValue(i));
+                    }
+                    finishStartElement();
+                    break;
+                case XMLStreamReader.END_ELEMENT:
+                    writeEndElement();
+                    break;
+                case XMLStreamReader.CHARACTERS:
+                    if (dataHandlerReader != null && dataHandlerReader.isBinary()) {
+                        if (dataHandlerReader.isDeferred()) {
+                            writeDataHandler(dataHandlerReader.getDataHandlerProvider(),
+                                    dataHandlerReader.getContentID(), dataHandlerReader.isOptimized());
+                        } else {
+                            writeDataHandler(dataHandlerReader.getDataHandler(),
+                                    dataHandlerReader.getContentID(), dataHandlerReader.isOptimized());
+                        }
+                        break;
+                    }
+                    // Fall through
+                case XMLStreamReader.SPACE:
+                case XMLStreamReader.CDATA:
+                    writeText(eventType, reader.getText());
+                    break;
+                case XMLStreamReader.PROCESSING_INSTRUCTION:
+                    writeProcessingInstruction(reader.getPITarget(), reader.getPIData());
+                    break;
+                case XMLStreamReader.COMMENT:
+                    writeComment(reader.getText());
+                    break;
+                case XMLStreamReader.ENTITY_REFERENCE:
+                    writeEntityRef(reader.getLocalName());
+                    break;
+                default:
+                    throw new IllegalStateException();
+            }
+        } catch (XMLStreamException ex) {
+            throw new DeferredParsingException(ex);
         }
     }
     
@@ -206,29 +217,107 @@ public abstract class Serializer {
         }
     }
     
-    public final void serialize(OMDataSource dataSource) throws XMLStreamException, OutputException {
+    public final void serializeChildren(IContainer container, OMOutputFormat format, boolean cache) throws OutputException {
+        if (container.getState() == IContainer.DISCARDED) {
+            StAXBuilder builder = (StAXBuilder)container.getBuilder();
+            if (builder != null) {
+                builder.debugDiscarded(container);
+            }
+            throw new NodeUnavailableException();
+        }
+        if (cache) {
+            IChildNode child = (IChildNode)container.getFirstOMChild();
+            while (child != null) {
+                child.internalSerialize(this, format, true);
+                child = (IChildNode)child.getNextOMSibling();
+            }
+        } else {
+            // First, recursively serialize all child nodes that have already been created
+            IChildNode child = (IChildNode)container.getFirstOMChildIfAvailable();
+            while (child != null) {
+                child.internalSerialize(this, format, cache);
+                child = (IChildNode)child.getNextOMSiblingIfAvailable();
+            }
+            // Next, if the container is incomplete, disable caching (temporarily)
+            // and serialize the nodes that have not been built yet by copying the
+            // events from the underlying XMLStreamReader.
+            if (!container.isComplete() && container.getBuilder() != null) {
+                StAXOMBuilder builder = (StAXOMBuilder)container.getBuilder();
+                builder.setCache(false);
+                XMLStreamReader reader = (XMLStreamReader)builder.disableCaching();
+                DataHandlerReader dataHandlerReader = XMLStreamReaderUtils.getDataHandlerReader(reader);
+                int depth = 0;
+                loop: while (true) {
+                    // We use the next() method on the builder instead of the XMLStreamReader
+                    // because this takes care of lookahead and autoClose.
+                    int event = builder.next();
+                    switch (event) {
+                        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;
+                    }
+                    // Note that we don't copy the final END_ELEMENT/END_DOCUMENT event for
+                    // the container. This is the responsibility of the caller.
+                    copyEvent(reader, dataHandlerReader);
+                }
+                builder.reenableCaching(container);
+            }
+        }
+    }
+
+    /**
+     * Serialize the given data source.
+     * 
+     * @param dataSource
+     *            the data source to serialize
+     * @throws OutputException
+     *             if an error occurs while writing the data
+     * @throws DeferredParsingException
+     *             if an error occurs while reading from the data source
+     */
+    public final void serialize(OMDataSource dataSource) throws OutputException {
         // Note: if we can't determine the type (push/pull) of the OMDataSource, we
         // default to push
         if (OMDataSourceUtil.isPullDataSource(dataSource)) {
-            XMLStreamReader reader = dataSource.getReader();
-            DataHandlerReader dataHandlerReader = XMLStreamReaderUtils.getDataHandlerReader(reader);
-            int depth = 0;
-            int eventType;
-            // Note: the loop is constructed in such a way that we skip both START_DOCUMENT and END_DOCUMENT
-            while ((eventType = reader.next()) != XMLStreamReader.END_DOCUMENT) {
-                if (eventType == XMLStreamReader.START_ELEMENT) {
-                    depth++;
-                }
-                if (depth > 0) {
-                    copyEvent(reader, dataHandlerReader);
-                }
-                if (eventType == XMLStreamReader.END_ELEMENT) {
-                    depth--;
+            try {
+                XMLStreamReader reader = dataSource.getReader();
+                DataHandlerReader dataHandlerReader = XMLStreamReaderUtils.getDataHandlerReader(reader);
+                int depth = 0;
+                int eventType;
+                // Note: the loop is constructed in such a way that we skip both START_DOCUMENT and END_DOCUMENT
+                while ((eventType = reader.next()) != XMLStreamReader.END_DOCUMENT) {
+                    if (eventType == XMLStreamReader.START_ELEMENT) {
+                        depth++;
+                    }
+                    if (depth > 0) {
+                        copyEvent(reader, dataHandlerReader);
+                    }
+                    if (eventType == XMLStreamReader.END_ELEMENT) {
+                        depth--;
+                    }
                 }
+                reader.close();
+            } catch (XMLStreamException ex) {
+                // XMLStreamExceptions occurring while _writing_ are wrapped in an OutputException.
+                // Therefore, if we get here, there must have been a problem while _reading_.
+                throw new DeferredParsingException(ex);
             }
-            reader.close();
         } else {
-            dataSource.serialize(getWriter());
+            serializePushOMDataSource(dataSource);
         }
     }
     
@@ -261,6 +350,19 @@ public abstract class Serializer {
     public abstract void writeDataHandler(DataHandler dataHandler, String contentID, boolean optimize) throws OutputException;
 
     public abstract void writeDataHandler(DataHandlerProvider dataHandlerProvider, String contentID, boolean optimize) throws OutputException;
-    
-    protected abstract XMLStreamWriter getWriter();
+
+    /**
+     * Serialize the given data source using {@link OMDataSource#serialize(XMLStreamWriter)}. The
+     * implementation must construct an appropriate {@link XMLStreamWriter} instance to pass to that
+     * method and wrap any {@link XMLStreamException} that may be thrown in an
+     * {@link OutputException} or {@link DeferredParsingException}.
+     * 
+     * @param dataSource
+     *            the data source to serialize
+     * @throws OutputException
+     *             if an error occurs while writing the data
+     * @throws DeferredParsingException
+     *             if an error occurs while reading from the data source
+     */
+    protected abstract void serializePushOMDataSource(OMDataSource dataSource) throws OutputException;
 }

Modified: webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/StAXSerializer.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/StAXSerializer.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/StAXSerializer.java (original)
+++ webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/StAXSerializer.java Sat Feb  2 18:58:27 2013
@@ -21,18 +21,11 @@ package org.apache.axiom.om.impl.common.
 import java.io.IOException;
 
 import org.apache.axiom.ext.stax.datahandler.DataHandlerProvider;
-import org.apache.axiom.ext.stax.datahandler.DataHandlerReader;
 import org.apache.axiom.ext.stax.datahandler.DataHandlerWriter;
-import org.apache.axiom.om.NodeUnavailableException;
+import org.apache.axiom.om.OMDataSource;
 import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.OMSerializable;
-import org.apache.axiom.om.impl.builder.StAXBuilder;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-import org.apache.axiom.om.impl.common.IChildNode;
-import org.apache.axiom.om.impl.common.IContainer;
-import org.apache.axiom.util.stax.XMLStreamReaderUtils;
 import org.apache.axiom.util.stax.XMLStreamWriterUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -40,7 +33,6 @@ import org.apache.commons.logging.LogFac
 import javax.activation.DataHandler;
 import javax.xml.namespace.NamespaceContext;
 import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 
 public class StAXSerializer extends Serializer {
@@ -55,8 +47,15 @@ public class StAXSerializer extends Seri
         dataHandlerWriter = XMLStreamWriterUtils.getDataHandlerWriter(writer);
     }
 
-    protected XMLStreamWriter getWriter() {
-        return writer;
+    protected void serializePushOMDataSource(OMDataSource dataSource) throws OutputException {
+        try {
+            dataSource.serialize(writer);
+        } catch (XMLStreamException ex) {
+            // We cannot really differentiate between exceptions thrown by the XMLStreamWriter
+            // and exceptions thrown by the data source itself. We wrap all XMLStreamExceptions
+            // as OutputExceptions.
+            throw new OutputException(ex);
+        }
     }
 
     public void writeStartDocument(String version) throws OutputException {
@@ -111,68 +110,6 @@ public class StAXSerializer extends Seri
         }
     }
 
-    public void serializeChildren(IContainer container, OMOutputFormat format, boolean cache) throws XMLStreamException, OutputException {
-        if (container.getState() == IContainer.DISCARDED) {
-            StAXBuilder builder = (StAXBuilder)container.getBuilder();
-            if (builder != null) {
-                builder.debugDiscarded(container);
-            }
-            throw new NodeUnavailableException();
-        }
-        if (cache) {
-            IChildNode child = (IChildNode)container.getFirstOMChild();
-            while (child != null) {
-                child.internalSerialize(this, format, true);
-                child = (IChildNode)child.getNextOMSibling();
-            }
-        } else {
-            // First, recursively serialize all child nodes that have already been created
-            IChildNode child = (IChildNode)container.getFirstOMChildIfAvailable();
-            while (child != null) {
-                child.internalSerialize(this, format, cache);
-                child = (IChildNode)child.getNextOMSiblingIfAvailable();
-            }
-            // Next, if the container is incomplete, disable caching (temporarily)
-            // and serialize the nodes that have not been built yet by copying the
-            // events from the underlying XMLStreamReader.
-            if (!container.isComplete() && container.getBuilder() != null) {
-                StAXOMBuilder builder = (StAXOMBuilder)container.getBuilder();
-                builder.setCache(false);
-                XMLStreamReader reader = (XMLStreamReader)builder.disableCaching();
-                DataHandlerReader dataHandlerReader = XMLStreamReaderUtils.getDataHandlerReader(reader);
-                int depth = 0;
-                loop: while (true) {
-                    // We use the next() method on the builder instead of the XMLStreamReader
-                    // because this takes care of lookahead and autoClose.
-                    int event = builder.next();
-                    switch (event) {
-                        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;
-                    }
-                    // Note that we don't copy the final END_ELEMENT/END_DOCUMENT event for
-                    // the container. This is the responsibility of the caller.
-                    copyEvent(reader, dataHandlerReader);
-                }
-                builder.reenableCaching(container);
-            }
-        }
-    }
-
     protected void setPrefix(String prefix, String namespaceURI) throws OutputException {
         try {
             if (prefix.length() == 0) {

Modified: webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/AttrImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/AttrImpl.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/AttrImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/AttrImpl.java Sat Feb  2 18:58:27 2013
@@ -28,7 +28,7 @@ import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.om.impl.common.OMNamespaceImpl;
-import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 import org.w3c.dom.Attr;
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Element;
@@ -38,7 +38,6 @@ import org.w3c.dom.TypeInfo;
 
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
 
 /** Implementation of <code>org.w3c.dom.Attr</code> and <code>org.apache.axiom.om.OMAttribute</code> */
 public class AttrImpl extends RootNode implements OMAttribute, Attr, NamedNode {
@@ -469,7 +468,7 @@ public class AttrImpl extends RootNode i
                 (namespace != null ? namespace.hashCode() : 0);
     }
 
-    public void internalSerialize(StAXSerializer serializer, OMOutputFormat format, boolean cache) throws XMLStreamException {
+    public void internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache) {
         throw new UnsupportedOperationException();
     }
 

Modified: webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/CommentImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/CommentImpl.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/CommentImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/CommentImpl.java Sat Feb  2 18:58:27 2013
@@ -24,7 +24,7 @@ import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.impl.common.serializer.OutputException;
-import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 import org.w3c.dom.Comment;
 import org.w3c.dom.Node;
 
@@ -53,7 +53,7 @@ public class CommentImpl extends Charact
         return OMNode.COMMENT_NODE;
     }
 
-    public void internalSerialize(StAXSerializer serializer, OMOutputFormat format, boolean cache) throws OutputException {
+    public void internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache) throws OutputException {
         serializer.writeComment(this.textValue);
     }
 

Modified: webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentFragmentImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentFragmentImpl.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentFragmentImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentFragmentImpl.java Sat Feb  2 18:58:27 2013
@@ -26,7 +26,7 @@ import org.apache.axiom.om.OMOutputForma
 import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.om.impl.common.IContainer;
 import org.apache.axiom.om.impl.common.OMContainerHelper;
-import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 import org.w3c.dom.DocumentFragment;
 import org.w3c.dom.Node;
 
@@ -70,7 +70,7 @@ public class DocumentFragmentImpl extend
         return "#document-fragment";
     }
 
-    public void internalSerialize(StAXSerializer serializer, OMOutputFormat format, boolean cache) throws XMLStreamException {
+    public void internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache) {
         // TODO
         throw new UnsupportedOperationException("TODO");
     }

Modified: webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentImpl.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentImpl.java Sat Feb  2 18:58:27 2013
@@ -35,6 +35,7 @@ import org.apache.axiom.om.impl.common.O
 import org.apache.axiom.om.impl.common.OMDocumentHelper;
 import org.apache.axiom.om.impl.common.OMNamespaceImpl;
 import org.apache.axiom.om.impl.common.serializer.OutputException;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
 import org.w3c.dom.Attr;
 import org.w3c.dom.CDATASection;
@@ -103,7 +104,7 @@ public class DocumentImpl extends RootNo
         return null;
     }
 
-    public void internalSerialize(StAXSerializer serializer, OMOutputFormat format, boolean cache) throws XMLStreamException, OutputException {
+    public void internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache) throws OutputException {
         internalSerialize(serializer, format, cache, !format.isIgnoreXMLDeclaration());
     }
 
@@ -577,8 +578,8 @@ public class DocumentImpl extends RootNo
         setXMLVersion(version);
     }
 
-    protected void internalSerialize(StAXSerializer serializer, OMOutputFormat format,
-            boolean cache, boolean includeXMLDeclaration) throws XMLStreamException, OutputException {
+    protected void internalSerialize(Serializer serializer, OMOutputFormat format,
+            boolean cache, boolean includeXMLDeclaration) throws OutputException {
         OMDocumentHelper.internalSerialize(this, serializer, format, cache, includeXMLDeclaration);
     }
 

Modified: webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentTypeImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentTypeImpl.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentTypeImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentTypeImpl.java Sat Feb  2 18:58:27 2013
@@ -24,7 +24,7 @@ import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.impl.OMNodeEx;
 import org.apache.axiom.om.impl.common.serializer.OutputException;
-import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 import org.w3c.dom.DocumentType;
 import org.w3c.dom.NamedNodeMap;
 
@@ -51,7 +51,7 @@ public class DocumentTypeImpl extends Le
         return DOCUMENT_TYPE_NODE;
     }
 
-    public void internalSerialize(StAXSerializer serializer, OMOutputFormat format, boolean cache) throws OutputException {
+    public void internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache) throws OutputException {
         serializer.writeDTD(rootName, publicId, systemId, internalSubset);
     }
 

Modified: webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java Sat Feb  2 18:58:27 2013
@@ -38,7 +38,7 @@ import org.apache.axiom.om.impl.common.O
 import org.apache.axiom.om.impl.common.OMNamespaceImpl;
 import org.apache.axiom.om.impl.common.OMNodeHelper;
 import org.apache.axiom.om.impl.common.serializer.OutputException;
-import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 import org.apache.axiom.om.impl.traverse.OMQNameFilterIterator;
 import org.apache.axiom.om.impl.traverse.OMQualifiedNameFilterIterator;
 import org.apache.axiom.om.impl.util.EmptyIterator;
@@ -891,8 +891,8 @@ public class ElementImpl extends ParentN
         }
     }
 
-    public void internalSerialize(StAXSerializer serializer,
-                                     OMOutputFormat format, boolean cache) throws XMLStreamException, OutputException {
+    public void internalSerialize(Serializer serializer,
+                                     OMOutputFormat format, boolean cache) throws OutputException {
 
         serializer.serializeStartpart(this);
         serializer.serializeChildren(this, format, cache);

Modified: webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/EntityReferenceImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/EntityReferenceImpl.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/EntityReferenceImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/EntityReferenceImpl.java Sat Feb  2 18:58:27 2013
@@ -23,7 +23,7 @@ import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.impl.common.serializer.OutputException;
-import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 import org.w3c.dom.EntityReference;
 import org.w3c.dom.Node;
 
@@ -41,7 +41,7 @@ public class EntityReferenceImpl extends
         return OMNode.ENTITY_REFERENCE_NODE;
     }
 
-    public void internalSerialize(StAXSerializer serializer, OMOutputFormat format, boolean cache) throws OutputException {
+    public void internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache) throws OutputException {
         serializer.writeEntityRef(name);
     }
 

Modified: webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NodeImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NodeImpl.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NodeImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NodeImpl.java Sat Feb  2 18:58:27 2013
@@ -32,6 +32,7 @@ import org.apache.axiom.om.impl.MTOMXMLS
 import org.apache.axiom.om.impl.OMNodeEx;
 import org.apache.axiom.om.impl.builder.StAXBuilder;
 import org.apache.axiom.om.impl.common.serializer.OutputException;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
 import org.apache.axiom.om.util.StAXUtils;
 import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
@@ -862,7 +863,7 @@ public abstract class NodeImpl implement
 
     // This method is actually defined by ISerializable, but ISerializable is only implemented
     // by certain subclasses (for the reason, see AXIOM-385).
-    public abstract void internalSerialize(StAXSerializer serializer, OMOutputFormat format, boolean cache) throws XMLStreamException, OutputException;
+    public abstract void internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache) throws OutputException;
     
     public final OMInformationItem clone(OMCloneOptions options) {
         return (OMInformationItem)clone(options, null, true, true);

Modified: webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ProcessingInstructionImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ProcessingInstructionImpl.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ProcessingInstructionImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ProcessingInstructionImpl.java Sat Feb  2 18:58:27 2013
@@ -25,7 +25,7 @@ import org.apache.axiom.om.OMOutputForma
 import org.apache.axiom.om.OMProcessingInstruction;
 import org.apache.axiom.om.impl.OMNodeEx;
 import org.apache.axiom.om.impl.common.serializer.OutputException;
-import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Node;
 import org.w3c.dom.ProcessingInstruction;
@@ -81,7 +81,7 @@ public class ProcessingInstructionImpl e
         return value;
     }
 
-    public void internalSerialize(StAXSerializer serializer, OMOutputFormat format, boolean cache) throws OutputException {
+    public void internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache) throws OutputException {
         serializer.writeProcessingInstruction(target + " ", value);
     }
 

Modified: webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/TextNodeImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/TextNodeImpl.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/TextNodeImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/TextNodeImpl.java Sat Feb  2 18:58:27 2013
@@ -30,7 +30,7 @@ import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.OMText;
 import org.apache.axiom.om.impl.common.serializer.OutputException;
-import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 import org.apache.axiom.util.UIDGenerator;
 import org.apache.axiom.util.base64.Base64Utils;
 import org.w3c.dom.DOMException;
@@ -341,7 +341,7 @@ public abstract class TextNodeImpl exten
         }
     }
 
-    public void internalSerialize(StAXSerializer serializer, OMOutputFormat format, boolean cache) throws OutputException {
+    public void internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache) throws OutputException {
         if (!this.isBinary) {
             serializer.writeText(getType(), getText());
         } else if (dataHandlerObject instanceof DataHandlerProvider) {

Modified: webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPEnvelopeImpl.java Sat Feb  2 18:58:27 2013
@@ -31,7 +31,7 @@ import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.om.impl.common.serializer.OutputException;
-import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 import org.apache.axiom.om.impl.dom.NodeImpl;
 import org.apache.axiom.om.impl.dom.ParentNode;
 import org.apache.axiom.soap.SOAP11Constants;
@@ -50,7 +50,6 @@ import org.w3c.dom.DOMException;
 import org.w3c.dom.Node;
 
 import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
 
 public class SOAPEnvelopeImpl extends SOAPElement implements SOAPEnvelope,
         OMConstants {
@@ -189,8 +188,8 @@ public class SOAPEnvelopeImpl extends SO
         // here do nothing as SOAPEnvelope doesn't have a parent !!!
     }
 
-    public void internalSerialize(StAXSerializer serializer, OMOutputFormat format, boolean cache)
-            throws XMLStreamException, OutputException {
+    public void internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache)
+            throws OutputException {
 
         if (!format.isIgnoreXMLDeclaration()) {
             String charSetEncoding = format.getCharSetEncoding();

Modified: webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPMessageImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPMessageImpl.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPMessageImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPMessageImpl.java Sat Feb  2 18:58:27 2013
@@ -25,7 +25,7 @@ import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.om.impl.common.serializer.OutputException;
-import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 import org.apache.axiom.om.impl.dom.DocumentImpl;
 import org.apache.axiom.om.impl.dom.NodeImpl;
 import org.apache.axiom.soap.SOAPEnvelope;
@@ -33,7 +33,6 @@ import org.apache.axiom.soap.SOAPFactory
 import org.apache.axiom.soap.SOAPMessage;
 import org.apache.axiom.soap.SOAPProcessingException;
 
-import javax.xml.stream.XMLStreamException;
 
 public class SOAPMessageImpl extends DocumentImpl implements SOAPMessage {
 
@@ -60,8 +59,8 @@ public class SOAPMessageImpl extends Doc
         }
     }
 
-    protected void internalSerialize(StAXSerializer serializer, OMOutputFormat format,
-                                     boolean cache, boolean includeXMLDeclaration) throws XMLStreamException, OutputException {
+    protected void internalSerialize(Serializer serializer, OMOutputFormat format,
+                                     boolean cache, boolean includeXMLDeclaration) throws OutputException {
         ((NodeImpl)getOwnerDocument().getDocumentElement()).internalSerialize(serializer, format, cache);
     }
 

Modified: webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMCommentImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMCommentImpl.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMCommentImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMCommentImpl.java Sat Feb  2 18:58:27 2013
@@ -26,7 +26,7 @@ import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.impl.common.serializer.OutputException;
-import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 
 public class OMCommentImpl extends OMLeafNode implements OMComment {
     protected String value;
@@ -47,7 +47,7 @@ public class OMCommentImpl extends OMLea
         return OMNode.COMMENT_NODE;
     }
 
-    public void internalSerialize(StAXSerializer serializer, OMOutputFormat format, boolean cache) throws OutputException {
+    public void internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache) throws OutputException {
         serializer.writeComment(this.value);
     }
 

Modified: webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMDocTypeImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMDocTypeImpl.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMDocTypeImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMDocTypeImpl.java Sat Feb  2 18:58:27 2013
@@ -26,7 +26,7 @@ import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.impl.common.serializer.OutputException;
-import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 
 public class OMDocTypeImpl extends OMLeafNode implements OMDocType {
     private final String rootName;
@@ -47,7 +47,7 @@ public class OMDocTypeImpl extends OMLea
         return OMNode.DTD_NODE;
     }
 
-    public void internalSerialize(StAXSerializer serializer, OMOutputFormat format, boolean cache) throws OutputException {
+    public void internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache) throws OutputException {
         serializer.writeDTD(rootName, publicId, systemId, internalSubset);
     }
 

Modified: webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMDocumentImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMDocumentImpl.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMDocumentImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMDocumentImpl.java Sat Feb  2 18:58:27 2013
@@ -37,12 +37,11 @@ import org.apache.axiom.om.impl.common.O
 import org.apache.axiom.om.impl.common.OMDescendantsIterator;
 import org.apache.axiom.om.impl.common.OMDocumentHelper;
 import org.apache.axiom.om.impl.common.serializer.OutputException;
-import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 import org.apache.axiom.om.impl.jaxp.OMSource;
 import org.apache.axiom.om.impl.traverse.OMChildrenIterator;
 
 import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.transform.sax.SAXSource;
 
@@ -290,12 +289,12 @@ public class OMDocumentImpl extends OMSe
         this.xmlEncoding = encoding;
     }
 
-    public void internalSerialize(StAXSerializer serializer, OMOutputFormat format, boolean cache) throws XMLStreamException, OutputException {
+    public void internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache) throws OutputException {
         internalSerialize(serializer, format, cache, !format.isIgnoreXMLDeclaration());
     }
 
-    protected void internalSerialize(StAXSerializer serializer, OMOutputFormat format,
-                                     boolean cache, boolean includeXMLDeclaration) throws XMLStreamException, OutputException {
+    protected void internalSerialize(Serializer serializer, OMOutputFormat format,
+                                     boolean cache, boolean includeXMLDeclaration) throws OutputException {
         OMDocumentHelper.internalSerialize(this, serializer, format, cache, includeXMLDeclaration);
     }
 

Modified: webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java Sat Feb  2 18:58:27 2013
@@ -45,7 +45,7 @@ import org.apache.axiom.om.impl.common.O
 import org.apache.axiom.om.impl.common.OMElementHelper;
 import org.apache.axiom.om.impl.common.OMNamespaceImpl;
 import org.apache.axiom.om.impl.common.serializer.OutputException;
-import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 import org.apache.axiom.om.impl.jaxp.OMSource;
 import org.apache.axiom.om.impl.traverse.OMChildrenIterator;
 import org.apache.axiom.om.impl.util.EmptyIterator;
@@ -788,8 +788,8 @@ public class OMElementImpl extends OMNod
 ///////////////////////////////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////////////////////////////
 
-    public void internalSerialize(StAXSerializer serializer, OMOutputFormat format, boolean cache)
-            throws XMLStreamException, OutputException {
+    public void internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache)
+            throws OutputException {
 
         serializer.serializeStartpart(this);
         serializer.serializeChildren(this, format, cache);

Modified: webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMEntityReferenceImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMEntityReferenceImpl.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMEntityReferenceImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMEntityReferenceImpl.java Sat Feb  2 18:58:27 2013
@@ -25,7 +25,7 @@ import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.impl.common.serializer.OutputException;
-import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 
 public class OMEntityReferenceImpl extends OMLeafNode implements OMEntityReference {
     private final String name;
@@ -42,7 +42,7 @@ public class OMEntityReferenceImpl exten
         return OMNode.ENTITY_REFERENCE_NODE;
     }
 
-    public void internalSerialize(StAXSerializer serializer, OMOutputFormat format, boolean cache) throws OutputException {
+    public void internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache) throws OutputException {
         serializer.writeEntityRef(name);
     }
 

Modified: webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMProcessingInstructionImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMProcessingInstructionImpl.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMProcessingInstructionImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMProcessingInstructionImpl.java Sat Feb  2 18:58:27 2013
@@ -26,7 +26,7 @@ import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.OMProcessingInstruction;
 import org.apache.axiom.om.impl.common.serializer.OutputException;
-import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 
 public class OMProcessingInstructionImpl extends OMLeafNode implements OMProcessingInstruction {
     protected String target;
@@ -50,7 +50,7 @@ public class OMProcessingInstructionImpl
         return OMNode.PI_NODE;
     }
 
-    public void internalSerialize(StAXSerializer serializer, OMOutputFormat format, boolean cache) throws OutputException {
+    public void internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache) throws OutputException {
         serializer.writeProcessingInstruction(this.target + " ", this.value);
     }
 

Modified: webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMSourcedElementImpl.java Sat Feb  2 18:58:27 2013
@@ -39,6 +39,7 @@ import org.apache.axiom.om.impl.builder.
 import org.apache.axiom.om.impl.common.OMDataSourceUtil;
 import org.apache.axiom.om.impl.common.OMNamespaceImpl;
 import org.apache.axiom.om.impl.common.serializer.OutputException;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
 import org.apache.axiom.om.util.StAXUtils;
 import org.apache.commons.logging.Log;
@@ -711,8 +712,8 @@ public class OMSourcedElementImpl extend
         return super.getType();
     }
 
-    public void internalSerialize(StAXSerializer serializer, OMOutputFormat format, boolean cache)
-            throws XMLStreamException, OutputException {
+    public void internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache)
+            throws OutputException {
         if (isExpanded()) {
             super.internalSerialize(serializer, format, cache);
         } else if (cache) {

Modified: webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMTextImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMTextImpl.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMTextImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMTextImpl.java Sat Feb  2 18:58:27 2013
@@ -32,7 +32,7 @@ import org.apache.axiom.om.OMOutputForma
 import org.apache.axiom.om.OMText;
 import org.apache.axiom.om.impl.common.OMNamespaceImpl;
 import org.apache.axiom.om.impl.common.serializer.OutputException;
-import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 import org.apache.axiom.util.UIDGenerator;
 import org.apache.axiom.util.base64.Base64Utils;
 
@@ -353,7 +353,7 @@ public class OMTextImpl extends OMLeafNo
         return this.contentID;
     }
 
-    public void internalSerialize(StAXSerializer serializer, OMOutputFormat format, boolean cache) throws OutputException {
+    public void internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache) throws OutputException {
 
         if (!this.isBinary) {
             serializer.writeText(getType(), getText());

Modified: webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java?rev=1441790&r1=1441789&r2=1441790&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java (original)
+++ webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPEnvelopeImpl.java Sat Feb  2 18:58:27 2013
@@ -35,7 +35,7 @@ import org.apache.axiom.om.OMXMLParserWr
 import org.apache.axiom.om.impl.llom.OMNodeImpl;
 import org.apache.axiom.om.impl.builder.StAXBuilder;
 import org.apache.axiom.om.impl.common.serializer.OutputException;
-import org.apache.axiom.om.impl.common.serializer.StAXSerializer;
+import org.apache.axiom.om.impl.common.serializer.Serializer;
 import org.apache.axiom.soap.SOAP11Constants;
 import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.SOAP12Version;
@@ -50,7 +50,6 @@ import org.apache.axiom.soap.SOAPVersion
 import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
 
 import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
 
 /** Class SOAPEnvelopeImpl */
 public class SOAPEnvelopeImpl extends SOAPElement
@@ -192,8 +191,8 @@ public class SOAPEnvelopeImpl extends SO
         // here do nothing as SOAPEnvelope doesn't have a parent !!!
     }
 
-    public void internalSerialize(StAXSerializer serializer, OMOutputFormat format, boolean cache)
-            throws XMLStreamException, OutputException {
+    public void internalSerialize(Serializer serializer, OMOutputFormat format, boolean cache)
+            throws OutputException {
         if (!format.isIgnoreXMLDeclaration()) {
             String charSetEncoding = format.getCharSetEncoding();
             String xmlVersion = format.getXmlVersion();