Author: maartenc
Date: Thu Dec  3 22:00:26 2009
New Revision: 886938

URL: http://svn.apache.org/viewvc?rev=886938&view=rev
Log:
IMPROVEMENT: Ivy doesn't support Maven 2.0.9 'import' scope (IVY-807)

Modified:
    ant/ivy/core/trunk/CHANGES.txt
    
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java

Modified: ant/ivy/core/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/ant/ivy/core/trunk/CHANGES.txt?rev=886938&r1=886937&r2=886938&view=diff
==============================================================================
--- ant/ivy/core/trunk/CHANGES.txt (original)
+++ ant/ivy/core/trunk/CHANGES.txt Thu Dec  3 22:00:26 2009
@@ -95,6 +95,7 @@
        
    trunk
 =====================================
+- IMPROVEMENT: Ivy doesn't support Maven 2.0.9 'import' scope (IVY-807)
 - IMPROVEMENT: resolver attribute for listmodules task (IVY-1057)
 - IMPROVEMENT: discover 'src' sources in maven repos (IVY-1138)
 - IMPROVEMENT: Trace a message when a property file referenced from the 
settings doesn't exixts (IVY-1074)

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=886938&r1=886937&r2=886938&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
 Thu Dec  3 22:00:26 2009
@@ -227,7 +227,29 @@
                 
                 for (Iterator it = domReader.getDependencyMgt().iterator(); 
it.hasNext();) {
                     PomDependencyMgt dep = (PomDependencyMgt) it.next();
-                    mdBuilder.addDependencyMgt(dep);
+                    if ("import".equals(dep.getScope())) {
+                        ModuleRevisionId importModRevID = 
ModuleRevisionId.newInstance(
+                            dep.getGroupId(), 
+                            dep.getArtifactId(), 
+                            dep.getVersion());
+                        ResolvedModuleRevision importModule = 
parseOtherPom(ivySettings, 
+                            importModRevID);
+                        if (importModule != null) {
+                            ModuleDescriptor importDescr = 
importModule.getDescriptor();
+                            
+                            // add dependency management info from imported 
module
+                            List depMgt = 
PomModuleDescriptorBuilder.getDependencyManagements(importDescr);
+                            for (Iterator it2 = depMgt.iterator(); 
it2.hasNext();) {
+                                mdBuilder.addDependencyMgt((PomDependencyMgt) 
it2.next());
+                            }
+                        } else {
+                            throw new IOException("Impossible to import module 
for " + descriptorURL + "."
+                               + " Import=" + importModRevID);
+                        }
+                        
+                    } else {
+                        mdBuilder.addDependencyMgt(dep);
+                    }
                 }
                 
                 for (Iterator it = domReader.getDependencies().iterator(); 
it.hasNext();) {


Reply via email to