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.

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

Reply via email to