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/03/11 19:50:10 UTC

svn commit: r1734616 - in /webservices/axiom/trunk: aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/ axiom-api/src/main/java/org/apache/axiom/om/ src/site/markdown/release-notes/

Author: veithen
Date: Fri Mar 11 18:50:10 2016
New Revision: 1734616

URL: http://svn.apache.org/viewvc?rev=1734616&view=rev
Log:
Building a node before detaching it is no longer necessary with the new builder design.

Modified:
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreChildNodeSupport.aj
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreElementSupport.aj
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMNode.java
    webservices/axiom/trunk/src/site/markdown/release-notes/1.3.0.md

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreChildNodeSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreChildNodeSupport.aj?rev=1734616&r1=1734615&r2=1734616&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreChildNodeSupport.aj (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreChildNodeSupport.aj Fri Mar 11 18:50:10 2016
@@ -205,8 +205,6 @@ public aspect CoreChildNodeSupport {
         fragmentContent.lastChild = null;
     }
     
-    void CoreChildNode.beforeDetach() {}
-    
     public final void CoreChildNode.coreDetach(Semantics semantics) {
         internalDetach(semantics, null);
     }
@@ -214,7 +212,6 @@ public aspect CoreChildNodeSupport {
     final void CoreChildNode.internalDetach(Semantics semantics, CoreParentNode newParent) {
         CoreParentNode parent = coreGetParent();
         if (parent != null) {
-            beforeDetach();
             if (previousSibling == null) {
                 parent.getContent(true).firstChild = nextSibling;
             } else {
@@ -243,7 +240,6 @@ public aspect CoreChildNodeSupport {
         CoreParentNode parent = coreGetParent();
         if (parent != null) {
             newNode.internalDetach(null, parent);
-            beforeDetach();
             if (previousSibling == null) {
                 parent.getContent(true).firstChild = newNode;
             } else {

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreElementSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreElementSupport.aj?rev=1734616&r1=1734615&r2=1734616&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreElementSupport.aj (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreElementSupport.aj Fri Mar 11 18:50:10 2016
@@ -27,7 +27,6 @@ import org.apache.axiom.core.CoreElement
 import org.apache.axiom.core.CoreModelException;
 import org.apache.axiom.core.CoreNamespaceDeclaration;
 import org.apache.axiom.core.CoreNode;
-import org.apache.axiom.core.CoreParentNode;
 import org.apache.axiom.core.Mapper;
 import org.apache.axiom.core.Semantics;
 import org.apache.axiom.core.impl.AttributeIterator;
@@ -35,12 +34,6 @@ import org.apache.axiom.core.impl.Attrib
 public aspect CoreElementSupport {
     private CoreAttribute CoreElement.firstAttribute;
 
-    final void CoreElement.beforeDetach() {
-        if (getState() == CoreParentNode.INCOMPLETE && coreGetBuilder() == coreGetParent().coreGetBuilder()) {
-            build();
-        }
-    }
-    
     public final CoreAttribute CoreElement.coreGetFirstAttribute() {
         forceExpand();
         return firstAttribute;

Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMNode.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMNode.java?rev=1734616&r1=1734615&r2=1734616&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMNode.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/om/OMNode.java Fri Mar 11 18:50:10 2016
@@ -112,16 +112,11 @@ public interface OMNode extends OMSerial
     /**
      * Removes a node (and all of its children) from its containing parent.
      * <p>
-     * Removes a node from its parent. Partially complete nodes will be completed before they are
-     * detached from the model. A node cannot be detached until its next sibling has been identified,
-     * so that the next sibling and parent can be updated appropriately. Please note that this will not
+     * Removes a node from its parent. Please note that this will not
      * handle the namespaces. For example, if there you have used a namespace within the detaching node
      * and which is defined outside the detaching node, user has to handle it manually. </p>
      *
      * @return The detached node. This is always the instance on which this method is invoked.
-     * 
-     * @throws OMException If a node is not complete, the detach can trigger further parsing, which may
-     *                     cause an exception.
      */
     // TODO: LLOM's OMNodeImpl triggers an exception if the node doesn't have a parent. This is not specified here.
     OMNode detach() throws OMException;

Modified: webservices/axiom/trunk/src/site/markdown/release-notes/1.3.0.md
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/src/site/markdown/release-notes/1.3.0.md?rev=1734616&r1=1734615&r2=1734616&view=diff
==============================================================================
--- webservices/axiom/trunk/src/site/markdown/release-notes/1.3.0.md (original)
+++ webservices/axiom/trunk/src/site/markdown/release-notes/1.3.0.md Fri Mar 11 18:50:10 2016
@@ -43,6 +43,9 @@ Changes in this release
     should use the `OMXMLBuilderFactory` API to create builders. Code written for
     Axiom 1.2.x that uses that API remains compatible with Axiom 1.3.x.
 
+*   The `detach` method no longer causes the node to be built. This change was
+    made possible by the new builder design.
+
 *   Several methods have been removed from the `OMXMLParserWrapper` interface.
     This includes formerly deprecated methods as well as methods that would
     allow manipulation of the state of the underlying parser.