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