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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+