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