You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Steve Ogden (JIRA)" <ji...@apache.org> on 2008/02/22 18:19:20 UTC

[jira] Commented: (CLI-137) Change of behaviour 1.0 -> 1.1

    [ https://issues.apache.org/jira/browse/CLI-137?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12571477#action_12571477 ] 

Steve Ogden commented on CLI-137:
---------------------------------

This broke us as well.  We expected that an option may be repeated multiple times on the command line with the same semantics.  For example, assume that -F takes only one arg.  This was true in CLI 1.0 for every occurrence of -F.  We didn't want every arg to be lumped into a general -F bucket.  This allowed us to do this in 1.0:

   trial -F 1 -F 2 -F 3 file1 file2

and have the output be:

   -F 1
   -F 2
   -F 3
   file1 file2

not as it is now in 1.1:

   -F 1
   -F 2
   -F 3 file1 file2


> Change of behaviour 1.0 -> 1.1
> ------------------------------
>
>                 Key: CLI-137
>                 URL: https://issues.apache.org/jira/browse/CLI-137
>             Project: Commons CLI
>          Issue Type: Bug
>          Components: CLI-1.x
>    Affects Versions: 1.1
>         Environment: Ubuntu 7.04 Feisty Fawn (JDK 1.6.0) + Commons CLI 1.0 and 1.1
>            Reporter: Russel Winder
>            Priority: Blocker
>             Fix For: 1.2
>
>
> The code:
> {code}
> import org.apache.commons.cli.CommandLine ;
> import org.apache.commons.cli.OptionBuilder ;
> import org.apache.commons.cli.GnuParser ;
> import org.apache.commons.cli.Option ;
> import org.apache.commons.cli.Options ;
> import org.apache.commons.cli.ParseException ;
> public class Trial {
>   private void execute (  final String[] commandLine ) throws ParseException {
>     final Options options = new Options ( ) ;
>     options.addOption ( OptionBuilder.withLongOpt ( "flob" ).hasArg ( ).create ( 'F' ) ) ;
>     final CommandLine line = ( new GnuParser ( ) ).parse ( options , commandLine ) ;
>     String[] results =  line.getOptionValues ( 'F' ) ;
>     if ( results != null ) { for ( String s : results ) { System.out.println ( "-F " + s ) ; } }
>     results =  line.getOptionValues ( "flob" ) ;
>     if ( results != null ) { for ( String s : results ) { System.out.println ( "--blah " + s ) ; } }
>     String[] theRest = line.getArgs ( ) ;
>     for ( String s : theRest ) { System.out.print ( s + " " ) ; }
>     System.out.println ( ) ;
>   }
>   public static void main ( final String[] args ) throws ParseException {
>     final Trial trial = new Trial ( ) ;
>     trial.execute ( new String[] { "-F1" , "-F3" , "-Fbla" , "-F 76" , "--flob" , "54" } ) ;
>   }
> }
> {code}
> when compiled and executed under 1.0 produces:
> trial:
>      [java] -F 1
>      [java] -F 3
>      [java] -F bla
>      [java] -F  76
>      [java] -F 54
>      [java] 
> However, when compiled and executed under 1.1 produces:
> trial:
>      [java] -F 1
>      [java] --blah 1
>      [java] 3 bla  76 54 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.