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 2012/12/10 21:56:07 UTC

svn commit: r1419758 - in /ant/ivy/core/trunk: ./ src/java/org/apache/ivy/plugins/parser/m2/ test/java/org/apache/ivy/core/resolve/ test/repositories/parentPom/org/apache/dm/parent/2.0/ test/repositories/parentPom/org/apache/dm/parent2/1.0/ test/reposi...

Author: maartenc
Date: Mon Dec 10 20:56:05 2012
New Revision: 1419758

URL: http://svn.apache.org/viewvc?rev=1419758&view=rev
Log:
FIX: Maven2: resolve failure when parent has <dependencyManagement> with dependency in 'import' scope (IVY-1376)

Added:
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent3/
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent3/1.0/
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent3/1.0/parent3-1.0.pom
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test/3.0/
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test/3.0/test-3.0.pom
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/1.0/
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/1.0/test5-1.0.jar
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/1.0/test5-1.0.pom
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/2.0/
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/2.0/test5-2.0.jar
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/2.0/test5-2.0.pom
Modified:
    ant/ivy/core/trunk/CHANGES.txt
    ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java
    ant/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent/2.0/parent-2.0.pom
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent2/1.0/parent2-1.0.pom

Modified: ant/ivy/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/CHANGES.txt?rev=1419758&r1=1419757&r2=1419758&view=diff
==============================================================================
--- ant/ivy/core/trunk/CHANGES.txt (original)
+++ ant/ivy/core/trunk/CHANGES.txt Mon Dec 10 20:56:05 2012
@@ -139,6 +139,8 @@ for detailed view of each issue, please 
 - IMPROVEMENT: add support for source bundles from p2 repositories
 - IMPROVEMENT: add support for source URI from OBR repositories
 
+- FIX: Maven2: resolve failure when parent has <dependencyManagement> with dependency in 'import' scope (IVY-1376)
+
    2.3.0-rc2
 =====================================
 - DOCUMENTATION: Documentation and Implementation mismatch of makepom (IVY-1383) (thanks to Thomas Kurpick)

Modified: ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java?rev=1419758&r1=1419757&r2=1419758&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java (original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java Mon Dec 10 20:56:05 2012
@@ -252,7 +252,13 @@ public final class PomModuleDescriptorPa
                             // add dependency management info from imported module
                             List depMgt = PomModuleDescriptorBuilder.getDependencyManagements(importDescr);
                             for (Iterator it2 = depMgt.iterator(); it2.hasNext();) {
-                                mdBuilder.addDependencyMgt((PomDependencyMgt) it2.next());
+                                PomDependencyMgt importedDepMgt = (PomDependencyMgt) it2.next();
+                                mdBuilder.addDependencyMgt(new DefaultPomDependencyMgt(
+                                        importedDepMgt.getGroupId(),
+                                        importedDepMgt.getArtifactId(),
+                                        importedDepMgt.getVersion(),
+                                        importedDepMgt.getScope(), 
+                                        importedDepMgt.getExcludedModules()));
                             }
                         } else {
                             throw new IOException("Impossible to import module for " + res.getName() + "."

Modified: ant/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java?rev=1419758&r1=1419757&r2=1419758&view=diff
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java (original)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java Mon Dec 10 20:56:05 2012
@@ -4583,6 +4583,33 @@ public class ResolveTest extends TestCas
             "test4", "jar", "jar").exists());
     }
     
+    public void testResolveMaven2ParentPomDependencyManagementWithImport() throws Exception {
+        // IVY-1376
+        Ivy ivy = new Ivy();
+        ivy.configure(new File("test/repositories/parentPom/ivysettings.xml"));
+        ivy.getSettings().setDefaultResolver("parentChain");
+        
+        ResolveReport report = ivy.resolve(new File(
+                "test/repositories/parentPom/org/apache/dm/test/3.0/test-3.0.pom"),
+            getResolveOptions(new String[] {"*"}));
+        assertNotNull(report);
+
+        //test the report to make sure the right dependencies are listed
+        List dependencies = report.getDependencies();
+        assertFalse(report.hasError());
+        assertEquals(2, dependencies.size());
+        
+        IvyNode ivyNode;
+        ivyNode = (IvyNode) dependencies.get(0);
+        assertNotNull(ivyNode);
+        ModuleRevisionId mrid = ModuleRevisionId.newInstance("org.apache.dm", "test5", "2.0");
+        assertEquals(mrid, ivyNode.getId());
+        assertTrue(getIvyFileInCache(
+            ModuleRevisionId.newInstance("org.apache.dm", "test5", "2.0")).exists());
+        assertTrue(getArchiveFileInCache(ivy, "org.apache.dm", "test5", "2.0",
+            "test5", "jar", "jar").exists());
+    }
+    
     public void testResolveMaven2Snapshot1() throws Exception {
         // test case for IVY-501
         // here we test maven SNAPSHOT versions handling, 

Modified: ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent/2.0/parent-2.0.pom
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent/2.0/parent-2.0.pom?rev=1419758&r1=1419757&r2=1419758&view=diff
==============================================================================
--- ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent/2.0/parent-2.0.pom (original)
+++ ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent/2.0/parent-2.0.pom Mon Dec 10 20:56:05 2012
@@ -28,25 +28,27 @@
   <artifactId>parent</artifactId>
   <name>Test parsing parent POM</name>
   <version>2.0</version>
+  <properties>
+    <test4.version>1.0</test4.version>
+  </properties>
   <dependencyManagement>
     <dependencies>
-	<dependency>
-          <groupId>org.apache.dm</groupId>
-          <artifactId>test2</artifactId>
-          <version>${pom.version}</version>
-        </dependency>
-    <dependency>
-          <groupId>org.apache.dm</groupId>
-          <artifactId>test4</artifactId>
-          <version>1.0</version>
-        </dependency>
+      <dependency>
+        <groupId>org.apache.dm</groupId>
+        <artifactId>test2</artifactId>
+        <version>${pom.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.dm</groupId>
+        <artifactId>test4</artifactId>
+        <version>${test4.version}</version>
+      </dependency>
     </dependencies>
   </dependencyManagement>
-   <dependencies>
+  <dependencies>
     <dependency>
       <groupId>org.apache.dm</groupId>
       <artifactId>test3</artifactId>
     </dependency>
   </dependencies>
-  
 </project>

Modified: ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent2/1.0/parent2-1.0.pom
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent2/1.0/parent2-1.0.pom?rev=1419758&r1=1419757&r2=1419758&view=diff
==============================================================================
--- ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent2/1.0/parent2-1.0.pom (original)
+++ ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent2/1.0/parent2-1.0.pom Mon Dec 10 20:56:05 2012
@@ -23,6 +23,9 @@
   <artifactId>parent2</artifactId>
   <name>Test parsing parent POM</name>
   <version>1.0</version>
+  <properties>
+    <test3.version>1.0</test3.version>
+  </properties>
   <dependencyManagement>
     <dependencies>
 	  <dependency>
@@ -33,7 +36,13 @@
 	  <dependency>
         <groupId>org.apache.dm</groupId>
         <artifactId>test3</artifactId>
+        <version>${test3.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.dm</groupId>
+        <artifactId>parent3</artifactId>
         <version>1.0</version>
+        <scope>import</scope>
       </dependency>
     </dependencies>
   </dependencyManagement>

Added: ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent3/1.0/parent3-1.0.pom
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent3/1.0/parent3-1.0.pom?rev=1419758&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent3/1.0/parent3-1.0.pom (added)
+++ ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent3/1.0/parent3-1.0.pom Mon Dec 10 20:56:05 2012
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.    
+-->
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.dm</groupId>
+  <artifactId>parent3</artifactId>
+  <name>Test parsing parent POM</name>
+  <version>1.0</version>
+  <properties>
+    <test5.version>2.0</test5.version>
+  </properties>
+  <dependencyManagement>
+    <dependencies>
+	  <dependency>
+        <groupId>org.apache.dm</groupId>
+        <artifactId>test5</artifactId>
+        <version>${test5.version}</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+</project>

Added: ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test/3.0/test-3.0.pom
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test/3.0/test-3.0.pom?rev=1419758&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test/3.0/test-3.0.pom (added)
+++ ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test/3.0/test-3.0.pom Mon Dec 10 20:56:05 2012
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.    
+-->
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <artifactId>parent</artifactId>
+    <groupId>org.apache.dm</groupId>
+    <version>2.0</version>
+   </parent>
+  <groupId>org.apache.dm</groupId>
+  <artifactId>test</artifactId>
+  <name>Test parsing parent POM</name>
+  <version>3.0</version>
+  <url>http://ant.apache.org/ivy</url>
+  <organization>
+    <name>Apache</name>
+    <url>http://www.apache.org/</url>
+  </organization>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.dm</groupId>
+      <artifactId>test5</artifactId>
+    </dependency>
+  </dependencies>
+</project>

Added: ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/1.0/test5-1.0.jar
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/1.0/test5-1.0.jar?rev=1419758&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/1.0/test5-1.0.jar (added)
+++ ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/1.0/test5-1.0.jar Mon Dec 10 20:56:05 2012
@@ -0,0 +1 @@
+ 

Added: ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/1.0/test5-1.0.pom
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/1.0/test5-1.0.pom?rev=1419758&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/1.0/test5-1.0.pom (added)
+++ ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/1.0/test5-1.0.pom Mon Dec 10 20:56:05 2012
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.    
+-->
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.dm</groupId>
+  <artifactId>test5</artifactId>
+  <name>Test parsing parent POM</name>
+  <version>1.0</version>
+</project>

Added: ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/2.0/test5-2.0.jar
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/2.0/test5-2.0.jar?rev=1419758&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/2.0/test5-2.0.jar (added)
+++ ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/2.0/test5-2.0.jar Mon Dec 10 20:56:05 2012
@@ -0,0 +1 @@
+ 

Added: ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/2.0/test5-2.0.pom
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/2.0/test5-2.0.pom?rev=1419758&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/2.0/test5-2.0.pom (added)
+++ ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test5/2.0/test5-2.0.pom Mon Dec 10 20:56:05 2012
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.    
+-->
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.dm</groupId>
+  <artifactId>test5</artifactId>
+  <name>Test parsing parent POM</name>
+  <version>2.0</version>
+</project>