Author: vsiveton Date: Sun Aug 24 04:11:01 2008 New Revision: 688495 URL: http://svn.apache.org/viewvc?rev=688495&view=rev Log: MPH-37: help:effective-pom - sort the properties list
o using a SortedProperties class o sorted pom.properties and settings.profiles.properties Modified: maven/plugins/trunk/maven-help-plugin/src/main/java/org/apache/maven/plugins/help/AbstractEffectiveMojo.java maven/plugins/trunk/maven-help-plugin/src/main/java/org/apache/maven/plugins/help/EffectivePomMojo.java maven/plugins/trunk/maven-help-plugin/src/main/java/org/apache/maven/plugins/help/EffectiveSettingsMojo.java Modified: maven/plugins/trunk/maven-help-plugin/src/main/java/org/apache/maven/plugins/help/AbstractEffectiveMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-help-plugin/src/main/java/org/apache/maven/plugins/help/AbstractEffectiveMojo.java?rev=688495&r1=688494&r2=688495&view=diff ============================================================================== --- maven/plugins/trunk/maven-help-plugin/src/main/java/org/apache/maven/plugins/help/AbstractEffectiveMojo.java (original) +++ maven/plugins/trunk/maven-help-plugin/src/main/java/org/apache/maven/plugins/help/AbstractEffectiveMojo.java Sun Aug 24 04:11:01 2008 @@ -24,9 +24,14 @@ import java.io.StringWriter; import java.io.Writer; import java.text.DateFormat; +import java.util.Collections; import java.util.Date; import java.util.Iterator; +import java.util.LinkedHashSet; import java.util.Locale; +import java.util.Properties; +import java.util.Set; +import java.util.Vector; import org.codehaus.plexus.util.IOUtil; import org.codehaus.plexus.util.StringUtils; @@ -188,4 +193,23 @@ return effectiveXml; } } + + /** + * Properties which provides a sorted keySet(). + */ + protected static class SortedProperties + extends Properties + { + static final long serialVersionUID = -8985316072702233744L; + + /** [EMAIL PROTECTED] */ + public Set keySet() + { + Set keynames = super.keySet(); + Vector list = new Vector( keynames ); + Collections.sort( list ); + + return new LinkedHashSet( list ); + } + } } Modified: maven/plugins/trunk/maven-help-plugin/src/main/java/org/apache/maven/plugins/help/EffectivePomMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-help-plugin/src/main/java/org/apache/maven/plugins/help/EffectivePomMojo.java?rev=688495&r1=688494&r2=688495&view=diff ============================================================================== --- maven/plugins/trunk/maven-help-plugin/src/main/java/org/apache/maven/plugins/help/EffectivePomMojo.java (original) +++ maven/plugins/trunk/maven-help-plugin/src/main/java/org/apache/maven/plugins/help/EffectivePomMojo.java Sun Aug 24 04:11:01 2008 @@ -24,6 +24,7 @@ import java.io.StringWriter; import java.util.Iterator; import java.util.List; +import java.util.Properties; import org.apache.maven.model.Model; import org.apache.maven.model.io.xpp3.MavenXpp3Writer; @@ -158,6 +159,8 @@ throws MojoExecutionException { Model pom = project.getModel(); + cleanModel( pom ); + String effectivePom; StringWriter sWriter = new StringWriter(); @@ -179,6 +182,18 @@ } /** + * Apply some logic to clean the model before writing it. + * + * @param pom not null + */ + private static void cleanModel( Model pom ) + { + Properties properties = new SortedProperties(); + properties.putAll( pom.getProperties() ); + pom.setProperties( properties ); + } + + /** * @param effectivePom not null * @return pretty format of the xml or the original <code>effectivePom</code> if an error occurred. */ Modified: maven/plugins/trunk/maven-help-plugin/src/main/java/org/apache/maven/plugins/help/EffectiveSettingsMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-help-plugin/src/main/java/org/apache/maven/plugins/help/EffectiveSettingsMojo.java?rev=688495&r1=688494&r2=688495&view=diff ============================================================================== --- maven/plugins/trunk/maven-help-plugin/src/main/java/org/apache/maven/plugins/help/EffectiveSettingsMojo.java (original) +++ maven/plugins/trunk/maven-help-plugin/src/main/java/org/apache/maven/plugins/help/EffectiveSettingsMojo.java Sun Aug 24 04:11:01 2008 @@ -24,8 +24,10 @@ import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Iterator; +import java.util.Properties; import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.settings.Profile; import org.apache.maven.settings.Proxy; import org.apache.maven.settings.Server; import org.apache.maven.settings.Settings; @@ -202,6 +204,8 @@ private static void writeEffectiveSettings( Settings settings, XMLWriter writer ) throws MojoExecutionException { + cleanSettings( settings ); + String effectiveSettings; StringWriter sWriter = new StringWriter(); @@ -223,6 +227,23 @@ } /** + * Apply some logic to clean the model before writing it. + * + * @param settings not null + */ + private static void cleanSettings( Settings settings ) + { + for ( Iterator it = settings.getProfiles().iterator(); it.hasNext(); ) + { + Profile profile = (Profile) it.next(); + + Properties properties = new SortedProperties(); + properties.putAll( profile.getProperties() ); + profile.setProperties( properties ); + } + } + + /** * @return the current host name or <code>unknown</code> if error * @see InetAddress#getLocalHost() */