[CVS jcontainer] Replace spice-cli dependency with commons-cli

Peter Donald <pdonald-yCVjj/[email protected]> Sun, 28 Mar 2004 23:01:06 -0600
Newsgroups gmane.comp.java.jcontainer.cvs
Message-ID <[email protected]>
<html>
<head>
<style><!--
  body {background-color:#ffffff;}
  .file {border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;}
  .pathname {font-family:monospace; float:right;}
  .fileheader {margin-bottom:.5em;}
  .diff {margin:0;}
  .tasklist {padding:4px;border:1px dashed #000000;margin-top:1em;}
  .tasklist ul {margin-top:0;margin-bottom:0;}
  tr.alt {background-color:#eeeeee}
  #added {background-color:#ddffdd;}
  #addedchars {background-color:#99ff99;font-weight:bolder;}
  tr.alt #added {background-color:#ccf7cc;}
  #removed {background-color:#ffdddd;}
  #removedchars {background-color:#ff9999;font-weight:bolder;}
  tr.alt #removed {background-color:#f7cccc;}
  #info {color:#888888;}
  #context {background-color:#eeeeee;}
  td {padding-left:.3em;padding-right:.3em;}
  tr.head {border-bottom-width:1px;border-bottom-style:solid;}
  tr.head td {padding:0;padding-top:.2em;}
  .task {background-color:#ffff00;}
  .comment {padding:4px;border:1px dashed #000000;background-color:#ffffdd}
  .error {color:red;}
  hr {border-width:0px;height:2px;background:black;}
--></style>
</head>
<body>
<table cellspacing="0" cellpadding="0" border="0" rules="cols">
<tr class="head"><td colspan="4">Commit in <b><tt>jcontainer/loom</tt></b><span id="info"> on MAIN</span></td></tr>
<tr><td><tt>engine/src/java/org/jcontainer/loom/frontends/<a href="#file1">CLISetup.java</a></tt></td><td align="right" id="added">+87</td><td align="right" id="removed">-111</td><td nowrap="nowrap" align="center"><a href="http://xstream.cvs.codehaus.org/jcontainer/loom/engine/src/java/org/jcontainer/loom/frontends/CLISetup.java?rev=1.11&amp;content-type=text/vnd.viewcvs-markup">1.11</a> <a href="http://xstream.cvs.codehaus.org/jcontainer/loom/engine/src/java/org/jcontainer/loom/frontends/CLISetup.java.diff?r1=1.11&amp;r2=1.12">-&gt;</a> <a href="http://xstream.cvs.codehaus.org/jcontainer/loom/engine/src/java/org/jcontainer/loom/frontends/CLISetup.java?rev=1.12&amp;content-type=text/vnd.viewcvs-markup">1.12</a></td></tr>
<tr class="alt"><td><tt>distribution/<a href="#file2">project.xml</a></tt></td><td align="right" id="added">+2</td><td align="right" id="removed">-2</td><td nowrap="nowrap" align="center"><a href="http://xstream.cvs.codehaus.org/jcontainer/loom/distribution/project.xml?rev=1.40&amp;content-type=text/vnd.viewcvs-markup">1.40</a> <a href="http://xstream.cvs.codehaus.org/jcontainer/loom/distribution/project.xml.diff?r1=1.40&amp;r2=1.41">-&gt;</a> <a href="http://xstream.cvs.codehaus.org/jcontainer/loom/distribution/project.xml?rev=1.41&amp;content-type=text/vnd.viewcvs-markup">1.41</a></td></tr>
<tr><td><tt>engine/<a href="#file3">project.xml</a></tt></td><td align="right" id="added">+2</td><td align="right" id="removed">-2</td><td nowrap="nowrap" align="center"><a href="http://xstream.cvs.codehaus.org/jcontainer/loom/engine/project.xml?rev=1.40&amp;content-type=text/vnd.viewcvs-markup">1.40</a> <a href="http://xstream.cvs.codehaus.org/jcontainer/loom/engine/project.xml.diff?r1=1.40&amp;r2=1.41">-&gt;</a> <a href="http://xstream.cvs.codehaus.org/jcontainer/loom/engine/project.xml?rev=1.41&amp;content-type=text/vnd.viewcvs-markup">1.41</a></td></tr>
<tr class="alt"><td><tt>site/<a href="#file4">project.xml</a></tt></td><td align="right" id="added">+2</td><td align="right" id="removed">-2</td><td nowrap="nowrap" align="center"><a href="http://xstream.cvs.codehaus.org/jcontainer/loom/site/project.xml?rev=1.36&amp;content-type=text/vnd.viewcvs-markup">1.36</a> <a href="http://xstream.cvs.codehaus.org/jcontainer/loom/site/project.xml.diff?r1=1.36&amp;r2=1.37">-&gt;</a> <a href="http://xstream.cvs.codehaus.org/jcontainer/loom/site/project.xml?rev=1.37&amp;content-type=text/vnd.viewcvs-markup">1.37</a></td></tr>
<tr><td></td><td align="right" id="added">+93</td><td align="right" id="removed">-117</td><td></td></tr>
</table>
<small id="info">4 modified files</small><br />
<pre class="comment">
Replace spice-cli dependency with commons-cli
</pre>
<hr /><a name="file1" /><div class="file">
<span class="pathname"><a href="http://xstream.cvs.codehaus.org/jcontainer">jcontainer</a>/<a href="http://xstream.cvs.codehaus.org/jcontainer/loom">loom</a>/<a href="http://xstream.cvs.codehaus.org/jcontainer/loom/engine">engine</a>/<a href="http://xstream.cvs.codehaus.org/jcontainer/loom/engine/src">src</a>/<a href="http://xstream.cvs.codehaus.org/jcontainer/loom/engine/src/java">java</a>/<a href="http://xstream.cvs.codehaus.org/jcontainer/loom/engine/src/java/org">org</a>/<a href="http://xstream.cvs.codehaus.org/jcontainer/loom/engine/src/java/org/jcontainer">jcontainer</a>/<a href="http://xstream.cvs.codehaus.org/jcontainer/loom/engine/src/java/org/jcontainer/loom">loom</a>/<a href="http://xstream.cvs.codehaus.org/jcontainer/loom/engine/src/java/org/jcontainer/loom/frontends">frontends</a><br /></span>
<div class="fileheader"><big><b>CLISetup.java</b></big> <small id="info"><a href="http://xstream.cvs.codehaus.org/jcontainer/loom/engine/src/java/org/jcontainer/loom/frontends/CLISetup.java?rev=1.11&amp;content-type=text/vnd.viewcvs-markup">1.11</a> <a href="http://xstream.cvs.codehaus.org/jcontainer/loom/engine/src/java/org/jcontainer/loom/frontends/CLISetup.java.diff?r1=1.11&amp;r2=1.12">-&gt;</a> <a href="http://xstream.cvs.codehaus.org/jcontainer/loom/engine/src/java/org/jcontainer/loom/frontends/CLISetup.java?rev=1.12&amp;content-type=text/vnd.viewcvs-markup">1.12</a></small></div>
<pre class="diff"><small id="info">diff -u -r1.11 -r1.12
--- CLISetup.java	19 Feb 2004 03:56:21 -0000	1.11
+++ CLISetup.java	29 Mar 2004 05:01:06 -0000	1.12
@@ -86,33 +86,30 @@
</small></pre><pre class="diff" id="context">  */
 package org.jcontainer.loom.frontends;
 
</pre><pre class="diff" id="removed">-import java.util.List;
</pre><pre class="diff" id="context"> import java.util.Properties;
</pre><pre class="diff" id="removed">-
</pre><pre class="diff" id="added">+import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.CommandLineParser;
+import org.apache.commons.cli.HelpFormatter;
+import org.apache.commons.cli.Options;
+import org.apache.commons.cli.ParseException;
+import org.apache.commons.cli.PosixParser;
</pre><pre class="diff" id="context"> import org.codehaus.spice.salt.i18n.ResourceManager;
 import org.codehaus.spice.salt.i18n.Resources;
</pre><pre class="diff" id="removed">-import org.realityforge.cli.CLArgsParser;
-import org.realityforge.cli.CLOption;
-import org.realityforge.cli.CLOptionDescriptor;
-import org.realityforge.cli.CLUtil;
</pre><pre class="diff" id="context"> 
 /**
  * The class prepare parameters based on input options.
</pre><pre class="diff" id="removed">- *
- * @author Peter Donald
- * @author &lt;a href="[email protected]"&gt;Leo Simons&lt;/a&gt;
</pre><pre class="diff" id="context">  */
 class CLISetup
 {
</pre><pre class="diff" id="removed">-    private static final Resources REZ =
-        ResourceManager.getPackageResources( CLISetup.class );
</pre><pre class="diff" id="added">+    private static final Resources REZ = ResourceManager.getPackageResources(
+        CLISetup.class );
</pre><pre class="diff" id="context"> 
</pre><pre class="diff" id="removed">-    private static final int DEBUG_LOG_OPT = 'd';
-    private static final int HELP_OPT = 'h';
-    private static final int LOG_FILE_OPT = 'l';
-    private static final int PERSISTENT_OPT = 'p';
-    private static final int CONFIGFILE_OPT = 'f';
-    private static final int STDOUT_OPT = 's';
</pre><pre class="diff" id="added">+    private static final String DEBUG_LOG_OPT = "d";
+    private static final String HELP_OPT = "h";
+    private static final String LOG_FILE_OPT = "l";
+    private static final String PERSISTENT_OPT = "p";
+    private static final String CONFIGFILE_OPT = "f";
+    private static final String STDOUT_OPT = "s";
</pre><pre class="diff" id="context"> 
     ///Parameters created by parsing CLI options
     private final Properties m_parameters = new Properties();
</pre><pre class="diff"><small id="info">@@ -126,51 +123,35 @@
</small></pre><pre class="diff" id="context">     }
 
     /**
</pre><pre class="diff" id="removed">-     * Display usage report.
-     */
-    private void usage( final CLOptionDescriptor[] options )
-    {
-        System.err.println( m_command );
-        System.err.println( "\t" + REZ.getString( "cli.desc.available.header" ) );
-        System.err.println( CLUtil.describeOptions( options ) );
-    }
-
-    /**
</pre><pre class="diff" id="context">      * Initialise the options for command line parser.
      */
</pre><pre class="diff" id="removed">-    private CLOptionDescriptor[] createCLOptions()
</pre><pre class="diff" id="added">+    private Options createCLOptions()
</pre><pre class="diff" id="context">     {
</pre><pre class="diff" id="removed">-        final CLOptionDescriptor options[] = new CLOptionDescriptor[6];
-        options[0] =
-            new CLOptionDescriptor( "help",
-                                    CLOptionDescriptor.ARGUMENT_DISALLOWED,
-                                    HELP_OPT,
-                                    REZ.getString( "cli.opt.help.desc" ) );
-        options[1] =
-            new CLOptionDescriptor( "log-file",
-                                    CLOptionDescriptor.ARGUMENT_REQUIRED,
-                                    LOG_FILE_OPT,
-                                    REZ.getString( "cli.opt.log-file.desc" ) );
-        options[2] =
-            new CLOptionDescriptor( "debug-init",
-                                    CLOptionDescriptor.ARGUMENT_DISALLOWED,
-                                    DEBUG_LOG_OPT,
-                                    REZ.getString( "cli.opt.debug-init.desc" ) );
-        options[3] =
-            new CLOptionDescriptor( "persistent",
-                                    CLOptionDescriptor.ARGUMENT_DISALLOWED,
-                                    PERSISTENT_OPT,
-                                    REZ.getString( "cli.opt.persistent.desc" ) );
-        options[4] =
-            new CLOptionDescriptor( "configfile",
-                                    CLOptionDescriptor.ARGUMENT_REQUIRED,
-                                    CONFIGFILE_OPT,
-                                    REZ.getString( "cli.opt.configfile.desc" ) );
-        options[5] =
-            new CLOptionDescriptor( "std-out",
-                                    CLOptionDescriptor.ARGUMENT_DISALLOWED,
-                                    STDOUT_OPT,
-                                    REZ.getString( "cli.opt.configfile.stdout" ) );
</pre><pre class="diff" id="added">+        final Options options = new Options();
+        options.addOption( STDOUT_OPT,
+                           "std-out",
+                           false,
+                           REZ.getString( "cli.opt.configfile.desc" ) );
+        options.addOption( HELP_OPT,
+                           "help",
+                           false,
+                           REZ.getString( "cli.opt.help.desc" ) );
+        options.addOption( CONFIGFILE_OPT,
+                           "configfile",
+                           true,
+                           REZ.getString( "cli.opt.configfile.desc" ) );
+        options.addOption( LOG_FILE_OPT,
+                           "log-file",
+                           true,
+                           REZ.getString( "cli.opt.log-file.desc" ) );
+        options.addOption( DEBUG_LOG_OPT,
+                           "debug-init",
+                           false,
+                           REZ.getString( "cli.opt.debug-init.desc" ) );
+        options.addOption( PERSISTENT_OPT,
+                           "persistent",
+                           false,
+                           REZ.getString( "cli.opt.persistent.desc" ) );
</pre><pre class="diff" id="context">         return options;
     }
 
</pre><pre class="diff"><small id="info">@@ -181,63 +162,58 @@
</small></pre><pre class="diff" id="context"> 
     public boolean parseCommandLineOptions( final String[] args )
     {
</pre><pre class="diff" id="removed">-        final CLOptionDescriptor[] options = createCLOptions();
-        final CLArgsParser parser = new CLArgsParser( args, options );
-
-        if( null != parser.getErrorString() )
-        {
-            final String message = REZ.format( "cli.error.parser",
-                                               parser.getErrorString() );
-            System.err.println( message );
-            return false;
-        }
</pre><pre class="diff" id="added">+        // create the command line parser
+        final CommandLineParser parser = new PosixParser();
</pre><pre class="diff" id="context"> 
</pre><pre class="diff" id="removed">-        final List clOptions = parser.getArguments();
-        final int size = clOptions.size();
-
-        for( int i = 0; i &lt; size; i++ )
</pre><pre class="diff" id="added">+        // create the Options
+        final Options options = createCLOptions();
+        try
</pre><pre class="diff" id="context">         {
</pre><pre class="diff" id="removed">-            final CLOption option = (CLOption)clOptions.get( i );
</pre><pre class="diff" id="added">+            // parse the command line arguments
+            final CommandLine line = parser.parse( options, args );
</pre><pre class="diff" id="context"> 
</pre><pre class="diff" id="removed">-            switch( option.getDescriptor().getId() )
</pre><pre class="diff" id="added">+            if( line.hasOption( HELP_OPT ) )
+            {
+                final HelpFormatter formatter = new HelpFormatter();
+                formatter.printHelp( m_command, options );
+                return false;
+            }
+            if( line.getArgList().size() &gt; 0 )
</pre><pre class="diff" id="context">             {
</pre><pre class="diff" id="removed">-                case 0:
-                    {
-                        final String message =
-                            REZ.format( "cli.error.unknown.arg",
-                                        option.getArgument() );
-                        System.err.println( message );
-                    }
-                    return false;
-
-                case HELP_OPT:
-                    usage( options );
-                    return false;
-
-                case DEBUG_LOG_OPT:
-                    m_parameters.setProperty( "log-priority", "DEBUG" );
-                    break;
-
-                case LOG_FILE_OPT:
-                    m_parameters.setProperty( "log-destination",
-                                              option.getArgument() );
-                    break;
-
-                case PERSISTENT_OPT:
-                    m_parameters.setProperty( CLIMain.PERSISTENT, "true" );
-                    break;
-
-                case CONFIGFILE_OPT:
-                    m_parameters.setProperty( CLIMain.CONFIGFILE,
-                                              option.getArgument() );
-                    break;
-
-                case STDOUT_OPT:
-                    m_parameters.setProperty( "log-stdout", "true" );
-                    break;
</pre><pre class="diff" id="added">+                final String message = REZ.getString( "cli.error.unknown.arg" );
+                System.err.println( message );
+                return false;
</pre><pre class="diff" id="context">             }
</pre><pre class="diff" id="added">+            if( line.hasOption( DEBUG_LOG_OPT ) )
+            {
+                m_parameters.setProperty( "log-priority", "DEBUG" );
+            }
+            if( line.hasOption( PERSISTENT_OPT ) )
+            {
+                m_parameters.setProperty( CLIMain.PERSISTENT, "true" );
+            }
+            if( line.hasOption( CONFIGFILE_OPT ) )
+            {
+                final String file = line.getOptionValue( CONFIGFILE_OPT );
+                m_parameters.setProperty( CLIMain.CONFIGFILE, file );
+            }
+            if( line.hasOption( LOG_FILE_OPT ) )
+            {
+                final String file = line.getOptionValue( LOG_FILE_OPT );
+                m_parameters.setProperty( "log-destination", file );
+            }
+            if( line.hasOption( STDOUT_OPT ) )
+            {
+                m_parameters.setProperty( "log-stdout", "true" );
+            }
+            return true;
+        }
+        catch( final ParseException pe )
+        {
+            final String message = REZ.format( "cli.error.parser",
+                                               pe.getMessage() );
+            System.err.println( message );
+            return false;
</pre><pre class="diff" id="context">         }
</pre><pre class="diff" id="removed">-
-        return true;
</pre><pre class="diff" id="context">     }
 }
</pre></div>
<hr /><a name="file2" /><div class="file">
<span class="pathname"><a href="http://xstream.cvs.codehaus.org/jcontainer">jcontainer</a>/<a href="http://xstream.cvs.codehaus.org/jcontainer/loom">loom</a>/<a href="http://xstream.cvs.codehaus.org/jcontainer/loom/distribution">distribution</a><br /></span>
<div class="fileheader"><big><b>project.xml</b></big> <small id="info"><a href="http://xstream.cvs.codehaus.org/jcontainer/loom/distribution/project.xml?rev=1.40&amp;content-type=text/vnd.viewcvs-markup">1.40</a> <a href="http://xstream.cvs.codehaus.org/jcontainer/loom/distribution/project.xml.diff?r1=1.40&amp;r2=1.41">-&gt;</a> <a href="http://xstream.cvs.codehaus.org/jcontainer/loom/distribution/project.xml?rev=1.41&amp;content-type=text/vnd.viewcvs-markup">1.41</a></small></div>
<pre class="diff"><small id="info">diff -u -r1.40 -r1.41
--- project.xml	22 Mar 2004 22:19:55 -0000	1.40
+++ project.xml	29 Mar 2004 05:01:06 -0000	1.41
@@ -151,8 +151,8 @@
</small></pre><pre class="diff" id="context">             &lt;/properties&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
</pre><pre class="diff" id="removed">-            &lt;groupId&gt;spice&lt;/groupId&gt;
-            &lt;artifactId&gt;spice-cli&lt;/artifactId&gt;
</pre><pre class="diff" id="added">+            &lt;groupId&gt;commons-cli&lt;/groupId&gt;
+            &lt;artifactId&gt;commons-cli&lt;/artifactId&gt;
</pre><pre class="diff" id="context">             &lt;version&gt;1.0&lt;/version&gt;
             &lt;properties&gt;
                 &lt;category&gt;container&lt;/category&gt;
</pre></div>
<hr /><a name="file3" /><div class="file">
<span class="pathname"><a href="http://xstream.cvs.codehaus.org/jcontainer">jcontainer</a>/<a href="http://xstream.cvs.codehaus.org/jcontainer/loom">loom</a>/<a href="http://xstream.cvs.codehaus.org/jcontainer/loom/engine">engine</a><br /></span>
<div class="fileheader"><big><b>project.xml</b></big> <small id="info"><a href="http://xstream.cvs.codehaus.org/jcontainer/loom/engine/project.xml?rev=1.40&amp;content-type=text/vnd.viewcvs-markup">1.40</a> <a href="http://xstream.cvs.codehaus.org/jcontainer/loom/engine/project.xml.diff?r1=1.40&amp;r2=1.41">-&gt;</a> <a href="http://xstream.cvs.codehaus.org/jcontainer/loom/engine/project.xml?rev=1.41&amp;content-type=text/vnd.viewcvs-markup">1.41</a></small></div>
<pre class="diff"><small id="info">diff -u -r1.40 -r1.41
--- project.xml	25 Mar 2004 01:40:33 -0000	1.40
+++ project.xml	29 Mar 2004 05:01:06 -0000	1.41
@@ -100,8 +100,8 @@
</small></pre><pre class="diff" id="context">             &lt;version&gt;1.1&lt;/version&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
</pre><pre class="diff" id="removed">-            &lt;groupId&gt;spice&lt;/groupId&gt;
-            &lt;artifactId&gt;spice-cli&lt;/artifactId&gt;
</pre><pre class="diff" id="added">+            &lt;groupId&gt;commons-cli&lt;/groupId&gt;
+            &lt;artifactId&gt;commons-cli&lt;/artifactId&gt;
</pre><pre class="diff" id="context">             &lt;version&gt;1.0&lt;/version&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
</pre></div>
<hr /><a name="file4" /><div class="file">
<span class="pathname"><a href="http://xstream.cvs.codehaus.org/jcontainer">jcontainer</a>/<a href="http://xstream.cvs.codehaus.org/jcontainer/loom">loom</a>/<a href="http://xstream.cvs.codehaus.org/jcontainer/loom/site">site</a><br /></span>
<div class="fileheader"><big><b>project.xml</b></big> <small id="info"><a href="http://xstream.cvs.codehaus.org/jcontainer/loom/site/project.xml?rev=1.36&amp;content-type=text/vnd.viewcvs-markup">1.36</a> <a href="http://xstream.cvs.codehaus.org/jcontainer/loom/site/project.xml.diff?r1=1.36&amp;r2=1.37">-&gt;</a> <a href="http://xstream.cvs.codehaus.org/jcontainer/loom/site/project.xml?rev=1.37&amp;content-type=text/vnd.viewcvs-markup">1.37</a></small></div>
<pre class="diff"><small id="info">diff -u -r1.36 -r1.37
--- project.xml	20 Feb 2004 03:37:24 -0000	1.36
+++ project.xml	29 Mar 2004 05:01:06 -0000	1.37
@@ -89,8 +89,8 @@
</small></pre><pre class="diff" id="context">             &lt;version&gt;1.1&lt;/version&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
</pre><pre class="diff" id="removed">-            &lt;groupId&gt;spice&lt;/groupId&gt;
-            &lt;artifactId&gt;spice-cli&lt;/artifactId&gt;
</pre><pre class="diff" id="added">+            &lt;groupId&gt;commons-cli&lt;/groupId&gt;
+            &lt;artifactId&gt;commons-cli&lt;/artifactId&gt;
</pre><pre class="diff" id="context">             &lt;version&gt;1.0&lt;/version&gt;
         &lt;/dependency&gt;
         &lt;dependency&gt;
</pre></div>
<center><small><a href="http://www.badgers-in-foil.co.uk/projects/cvsspam/" title="commit -&gt; email">CVSspam</a> 0.2.8</small></center>
</body></html>