Author: gdaniels Date: Fri Mar 28 19:12:04 2008 New Revision: 642488 URL: http://svn.apache.org/viewvc?rev=642488&view=rev Log: Fix https://issues.apache.org/jira/browse/WSCOMMONS-305.
Make sure we return CDATA text as part of the getText() value. Unit test. Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/OMText.java webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/OMTextTest.java Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/OMText.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/OMText.java?rev=642488&r1=642487&r2=642488&view=diff ============================================================================== --- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/OMText.java (original) +++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/OMText.java Fri Mar 28 19:12:04 2008 @@ -44,7 +44,7 @@ /** * Returns the Namespace if this contains a QName Return null otherwise * - * @deprecate This API is going away. Please use getTextAsQName() instead. + * @deprecated This API is going away. Please use getTextAsQName() instead. * @return OMNamespace */ OMNamespace getNamespace(); @@ -62,7 +62,7 @@ /** * Sets the optimize flag. * - * @param value + * @param value true to optimize binary content (usually w/MTOM) */ void setOptimize(boolean value); @@ -72,7 +72,7 @@ /** * Sets the isBinary flag. * - * @param value + * @param value true if the content is binary */ void setBinary(boolean value); Modified: webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java?rev=642488&r1=642487&r2=642488&view=diff ============================================================================== --- webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java (original) +++ webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java Fri Mar 28 19:12:04 2008 @@ -926,7 +926,8 @@ OMText textNode; while (child != null) { - if (child.getType() == OMNode.TEXT_NODE) { + final int type = child.getType(); + if (type == OMNode.TEXT_NODE || type == OMNode.CDATA_SECTION_NODE) { textNode = (OMText) child; if (textNode.getText() != null && !"".equals(textNode.getText())) { Modified: webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java?rev=642488&r1=642487&r2=642488&view=diff ============================================================================== --- webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java (original) +++ webservices/commons/trunk/modules/axiom/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java Fri Mar 28 19:12:04 2008 @@ -797,7 +797,8 @@ OMNode child = this.getFirstOMChild(); while (child != null) { - if (child.getType() == OMNode.TEXT_NODE) { + final int type = child.getType(); + if (type == OMNode.TEXT_NODE || type == OMNode.CDATA_SECTION_NODE) { OMText textNode = (OMText) child; String textValue = textNode.getText(); if (textValue != null && textValue.length() != 0) { Modified: webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/OMTextTest.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/OMTextTest.java?rev=642488&r1=642487&r2=642488&view=diff ============================================================================== --- webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/OMTextTest.java (original) +++ webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/OMTextTest.java Fri Mar 28 19:12:04 2008 @@ -22,6 +22,7 @@ import junit.framework.TestCase; import javax.xml.namespace.QName; +import javax.xml.stream.XMLStreamConstants; import java.util.Iterator; public class OMTextTest extends TestCase { @@ -63,5 +64,20 @@ QName textAsQName = omElement.getTextAsQName(); assertTrue(textAsQName.equals(new QName(SOME_TEXT))); + } + + public void testCDATA() throws Exception { + OMFactory factory = OMAbstractFactory.getOMFactory(); + OMElement omElement = factory.createOMElement("TestElement", null); + final String text = "this is <some> text in a CDATA"; + factory.createOMText(omElement, text, XMLStreamConstants.CDATA); + assertEquals(text, omElement.getText()); + + // OK, CDATA on its own worked - now confirm that a plain text + a CDATA works + omElement = factory.createOMElement("element2", null); + final String normalText = "regular text and "; + factory.createOMText(omElement, normalText); + factory.createOMText(omElement, text, XMLStreamConstants.CDATA); + assertEquals(normalText + text, omElement.getText()); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]