You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rg...@apache.org on 2007/09/23 09:20:41 UTC

svn commit: r578553 - in /maven: artifact/trunk/src/main/java/org/apache/maven/artifact/ components/trunk/maven-project/src/main/java/org/apache/maven/project/ components/trunk/maven-project/src/test/java/org/apache/maven/project/imports/ components/tr...

Author: rgoers
Date: Sun Sep 23 00:20:24 2007
New Revision: 578553

URL: http://svn.apache.org/viewvc?rev=578553&view=rev
Log:
Allow the managed dependencies of projects to be imported into the managed dependencies of other projects.

Added:
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/imports/
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/imports/AbstractProjectImportsTestCase.java
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/imports/t01/
    maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/imports/t01/ProjectImportsTest.java
    maven/components/trunk/maven-project/src/test/resources/imports-repo/
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-a-1.0.jar
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-a-1.1.jar
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-b-1.0.jar
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-b-1.1.jar
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-c-1.0.jar
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-c-1.1.jar
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-d-1.0.jar
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-d-1.1.jar
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-d-1.2.jar
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-a-1.0.pom
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-a-1.1.pom
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-b-1.0.pom
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-b-1.1.pom
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-c-1.0.pom
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-c-1.1.pom
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-d-1.0.pom
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-d-1.1.pom
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-d-1.2.pom
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p1/
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p1/pom.xml   (with props)
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p2/
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p2/pom.xml   (with props)
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p3/
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p3/pom.xml   (with props)
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p4/
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p4/pom.xml   (with props)
    maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/pom.xml   (with props)
Modified:
    maven/artifact/trunk/src/main/java/org/apache/maven/artifact/Artifact.java
    maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java

Modified: maven/artifact/trunk/src/main/java/org/apache/maven/artifact/Artifact.java
URL: http://svn.apache.org/viewvc/maven/artifact/trunk/src/main/java/org/apache/maven/artifact/Artifact.java?rev=578553&r1=578552&r2=578553&view=diff
==============================================================================
--- maven/artifact/trunk/src/main/java/org/apache/maven/artifact/Artifact.java (original)
+++ maven/artifact/trunk/src/main/java/org/apache/maven/artifact/Artifact.java Sun Sep 23 00:20:24 2007
@@ -58,6 +58,8 @@
 
     String SCOPE_SYSTEM = "system";
 
+    String SCOPE_IMPORT = "import";   // Used to import dependencyManagement dependencies 
+
     String RELEASE_VERSION = "RELEASE";
 
     String getGroupId();

Modified: maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java?rev=578553&r1=578552&r2=578553&view=diff
==============================================================================
--- maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java (original)
+++ maven/components/trunk/maven-project/src/main/java/org/apache/maven/project/DefaultMavenProjectBuilder.java Sun Sep 23 00:20:24 2007
@@ -100,6 +100,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.TreeMap;
 
 /*:apt
 
@@ -758,6 +759,8 @@
             }
         }
 
+        mergeManagedDependencies(project.getModel(), localRepository, parentSearchRepositories);
+        
         try
         {
             project = processProjectLogic( pomLocation, project, externalProfileManager, projectDir, strict );
@@ -1105,6 +1108,66 @@
         }
 
         return result;
+    }
+
+    private void mergeManagedDependencies(Model model, ArtifactRepository localRepository, List parentSearchRepositories)
+        throws ProjectBuildingException
+    {
+        DependencyManagement modelDepMgmt = model.getDependencyManagement();
+
+        if (modelDepMgmt != null)
+        {
+            Map depsMap = new TreeMap();
+            Iterator iter = modelDepMgmt.getDependencies().iterator();
+            boolean doInclude = false;
+            while (iter.hasNext())
+            {
+                Dependency dep = (Dependency) iter.next();
+                depsMap.put( dep.getManagementKey(), dep );
+                if (dep.getType().equals("pom") && Artifact.SCOPE_IMPORT.equals(dep.getScope()))
+                {
+                    doInclude = true;
+                }
+            }
+            Map newDeps = new TreeMap(depsMap);
+            iter = modelDepMgmt.getDependencies().iterator();
+            if (doInclude)
+            {
+                while (iter.hasNext())
+                {
+                    Dependency dep = (Dependency)iter.next();
+                    if (dep.getType().equals("pom") && Artifact.SCOPE_IMPORT.equals(dep.getScope()))
+                    {
+                        Artifact artifact = artifactFactory.createProjectArtifact( dep.getGroupId(), dep.getArtifactId(),
+                                                                                  dep.getVersion(), dep.getScope() );
+                        MavenProject project = buildFromRepository(artifact, parentSearchRepositories, localRepository, false);
+
+                        DependencyManagement depMgmt = project.getDependencyManagement();
+
+                        if (depMgmt != null)
+                        {
+                            if ( getLogger().isDebugEnabled() )
+                            {
+                                getLogger().debug( "Importing managed dependencies for " + dep.toString() );
+                            }
+
+                            for ( Iterator it = depMgmt.getDependencies().iterator(); it.hasNext(); )
+                            {
+                                Dependency includedDep = (Dependency) it.next();
+                                String key = includedDep.getManagementKey();
+                                if (!newDeps.containsKey(key))
+                                {
+                                    newDeps.put( includedDep.getManagementKey(), includedDep );
+                                }
+                            }
+                            newDeps.remove(dep.getManagementKey());
+                        }
+                    }
+                }
+                List deps = new ArrayList(newDeps.values());
+                modelDepMgmt.setDependencies(deps);
+            }
+        }
     }
 
     private Model readModel( String projectId,

Added: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/imports/AbstractProjectImportsTestCase.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/imports/AbstractProjectImportsTestCase.java?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/imports/AbstractProjectImportsTestCase.java (added)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/imports/AbstractProjectImportsTestCase.java Sun Sep 23 00:20:24 2007
@@ -0,0 +1,53 @@
+package org.apache.maven.project.imports;
+
+/*
+ * 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.
+ */
+
+import org.apache.maven.project.AbstractMavenProjectTestCase;
+
+import java.io.File;
+
+/**
+ * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
+ * @version $Id: AbstractProjectInheritanceTestCase.java 495147 2007-01-11 07:47:53Z jvanzyl $
+ */
+public abstract class AbstractProjectImportsTestCase
+    extends AbstractMavenProjectTestCase
+{
+    protected String getTestSeries()
+    {
+        String className = getClass().getPackage().getName();
+
+        return className.substring( className.lastIndexOf( "." ) + 1 );
+    }
+
+    protected File projectFile( String name )
+    {
+        return new File( getLocalRepositoryPath(), "/maven/poms/" + name + "-1.0.pom" );
+    }
+
+    // ----------------------------------------------------------------------
+    // The local repository for this category of tests
+    // ----------------------------------------------------------------------
+
+    protected File getLocalRepositoryPath()
+    {
+        return getTestFile( "src/test/resources/imports-repo/" + getTestSeries() );
+    }
+}

Added: maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/imports/t01/ProjectImportsTest.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/imports/t01/ProjectImportsTest.java?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/imports/t01/ProjectImportsTest.java (added)
+++ maven/components/trunk/maven-project/src/test/java/org/apache/maven/project/imports/t01/ProjectImportsTest.java Sun Sep 23 00:20:24 2007
@@ -0,0 +1,130 @@
+package org.apache.maven.project.imports.t01;
+
+/*
+ * 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.
+ */
+
+import java.io.File;
+import java.util.Map;
+
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.imports.AbstractProjectImportsTestCase;
+import org.apache.maven.artifact.Artifact;
+
+
+/**
+ * Verifies managed dependencies are imported into other projects correctly.
+ *
+ * @version $Id:  $
+ */
+public class ProjectImportsTest extends AbstractProjectImportsTestCase
+{
+    // ----------------------------------------------------------------------
+    //
+    // p1 inherits from p0
+    // p0 inhertis from super model
+    //
+    // or we can show it graphically as:
+    //
+    // p1 ---> p0 --> super model
+    //
+    // ----------------------------------------------------------------------
+
+    public void testDependencyManagementImportsVersions() throws Exception
+    {
+        File localRepo = getLocalRepositoryPath();
+        File pom0 = new File( localRepo, "p0/pom.xml" );
+        File pom0Basedir = pom0.getParentFile();
+        System.out.println("basedir " + pom0Basedir.getAbsolutePath());
+        File pom1 = new File( pom0Basedir, "p1/pom.xml" );
+        File pom2 = new File( pom0Basedir, "p2/pom.xml" );
+        File pom3 = new File( pom0Basedir, "p3/pom.xml" );
+        File pom4 = new File( pom0Basedir, "p4/pom.xml" );
+        getProjectWithDependencies( pom0 );
+        
+        // load the child project, which inherits from p0...
+        // MavenProject project0 = getProjectWithDependencies( pom0 );
+        MavenProject project1 = getProjectWithDependencies( pom1 );
+
+        assertEquals( pom0Basedir, project1.getParent().getBasedir() );
+
+        Map map = project1.getArtifactMap();
+        assertNotNull("No artifacts", map);
+        assertTrue("No Artifacts", map.size() > 0);
+        assertTrue("Set size should be 2, is " + map.size(), map.size() == 2);
+
+        Artifact a = (Artifact) map.get("maven-test:maven-test-a");
+        Artifact b = (Artifact) map.get("maven-test:maven-test-b");
+
+        assertTrue("Incorrect version for " + a.getDependencyConflictId(), a.getVersion().equals("1.0"));
+        assertTrue("Incorrect version for " + b.getDependencyConflictId(), b.getVersion().equals("1.0"));
+
+                // load the child project, which inherits from p0...
+        // MavenProject project0 = getProjectWithDependencies( pom0 );
+        MavenProject project2 = getProjectWithDependencies( pom2 );
+
+        map = project2.getArtifactMap();
+        assertNotNull("No artifacts", map);
+        assertTrue("No Artifacts", map.size() > 0);
+        assertTrue("Set size should be 3, is " + map.size(), map.size() == 3);
+
+        a = (Artifact) map.get("maven-test:maven-test-a");
+        b = (Artifact) map.get("maven-test:maven-test-b");
+        Artifact c = (Artifact) map.get("maven-test:maven-test-c");
+
+        assertTrue("Incorrect version for " + a.getDependencyConflictId(), a.getVersion().equals("1.0"));
+        assertTrue("Incorrect version for " + b.getDependencyConflictId(), b.getVersion().equals("1.0"));
+        assertTrue("Incorrect version for " + c.getDependencyConflictId(), c.getVersion().equals("1.0"));
+
+        // load the child project, which inherits from p0...
+        // MavenProject project0 = getProjectWithDependencies( pom0 );
+        MavenProject project3 = getProjectWithDependencies( pom3 );
+
+        map = project3.getArtifactMap();
+        assertNotNull("No artifacts", map);
+        assertTrue("No Artifacts", map.size() > 0);
+        assertTrue("Set size should be 3, is " + map.size(), map.size() == 3);
+
+        a = (Artifact) map.get("maven-test:maven-test-a");
+        c = (Artifact) map.get("maven-test:maven-test-c");
+        Artifact d = (Artifact) map.get("maven-test:maven-test-d");
+
+        assertTrue("Incorrect version for " + a.getDependencyConflictId(), a.getVersion().equals("1.1"));
+        assertTrue("Incorrect version for " + c.getDependencyConflictId(), c.getVersion().equals("1.1"));
+        assertTrue("Incorrect version for " + d.getDependencyConflictId(), d.getVersion().equals("1.0"));
+
+        // load the child project, which inherits from p0...
+        // MavenProject project0 = getProjectWithDependencies( pom0 );
+        MavenProject project4 = getProjectWithDependencies( pom4 );
+
+        map = project4.getArtifactMap();
+        assertNotNull("No artifacts", map);
+        assertTrue("No Artifacts", map.size() > 0);
+        assertTrue("Set size should be 4, is " + map.size(), map.size() == 4);
+
+        a = (Artifact) map.get("maven-test:maven-test-a");
+        b = (Artifact) map.get("maven-test:maven-test-b");
+        c = (Artifact) map.get("maven-test:maven-test-c");
+        d = (Artifact) map.get("maven-test:maven-test-d");
+
+        assertTrue("Incorrect version for " + a.getDependencyConflictId(), a.getVersion().equals("1.0"));
+        assertTrue("Incorrect version for " + b.getDependencyConflictId(), b.getVersion().equals("1.1"));
+        assertTrue("Incorrect version for " + c.getDependencyConflictId(), c.getVersion().equals("1.0"));
+        assertTrue("Incorrect version for " + d.getDependencyConflictId(), d.getVersion().equals("1.0"));
+    }
+}
\ No newline at end of file

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-a-1.0.jar
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-a-1.0.jar?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-a-1.0.jar (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-a-1.0.jar Sun Sep 23 00:20:24 2007
@@ -0,0 +1 @@
+foo

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-a-1.1.jar
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-a-1.1.jar?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-a-1.1.jar (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-a-1.1.jar Sun Sep 23 00:20:24 2007
@@ -0,0 +1 @@
+foo

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-b-1.0.jar
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-b-1.0.jar?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-b-1.0.jar (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-b-1.0.jar Sun Sep 23 00:20:24 2007
@@ -0,0 +1 @@
+foo

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-b-1.1.jar
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-b-1.1.jar?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-b-1.1.jar (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-b-1.1.jar Sun Sep 23 00:20:24 2007
@@ -0,0 +1 @@
+foo

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-c-1.0.jar
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-c-1.0.jar?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-c-1.0.jar (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-c-1.0.jar Sun Sep 23 00:20:24 2007
@@ -0,0 +1 @@
+foo

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-c-1.1.jar
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-c-1.1.jar?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-c-1.1.jar (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-c-1.1.jar Sun Sep 23 00:20:24 2007
@@ -0,0 +1 @@
+foo

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-d-1.0.jar
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-d-1.0.jar?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-d-1.0.jar (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-d-1.0.jar Sun Sep 23 00:20:24 2007
@@ -0,0 +1 @@
+foo

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-d-1.1.jar
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-d-1.1.jar?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-d-1.1.jar (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-d-1.1.jar Sun Sep 23 00:20:24 2007
@@ -0,0 +1 @@
+foo

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-d-1.2.jar
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-d-1.2.jar?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-d-1.2.jar (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/jars/maven-test-d-1.2.jar Sun Sep 23 00:20:24 2007
@@ -0,0 +1 @@
+foo

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-a-1.0.pom
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-a-1.0.pom?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-a-1.0.pom (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-a-1.0.pom Sun Sep 23 00:20:24 2007
@@ -0,0 +1,14 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>maven-test</groupId>
+  <artifactId>maven-test-a</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0</version>
+  <repositories>
+    <repository>
+      <id>central</id>
+      <name>Fake Maven Central Repository</name>
+      <url>file://dummy</url>
+    </repository>
+  </repositories>
+</project>
\ No newline at end of file

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-a-1.1.pom
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-a-1.1.pom?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-a-1.1.pom (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-a-1.1.pom Sun Sep 23 00:20:24 2007
@@ -0,0 +1,14 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>maven-test</groupId>
+  <artifactId>maven-test-a</artifactId>
+  <packaging>jar</packaging>
+  <version>1.1</version>
+  <repositories>
+    <repository>
+      <id>central</id>
+      <name>Fake Maven Central Repository</name>
+      <url>file://dummy</url>
+    </repository>
+  </repositories>
+</project>
\ No newline at end of file

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-b-1.0.pom
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-b-1.0.pom?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-b-1.0.pom (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-b-1.0.pom Sun Sep 23 00:20:24 2007
@@ -0,0 +1,7 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>maven-test</groupId>
+  <artifactId>maven-test-b</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0</version>
+</project>
\ No newline at end of file

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-b-1.1.pom
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-b-1.1.pom?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-b-1.1.pom (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-b-1.1.pom Sun Sep 23 00:20:24 2007
@@ -0,0 +1,7 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>maven-test</groupId>
+  <artifactId>maven-test-b</artifactId>
+  <packaging>jar</packaging>
+  <version>1.1</version>
+</project>
\ No newline at end of file

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-c-1.0.pom
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-c-1.0.pom?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-c-1.0.pom (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-c-1.0.pom Sun Sep 23 00:20:24 2007
@@ -0,0 +1,7 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>maven-test</groupId>
+  <artifactId>maven-test-c</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0</version>
+</project>
\ No newline at end of file

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-c-1.1.pom
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-c-1.1.pom?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-c-1.1.pom (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-c-1.1.pom Sun Sep 23 00:20:24 2007
@@ -0,0 +1,7 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>maven-test</groupId>
+  <artifactId>maven-test-c</artifactId>
+  <packaging>jar</packaging>
+  <version>1.1</version>
+</project>
\ No newline at end of file

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-d-1.0.pom
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-d-1.0.pom?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-d-1.0.pom (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-d-1.0.pom Sun Sep 23 00:20:24 2007
@@ -0,0 +1,7 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>maven-test</groupId>
+  <artifactId>maven-test-d</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0</version>
+</project>
\ No newline at end of file

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-d-1.1.pom
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-d-1.1.pom?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-d-1.1.pom (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-d-1.1.pom Sun Sep 23 00:20:24 2007
@@ -0,0 +1,7 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>maven-test</groupId>
+  <artifactId>maven-test-d</artifactId>
+  <packaging>jar</packaging>
+  <version>1.1</version>
+</project>
\ No newline at end of file

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-d-1.2.pom
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-d-1.2.pom?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-d-1.2.pom (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/maven-test/poms/maven-test-d-1.2.pom Sun Sep 23 00:20:24 2007
@@ -0,0 +1,7 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>maven-test</groupId>
+  <artifactId>maven-test-d</artifactId>
+  <packaging>jar</packaging>
+  <version>1.2</version>
+</project>
\ No newline at end of file

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p1/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p1/pom.xml?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p1/pom.xml (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p1/pom.xml Sun Sep 23 00:20:24 2007
@@ -0,0 +1,45 @@
+<project>
+  <parent>
+    <artifactId>p0</artifactId>
+    <groupId>maven</groupId>
+    <version>1.0</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>maven</groupId>
+  <artifactId>p1</artifactId>
+  <packaging>pom</packaging>
+  <name>p1</name>
+  <version>1.0</version>
+  <scm>
+    <url>scm-url</url>
+  </scm>
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>maven-test</groupId>
+        <artifactId>maven-test-b</artifactId>
+        <version>1.0</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+  <dependencies>
+    <dependency>
+      <groupId>maven-test</groupId>
+      <artifactId>maven-test-a</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>maven-test</groupId>
+      <artifactId>maven-test-b</artifactId>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <configuration>
+          <tasks><echo>${project.parent.basedir}</echo></tasks>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
\ No newline at end of file

Propchange: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p1/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p1/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p2/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p2/pom.xml?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p2/pom.xml (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p2/pom.xml Sun Sep 23 00:20:24 2007
@@ -0,0 +1,56 @@
+<project>
+  <parent>
+    <artifactId>p0</artifactId>
+    <groupId>maven</groupId>
+    <version>1.0</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>maven</groupId>
+  <artifactId>p2</artifactId>
+  <packaging>pom</packaging>
+  <name>p2</name>
+  <version>1.0</version>
+  <scm>
+    <url>scm-url</url>
+  </scm>
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>maven</groupId>
+        <artifactId>p1</artifactId>
+        <version>1.0</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+      <dependency>
+        <groupId>maven-test</groupId>
+        <artifactId>maven-test-c</artifactId>
+        <version>1.0</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+  <dependencies>
+    <dependency>
+      <groupId>maven-test</groupId>
+      <artifactId>maven-test-a</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>maven-test</groupId>
+      <artifactId>maven-test-b</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>maven-test</groupId>
+      <artifactId>maven-test-c</artifactId>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <configuration>
+          <tasks><echo>${project.parent.basedir}</echo></tasks>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
\ No newline at end of file

Propchange: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p2/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p2/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p3/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p3/pom.xml?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p3/pom.xml (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p3/pom.xml Sun Sep 23 00:20:24 2007
@@ -0,0 +1,59 @@
+<project>
+  <parent>
+    <artifactId>p0</artifactId>
+    <groupId>maven</groupId>
+    <version>1.0</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>maven</groupId>
+  <artifactId>p3</artifactId>
+  <packaging>pom</packaging>
+  <name>p3</name>
+  <version>1.0</version>
+  <scm>
+    <url>scm-url</url>
+  </scm>
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>maven-test</groupId>
+        <artifactId>maven-test-a</artifactId>
+        <version>1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>maven-test</groupId>
+        <artifactId>maven-test-c</artifactId>
+        <version>1.1</version>
+      </dependency>
+      <dependency>
+        <groupId>maven-test</groupId>
+        <artifactId>maven-test-d</artifactId>
+        <version>1.0</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+  <dependencies>
+    <dependency>
+      <groupId>maven-test</groupId>
+      <artifactId>maven-test-a</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>maven-test</groupId>
+      <artifactId>maven-test-c</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>maven-test</groupId>
+      <artifactId>maven-test-d</artifactId>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <configuration>
+          <tasks><echo>${project.parent.basedir}</echo></tasks>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
\ No newline at end of file

Propchange: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p3/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p3/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p4/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p4/pom.xml?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p4/pom.xml (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p4/pom.xml Sun Sep 23 00:20:24 2007
@@ -0,0 +1,67 @@
+<project>
+  <parent>
+    <artifactId>p0</artifactId>
+    <groupId>maven</groupId>
+    <version>1.0</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>maven</groupId>
+  <artifactId>p4</artifactId>
+  <packaging>pom</packaging>
+  <name>p4</name>
+  <version>1.0</version>
+  <scm>
+    <url>scm-url</url>
+  </scm>
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>maven</groupId>
+        <artifactId>p2</artifactId>
+        <version>1.0</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+      <dependency>
+        <groupId>maven</groupId>
+        <artifactId>p3</artifactId>
+        <version>1.0</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+      <dependency>
+        <groupId>maven-test</groupId>
+        <artifactId>maven-test-b</artifactId>
+        <version>1.1</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+  <dependencies>
+    <dependency>
+      <groupId>maven-test</groupId>
+      <artifactId>maven-test-a</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>maven-test</groupId>
+      <artifactId>maven-test-b</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>maven-test</groupId>
+      <artifactId>maven-test-c</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>maven-test</groupId>
+      <artifactId>maven-test-d</artifactId>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <configuration>
+          <tasks><echo>${project.parent.basedir}</echo></tasks>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
\ No newline at end of file

Propchange: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p4/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/p4/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/pom.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/pom.xml?rev=578553&view=auto
==============================================================================
--- maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/pom.xml (added)
+++ maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/pom.xml Sun Sep 23 00:20:24 2007
@@ -0,0 +1,26 @@
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>maven</groupId>
+  <artifactId>p0</artifactId>
+  <packaging>pom</packaging>
+  <name>p0</name>
+  <version>1.0</version>
+  <organization>
+    <name>Codehaus</name>
+  </organization>
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>maven-test</groupId>
+        <artifactId>maven-test-a</artifactId>
+        <version>1.0</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+  <modules>
+    <module>p1</module>
+    <module>p2</module>
+    <module>p3</module>
+    <module>p4</module>
+  </modules>
+</project>
\ No newline at end of file

Propchange: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/components/trunk/maven-project/src/test/resources/imports-repo/t01/p0/pom.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"



Re: svn commit: r578553 - in /maven: artifact/trunk/src/main/java/org/apache/maven/artifact/ components/trunk/maven-project/src/main/java/org/apache/maven/project/ components/trunk/maven-project/src/test/java/org/apache/maven/project/imports/ components/tr...

Posted by Ralph Goers <Ra...@dslextreme.com>.
Jason van Zyl wrote:
>
> On 23 Sep 07, at 12:20 AM 23 Sep 07, rgoers@apache.org wrote:
>
>> Author: rgoers
>> Date: Sun Sep 23 00:20:24 2007
>> New Revision: 578553
>>
>> URL: http://svn.apache.org/viewvc?rev=578553&view=rev
>> Log:
>> Allow the managed dependencies of projects to be imported into the 
>> managed dependencies of other projects.
>>
>
> I assume you're limiting this in scope somehow, I can't remember if 
> you said it's by a group ID, lineage, or by the reactor. Generally we 
> don't want POMs we pull in from third parties to affect out depMan 
> elements. If commons-beanutils has some depMan element we obviously 
> don't want that affecting the project at hand. I know you added some 
> types or scopes to retain backward compat but just wanted to make sure 
> this isn't a general importing.
>
Yes, you have to specify <scope>import</scope> for the import to happen. 
The type also has to be a pom.  Ideally when doing this projects would 
create a bill of materials pom for others to use and then use the import 
only in poms that they use to build with. Presumably, that project would 
also import the bill of materials pom as well. At least, that was how 
the use case was described to me by the folks who want it.

Ralph

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org


Re: svn commit: r578553 - in /maven: artifact/trunk/src/main/java/org/apache/maven/artifact/ components/trunk/maven-project/src/main/java/org/apache/maven/project/ components/trunk/maven-project/src/test/java/org/apache/maven/project/imports/ components/tr...

Posted by Jason van Zyl <ja...@maven.org>.
On 23 Sep 07, at 12:20 AM 23 Sep 07, rgoers@apache.org wrote:

> Author: rgoers
> Date: Sun Sep 23 00:20:24 2007
> New Revision: 578553
>
> URL: http://svn.apache.org/viewvc?rev=578553&view=rev
> Log:
> Allow the managed dependencies of projects to be imported into the  
> managed dependencies of other projects.
>

I assume you're limiting this in scope somehow, I can't remember if  
you said it's by a group ID, lineage, or by the reactor. Generally we  
don't want POMs we pull in from third parties to affect out depMan  
elements. If commons-beanutils has some depMan element we obviously  
don't want that affecting the project at hand. I know you added some  
types or scopes to retain backward compat but just wanted to make  
sure this isn't a general importing.

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder and PMC Chair, Apache Maven
jason at sonatype dot com
----------------------------------------------------------




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org