You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by ma...@apache.org on 2008/09/30 22:34:15 UTC

svn commit: r700571 - in /ant/ivy/core/trunk: CHANGES.txt src/java/org/apache/ivy/plugins/parser/m2/PomReader.java test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java test/java/org/apache/ivy/plugins/parser/m2/test-optional.pom

Author: maartenc
Date: Tue Sep 30 13:34:15 2008
New Revision: 700571

URL: http://svn.apache.org/viewvc?rev=700571&view=rev
Log:
FIX: Maven Pom reader doesn't handle optional dependencies correctly in some instances (IVY-926) (thanks to Phil Messenger)

Modified:
    ant/ivy/core/trunk/CHANGES.txt
    ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomReader.java
    ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java
    ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/test-optional.pom

Modified: ant/ivy/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/CHANGES.txt?rev=700571&r1=700570&r2=700571&view=diff
==============================================================================
--- ant/ivy/core/trunk/CHANGES.txt (original)
+++ ant/ivy/core/trunk/CHANGES.txt Tue Sep 30 13:34:15 2008
@@ -53,6 +53,7 @@
 	Bernard Niset
 	David Maplesden
 	Glen Marchesani
+	Phil Messenger
 	Mathias Muller
 	Peter Oxenham
 	Emmanuel Pellereau
@@ -90,6 +91,7 @@
 - FIX: build.xml: checkstyle + checkstyle-report dont work together (IVY-919)
 - FIX: Maven packaging of "pom" should add a "jar" artifact if present (IVY-920)
 - FIX: StackOverflow when using ivy:settings with "ivy.instance" as id (IVY-924)
+- FIX: Maven Pom reader doesn't handle optional dependencies correctly in some instances (IVY-926) (thanks to Phil Messenger)
 
    2.0.0-rc1
 =====================================

Modified: ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomReader.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomReader.java?rev=700571&r1=700570&r2=700571&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomReader.java (original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomReader.java Tue Sep 30 13:34:15 2008
@@ -364,7 +364,8 @@
         }
 
         public boolean isOptional() {
-            return getFirstChildElement(depElement, OPTIONAL) != null;
+            Element e = getFirstChildElement(depElement, OPTIONAL); 
+            return (e != null) && "true".equalsIgnoreCase(getTextContent(e));
         }
         
         public List /*<ModuleId>*/ getExcludedModules() {

Modified: ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java?rev=700571&r1=700570&r2=700571&view=diff
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java (original)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java Tue Sep 30 13:34:15 2008
@@ -384,7 +384,7 @@
 
         DependencyDescriptor[] dds = md.getDependencies();
         assertNotNull(dds);
-        assertEquals(2, dds.length);
+        assertEquals(3, dds.length);
         assertEquals(ModuleRevisionId.newInstance("commons-logging", "commons-logging", "1.0.4"),
             dds[0].getDependencyRevisionId());
         assertEquals(new HashSet(Arrays.asList(new String[] {"optional"})), new HashSet(Arrays
@@ -402,6 +402,15 @@
             new HashSet(Arrays.asList(dds[1].getDependencyConfigurations("compile"))));
         assertEquals(new HashSet(Arrays.asList(new String[] {"runtime(*)"})), new HashSet(Arrays
                 .asList(dds[1].getDependencyConfigurations("runtime"))));
+
+        assertEquals(ModuleRevisionId.newInstance("cglib", "cglib-extra", "2.0.2"), dds[2]
+                .getDependencyRevisionId());
+        assertEquals(new HashSet(Arrays.asList(new String[] {"compile", "runtime"})), new HashSet(
+                Arrays.asList(dds[2].getModuleConfigurations())));
+        assertEquals(new HashSet(Arrays.asList(new String[] {"master(*)", "compile(*)"})),
+            new HashSet(Arrays.asList(dds[2].getDependencyConfigurations("compile"))));
+        assertEquals(new HashSet(Arrays.asList(new String[] {"runtime(*)"})), new HashSet(Arrays
+                .asList(dds[2].getDependencyConfigurations("runtime"))));
     }
 
     public void testDependenciesWithScope() throws Exception {

Modified: ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/test-optional.pom
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/test-optional.pom?rev=700571&r1=700570&r2=700571&view=diff
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/test-optional.pom (original)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/test-optional.pom Tue Sep 30 13:34:15 2008
@@ -33,12 +33,18 @@
       <groupId>commons-logging</groupId>
       <artifactId>commons-logging</artifactId>
       <version>1.0.4</version>
-      <optional/>
+      <optional>true</optional>
     </dependency>
     <dependency>
       <groupId>cglib</groupId>
       <artifactId>cglib</artifactId>
       <version>2.0.2</version>
     </dependency>
+    <dependency>
+      <groupId>cglib</groupId>
+      <artifactId>cglib-extra</artifactId>
+      <version>2.0.2</version>
+      <optional>false</optional>
+    </dependency>
   </dependencies>
 </project>