Index: src/java/org/apache/ivy/plugins/parser/AbstractModuleDescriptorParser.java =================================================================== --- src/java/org/apache/ivy/plugins/parser/AbstractModuleDescriptorParser.java (revision 826695) +++ src/java/org/apache/ivy/plugins/parser/AbstractModuleDescriptorParser.java (working copy) @@ -330,8 +330,12 @@ } // getLocationString(SAXParseException):String protected String getDefaultConf() { - return defaultConfMapping != null ? defaultConfMapping - : (defaultConf != null ? defaultConf : DEFAULT_CONF_MAPPING); + return defaultConf != null ? defaultConf + : (defaultConfMapping != null ? defaultConfMapping : DEFAULT_CONF_MAPPING); + + // FIXME IVY-1135 ... we need to take defaultConf first if it exists +// return defaultConfMapping != null ? defaultConfMapping +// : (defaultConf != null ? defaultConf : DEFAULT_CONF_MAPPING); } protected void setDefaultConf(String defaultConf) { Index: src/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParser.java =================================================================== --- src/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParser.java (revision 826695) +++ src/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParser.java (working copy) @@ -436,10 +436,15 @@ getMd().addConfiguration(configs[i]); } if (parser.getDefaultConfMapping() != null) { - Message.debug("setting default conf from imported configurations file: " + Message.debug("setting default conf mapping from imported configurations file: " + parser.getDefaultConfMapping()); setDefaultConfMapping(parser.getDefaultConfMapping()); } + if (parser.getDefaultConf() != null) { + Message.debug("setting default conf from imported configurations file: " + + parser.getDefaultConf()); + setDefaultConf(parser.getDefaultConf()); + } if (parser.getMd().isMappingOverride()) { Message.debug("enabling mapping-override from imported configurations" + " file"); @@ -622,6 +627,7 @@ state = State.CONF; setDefaultConfMapping(settings .substitute(attributes.getValue("defaultconfmapping"))); + setDefaultConf(settings.substitute(attributes.getValue("defaultconf"))); getMd() .setMappingOverride(Boolean.valueOf( settings.substitute(attributes.getValue("confmappingoverride"))) Index: src/java/org/apache/ivy/plugins/parser/xml/ivy.xsd =================================================================== --- src/java/org/apache/ivy/plugins/parser/xml/ivy.xsd (revision 826695) +++ src/java/org/apache/ivy/plugins/parser/xml/ivy.xsd (working copy) @@ -116,6 +116,7 @@ + Index: test/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParserTest.java =================================================================== --- test/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParserTest.java (revision 826695) +++ test/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParserTest.java (working copy) @@ -560,6 +560,36 @@ + "/" + artifact.getExt()); } + public void testDefaultConfWithDefaultConfMapping() throws Exception { + ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(settings, + getClass().getResource("test-defaultconf-withdefaultconfmapping.xml"), true); + assertNotNull(md); + + DependencyDescriptor[] dependencies = md.getDependencies(); + assertNotNull(dependencies); + assertEquals(2, dependencies.length); + + // no conf def => defaults to defaultConf: default + DependencyDescriptor dd = getDependency(dependencies, "mymodule1"); + assertNotNull(dd); + assertEquals("myorg", dd.getDependencyId().getOrganisation()); + assertEquals("1.0", dd.getDependencyRevisionId().getRevision()); + assertEquals(Arrays.asList(new String[] {"default"}), Arrays.asList(dd + .getModuleConfigurations())); + assertEquals(Arrays.asList(new String[] {"default"}), Arrays.asList(dd + .getDependencyConfigurations("default"))); + + // confs def: *->* + dd = getDependency(dependencies, "mymodule2"); + assertNotNull(dd); + assertEquals("myorg", dd.getDependencyId().getOrganisation()); + assertEquals("2.0", dd.getDependencyRevisionId().getRevision()); + assertEquals(Arrays.asList(new String[] {"test"}), + Arrays.asList(dd.getModuleConfigurations())); + assertEquals(Arrays.asList(new String[] {"default"}), + Arrays.asList(dd.getDependencyConfigurations("test"))); + } + public void testDefaultConf() throws Exception { ModuleDescriptor md = XmlModuleDescriptorParser.getInstance().parseDescriptor(settings, getClass().getResource("test-defaultconf.xml"), true); Index: test/java/org/apache/ivy/plugins/parser/xml/test-defaultconf-withdefaultconfmapping.xml =================================================================== --- test/java/org/apache/ivy/plugins/parser/xml/test-defaultconf-withdefaultconfmapping.xml (revision 0) +++ test/java/org/apache/ivy/plugins/parser/xml/test-defaultconf-withdefaultconfmapping.xml (revision 0) @@ -0,0 +1,35 @@ + + + + + + + + + + + + + +