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