[jira] [Commented] (CLI-230) Unable to properly require options

2013-02-11 Thread Thomas Neidhart (JIRA)

[ 
https://issues.apache.org/jira/browse/CLI-230?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13575868#comment-13575868
 ] 

Thomas Neidhart commented on CLI-230:
-

In the current CLI version, it is not advised to alter Option objects after 
they have been added to an Options instance, as the changes will not be 
reflected, thus you should do something like that:

{noformat}
Options options = new Options();

Option o = OptionBuilder.withLongOpt(foo).isRequired().create(f);
options.addOption(o);
{noformat}

There are several flaws in the current API design of CLI, which will hopefully 
corrected with CLI2, but we can not do it right now as it would break 
binary/backwards compatibility.

 Unable to properly require options
 --

 Key: CLI-230
 URL: https://issues.apache.org/jira/browse/CLI-230
 Project: Commons CLI
  Issue Type: Bug
  Components: CLI-1.x, Options definition
Affects Versions: 1.2
 Environment: windows jdk1.6.0_21
Reporter: Alexander Fast

 Having some problems setting options as required. Have I misunderstood the 
 documentation?
  * In test1() the option is required but also supplied, I expect to get no 
 exceptions.
  * In test2() the option is required but *not* supplied, I expect to get an 
 exception.
 {code:java}
 public class Testing {
 public static void main(String[] args) {
 System.out.println(Begin test 1);
 test1();
 System.out.println(End test 1);
 System.out.println(Begin test 2);
 test2();
 System.out.println(End test 2);
 }
 private static void test1() {
 String[] args = new String[] { --foo };
 Options options = new Options();
 options.addOption(f, foo, false, );
 options.getRequiredOptions().add(options.getOption(foo));
 GnuParser parser = new GnuParser();
 try {
 parser.parse(options, args);
 } catch (ParseException e) {
 // didn't expect to get MissingOptionException here
 System.out.println(ERROR:  + e.getMessage());
 }
 }
 private static void test2() {
 String[] args = new String[] { };
 Options options = new Options();
 options.addOption(f, foo, false, );
 options.getOption(f).setRequired(true);
 GnuParser parser = new GnuParser();
 try {
 parser.parse(options, args);
 } catch (ParseException e) {
 // expected to get MissingOptionException here
 System.out.println(ERROR:  + e.getMessage());
 }
 }
 }
 {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CLI-230) Unable to properly require options

2013-02-11 Thread Thomas Neidhart (JIRA)

[ 
https://issues.apache.org/jira/browse/CLI-230?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13575880#comment-13575880
 ] 

Thomas Neidhart commented on CLI-230:
-

Actually, Options.getRequiredOptions() should return an unmodifiable list, 
adding there something really breaks some internal logic.

 Unable to properly require options
 --

 Key: CLI-230
 URL: https://issues.apache.org/jira/browse/CLI-230
 Project: Commons CLI
  Issue Type: Bug
  Components: CLI-1.x, Options definition
Affects Versions: 1.2
 Environment: windows jdk1.6.0_21
Reporter: Alexander Fast

 Having some problems setting options as required. Have I misunderstood the 
 documentation?
  * In test1() the option is required but also supplied, I expect to get no 
 exceptions.
  * In test2() the option is required but *not* supplied, I expect to get an 
 exception.
 {code:java}
 public class Testing {
 public static void main(String[] args) {
 System.out.println(Begin test 1);
 test1();
 System.out.println(End test 1);
 System.out.println(Begin test 2);
 test2();
 System.out.println(End test 2);
 }
 private static void test1() {
 String[] args = new String[] { --foo };
 Options options = new Options();
 options.addOption(f, foo, false, );
 options.getRequiredOptions().add(options.getOption(foo));
 GnuParser parser = new GnuParser();
 try {
 parser.parse(options, args);
 } catch (ParseException e) {
 // didn't expect to get MissingOptionException here
 System.out.println(ERROR:  + e.getMessage());
 }
 }
 private static void test2() {
 String[] args = new String[] { };
 Options options = new Options();
 options.addOption(f, foo, false, );
 options.getOption(f).setRequired(true);
 GnuParser parser = new GnuParser();
 try {
 parser.parse(options, args);
 } catch (ParseException e) {
 // expected to get MissingOptionException here
 System.out.println(ERROR:  + e.getMessage());
 }
 }
 }
 {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CLI-230) Unable to properly require options

2013-02-11 Thread Alexander Fast (JIRA)

[ 
https://issues.apache.org/jira/browse/CLI-230?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13575881#comment-13575881
 ] 

Alexander Fast commented on CLI-230:


Thank you for a swift response. I had indeed missed the part about not being 
allowed to alter Options after they've been added.

The code now works. Although my IDE (IntelliJ Idea 12.0.3) gives me the 
following warning:

{quote}
Static member 'org.apache.commons.cli.OptionBuilder.isRequired()' accessed via 
instance reference.
Shows references to static methods and fields via class instance rather than a 
class itself.
{quote}

Closing issue.

 Unable to properly require options
 --

 Key: CLI-230
 URL: https://issues.apache.org/jira/browse/CLI-230
 Project: Commons CLI
  Issue Type: Bug
  Components: CLI-1.x, Options definition
Affects Versions: 1.2
 Environment: windows jdk1.6.0_21
Reporter: Alexander Fast

 Having some problems setting options as required. Have I misunderstood the 
 documentation?
  * In test1() the option is required but also supplied, I expect to get no 
 exceptions.
  * In test2() the option is required but *not* supplied, I expect to get an 
 exception.
 {code:java}
 public class Testing {
 public static void main(String[] args) {
 System.out.println(Begin test 1);
 test1();
 System.out.println(End test 1);
 System.out.println(Begin test 2);
 test2();
 System.out.println(End test 2);
 }
 private static void test1() {
 String[] args = new String[] { --foo };
 Options options = new Options();
 options.addOption(f, foo, false, );
 options.getRequiredOptions().add(options.getOption(foo));
 GnuParser parser = new GnuParser();
 try {
 parser.parse(options, args);
 } catch (ParseException e) {
 // didn't expect to get MissingOptionException here
 System.out.println(ERROR:  + e.getMessage());
 }
 }
 private static void test2() {
 String[] args = new String[] { };
 Options options = new Options();
 options.addOption(f, foo, false, );
 options.getOption(f).setRequired(true);
 GnuParser parser = new GnuParser();
 try {
 parser.parse(options, args);
 } catch (ParseException e) {
 // expected to get MissingOptionException here
 System.out.println(ERROR:  + e.getMessage());
 }
 }
 }
 {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CLI-230) Unable to properly require options

2013-02-11 Thread Alexander Fast (JIRA)

[ 
https://issues.apache.org/jira/browse/CLI-230?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13575882#comment-13575882
 ] 

Alexander Fast commented on CLI-230:


{quote}
Actually, Options.getRequiredOptions() should return an unmodifiable list, 
adding there something really breaks some internal logic.
{quote}

Agreed, I thought that was strange as well (got warnings about unchecked when 
adding typed stuff to the list).

 Unable to properly require options
 --

 Key: CLI-230
 URL: https://issues.apache.org/jira/browse/CLI-230
 Project: Commons CLI
  Issue Type: Bug
  Components: CLI-1.x, Options definition
Affects Versions: 1.2
 Environment: windows jdk1.6.0_21
Reporter: Alexander Fast

 Having some problems setting options as required. Have I misunderstood the 
 documentation?
  * In test1() the option is required but also supplied, I expect to get no 
 exceptions.
  * In test2() the option is required but *not* supplied, I expect to get an 
 exception.
 {code:java}
 public class Testing {
 public static void main(String[] args) {
 System.out.println(Begin test 1);
 test1();
 System.out.println(End test 1);
 System.out.println(Begin test 2);
 test2();
 System.out.println(End test 2);
 }
 private static void test1() {
 String[] args = new String[] { --foo };
 Options options = new Options();
 options.addOption(f, foo, false, );
 options.getRequiredOptions().add(options.getOption(foo));
 GnuParser parser = new GnuParser();
 try {
 parser.parse(options, args);
 } catch (ParseException e) {
 // didn't expect to get MissingOptionException here
 System.out.println(ERROR:  + e.getMessage());
 }
 }
 private static void test2() {
 String[] args = new String[] { };
 Options options = new Options();
 options.addOption(f, foo, false, );
 options.getOption(f).setRequired(true);
 GnuParser parser = new GnuParser();
 try {
 parser.parse(options, args);
 } catch (ParseException e) {
 // expected to get MissingOptionException here
 System.out.println(ERROR:  + e.getMessage());
 }
 }
 }
 {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


[jira] [Commented] (CLI-230) Unable to properly require options

2013-02-11 Thread Thomas Neidhart (JIRA)

[ 
https://issues.apache.org/jira/browse/CLI-230?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13576032#comment-13576032
 ] 

Thomas Neidhart commented on CLI-230:
-

Ok good, it is advised to ask questions first on the user mailinglist 
(u...@commons.apache.org) with the prefix [cli].

The warnings you get when using the OptionBuilder are due to the fact that all 
methods there are static. The 1.3 release will provide a different way to build 
options using a Builder class in the Option class itself.

The problem with the required options list will need a fix though to prevent 
such mistakes.

 Unable to properly require options
 --

 Key: CLI-230
 URL: https://issues.apache.org/jira/browse/CLI-230
 Project: Commons CLI
  Issue Type: Bug
  Components: CLI-1.x, Options definition
Affects Versions: 1.2
 Environment: windows jdk1.6.0_21
Reporter: Alexander Fast

 Having some problems setting options as required. Have I misunderstood the 
 documentation?
  * In test1() the option is required but also supplied, I expect to get no 
 exceptions.
  * In test2() the option is required but *not* supplied, I expect to get an 
 exception.
 {code:java}
 public class Testing {
 public static void main(String[] args) {
 System.out.println(Begin test 1);
 test1();
 System.out.println(End test 1);
 System.out.println(Begin test 2);
 test2();
 System.out.println(End test 2);
 }
 private static void test1() {
 String[] args = new String[] { --foo };
 Options options = new Options();
 options.addOption(f, foo, false, );
 options.getRequiredOptions().add(options.getOption(foo));
 GnuParser parser = new GnuParser();
 try {
 parser.parse(options, args);
 } catch (ParseException e) {
 // didn't expect to get MissingOptionException here
 System.out.println(ERROR:  + e.getMessage());
 }
 }
 private static void test2() {
 String[] args = new String[] { };
 Options options = new Options();
 options.addOption(f, foo, false, );
 options.getOption(f).setRequired(true);
 GnuParser parser = new GnuParser();
 try {
 parser.parse(options, args);
 } catch (ParseException e) {
 // expected to get MissingOptionException here
 System.out.println(ERROR:  + e.getMessage());
 }
 }
 }
 {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira