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();) {