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.