You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2008/05/09 16:42:07 UTC

svn commit: r654827 - /maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginHelpGenerator.java

Author: bentmann
Date: Fri May  9 07:42:06 2008
New Revision: 654827

URL: http://svn.apache.org/viewvc?rev=654827&view=rev
Log:
o Made order of goals in help output deterministic

Modified:
    maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginHelpGenerator.java

Modified: maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginHelpGenerator.java
URL: http://svn.apache.org/viewvc/maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginHelpGenerator.java?rev=654827&r1=654826&r2=654827&view=diff
==============================================================================
--- maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginHelpGenerator.java (original)
+++ maven/plugin-tools/trunk/maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/generator/PluginHelpGenerator.java Fri May  9 07:42:06 2008
@@ -24,9 +24,13 @@
 import java.io.IOException;
 import java.io.StringReader;
 import java.io.Writer;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 
 import javax.swing.text.html.HTMLEditorKit;
@@ -278,6 +282,31 @@
     private static void writeExecute( Writer writer, PluginDescriptor pluginDescriptor )
         throws IOException
     {
+        List mojoDescriptors = new ArrayList( pluginDescriptor.getMojos() );
+
+        for ( Iterator it = mojoDescriptors.iterator(); it.hasNext(); )
+        {
+            MojoDescriptor mojoDescriptor = (MojoDescriptor) it.next();
+
+            if ( getHelpGoalName().equals( mojoDescriptor.getGoal() ) )
+            {
+                // remove previously generated help goal
+                it.remove();
+            }
+        }
+
+        Collections.sort( mojoDescriptors, new Comparator()
+        {
+
+            public int compare( Object arg0, Object arg1 )
+            {
+                MojoDescriptor mojo0 = (MojoDescriptor) arg0;
+                MojoDescriptor mojo1 = (MojoDescriptor) arg1;
+                return mojo0.getGoal().compareToIgnoreCase( mojo1.getGoal() );
+            }
+
+        } );
+
         writer.write( "    /** {@inheritDoc} */" + LS );
         writer.write( "    public void execute()" + LS );
         writer.write( "        throws MojoExecutionException" + LS );
@@ -286,22 +315,16 @@
         writer.write( "        StringBuffer sb = new StringBuffer();" + LS );
         writer.write( LS );
         writer.write( "        sb.append( \"The '" + pluginDescriptor.getPluginLookupKey() + "' plugin has "
-            + ( pluginDescriptor.getMojos().size() + 1 ) + " "
-            + ( ( pluginDescriptor.getMojos().size() + 1 ) > 1 ? "goals" : "goal" ) + ":\" ).append( \"\\n\" );" + LS );
+            + ( mojoDescriptors.size() + 1 ) + " "
+            + ( ( mojoDescriptors.size() + 1 ) > 1 ? "goals" : "goal" ) + ":\" ).append( \"\\n\" );" + LS );
         writer.write( "        sb.append( \"\\n\" );" + LS );
 
         writer.write( LS );
 
-        for ( Iterator it = pluginDescriptor.getMojos().iterator(); it.hasNext(); )
+        for ( Iterator it = mojoDescriptors.iterator(); it.hasNext(); )
         {
             MojoDescriptor descriptor = (MojoDescriptor) it.next();
 
-            if ( getHelpGoalName().equals( descriptor.getGoal() ) )
-            {
-                // don't document help goal twice
-                continue;
-            }
-
             String goal = descriptor.getFullGoalName();
             String description = StringUtils.isNotEmpty( descriptor.getDescription() ) ?
                 StringUtils.escape( toText( descriptor.getDescription() ) ) : "No description available.";