You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by dk...@apache.org on 2007/10/18 19:34:55 UTC

svn commit: r586040 - /maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/ProcessRemoteResourcesMojo.java

Author: dkulp
Date: Thu Oct 18 10:34:53 2007
New Revision: 586040

URL: http://svn.apache.org/viewvc?rev=586040&view=rev
Log:
Sort the projects (so reproducable builds)
Make sure the merged project have the artifact and version set.

Modified:
    maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/ProcessRemoteResourcesMojo.java

Modified: maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/ProcessRemoteResourcesMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/ProcessRemoteResourcesMojo.java?rev=586040&r1=586039&r2=586040&view=diff
==============================================================================
--- maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/ProcessRemoteResourcesMojo.java (original)
+++ maven/plugins/trunk/maven-remote-resources-plugin/src/main/java/org/apache/maven/plugin/resources/remote/ProcessRemoteResourcesMojo.java Thu Oct 18 10:34:53 2007
@@ -66,6 +66,7 @@
 import java.net.URLConnection;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Date;
@@ -386,6 +387,8 @@
                     Model mergedModel = mergeModels( p.getModel(), (Model) supplementModels.get( supplementKey ) );
                     MavenProject mergedProject = new MavenProject( mergedModel );
                     projects.add( mergedProject );
+                    mergedProject.setArtifact(artifact);
+                    mergedProject.setVersion(artifact.getVersion());
                     getLog().debug( "Adding project with groupId [" + mergedProject.getGroupId() + "] (supplemented)" );
                 }
                 else
@@ -400,14 +403,13 @@
                 e.printStackTrace();
             }
         }
+        Collections.sort(projects, new ProjectComparator());
         return projects;
     }
 
-    protected Map getProjectsSortedByOrganization()
+    protected Map getProjectsSortedByOrganization(List projects)
         throws MojoExecutionException
     {
-        List projects = getProjects();
-
         Map organizations = new TreeMap( new OrganizationComparator() );
         List unknownOrganization = new ArrayList();
         for ( Iterator i = projects.iterator(); i.hasNext(); )
@@ -525,8 +527,9 @@
             inceptionYear = year;
         }
         context.put( "project", project );
-        context.put( "projects", getProjects() );
-        context.put( "projectsSortedByOrganization", getProjectsSortedByOrganization() );
+        List projects = getProjects();
+        context.put( "projects", projects );
+        context.put( "projectsSortedByOrganization", getProjectsSortedByOrganization(projects) );
 
         context.put( "presentYear", year );
 
@@ -831,34 +834,50 @@
         {
             Organization org1 = (Organization) o1;
             Organization org2 = (Organization) o2;
+            int i = compareStrings(org1.getName(), org2.getName());
+            if (i == 0) {
+                i = compareStrings(org1.getUrl(), org2.getUrl());
+            }
+            return i;
+        }
 
-            if ( org1.getName() == null && org2.getName() == null )
+        public boolean equals( Object o1, Object o2 )
+        {
+            return compare(o1, o2) == 0;
+        }
+        
+        private int compareStrings(String s1, String s2) {
+            if ( s1 == null && s2 == null )
             {
                 return 0;
             }
-            else if ( org1.getName() == null && org2.getName() != null )
+            else if ( s1 == null && s2 != null )
             {
                 return 1;
             }
             
-            return org1.getName().compareToIgnoreCase( org2.getName() );
+            return s1.compareToIgnoreCase( s2 );
         }
+    }
 
+    class ProjectComparator
+        implements Comparator
+    {
+        public int compare( Object o1, Object o2 )
+        {
+            MavenProject p1 = (MavenProject) o1;
+            MavenProject p2 = (MavenProject) o2;
+                        
+            return p1.getArtifact().compareTo(p2.getArtifact());
+        }
+    
         public boolean equals( Object o1, Object o2 )
         {
-            Organization org1 = (Organization) o1;
-            Organization org2 = (Organization) o2;
+            MavenProject p1 = (MavenProject) o1;
+            MavenProject p2 = (MavenProject) o2;
 
-            if ( org1.getName() == null && org2.getName() == null )
-            {
-                return true;
-            }
-            else if ( org1.getName() == null && org2.getName() != null )
-            {
-                return false;
-            }
-            
-            return org1.getName().equals( org2.getName() );
+            return p1.getArtifact().equals(p2.getArtifact());
         }
     }
+
 }