You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2010/10/30 13:53:39 UTC
svn commit: r1029034 - in /axis/axis2/java/core/trunk/modules/saaj:
src/org/apache/axis2/saaj/SOAPElementImpl.java
src/org/apache/axis2/saaj/TextImplEx.java
test/org/apache/axis2/saaj/SOAPElementTest.java
Author: veithen
Date: Sat Oct 30 11:53:39 2010
New Revision: 1029034
URL: http://svn.apache.org/viewvc?rev=1029034&view=rev
Log:
AXIS2-4868: Fixed a couple of issues in SOAPElementImpl related to text nodes.
Modified:
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/TextImplEx.java
axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java
Modified: axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java?rev=1029034&r1=1029033&r2=1029034&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java (original)
+++ axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java Sat Oct 30 11:53:39 2010
@@ -237,7 +237,7 @@ public class SOAPElementImpl extends Nod
//TODO: May need to address the situation where the prev sibling of the textnode itself is a textnode
Text textNode = getOwnerDocument().createTextNode(text);
NodeImpl node = ((NodeImpl)element.appendChild(textNode));
- TextImplEx saajTextNode = new TextImplEx(text, this);
+ TextImplEx saajTextNode = new TextImplEx((TextImpl)textNode, this);
node.setUserData(SAAJ_NODE, saajTextNode, null);
return this;
}
@@ -867,7 +867,7 @@ public class SOAPElementImpl extends Nod
if (oldChild instanceof SOAPElementImpl) {
oldChild = ((SOAPElementImpl)oldChild).getElement();
} else if (oldChild instanceof TextImplEx) {
- // TODO: handle text nodes somehow
+ oldChild = ((TextImplEx)oldChild).getTextNode();
}
return element.removeChild(oldChild);
}
Modified: axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/TextImplEx.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/TextImplEx.java?rev=1029034&r1=1029033&r2=1029034&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/TextImplEx.java (original)
+++ axis/axis2/java/core/trunk/modules/saaj/src/org/apache/axis2/saaj/TextImplEx.java Sat Oct 30 11:53:39 2010
@@ -44,6 +44,12 @@ public class TextImplEx extends NodeImpl
this.parentElement = parent;
}
+ public TextImplEx(TextImpl textNode, SOAPElement parent) {
+ super(((SOAPElementImpl)parent).getOMFactory());
+ this.textNode = textNode;
+ this.parentElement = parent;
+ }
+
public TextImplEx(String data, SOAPElement parent,
org.w3c.dom.Node prevSibling, org.w3c.dom.Node nextSibling) {
super(((SOAPElementImpl)parent).getOMFactory());
@@ -53,6 +59,10 @@ public class TextImplEx extends NodeImpl
this.nextSibling = nextSibling;
}
+ TextImpl getTextNode() {
+ return textNode;
+ }
+
public void setNextSibling(org.w3c.dom.Node nextSibling) {
this.nextSibling = nextSibling;
}
Modified: axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java?rev=1029034&r1=1029033&r2=1029034&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java (original)
+++ axis/axis2/java/core/trunk/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java Sat Oct 30 11:53:39 2010
@@ -31,6 +31,7 @@ import javax.xml.soap.MessageFactory;
import javax.xml.soap.Name;
import javax.xml.soap.Node;
import javax.xml.soap.SOAPBody;
+import javax.xml.soap.SOAPBodyElement;
import javax.xml.soap.SOAPConstants;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPEnvelope;
@@ -781,4 +782,14 @@ public class SOAPElementTest extends Ass
assertFalse(soapBody.getChildElements().hasNext());
}
+
+ @Validated @Test
+ public void testAddRemoveTextNode() throws Exception {
+ MessageFactory mf = MessageFactory.newInstance();
+ SOAPMessage msg = mf.createMessage();
+ SOAPBody body = msg.getSOAPBody();
+ SOAPBodyElement bodyChild = body.addBodyElement(new QName("TestChild"));
+ bodyChild.addTextNode("aaaaa");
+ bodyChild.removeChild(bodyChild.getFirstChild());
+ }
}