Author: maartenc
Date: Thu Mar 22 15:22:07 2007
New Revision: 521503

URL: http://svn.apache.org/viewvc?view=rev&rev=521503
Log:
Ivy should fail where dependency uses undefined configuration (IVY-442)

Added:
    
incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/xml/test-incorrectconf1.xml
Modified:
    incubator/ivy/core/trunk/CHANGES.txt
    
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/module/descriptor/DefaultDependencyDescriptor.java
    
incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParserTest.java

Modified: incubator/ivy/core/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/CHANGES.txt?view=diff&rev=521503&r1=521502&r2=521503
==============================================================================
--- incubator/ivy/core/trunk/CHANGES.txt (original)
+++ incubator/ivy/core/trunk/CHANGES.txt Thu Mar 22 15:22:07 2007
@@ -18,6 +18,7 @@
 - IMPROVE: New "modules in use" section in console report at the end of 
resolve (IVY-373) (thanks to John Wiliams)
 - IMPROVE: Generated XML reports now contains more information about the 
resolved module (IVY-408)
 
+- FIX: Ivy should fail where dependency uses undefined configuration (IVY-442)
 - FIX: Dynamic revision not calculated properly when using multiple 
directories (IVY-427)
 - FIX: LatestRevisionStrategy.sort() doesn't sort as specified (IVY-435)
 - FIX: setting m2compatible on ibiblio resolver overwrite root and pattern 
settings (IVY-437)

Modified: 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/module/descriptor/DefaultDependencyDescriptor.java
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/core/module/descriptor/DefaultDependencyDescriptor.java?view=diff&rev=521503&r1=521502&r2=521503
==============================================================================
--- 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/module/descriptor/DefaultDependencyDescriptor.java
 (original)
+++ 
incubator/ivy/core/trunk/src/java/org/apache/ivy/core/module/descriptor/DefaultDependencyDescriptor.java
 Thu Mar 22 15:22:07 2007
@@ -342,6 +342,14 @@
     }
     
     public void addDependencyConfiguration(String masterConf, String depConf) {
+       if ((_md != null) && !"*".equals(masterConf) && 
!"%".equals(masterConf)) {
+               Configuration config = _md.getConfiguration(masterConf);
+               if (config == null) {
+                       throw new IllegalArgumentException("Configuration '" + 
masterConf 
+                                       + "' does not exist in module " + _md);
+               }
+       }
+       
         List confs = (List)_confs.get(masterConf);
         if (confs == null) {
             confs = new ArrayList();

Modified: 
incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParserTest.java
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParserTest.java?view=diff&rev=521503&r1=521502&r2=521503
==============================================================================
--- 
incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParserTest.java
 (original)
+++ 
incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParserTest.java
 Thu Mar 22 15:22:07 2007
@@ -684,4 +684,14 @@
         assertEquals(Arrays.asList(new String[] {"*"}), 
Arrays.asList(dd.getModuleConfigurations()));
         assertEquals(Arrays.asList(new String[] {"default4"}), 
Arrays.asList(dd.getDependencyConfigurations("bla")));  
     }
+    
+    public void testWithNonExistingConfigInDependency() throws Exception {
+       // IVY-442
+       try {
+               
XmlModuleDescriptorParser.getInstance().parseDescriptor(_settings, 
getClass().getResource("test-incorrectconf1.xml"), true);
+               fail("ParseException hasn't been thrown");
+       } catch (ParseException e) {
+               // expected
+       }
+    }
 }

Added: 
incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/xml/test-incorrectconf1.xml
URL: 
http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/xml/test-incorrectconf1.xml?view=auto&rev=521503
==============================================================================
--- 
incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/xml/test-incorrectconf1.xml
 (added)
+++ 
incubator/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/xml/test-incorrectconf1.xml
 Thu Mar 22 15:22:07 2007
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ivy-module version="1.0">
+       <info organisation="myorg"
+              module="mymodule"
+              revision="1.0"
+              publication="20050913185628"
+       />
+       <dependencies>
+               <dependency name="mod1" rev="1.0"/>
+               <dependency org="test" name="mod2" rev="2.0" conf="*"/>
+               <dependency org="test" name="mod3" rev="2.0" conf="default->*"/>
+               <dependency org="test" name="mod4" rev="2.0" conf="%->*"/>
+               <dependency org="test" name="mod5" rev="2.0" conf="bad->*"/>
+       </dependencies>
+</ivy-module>


Reply via email to