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/28 11:25:46 UTC

svn commit: r1732713 - in /webservices/axiom/trunk/aspects: core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/ om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/

Author: veithen
Date: Sun Feb 28 10:25:45 2016
New Revision: 1732713

URL: http://svn.apache.org/viewvc?rev=1732713&view=rev
Log:
Use incremental serialization for documents as well.

Modified:
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSAwareElementSupport.aj
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeSupport.aj
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/Context.java

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSAwareElementSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSAwareElementSupport.aj?rev=1732713&r1=1732712&r2=1732713&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSAwareElementSupport.aj (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSAwareElementSupport.aj Sun Feb 28 10:25:45 2016
@@ -19,14 +19,11 @@
 package org.apache.axiom.core.impl.mixin;
 
 import org.apache.axiom.core.CoreModelException;
-import org.apache.axiom.core.CoreModelStreamException;
 import org.apache.axiom.core.CoreNSAwareElement;
 import org.apache.axiom.core.NodeType;
-import org.apache.axiom.core.impl.TreeWalkerImpl;
 import org.apache.axiom.core.stream.StreamException;
 import org.apache.axiom.core.stream.XmlHandler;
 import org.apache.axiom.core.stream.XmlInput;
-import org.apache.axiom.core.stream.XmlReader;
 
 public aspect CoreNSAwareElementSupport {
     public final NodeType CoreNSAwareElement.coreGetNodeType() {
@@ -52,15 +49,4 @@ public aspect CoreNSAwareElementSupport
     public final void CoreNSAwareElement.serializeEndEvent(XmlHandler handler) throws StreamException {
         handler.endElement();
     }
-
-    public final void CoreNSAwareElement.internalSerialize(XmlHandler handler, boolean cache) throws CoreModelException, StreamException {
-        try {
-            XmlReader reader = new TreeWalkerImpl(handler, this, cache);
-            while (!reader.proceed()) {
-                // Just loop
-            }
-        } catch (CoreModelStreamException ex) {
-            throw ex.getCoreModelException();
-        }
-    }
 }

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeSupport.aj?rev=1732713&r1=1732712&r2=1732713&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeSupport.aj (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeSupport.aj Sun Feb 28 10:25:45 2016
@@ -31,6 +31,7 @@ import org.apache.axiom.core.CoreDocumen
 import org.apache.axiom.core.CoreDocumentFragment;
 import org.apache.axiom.core.CoreElement;
 import org.apache.axiom.core.CoreModelException;
+import org.apache.axiom.core.CoreModelStreamException;
 import org.apache.axiom.core.CoreNode;
 import org.apache.axiom.core.CoreParentNode;
 import org.apache.axiom.core.ElementAction;
@@ -44,8 +45,10 @@ import org.apache.axiom.core.Semantics;
 import org.apache.axiom.core.impl.ElementsIterator;
 import org.apache.axiom.core.impl.Flags;
 import org.apache.axiom.core.impl.NodesIterator;
+import org.apache.axiom.core.impl.TreeWalkerImpl;
 import org.apache.axiom.core.stream.StreamException;
 import org.apache.axiom.core.stream.XmlHandler;
+import org.apache.axiom.core.stream.XmlReader;
 
 public aspect CoreParentNodeSupport {
     private InputContext CoreParentNode.context;
@@ -368,40 +371,13 @@ public aspect CoreParentNodeSupport {
     }
 
     public void CoreParentNode.internalSerialize(XmlHandler handler, boolean cache) throws CoreModelException, StreamException {
-        serializeStartEvent(handler);
-        serializeChildren(handler, cache);
-        serializeEndEvent(handler);
-    }
-
-    public final void CoreParentNode.serializeChildren(XmlHandler handler, boolean cache) throws CoreModelException, StreamException {
-        if (getState() == DISCARDED) {
-            Builder builder = coreGetBuilder();
-            if (builder != null) {
-                builder.debugDiscarded(this);
-            }
-            throw new NodeConsumedException();
-        }
-        if (cache) {
-            CoreChildNode child = coreGetFirstChild();
-            while (child != null) {
-                child.internalSerialize(handler, true);
-                child = child.coreGetNextSibling();
-            }
-        } else {
-            // First, recursively serialize all child nodes that have already been created
-            CoreChildNode child = coreGetFirstChildIfAvailable();
-            while (child != null) {
-                child.internalSerialize(handler, cache);
-                child = child.coreGetNextSiblingIfAvailable();
-            }
-            InputContext context = coreGetInputContext();
-            if (context != null) {
-                context.setPassThroughHandler(handler);
-                Builder builder = context.getBuilder();
-                do {
-                    builder.next();
-                } while (coreGetInputContext() != null);
+        try {
+            XmlReader reader = new TreeWalkerImpl(handler, this, cache);
+            while (!reader.proceed()) {
+                // Just loop
             }
+        } catch (CoreModelStreamException ex) {
+            throw ex.getCoreModelException();
         }
     }
 }

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/Context.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/Context.java?rev=1732713&r1=1732712&r2=1732713&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/Context.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/Context.java Sun Feb 28 10:25:45 2016
@@ -302,10 +302,7 @@ public final class Context implements In
     
     public void endDocument() throws StreamException {
         if (passThroughHandler != null) {
-            // TODO: hack
-            if (passThroughDepth > 0) {
-                passThroughHandler.endDocument();
-            }
+            passThroughHandler.endDocument();
             decrementPassThroughDepth();
         } else {
             if (depth != 0) {