Index: test/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorWriterTest.java =================================================================== --- test/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorWriterTest.java (revision 958289) +++ test/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorWriterTest.java Mon Jul 05 21:35:30 PDT 2010 @@ -26,6 +26,7 @@ import junit.framework.TestCase; +import org.apache.ivy.Ivy; import org.apache.ivy.core.module.descriptor.DefaultModuleDescriptor; import org.apache.ivy.core.module.descriptor.ModuleDescriptor; import org.apache.ivy.core.module.id.ModuleRevisionId; @@ -106,6 +107,20 @@ assertEquals(expected, wrote); } + public void testExtends() throws Exception { + ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor( + new IvySettings(), XmlModuleDescriptorWriterTest.class.getResource("test-extends-all.xml"), false); + XmlModuleDescriptorWriter.write(md, LICENSE, dest); + + assertTrue(dest.exists()); + String wrote = FileUtil.readEntirely(new BufferedReader(new FileReader(dest))) + .replaceAll("\r\n?", "\n"); + String expected = readEntirely("test-write-extends.xml") + .replaceAll("\r\n?", "\n") + .replaceAll("working@localhost", Ivy.getWorkingRevision()); + assertEquals(expected, wrote); + } + private String readEntirely(String resource) throws IOException { return FileUtil.readEntirely(new BufferedReader(new InputStreamReader( XmlModuleDescriptorWriterTest.class.getResource(resource).openStream()))); Index: src/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorWriter.java =================================================================== --- src/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorWriter.java (revision 958290) +++ src/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorWriter.java Mon Jul 05 17:31:46 PDT 2010 @@ -476,7 +476,7 @@ if (location != null) { out.print(" location=\"" + XMLHelper.escape(location) + "\""); } - out.print(" extendTypes=\"" + StringUtils.join(parent.getExtendsTypes(), ",") + "\""); + out.print(" extendType=\"" + StringUtils.join(parent.getExtendsTypes(), ",") + "\""); out.println("/>"); } License[] licenses = md.getLicenses(); Index: test/java/org/apache/ivy/plugins/parser/xml/test-write-extends.xml =================================================================== --- test/java/org/apache/ivy/plugins/parser/xml/test-write-extends.xml Mon Jul 05 21:35:31 PDT 2010 +++ test/java/org/apache/ivy/plugins/parser/xml/test-write-extends.xml Mon Jul 05 21:35:31 PDT 2010 @@ -0,0 +1,44 @@ + + + + + + + Parent module description. + + + + + + + + + + + + + + +