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 2007/12/02 22:31:07 UTC

svn commit: r600378 - in /ant/ivy/core/trunk: ./ src/java/org/apache/ivy/plugins/parser/m2/ test/java/org/apache/ivy/core/resolve/ test/repositories/parentPom/ test/repositories/parentPom/org/ test/repositories/parentPom/org/apache/ test/repositories/p...

Author: maartenc
Date: Sun Dec  2 13:31:06 2007
New Revision: 600378

URL: http://svn.apache.org/viewvc?rev=600378&view=rev
Log:
IMPROVEMENT: Maven Dependency Management is not used to determine artifact version (IVY-616) (thanks to Jim Bonanno)

Added:
    ant/ivy/core/trunk/test/repositories/parentPom/
    ant/ivy/core/trunk/test/repositories/parentPom/ivysettings.xml
    ant/ivy/core/trunk/test/repositories/parentPom/org/
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent/
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent/2.0/
    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/
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent2/1.0/
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent2/1.0/parent2-1.0.pom
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test/
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test/1.0/
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test/1.0/test-1.0.jar
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test/1.0/test-1.0.pom
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/1.0/
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/1.0/test2-1.0.jar
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/1.0/test2-1.0.pom
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/2.0/
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/2.0/test2-2.0.jar
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/2.0/test2-2.0.pom
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/1.0/
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/1.0/test3-1.0.jar
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/1.0/test3-1.0.pom
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/2.0/
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/2.0/test3-2.0.jar
    ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/2.0/test3-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

Modified: ant/ivy/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/CHANGES.txt?rev=600378&r1=600377&r2=600378&view=diff
==============================================================================
--- ant/ivy/core/trunk/CHANGES.txt (original)
+++ ant/ivy/core/trunk/CHANGES.txt Sun Dec  2 13:31:06 2007
@@ -62,6 +62,7 @@
 - NEW: Add a task/code to create M2 POM files from Ivy configurations (IVY-416)
 - NEW: [Build] Publish the ivy sources (IVY-646) (thanks to Nicolas Lalevée)
 
+- IMPROVEMENT: Maven Dependency Management is not used to determine artifact version (IVY-616) (thanks to Jim Bonanno)
 - IMPROVEMENT: split the cache into an downloaded artifacts cache and a metadata cache (IVY-628)
 - IMPROVEMENT: add publish triggers to event system (IVY-650) (thanks to Jason Trump)
 - IMPROVEMENT: Only display unique circular dependencies during Resolve (IVY-653)

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=600378&r1=600377&r2=600378&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 Sun Dec  2 13:31:06 2007
@@ -136,6 +136,10 @@
     private static final class Parser extends AbstractParser {
         private static final String JAR_EXTENSION = "jar";
         
+        private static final String DEPENDENCY_MANAGEMENT = "dependency.management";
+        
+        private static final String DEPENDENCY_MANAGEMENT_DELIMITER = "__";
+        
         private ParserSettings settings;
 
         private Stack contextStack = new Stack();
@@ -169,6 +173,13 @@
         private String relocationModule;
 
         private String relocationRevision;
+        
+        private String dmGroupId;
+        
+        private String dmArtifactId;
+        
+        private String dmVersion;
+
 
         public Parser(ModuleDescriptorParser parser, Resource res, ParserSettings settings) {
             super(parser);
@@ -247,9 +258,19 @@
                 properties.put("parent.groupId", organisation);
             } else if (context.equals("project/parent")) {
                 parseParentPom();
-            } else if (((organisation != null && module != null && revision != null) || dd != null)
+            } else if (((organisation != null && module != null) || dd != null)
                     && "project/dependencies/dependency".equals(context)) {
+                if (revision == null) {
+                    // if the revision is null, see if we can get it from the dependency management
+                    String key = DEPENDENCY_MANAGEMENT + DEPENDENCY_MANAGEMENT_DELIMITER + organisation + 
+                        DEPENDENCY_MANAGEMENT_DELIMITER + module;
+                    revision = (String) properties.get(key);
+                }
                 if (dd == null) {
+                    // if we still don't have revision, then we are done.
+                    if (revision == null) {
+                        return;
+                    }
                     dd = new DefaultDependencyDescriptor(md, ModuleRevisionId.newInstance(
                         organisation, module, revision), true, false, true);
                 }
@@ -324,6 +345,13 @@
                 dd.addDependencyConfiguration("*", "@");
                 md.addDependency(dd);
                 dd = null;
+            } else if ("project/dependencyManagement/dependencies/dependency".equals(context)) {
+                if ( dmGroupId != null && dmArtifactId != null && dmVersion != null ) {
+                   // Note: we can't use substitute pattern, fillMrid has not been called yet.
+                   String key = DEPENDENCY_MANAGEMENT + DEPENDENCY_MANAGEMENT_DELIMITER + dmGroupId + 
+                   DEPENDENCY_MANAGEMENT_DELIMITER + dmArtifactId;
+                   properties.put(key, dmVersion);
+                }
             }
             if ("project/dependencies/dependency".equals(context)) {
                 organisation = null;
@@ -379,6 +407,18 @@
                 if (context.startsWith("project/parent")) {
                     return;
                 } 
+                if (context.equals("project/dependencyManagement/dependencies/dependency/groupId")) {
+                    dmGroupId = txt;
+                    return;
+                }
+                if (context.equals("project/dependencyManagement/dependencies/dependency/artifactId")) {
+                    dmArtifactId = txt;
+                    return;
+                }
+                if (context.equals("project/dependencyManagement/dependencies/dependency/version")) {
+                    dmVersion = txt;
+                   return;
+                }
                 if (context.startsWith("project/properties")) {
                     String key = context.substring("project/properties/".length());
                     properties.put(key, txt);
@@ -444,17 +484,19 @@
                 ModuleRevisionId parent = ModuleRevisionId.newInstance(parentOrg, parentName, 
                                            parentVersion);
                 DependencyResolver resolver = settings.getResolver(parent.getModuleId());
+                if (resolver == null) {
+                    // TODO: Maybe log warning or throw exception here?
+                    return;
+                }
                 
                 DependencyDescriptor dd = new DefaultDependencyDescriptor(parent, true);
                 ResolveData data = IvyContext.getContext().getResolveData();
                 if (data == null) {
-                    return;
-//                    TODO: maybe do something like this:
-//                    ResolveEngine engine = IvyContext.getContext().getIvy().getResolveEngine();
-//                    ResolveOptions options = new ResolveOptions();
-//                    options.setCache(IvyContext.getContext().getCacheManager());
-//                    options.setDownload(false);
-//                    data = new ResolveData(engine, options);
+                    ResolveEngine engine = IvyContext.getContext().getIvy().getResolveEngine();
+                    ResolveOptions options = new ResolveOptions();
+                    options.setCache(IvyContext.getContext().getCacheManager());
+                    options.setDownload(false);
+                    data = new ResolveData(engine, options);
                 }
                 
                 ResolvedResource rr = resolver.findIvyFileRef(dd, data);

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=600378&r1=600377&r2=600378&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 Sun Dec  2 13:31:06 2007
@@ -43,6 +43,7 @@
 import org.apache.ivy.core.report.ConfigurationResolveReport;
 import org.apache.ivy.core.report.DownloadStatus;
 import org.apache.ivy.core.report.ResolveReport;
+import org.apache.ivy.core.resolve.IvyNode;
 import org.apache.ivy.core.settings.IvySettings;
 import org.apache.ivy.plugins.circular.CircularDependencyException;
 import org.apache.ivy.plugins.circular.ErrorCircularDependencyStrategy;
@@ -3073,7 +3074,103 @@
         assertTrue(TestHelper.getArchiveFileInCache(ivy, cache, "org.apache", "test-classifier",
             "1.0", "test-classifier", "jar", "jar").exists());
     }
+    
+    public void testResolveMaven2ParentPomChainResolver() throws Exception {
+        // test has a dependency on test2 but there is no version listed. test has a parent of parent(2.0) 
+        // then parent2. Both parents have a dependencyManagement element for test2, and each list the version as
+        // ${pom.version}. The parent version should take precidence over parent2, 
+        // so the version should be test2 version 2.0. Test3 is also a dependency, and it's version is listed
+        // as 1.0 in parent2.
+        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/1.0/test-1.0.pom").toURL(),
+            getResolveOptions(new String[] {"*"}));
+        assertNotNull(report);
+        ModuleDescriptor md = report.getModuleDescriptor();
+        assertNotNull(md);
+        ModuleRevisionId mrid = ModuleRevisionId.newInstance("org.apache.dm", "test", "1.0");
+        assertEquals(mrid, md.getModuleRevisionId());
+
+        assertTrue(ivy.getCacheManager(cache).getResolvedIvyFileInCache(mrid).exists());
+
+        //test the report to make sure the right dependencies are listed
+        List dependencies = report.getDependencies();
+        assertEquals(2, dependencies.size());
+        
+        IvyNode ivyNode;
+        ivyNode = (IvyNode) dependencies.get(0);
+        assertNotNull(ivyNode);
+        mrid = ModuleRevisionId.newInstance("org.apache.dm", "test2", "2.0");
+        assertEquals(mrid, ivyNode.getId());
+        // dependencies
+        assertTrue(ivy.getCacheManager(cache).getIvyFileInCache(
+            ModuleRevisionId.newInstance("org.apache.dm", "test2", "2.0")).exists());
+        assertTrue(TestHelper.getArchiveFileInCache(ivy, cache, "org.apache.dm", "test2", "2.0",
+            "test2", "jar", "jar").exists());
+        
+        ivyNode = (IvyNode) dependencies.get(1);
+        assertNotNull(ivyNode);
+        mrid = ModuleRevisionId.newInstance("org.apache.dm", "test3", "1.0");
+        assertEquals(mrid, ivyNode.getId());
+        // dependencies
+        assertTrue(ivy.getCacheManager(cache).getIvyFileInCache(
+            ModuleRevisionId.newInstance("org.apache.dm", "test3", "1.0")).exists());
+        assertTrue(TestHelper.getArchiveFileInCache(ivy, cache, "org.apache.dm", "test3", "1.0",
+            "test3", "jar", "jar").exists());
+    }
+    
+    public void testResolveMaven2ParentPomDualResolver() throws Exception {
+        // test has a dependency on test2 but there is no version listed. test has a parent of parent(2.0) 
+        // then parent2. Both parents have a dependencyManagement element for test2, and each list the version as
+        // ${pom.version}. The parent version should take precidence over parent2, 
+        // so the version should be test2 version 2.0. Test3 is also a dependency, and it's version is listed
+        // as 1.0 in parent2.
 
+        // now run tests with dual resolver
+        Ivy ivy = new Ivy();
+        ivy.configure(new File("test/repositories/parentPom/ivysettings.xml"));
+        ivy.getSettings().setDefaultResolver("parentDual");
+        
+        ResolveReport report = ivy.resolve(new File(
+                "test/repositories/parentPom/org/apache/dm/test/1.0/test-1.0.pom").toURL(),
+            getResolveOptions(new String[] {"*"}));
+        assertNotNull(report);
+        ModuleDescriptor md = report.getModuleDescriptor();
+        assertNotNull(md);
+        ModuleRevisionId mrid = ModuleRevisionId.newInstance("org.apache.dm", "test", "1.0");
+        assertEquals(mrid, md.getModuleRevisionId());
+
+        assertTrue(ivy.getCacheManager(cache).getResolvedIvyFileInCache(mrid).exists());
+
+        //test the report to make sure the right dependencies are listed
+        List dependencies = report.getDependencies();
+        assertEquals(2, dependencies.size());
+        
+        IvyNode ivyNode;
+        ivyNode = (IvyNode) dependencies.get(0);
+        assertNotNull(ivyNode);
+        mrid = ModuleRevisionId.newInstance("org.apache.dm", "test2", "2.0");
+        assertEquals(mrid, ivyNode.getId());
+        // dependencies
+        assertTrue(ivy.getCacheManager(cache).getIvyFileInCache(
+            ModuleRevisionId.newInstance("org.apache.dm", "test2", "2.0")).exists());
+        assertTrue(TestHelper.getArchiveFileInCache(ivy, cache, "org.apache.dm", "test2", "2.0",
+            "test2", "jar", "jar").exists());
+        
+        ivyNode = (IvyNode) dependencies.get(1);
+        assertNotNull(ivyNode);
+        mrid = ModuleRevisionId.newInstance("org.apache.dm", "test3", "1.0");
+        assertEquals(mrid, ivyNode.getId());
+        // dependencies
+        assertTrue(ivy.getCacheManager(cache).getIvyFileInCache(
+            ModuleRevisionId.newInstance("org.apache.dm", "test3", "1.0")).exists());
+        assertTrue(TestHelper.getArchiveFileInCache(ivy, cache, "org.apache.dm", "test3", "1.0",
+            "test3", "jar", "jar").exists());
+    }
+        
     public void testNamespaceMapping() throws Exception {
         // the dependency is in another namespace
         Ivy ivy = new Ivy();

Added: ant/ivy/core/trunk/test/repositories/parentPom/ivysettings.xml
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/parentPom/ivysettings.xml?rev=600378&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/parentPom/ivysettings.xml (added)
+++ ant/ivy/core/trunk/test/repositories/parentPom/ivysettings.xml Sun Dec  2 13:31:06 2007
@@ -0,0 +1,41 @@
+<!--
+   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.    
+-->
+<ivysettings>
+	<settings defaultCache="build/cache"/>
+	<resolvers>
+		<filesystem name="m2" m2compatible="true">
+			<ivy pattern="${ivy.settings.dir}/[organisation]/[module]/[revision]/[module]-[revision].pom"/>
+			<artifact pattern="${ivy.settings.dir}/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"/>
+		</filesystem>
+		<filesystem name="ivy" m2compatible="true">
+			<ivy pattern="${ivy.settings.dir}/[organisation]/[module]/[revision]/[module]-[revision].pom"/>
+		</filesystem>
+		<filesystem name="artifact" m2compatible="true">
+			<artifact pattern="${ivy.settings.dir}/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"/>
+		</filesystem>
+		<dual name="parentDual">
+			<resolver ref="ivy"/>
+			<resolver ref="artifact"/>
+		</dual>
+		<chain name="parentChain" returnFirst="true">
+			<resolver ref="m2"/>
+		</chain>
+	</resolvers>
+
+</ivysettings>

Added: 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=600378&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent/2.0/parent-2.0.pom (added)
+++ ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent/2.0/parent-2.0.pom Sun Dec  2 13:31:06 2007
@@ -0,0 +1,40 @@
+<?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>parent2</artifactId>
+    <groupId>org.apache.dm</groupId>
+    <version>1.0</version>
+   </parent>
+  <groupId>org.apache.dm</groupId>
+  <artifactId>parent</artifactId>
+  <name>Test parsing parent POM</name>
+  <version>2.0</version>
+  <dependencyManagement>
+    <dependencies>
+	<dependency>
+          <groupId>org.apache.dm</groupId>
+          <artifactId>test2</artifactId>
+          <version>${pom.version}</version>
+        </dependency>
+    </dependencies>
+  </dependencyManagement>
+</project>

Added: 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=600378&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent2/1.0/parent2-1.0.pom (added)
+++ ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/parent2/1.0/parent2-1.0.pom Sun Dec  2 13:31:06 2007
@@ -0,0 +1,40 @@
+<?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>parent2</artifactId>
+  <name>Test parsing parent POM</name>
+  <version>1.0</version>
+  <dependencyManagement>
+    <dependencies>
+	  <dependency>
+        <groupId>org.apache.dm</groupId>
+        <artifactId>test2</artifactId>
+        <version>${pom.version}</version>
+      </dependency>
+	  <dependency>
+        <groupId>org.apache.dm</groupId>
+        <artifactId>test3</artifactId>
+        <version>1.0</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+</project>

Added: ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test/1.0/test-1.0.jar
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test/1.0/test-1.0.jar?rev=600378&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test/1.0/test-1.0.jar (added)
+++ ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test/1.0/test-1.0.jar Sun Dec  2 13:31:06 2007
@@ -0,0 +1 @@
+ 

Added: ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test/1.0/test-1.0.pom
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test/1.0/test-1.0.pom?rev=600378&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test/1.0/test-1.0.pom (added)
+++ ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test/1.0/test-1.0.pom Sun Dec  2 13:31:06 2007
@@ -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>
+  <parent>
+    <artifactId>parent</artifactId>
+    <groupId>org.apache.dm</groupId>
+    <version>2.0</version>
+   </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.dm</groupId>
+  <artifactId>test</artifactId>
+  <name>Test parsing parent POM</name>
+  <version>1.0</version>
+  <url>http://ivy.jayasoft.org/</url>
+  <organization>
+    <name>Jayasoft</name>
+    <url>http://www.jayasoft.org/</url>
+  </organization>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.dm</groupId>
+      <artifactId>test2</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.dm</groupId>
+      <artifactId>test3</artifactId>
+    </dependency>
+  </dependencies>
+</project>

Added: ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/1.0/test2-1.0.jar
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/1.0/test2-1.0.jar?rev=600378&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/1.0/test2-1.0.jar (added)
+++ ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/1.0/test2-1.0.jar Sun Dec  2 13:31:06 2007
@@ -0,0 +1 @@
+ 

Added: ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/1.0/test2-1.0.pom
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/1.0/test2-1.0.pom?rev=600378&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/1.0/test2-1.0.pom (added)
+++ ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/1.0/test2-1.0.pom Sun Dec  2 13:31:06 2007
@@ -0,0 +1,31 @@
+<?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>test2</artifactId>
+  <name>Test parsing parent POM</name>
+  <version>1.0</version>
+  <url>http://ivy.jayasoft.org/</url>
+  <organization>
+    <name>Jayasoft</name>
+    <url>http://www.jayasoft.org/</url>
+  </organization>
+</project>

Added: ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/2.0/test2-2.0.jar
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/2.0/test2-2.0.jar?rev=600378&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/2.0/test2-2.0.jar (added)
+++ ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/2.0/test2-2.0.jar Sun Dec  2 13:31:06 2007
@@ -0,0 +1 @@
+ 

Added: ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/2.0/test2-2.0.pom
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/2.0/test2-2.0.pom?rev=600378&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/2.0/test2-2.0.pom (added)
+++ ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test2/2.0/test2-2.0.pom Sun Dec  2 13:31:06 2007
@@ -0,0 +1,31 @@
+<?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>test2</artifactId>
+  <name>Test parsing parent POM</name>
+  <version>2.0</version>
+  <url>http://ivy.jayasoft.org/</url>
+  <organization>
+    <name>Jayasoft</name>
+    <url>http://www.jayasoft.org/</url>
+  </organization>
+</project>

Added: ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/1.0/test3-1.0.jar
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/1.0/test3-1.0.jar?rev=600378&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/1.0/test3-1.0.jar (added)
+++ ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/1.0/test3-1.0.jar Sun Dec  2 13:31:06 2007
@@ -0,0 +1 @@
+ 

Added: ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/1.0/test3-1.0.pom
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/1.0/test3-1.0.pom?rev=600378&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/1.0/test3-1.0.pom (added)
+++ ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/1.0/test3-1.0.pom Sun Dec  2 13:31:06 2007
@@ -0,0 +1,31 @@
+<?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>test3</artifactId>
+  <name>Test parsing parent POM</name>
+  <version>1.0</version>
+  <url>http://ivy.jayasoft.org/</url>
+  <organization>
+    <name>Jayasoft</name>
+    <url>http://www.jayasoft.org/</url>
+  </organization>
+</project>

Added: ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/2.0/test3-2.0.jar
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/2.0/test3-2.0.jar?rev=600378&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/2.0/test3-2.0.jar (added)
+++ ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/2.0/test3-2.0.jar Sun Dec  2 13:31:06 2007
@@ -0,0 +1 @@
+ 

Added: ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/2.0/test3-2.0.pom
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/2.0/test3-2.0.pom?rev=600378&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/2.0/test3-2.0.pom (added)
+++ ant/ivy/core/trunk/test/repositories/parentPom/org/apache/dm/test3/2.0/test3-2.0.pom Sun Dec  2 13:31:06 2007
@@ -0,0 +1,31 @@
+<?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>test3</artifactId>
+  <name>Test parsing parent POM</name>
+  <version>2.0</version>
+  <url>http://ivy.jayasoft.org/</url>
+  <organization>
+    <name>Jayasoft</name>
+    <url>http://www.jayasoft.org/</url>
+  </organization>
+</project>