2011/6/8 Nicolas Lalevée <nicolas.lale...@hibnet.org>:
>
> Le 7 juin 2011 à 20:38, Matt Benson a écrit :
>
>> Hi Ivy devs,
>>  You may have noticed over the past several days that I have
>> committed some m2-related fixes, specifically:
>>
>> https://issues.apache.org/jira/browse/IVY-1299
>> https://issues.apache.org/jira/browse/IVY-1301
>>
>> Both of these issues related to overriding parent properties that
>> specified dependency versions, and I had to do some strange gymnastics
>> to make this work.  A code review by more experienced eyes would
>> probably be best.
>
> I don't know much that part of the code neither. As you patched it you may 
> know better the code than me ! :)
>
> I think you just missed one thing: update the CHANGES.txt ;)
>

Done; thanks!

Matt

> Nicolas
>
>
>>
>> Thanks,
>> Matt
>>
>> On Tue, Jun 7, 2011 at 1:34 PM,  <mben...@apache.org> wrote:
>>> Author: mbenson
>>> Date: Tue Jun  7 18:34:01 2011
>>> New Revision: 1133126
>>>
>>> URL: http://svn.apache.org/viewvc?rev=1133126&view=rev
>>> Log:
>>> [IVY-1301] Ivy does not apply overridden properties to parent dependency 
>>> versions specified using dependencyManagement properties
>>>
>>> Added:
>>>    
>>> ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/test-overrideParentVersionPropertyDependencyMgt.pom
>>>    
>>> ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/test-versionPropertyDependencyMgt.pom
>>> Modified:
>>>    
>>> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorBuilder.java
>>>    
>>> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java
>>>    
>>> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomReader.java
>>>    ant/ivy/core/trunk/test/java/org/apache/ivy/core/resolve/ResolveTest.java
>>>    
>>> ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java
>>>
>>> Modified: 
>>> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorBuilder.java
>>> URL: 
>>> http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorBuilder.java?rev=1133126&r1=1133125&r2=1133126&view=diff
>>> ==============================================================================
>>> --- 
>>> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorBuilder.java
>>>  (original)
>>> +++ 
>>> ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorBuilder.java
>>>  Tue Jun  7 18:34:01 2011
>>> @@ -184,7 +184,7 @@ public class PomModuleDescriptorBuilder
>>>
>>>
>>>
>>> -    private final DefaultModuleDescriptor ivyModuleDescriptor;
>>> +    private final PomModuleDescriptor ivyModuleDescriptor;
>>>
>>>
>>>     private ModuleRevisionId mrid;
>>> @@ -199,7 +199,7 @@ public class PomModuleDescriptorBuilder
>>>
>>>     public PomModuleDescriptorBuilder(
>>>             ModuleDescriptorParser parser, Resource res, ParserSettings 
>>> ivySettings) {
>>> -        ivyModuleDescriptor = new DefaultModuleDescriptor(parser, res);
>>> +        ivyModuleDescriptor = new PomModuleDescriptor(parser, res);
>>>         ivyModuleDescriptor.setResolvedPublicationDate(new 
>>> Date(res.getLastModified()));
>>>         for (int i = 0; i < MAVEN2_CONFIGURATIONS.length; i++) {
>>>             ivyModuleDescriptor.addConfiguration(MAVEN2_CONFIGURATIONS[i]);
>>> @@ -365,6 +365,8 @@ public class PomModuleDescriptorBuilder
>>>
>>>
>>>     public void addDependencyMgt(PomDependencyMgt dep) {
>>> +        ivyModuleDescriptor.addDependencyManagement(dep);
>>> +
>>>         String key = 
>>> getDependencyMgtExtraInfoKeyForVersion(dep.getGroupId(), 
>>> dep.getArtifactId());
>>>         ivyModuleDescriptor.addExtraInfo(key, dep.getVersion());
>>>         if (dep.getScope() != null) {
>>> @@ -450,13 +452,25 @@ public class PomModuleDescriptorBuilder
>>>     }
>>>
>>>     private String getDefaultVersion(PomDependencyData dep) {
>>> +        ModuleId moduleId = ModuleId.newInstance(dep.getGroupId(), 
>>> dep.getArtifactId());
>>> +        if 
>>> (ivyModuleDescriptor.getDependencyManagementMap().containsKey(moduleId)) {
>>> +            return ((PomDependencyMgt) 
>>> ivyModuleDescriptor.getDependencyManagementMap().get(
>>> +                moduleId)).getVersion();
>>> +        }
>>>         String key = 
>>> getDependencyMgtExtraInfoKeyForVersion(dep.getGroupId(), 
>>> dep.getArtifactId());
>>>         return (String) ivyModuleDescriptor.getExtraInfo().get(key);
>>>     }
>>>
>>>     private String getDefaultScope(PomDependencyData dep) {
>>> -        String key = 
>>> getDependencyMgtExtraInfoKeyForScope(dep.getGroupId(), dep.getArtifactId());
>>> -        String result = (String) 
>>> ivyModuleDescriptor.getExtraInfo().get(key);
>>> +        String result;
>>> +        ModuleId moduleId = ModuleId.newInstance(dep.getGroupId(), 
>>> dep.getArtifactId());
>>> +        if 
>>> (ivyModuleDescriptor.getDependencyManagementMap().containsKey(moduleId)) {
>>> +            result = ((PomDependencyMgt) 
>>> ivyModuleDescriptor.getDependencyManagementMap().get(
>>> +                moduleId)).getScope();
>>> +        } else {
>>> +            String key = 
>>> getDependencyMgtExtraInfoKeyForScope(dep.getGroupId(), dep.getArtifactId());
>>> +            result = (String) ivyModuleDescriptor.getExtraInfo().get(key);
>>> +        }
>>>         if ((result == null) || !MAVEN2_CONF_MAPPING.containsKey(result)) {
>>>             result = "compile";
>>>         }
>>> @@ -488,6 +502,13 @@ public class PomModuleDescriptorBuilder
>>>                                 ModuleDescriptor descriptor,
>>>                                 String groupId,
>>>                                 String artifactId) {
>>> +        if (descriptor instanceof PomModuleDescriptor) {
>>> +            PomDependencyMgt dependencyMgt = (PomDependencyMgt) 
>>> ((PomModuleDescriptor) descriptor)
>>> +                    
>>> .getDependencyManagementMap().get(ModuleId.newInstance(groupId, 
>>> artifactId));
>>> +            if (dependencyMgt != null) {
>>> +                return dependencyMgt.getExcludedModules();
>>> +            }
>>> +        }
>>>         String exclusionPrefix = 
>>> getDependencyMgtExtraInfoPrefixForExclusion(
>>>                 groupId, artifactId);
>>>         List /*<ModuleId>*/ exclusionIds = new LinkedList /*<ModuleId>*/ ();
>>> @@ -506,23 +527,30 @@ public class PomModuleDescriptorBuilder
>>>                 exclusionIds.add(ModuleId.newInstance(exclusionParts[0], 
>>> exclusionParts[1]));
>>>             }
>>>         }
>>> -
>>>         return exclusionIds;
>>>     }
>>>
>>>     public static Map/*<ModuleId, String version>*/
>>>             getDependencyManagementMap(ModuleDescriptor md) {
>>>         Map ret = new LinkedHashMap();
>>> -        for (Iterator iterator = md.getExtraInfo().entrySet().iterator(); 
>>> iterator.hasNext();) {
>>> -            Map.Entry entry = (Map.Entry) iterator.next();
>>> -            String key = (String) entry.getKey();
>>> -            if ((key).startsWith(DEPENDENCY_MANAGEMENT)) {
>>> -                String[] parts = key.split(EXTRA_INFO_DELIMITER);
>>> -                if (parts.length != DEPENDENCY_MANAGEMENT_KEY_PARTS_COUNT) 
>>> {
>>> -                    Message.warn("what seem to be a dependency management 
>>> extra info "
>>> -                        + "doesn't match expected pattern: " + key);
>>> -                } else {
>>> -                    ret.put(ModuleId.newInstance(parts[1], parts[2]), 
>>> entry.getValue());
>>> +        if (md instanceof PomModuleDescriptor) {
>>> +            for (final Iterator iterator = ((PomModuleDescriptor) 
>>> md).getDependencyManagementMap().entrySet().iterator(); 
>>> iterator.hasNext();) {
>>> +                Map.Entry e = (Entry) iterator.next();
>>> +                PomDependencyMgt dependencyMgt = (PomDependencyMgt) 
>>> e.getValue();
>>> +                ret.put(e.getKey(), dependencyMgt.getVersion());
>>> +            }
>>> +        } else {
>>> +            for (Iterator iterator = 
>>> md.getExtraInfo().entrySet().iterator(); iterator.hasNext();) {
>>> +                Map.Entry entry = (Map.Entry) iterator.next();
>>> +                String key = (String) entry.getKey();
>>> +                if ((key).startsWith(DEPENDENCY_MANAGEMENT)) {
>>> +                    String[] parts = key.split(EXTRA_INFO_DELIMITER);
>>> +                    if (parts.length != 
>>> DEPENDENCY_MANAGEMENT_KEY_PARTS_COUNT) {
>>> +                        Message.warn("what seem to be a dependency 
>>> management extra info "
>>> +                            + "doesn't match expected pattern: " + key);
>>> +                    } else {
>>> +                        ret.put(ModuleId.newInstance(parts[1], parts[2]), 
>>> entry.getValue());
>>> +                    }
>>>                 }
>>>             }
>>>         }
>>> @@ -532,34 +560,37 @@ public class PomModuleDescriptorBuilder
>>>     public static List getDependencyManagements(ModuleDescriptor md) {
>>>         List result = new ArrayList();
>>>
>>> -        for (Iterator iterator = md.getExtraInfo().entrySet().iterator(); 
>>> iterator.hasNext();) {
>>> -            Map.Entry entry = (Map.Entry) iterator.next();
>>> -            String key = (String) entry.getKey();
>>> -            if ((key).startsWith(DEPENDENCY_MANAGEMENT)) {
>>> -                String[] parts = key.split(EXTRA_INFO_DELIMITER);
>>> -                if (parts.length != DEPENDENCY_MANAGEMENT_KEY_PARTS_COUNT) 
>>> {
>>> -                    Message.warn("what seem to be a dependency management 
>>> extra info "
>>> -                        + "doesn't match expected pattern: " + key);
>>> -                } else {
>>> -                    String versionKey = DEPENDENCY_MANAGEMENT + 
>>> EXTRA_INFO_DELIMITER + parts[1]
>>> -                                        + EXTRA_INFO_DELIMITER + parts[2]
>>> -                                        + EXTRA_INFO_DELIMITER + "version";
>>> -                    String scopeKey = DEPENDENCY_MANAGEMENT + 
>>> EXTRA_INFO_DELIMITER + parts[1]
>>> -                                        + EXTRA_INFO_DELIMITER + parts[2]
>>> -                                        + EXTRA_INFO_DELIMITER + "scope";
>>> -
>>> -                    String version = (String) 
>>> md.getExtraInfo().get(versionKey);
>>> -                    String scope = (String) 
>>> md.getExtraInfo().get(scopeKey);
>>> -
>>> -                    List /*<ModuleId>*/ exclusions = 
>>> getDependencyMgtExclusions(md, parts[1], parts[2]);
>>> -                    result.add(new DefaultPomDependencyMgt(parts[1], 
>>> parts[2], version, scope, exclusions));
>>> +        if (md instanceof PomModuleDescriptor) {
>>> +            result.addAll(((PomModuleDescriptor) 
>>> md).getDependencyManagementMap().values());
>>> +        } else {
>>> +            for (Iterator iterator = 
>>> md.getExtraInfo().entrySet().iterator(); iterator.hasNext();) {
>>> +                Map.Entry entry = (Map.Entry) iterator.next();
>>> +                String key = (String) entry.getKey();
>>> +                if ((key).startsWith(DEPENDENCY_MANAGEMENT)) {
>>> +                    String[] parts = key.split(EXTRA_INFO_DELIMITER);
>>> +                    if (parts.length != 
>>> DEPENDENCY_MANAGEMENT_KEY_PARTS_COUNT) {
>>> +                        Message.warn("what seem to be a dependency 
>>> management extra info "
>>> +                            + "doesn't match expected pattern: " + key);
>>> +                    } else {
>>> +                        String versionKey = DEPENDENCY_MANAGEMENT + 
>>> EXTRA_INFO_DELIMITER + parts[1]
>>> +                                            + EXTRA_INFO_DELIMITER + 
>>> parts[2]
>>> +                                            + EXTRA_INFO_DELIMITER + 
>>> "version";
>>> +                        String scopeKey = DEPENDENCY_MANAGEMENT + 
>>> EXTRA_INFO_DELIMITER + parts[1]
>>> +                                            + EXTRA_INFO_DELIMITER + 
>>> parts[2]
>>> +                                            + EXTRA_INFO_DELIMITER + 
>>> "scope";
>>> +
>>> +                        String version = (String) 
>>> md.getExtraInfo().get(versionKey);
>>> +                        String scope = (String) 
>>> md.getExtraInfo().get(scopeKey);
>>> +
>>> +                        List /*<ModuleId>*/ exclusions = 
>>> getDependencyMgtExclusions(md, parts[1], parts[2]);
>>> +                        result.add(new DefaultPomDependencyMgt(parts[1], 
>>> parts[2], version, scope, exclusions));
>>> +                    }
>>>                 }
>>>             }
>>>         }
>>> -
>>>         return result;
>>>     }
>>> -
>>> +
>>>
>>>     public void addExtraInfos(Map extraAttributes) {
>>>         for (Iterator it = extraAttributes.entrySet().iterator(); 
>>> it.hasNext();) {
>>> @@ -651,4 +682,20 @@ public class PomModuleDescriptorBuilder
>>>             return pomDependencyData;
>>>         }
>>>     }
>>> +
>>> +    public static class PomModuleDescriptor extends 
>>> DefaultModuleDescriptor {
>>> +        private final Map/*<ModuleId, PomDependencyMgt>*/ 
>>> dependencyManagementMap = new HashMap();
>>> +
>>> +        public PomModuleDescriptor(ModuleDescriptorParser parser, Resource 
>>> res) {
>>> +            super(parser, res);
>>> +        }
>>> +
>>> +        public void addDependencyManagement(PomDependencyMgt 
>>> dependencyMgt) {
>>> +            
>>> dependencyManagementMap.put(ModuleId.newInstance(dependencyMgt.getGroupId(),
>>>  dependencyMgt.getArtifactId()), dependencyMgt);
>>> +        }
>>> +
>>> +        public Map getDependencyManagementMap() {
>>> +            return dependencyManagementMap;
>>> +        }
>>> +    }
>>>  }
>>>
>>> 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=1133126&r1=1133125&r2=1133126&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
>>>  Tue Jun  7 18:34:01 2011
>>> @@ -46,6 +46,7 @@ import org.apache.ivy.plugins.parser.Mod
>>>  import org.apache.ivy.plugins.parser.ParserSettings;
>>>  import 
>>> org.apache.ivy.plugins.parser.m2.PomModuleDescriptorBuilder.PomDependencyDescriptor;
>>>  import org.apache.ivy.plugins.parser.m2.PomReader.PomDependencyData;
>>> +import org.apache.ivy.plugins.parser.m2.PomReader.PomDependencyMgtElement;
>>>  import org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorWriter;
>>>  import org.apache.ivy.plugins.repository.Resource;
>>>  import org.apache.ivy.plugins.repository.url.URLResource;
>>> @@ -221,7 +222,11 @@ public final class PomModuleDescriptorPa
>>>                     // add dependency management info from parent
>>>                     List depMgt = 
>>> PomModuleDescriptorBuilder.getDependencyManagements(parentDescr);
>>>                     for (Iterator it = depMgt.iterator(); it.hasNext();) {
>>> -                        mdBuilder.addDependencyMgt((PomDependencyMgt) 
>>> it.next());
>>> +                        PomDependencyMgt dep = (PomDependencyMgt) 
>>> it.next();
>>> +                        if (dep instanceof PomDependencyMgtElement) {
>>> +                            dep = domReader.new 
>>> PomDependencyMgtElement((PomDependencyMgtElement) dep);
>>> +                        }
>>> +                        mdBuilder.addDependencyMgt(dep);
>>>                     }
>>>
>>>                     // add plugins from parent
>>>
>>> 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=1133126&r1=1133125&r2=1133126&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 Jun  7 18:34:01 2011
>>> @@ -294,6 +294,10 @@ public class PomReader {
>>>     public class PomDependencyMgtElement implements PomDependencyMgt {
>>>         private final Element depElement;
>>>
>>> +        public PomDependencyMgtElement(PomDependencyMgtElement copyFrom) {
>>> +            this(copyFrom.depElement);
>>> +        }
>>> +
>>>         PomDependencyMgtElement(Element depElement) {
>>>             this.depElement = depElement;
>>>         }
>>>
>>> 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=1133126&r1=1133125&r2=1133126&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 
>>> Tue Jun  7 18:34:01 2011
>>> @@ -4326,14 +4326,24 @@ public class ResolveTest extends TestCas
>>>         IvyNode ivyNode;
>>>         ivyNode = (IvyNode) dependencies.get(0);
>>>         assertNotNull(ivyNode);
>>> -        mrid = ModuleRevisionId.newInstance("org.apache.dm", "test2", 
>>> "2.0");
>>> +
>>> +//      Bad assertions based on IVY-1301 bug, corrected below:
>>> +//        mrid = ModuleRevisionId.newInstance("org.apache.dm", "test2", 
>>> "2.0");
>>> +//        assertEquals(mrid, ivyNode.getId());
>>> +//        // dependencies
>>> +//        assertTrue(getIvyFileInCache(
>>> +//            ModuleRevisionId.newInstance("org.apache.dm", "test2", 
>>> "2.0")).exists());
>>> +//        assertTrue(getArchiveFileInCache(ivy, "org.apache.dm", "test2", 
>>> "2.0",
>>> +//            "test2", "jar", "jar").exists());
>>> +
>>> +        mrid = ModuleRevisionId.newInstance("org.apache.dm", "test2", 
>>> "1.0");
>>>         assertEquals(mrid, ivyNode.getId());
>>>         // dependencies
>>>         assertTrue(getIvyFileInCache(
>>> -            ModuleRevisionId.newInstance("org.apache.dm", "test2", 
>>> "2.0")).exists());
>>> -        assertTrue(getArchiveFileInCache(ivy, "org.apache.dm", "test2", 
>>> "2.0",
>>> +            ModuleRevisionId.newInstance("org.apache.dm", "test2", 
>>> "1.0")).exists());
>>> +        assertTrue(getArchiveFileInCache(ivy, "org.apache.dm", "test2", 
>>> "1.0",
>>>             "test2", "jar", "jar").exists());
>>> -
>>> +
>>>         ivyNode = (IvyNode) dependencies.get(1);
>>>         assertNotNull(ivyNode);
>>>         mrid = ModuleRevisionId.newInstance("org.apache.dm", "test3", 
>>> "1.0");
>>> @@ -4423,14 +4433,24 @@ public class ResolveTest extends TestCas
>>>         IvyNode ivyNode;
>>>         ivyNode = (IvyNode) dependencies.get(0);
>>>         assertNotNull(ivyNode);
>>> -        mrid = ModuleRevisionId.newInstance("org.apache.dm", "test2", 
>>> "2.0");
>>> +
>>> +//      Bad assertions based on IVY-1301 bug, corrected below:
>>> +//        mrid = ModuleRevisionId.newInstance("org.apache.dm", "test2", 
>>> "2.0");
>>> +//        assertEquals(mrid, ivyNode.getId());
>>> +//        // dependencies
>>> +//        assertTrue(getIvyFileInCache(
>>> +//            ModuleRevisionId.newInstance("org.apache.dm", "test2", 
>>> "2.0")).exists());
>>> +//        assertTrue(getArchiveFileInCache(ivy, "org.apache.dm", "test2", 
>>> "2.0",
>>> +//            "test2", "jar", "jar").exists());
>>> +
>>> +        mrid = ModuleRevisionId.newInstance("org.apache.dm", "test2", 
>>> "1.0");
>>>         assertEquals(mrid, ivyNode.getId());
>>>         // dependencies
>>>         assertTrue(getIvyFileInCache(
>>> -            ModuleRevisionId.newInstance("org.apache.dm", "test2", 
>>> "2.0")).exists());
>>> -        assertTrue(getArchiveFileInCache(ivy, "org.apache.dm", "test2", 
>>> "2.0",
>>> +            ModuleRevisionId.newInstance("org.apache.dm", "test2", 
>>> "1.0")).exists());
>>> +        assertTrue(getArchiveFileInCache(ivy, "org.apache.dm", "test2", 
>>> "1.0",
>>>             "test2", "jar", "jar").exists());
>>> -
>>> +
>>>         ivyNode = (IvyNode) dependencies.get(1);
>>>         assertNotNull(ivyNode);
>>>         mrid = ModuleRevisionId.newInstance("org.apache.dm", "test3", 
>>> "1.0");
>>>
>>> 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=1133126&r1=1133125&r2=1133126&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 Jun  7 18:34:01 2011
>>> @@ -675,6 +675,42 @@ public class PomModuleDescriptorParserTe
>>>         assertEquals("jms", excludes[1].getId().getModuleId().getName());
>>>     }
>>>
>>> +    public void testOverrideParentVersionPropertyDependencyMgt() throws 
>>> ParseException, IOException {
>>> +        settings.setDictatorResolver(new MockResolver() {
>>> +            public ResolvedModuleRevision 
>>> getDependency(DependencyDescriptor dd, ResolveData data) throws 
>>> ParseException {
>>> +                try {
>>> +                    ModuleDescriptor moduleDescriptor = 
>>> PomModuleDescriptorParser.getInstance().parseDescriptor(
>>> +                        settings, 
>>> getClass().getResource("test-versionPropertyDependencyMgt.pom"), false);
>>> +                    return new 
>>> ResolvedModuleRevision(null,null,moduleDescriptor,null);
>>> +                } catch (IOException e) {
>>> +                    throw new AssertionError(e);
>>> +                }
>>> +            }
>>> +        });
>>> +
>>> +        ModuleDescriptor md = 
>>> PomModuleDescriptorParser.getInstance().parseDescriptor(
>>> +            settings, 
>>> getClass().getResource("test-overrideParentVersionPropertyDependencyMgt.pom"),
>>>  false);
>>> +        assertNotNull(md);
>>> +        assertEquals(ModuleRevisionId.newInstance("org.apache", 
>>> "test-parentdep", "1.0"), md
>>> +            .getModuleRevisionId());
>>> +
>>> +        DependencyDescriptor[] dds = md.getDependencies();
>>> +        assertNotNull(dds);
>>> +        assertEquals(2, dds.length);
>>> +        assertEquals(ModuleRevisionId.newInstance("commons-collections", 
>>> "commons-collections", "3.2.1"),
>>> +            dds[0].getDependencyRevisionId());
>>> +        assertEquals(ModuleRevisionId.newInstance("commons-logging", 
>>> "commons-logging", "1.1.1"),
>>> +            dds[1].getDependencyRevisionId());
>>> +
>>> +        ExcludeRule[] excludes = dds[0].getAllExcludeRules();
>>> +        assertNotNull(excludes);
>>> +        assertEquals(2, excludes.length);
>>> +        assertEquals("javax.mail", 
>>> excludes[0].getId().getModuleId().getOrganisation());
>>> +        assertEquals("mail", excludes[0].getId().getModuleId().getName());
>>> +        assertEquals("javax.jms", 
>>> excludes[1].getId().getModuleId().getOrganisation());
>>> +        assertEquals("jms", excludes[1].getId().getModuleId().getName());
>>> +    }
>>> +
>>>     public void testParentProperties() throws ParseException, IOException {
>>>         settings.setDictatorResolver(new MockResolver() {
>>>             public ResolvedModuleRevision 
>>> getDependency(DependencyDescriptor dd, ResolveData data) throws 
>>> ParseException {
>>>
>>> Added: 
>>> ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/test-overrideParentVersionPropertyDependencyMgt.pom
>>> URL: 
>>> http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/test-overrideParentVersionPropertyDependencyMgt.pom?rev=1133126&view=auto
>>> ==============================================================================
>>> --- 
>>> ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/test-overrideParentVersionPropertyDependencyMgt.pom
>>>  (added)
>>> +++ 
>>> ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/test-overrideParentVersionPropertyDependencyMgt.pom
>>>  Tue Jun  7 18:34:01 2011
>>> @@ -0,0 +1,46 @@
>>> +<?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>test-depMgt</artifactId>
>>> +    <groupId>org.apache</groupId>
>>> +    <version>1.0</version>
>>> +  </parent>
>>> +  <groupId>org.apache</groupId>
>>> +  <artifactId>test-parentdep</artifactId>
>>> +  <name>Test Module for Ivy M2 parsing</name>
>>> +  <version>1.0</version>
>>> +  <url>http://ivy.jayasoft.org/</url>
>>> +  <organization>
>>> +    <name>Jayasoft</name>
>>> +    <url>http://www.jayasoft.org/</url>
>>> +  </organization>
>>> +  <properties>
>>> +       <commons.logging.version>1.1.1</commons.logging.version>
>>> +       <commons.collections.version>3.2.1</commons.collections.version>
>>> +  </properties>
>>> +  <dependencies>
>>> +       <dependency>
>>> +        <groupId>commons-collections</groupId>
>>> +        <artifactId>commons-collections</artifactId>
>>> +    </dependency>
>>> +  </dependencies>
>>> +</project>
>>>
>>> Added: 
>>> ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/test-versionPropertyDependencyMgt.pom
>>> URL: 
>>> http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/test-versionPropertyDependencyMgt.pom?rev=1133126&view=auto
>>> ==============================================================================
>>> --- 
>>> ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/test-versionPropertyDependencyMgt.pom
>>>  (added)
>>> +++ 
>>> ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/test-versionPropertyDependencyMgt.pom
>>>  Tue Jun  7 18:34:01 2011
>>> @@ -0,0 +1,65 @@
>>> +<?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</groupId>
>>> +    <artifactId>test-depMgt</artifactId>
>>> +    <name>Test Module for Ivy M2 parsing</name>
>>> +    <version>1.0</version>
>>> +    <url>http://ivy.jayasoft.org/</url>
>>> +    <organization>
>>> +        <name>Jayasoft</name>
>>> +        <url>http://www.jayasoft.org/</url>
>>> +    </organization>
>>> +    <properties>
>>> +       <commons.logging.version>1.0.4</commons.logging.version>
>>> +       <commons.collections.version>1.0.5</commons.collections.version>
>>> +    </properties>
>>> +    <dependencyManagement>
>>> +        <dependencies>
>>> +            <dependency>
>>> +                <groupId>commons-logging</groupId>
>>> +                <artifactId>commons-logging</artifactId>
>>> +                <version>${commons.logging.version}</version>
>>> +            </dependency>
>>> +            <dependency>
>>> +                <groupId>commons-collections</groupId>
>>> +                <artifactId>commons-collections</artifactId>
>>> +                <version>${commons.collections.version}</version>
>>> +                <exclusions>
>>> +                    <exclusion>
>>> +                        <groupId>javax.mail</groupId>
>>> +                        <artifactId>mail</artifactId>
>>> +                    </exclusion>
>>> +                    <exclusion>
>>> +                        <groupId>javax.jms</groupId>
>>> +                        <artifactId>jms</artifactId>
>>> +                    </exclusion>
>>> +                </exclusions>
>>> +            </dependency>
>>> +        </dependencies>
>>> +    </dependencyManagement>
>>> +    <dependencies>
>>> +        <dependency>
>>> +            <groupId>commons-logging</groupId>
>>> +            <artifactId>commons-logging</artifactId>
>>> +        </dependency>
>>> +    </dependencies>
>>> +</project>
>>>
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
>> For additional commands, e-mail: dev-h...@ant.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
> For additional commands, e-mail: dev-h...@ant.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org
For additional commands, e-mail: dev-h...@ant.apache.org

Reply via email to