You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ma...@apache.org on 2012/05/28 15:27:24 UTC
svn commit: r1343248 - in
/maven/shared/trunk/maven-runtime/src/main/java/org/apache/maven/shared/runtime:
MavenProjectUtils.java XMLMavenRuntimeVisitor.java
Author: markh
Date: Mon May 28 13:27:23 2012
New Revision: 1343248
URL: http://svn.apache.org/viewvc?rev=1343248&view=rev
Log:
[MSHARED-165] Mediate dependency versions for stricter Maven3 ProjectSorter
o Deep copy projects before mediating versions
Modified:
maven/shared/trunk/maven-runtime/src/main/java/org/apache/maven/shared/runtime/MavenProjectUtils.java
maven/shared/trunk/maven-runtime/src/main/java/org/apache/maven/shared/runtime/XMLMavenRuntimeVisitor.java
Modified: maven/shared/trunk/maven-runtime/src/main/java/org/apache/maven/shared/runtime/MavenProjectUtils.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-runtime/src/main/java/org/apache/maven/shared/runtime/MavenProjectUtils.java?rev=1343248&r1=1343247&r2=1343248&view=diff
==============================================================================
--- maven/shared/trunk/maven-runtime/src/main/java/org/apache/maven/shared/runtime/MavenProjectUtils.java (original)
+++ maven/shared/trunk/maven-runtime/src/main/java/org/apache/maven/shared/runtime/MavenProjectUtils.java Mon May 28 13:27:23 2012
@@ -19,6 +19,8 @@ package org.apache.maven.shared.runtime;
* under the License.
*/
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -46,6 +48,24 @@ final class MavenProjectUtils
// public methods ---------------------------------------------------------
/**
+ * Deep copies the specified list of projects.
+ *
+ * @param projects the projects to copy
+ * @return a deep copy of the specified projects
+ */
+ public static List<MavenProject> cloneProjects( Collection<MavenProject> projects )
+ {
+ List<MavenProject> clonedProjects = new ArrayList<MavenProject>();
+
+ for ( MavenProject project : projects )
+ {
+ clonedProjects.add( project.clone() );
+ }
+
+ return clonedProjects;
+ }
+
+ /**
* Aligns dependency versions to their corresponding project version for the specified projects.
*
* @param projects the projects whose dependency versions to align
Modified: maven/shared/trunk/maven-runtime/src/main/java/org/apache/maven/shared/runtime/XMLMavenRuntimeVisitor.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-runtime/src/main/java/org/apache/maven/shared/runtime/XMLMavenRuntimeVisitor.java?rev=1343248&r1=1343247&r2=1343248&view=diff
==============================================================================
--- maven/shared/trunk/maven-runtime/src/main/java/org/apache/maven/shared/runtime/XMLMavenRuntimeVisitor.java (original)
+++ maven/shared/trunk/maven-runtime/src/main/java/org/apache/maven/shared/runtime/XMLMavenRuntimeVisitor.java Mon May 28 13:27:23 2012
@@ -104,7 +104,7 @@ class XMLMavenRuntimeVisitor implements
public List<MavenProject> getSortedProjects() throws MavenRuntimeException
{
// mediate dependency versions since declared versions can differ from runtime versions
- List<MavenProject> mediatedProjects = new ArrayList<MavenProject>( projects );
+ List<MavenProject> mediatedProjects = MavenProjectUtils.cloneProjects( projects );
MavenProjectUtils.mediateDependencyVersions( mediatedProjects );
try