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()); } } + }