From cdd1db5a99ce25571948be5fd185baf25cb624d0 Mon Sep 17 00:00:00 2001 From: Conor MacNeill Date: Tue, 24 Jun 2003 11:29:20 +0000 Subject: [PATCH] PR: 17195 Submitted by: Markku Saarela git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@274698 13f79535-47bb-0310-9956-ffa450edef68 --- WHATSNEW | 5 +++++ src/etc/testcases/taskdefs/xmlproperty_data.xml | 1 + .../apache/tools/ant/taskdefs/XmlProperty.java | 15 +++++++++++++-- .../tools/ant/taskdefs/XmlPropertyTest.java | 2 ++ 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/WHATSNEW b/WHATSNEW index efe58a94c..d73797024 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -172,6 +172,8 @@ Fixed bugs: * will now create the parent directories for the destination files if necessary. Bugzilla Report 20840. +* now handles CDATA sections. BugZilla Report 17195 + Other changes: -------------- * Six new Clearcase tasks added. @@ -434,6 +436,9 @@ Other changes: * has an "unpackage" mapper Bugzilla Report 18908 + +* Added task allowing tasks to be defined using any BSF-supported + scripting language. Changes from Ant 1.5.2 to Ant 1.5.3 =================================== diff --git a/src/etc/testcases/taskdefs/xmlproperty_data.xml b/src/etc/testcases/taskdefs/xmlproperty_data.xml index d99951eb2..1dba9353e 100644 --- a/src/etc/testcases/taskdefs/xmlproperty_data.xml +++ b/src/etc/testcases/taskdefs/xmlproperty_data.xml @@ -1,4 +1,5 @@ Text false + ]]> diff --git a/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java b/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java index e34fbd389..eca4db3e9 100644 --- a/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java +++ b/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java @@ -450,14 +450,25 @@ public class XmlProperty extends org.apache.tools.ant.Task { } } + String nodeText = null; if (node.getNodeType() == Node.TEXT_NODE) { + // For the text node, add a property. + nodeText = getAttributeValue(node); + } else if ((node.getNodeType() == Node.ELEMENT_NODE) + && (node.getChildNodes().getLength() == 1) + && (node.getFirstChild().getNodeType() == Node.CDATA_SECTION_NODE)) { + + nodeText = node.getFirstChild().getNodeValue(); + } + + if (nodeText != null) { // If the containing object was a String, then use it as the ID. if (semanticAttributes && id == null && container instanceof String) { id = (String) container; + System.out.println("Setting id = " + id); } - // For the text node, add a property. - String nodeText = getAttributeValue(node); + if (nodeText.trim().length() != 0) { addProperty(prefix, nodeText, id); } diff --git a/src/testcases/org/apache/tools/ant/taskdefs/XmlPropertyTest.java b/src/testcases/org/apache/tools/ant/taskdefs/XmlPropertyTest.java index ea2f886dd..9371f12d2 100644 --- a/src/testcases/org/apache/tools/ant/taskdefs/XmlPropertyTest.java +++ b/src/testcases/org/apache/tools/ant/taskdefs/XmlPropertyTest.java @@ -90,6 +90,8 @@ public class XmlPropertyTest extends BuildFileTest { assertEquals("val", getProject().getProperty("root-tag.inner-tag(someattr)")); assertEquals("false", getProject().getProperty("root-tag.a2.a3.a4")); + assertEquals("CDATA failed", + "", getProject().getProperty("root-tag.cdatatag")); } public void testNone () {