conor 2003/07/23 05:11:09 Modified: src/main/org/apache/tools/ant/taskdefs XmlProperty.java src/testcases/org/apache/tools/ant/taskdefs XmlPropertyTest.java src/etc/testcases/taskdefs xmlproperty.xml Added: src/etc/testcases/taskdefs xmlproperty_data.dtd xmlproperty_withdtd.xml Log: Handle relative DTDs in XMLProperty PR: 14685 Submitted by: Kimbo Mundy Revision Changes Path 1.17 +3 -16 ant/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java Index: XmlProperty.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/XmlProperty.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -w -u -r1.16 -r1.17 --- XmlProperty.java 19 Jul 2003 11:20:13 -0000 1.16 +++ XmlProperty.java 23 Jul 2003 12:11:08 -0000 1.17 @@ -65,6 +65,7 @@ import org.apache.tools.ant.Project; import org.apache.tools.ant.types.Path; import org.apache.tools.ant.util.FileUtils; +import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; @@ -260,23 +261,16 @@ throw new BuildException(msg); } - BufferedInputStream configurationStream = null; - try { log("Loading " + src.getAbsolutePath(), Project.MSG_VERBOSE); if (src.exists()) { - configurationStream = - new BufferedInputStream(new FileInputStream(src)); - DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); - factory.setValidating(validate); factory.setNamespaceAware(false); - - Element topElement - = factory.newDocumentBuilder().parse(configurationStream).getDocumentElement(); + Document document = factory.newDocumentBuilder().parse(src); + Element topElement = document.getDocumentElement(); // Keep a hashtable of attributes added by this task. // This task is allow to override its own properties @@ -312,13 +306,6 @@ } catch (IOException ioe) { // I/O error throw new BuildException(ioe); - } finally { - if (configurationStream != null) { - try { - configurationStream.close(); - } catch (Exception e) { - } - } } } 1.8 +23 -18 ant/src/testcases/org/apache/tools/ant/taskdefs/XmlPropertyTest.java Index: XmlPropertyTest.java =================================================================== RCS file: /home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/XmlPropertyTest.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -w -u -r1.7 -r1.8 --- XmlPropertyTest.java 24 Jun 2003 11:33:48 -0000 1.7 +++ XmlPropertyTest.java 23 Jul 2003 12:11:09 -0000 1.8 @@ -94,6 +94,11 @@ "<test>", getProject().getProperty("root-tag.cdatatag")); } + public void testDTD() { + executeTarget("testdtd"); + assertEquals("Text", getProject().getProperty("root-tag.inner-tag")); + } + public void testNone () { doTest("testNone", false, false, false, false, false); } 1.2 +3 -0 ant/src/etc/testcases/taskdefs/xmlproperty.xml Index: xmlproperty.xml =================================================================== RCS file: /home/cvs/ant/src/etc/testcases/taskdefs/xmlproperty.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -u -r1.1 -r1.2 --- xmlproperty.xml 19 Apr 2002 19:51:29 -0000 1.1 +++ xmlproperty.xml 23 Jul 2003 12:11:09 -0000 1.2 @@ -4,4 +4,7 @@ <xmlproperty file="xmlproperty_data.xml"/> </target> + <target name="testdtd"> + <xmlproperty file="xmlproperty_withdtd.xml"/> + </target> </project> 1.1 ant/src/etc/testcases/taskdefs/xmlproperty_data.dtd Index: xmlproperty_data.dtd =================================================================== <!ELEMENT root-tag (inner-tag, a2, cdatatag)> <!ATTLIST root-tag myattr CDATA ""> <!ELEMENT inner-tag (#PCDATA)> <!ATTLIST inner-tag someattr CDATA ""> <!ELEMENT a2 (a3)> <!ELEMENT a3 (a4)> <!ELEMENT a4 (#PCDATA)> <!ELEMENT cdatatag (#PCDATA)> 1.1 ant/src/etc/testcases/taskdefs/xmlproperty_withdtd.xml Index: xmlproperty_withdtd.xml =================================================================== <!DOCTYPE root-tag SYSTEM "xmlproperty_data.dtd"> <root-tag myattr="true"> <inner-tag someattr="val">Text</inner-tag> <a2><a3><a4>false</a4></a3></a2> <cdatatag><![CDATA[<test>]]></cdatatag> </root-tag>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]