You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by bu...@apache.org on 2015/07/21 16:46:00 UTC
svn commit: r1692135 - in /uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src:
main/java/org/apache/uima/ducc/cli/CliBase.java
main/java/org/apache/uima/ducc/cli/CommandLine.java
test/java/org/apache/uima/ducc/cli/test/TestCommandLine.java
Author: burn
Date: Tue Jul 21 14:46:00 2015
New Revision: 1692135
URL: http://svn.apache.org/r1692135
Log:
UIMA-4521 Don't reject option values that match option names. Include test code
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/CliBase.java
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/CommandLine.java
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/test/java/org/apache/uima/ducc/cli/test/TestCommandLine.java
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/CliBase.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/CliBase.java?rev=1692135&r1=1692134&r2=1692135&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/CliBase.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/CliBase.java Tue Jul 21 14:46:00 2015
@@ -553,10 +553,7 @@ public abstract class CliBase
public boolean setProperty(String key, String value)
{
- if ( key.startsWith("--") ) {
- key = key.substring(2);
- }
- if ( ! commandLine.isOption(key)) {
+ if ( ! commandLine.isOptionName(key)) {
return false;
}
cli_props.setProperty(key, value);
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/CommandLine.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/CommandLine.java?rev=1692135&r1=1692134&r2=1692135&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/CommandLine.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/CommandLine.java Tue Jul 21 14:46:00 2015
@@ -105,16 +105,33 @@ public class CommandLine
return contains(o); // does it have a value?
}
+ /**
+ * Checks if this is a command-line option, i.e. with -- or - prefix
+ *
+ * @param s This is the command-line token to test
+ * @return <b>true</b> if it is a valid option, <b>false</b> otherwise
+ */
public boolean isOption(String s)
{
- // is this string a legal option?
- // for use in parsing values that start with - or --
+ // Command-line options must have a -- or - prefix
if ( s.startsWith("--") ) s = s.substring(2);
else if ( s.startsWith("-") ) s = s.substring(1);
+ else return false;
return name_to_option.containsKey(s);
}
+ /**
+ * Checks if this is a valid option
+ *
+ * @param s This is the option to test
+ * @return <b>true</b> if it is a valid option, <b>false</b> otherwise
+ */
+ public boolean isOptionName(String s)
+ {
+ return name_to_option.containsKey(s);
+ }
+
public boolean isOption(IUiOption k)
{
// is this a legal option?
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/test/java/org/apache/uima/ducc/cli/test/TestCommandLine.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/test/java/org/apache/uima/ducc/cli/test/TestCommandLine.java?rev=1692135&r1=1692134&r2=1692135&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/test/java/org/apache/uima/ducc/cli/test/TestCommandLine.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/test/java/org/apache/uima/ducc/cli/test/TestCommandLine.java Tue Jul 21 14:46:00 2015
@@ -350,6 +350,7 @@ public class TestCommandLine
"MultipleOptionSets",
"HelpGeneration",
"MultiTokenValue",
+ "OptionAsArg",
};
}
@@ -824,6 +825,36 @@ public class TestCommandLine
}
+ public void testOptionAsArg(String testid)
+ {
+ //
+ // Specify an option value that also matches another option
+ // See Jira 4521
+ //
+ String[] args = {
+ "--scheduling_class" , "help",
+ "--help",
+ };
+ IUiOption[] opts = {
+ OptionSet1.Help,
+ OptionSet1.Debug,
+ OptionSet1.Autostart,
+ OptionSet1.SchedulingClass,
+ OptionSet1.WorkingDirectory,
+ };
+
+ CommandLine cl = new CommandLine(args, opts);
+
+ try {
+ cl.parse();
+ success(testid, "Command line:", cl.toString());
+ } catch (Exception e) {
+ fail(testid, "Parse with an arg matching an option failed.", e.getMessage());
+ }
+
+ }
+
+
public static void main(String[] args)
{
try {