[
https://issues.apache.org/jira/browse/EXEC-36?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12662927#action_12662927
]
sgoeschl edited comment on EXEC-36 at 1/12/09 2:30 AM:
----------------------------------------------------------------
Here is your re-formatted snippet
{noformat}
@Test
public void shouldHandleTheDoubelQuote() throws Exception
{
String commandline = "./script/jrake cruise:publish_installers "
+ "INSTALLER_VERSION=unstable_2_1 "
+ "INSTALLER_PATH=\"/var/lib/ cruise-agent/installers\" "
+ "INSTALLER_DOWNLOAD_SERVER='something'"
+ "WITHOUT_HELP_DOC=true";
CommandLine line = CommandLine.parse(commandline);
String[] args = line.getArguments();
assertThat(args[0], is("cruise:publish_installers"));
assertThat(args[1], is("INSTALLER_VERSION=unstable_2_1"));
assertThat(args[2], is("INSTALLER_PATH=\"/var/lib/
cruise-agent/installers\""));
assertThat(args[3], is("INSTALLER_DOWNLOAD_SERVER='something'"));
assertThat(args[4], is("WITHOUT_HELP_DOC=true"));
}
{noformat}
Some quick notes
+) args[0] should be "./script/jrake" and not "cruise:publish_installers"
+) mixing and matching singe and double quotes using CommandLine.parse() is not
recommended (http://commons.apache.org/exec/faq.html)
+) I will add a test case to see how to generate a valid command line in your
case
was (Author: sgoeschl):
Here is your re-formatted snippet
@Test
public void shouldHandleTheDoubelQuote() throws Exception
{
String commandline = "./script/jrake cruise:publish_installers "
+ "INSTALLER_VERSION=unstable_2_1 "
+ "INSTALLER_PATH=\"/var/lib/ cruise-agent/installers\" "
+ "INSTALLER_DOWNLOAD_SERVER='something'"
+ "WITHOUT_HELP_DOC=true";
CommandLine line = CommandLine.parse(commandline);
String[] args = line.getArguments();
assertThat(args[0], is("cruise:publish_installers"));
assertThat(args[1], is("INSTALLER_VERSION=unstable_2_1"));
assertThat(args[2], is("INSTALLER_PATH=\"/var/lib/
cruise-agent/installers\""));
assertThat(args[3], is("INSTALLER_DOWNLOAD_SERVER='something'"));
assertThat(args[4], is("WITHOUT_HELP_DOC=true"));
}
Some quick notes
+) args[0] should be "./script/jrake" and not "cruise:publish_installers"
+) mixing and matching singe and double quotes using CommandLine.parse() is not
recommended (http://commons.apache.org/exec/faq.html)
+) I will add a test case to see how to generate a valid command line in your
case
> CommandLine does not work with double quote or single quote correctly
> ---------------------------------------------------------------------
>
> Key: EXEC-36
> URL: https://issues.apache.org/jira/browse/EXEC-36
> Project: Commons Exec
> Issue Type: Bug
> Affects Versions: 1.0
> Environment: Ubuntu 704, JDK1.6
> Reporter: Kai Hu
> Assignee: Siegfried Goeschl
> Priority: Critical
>
> Please review and run the following junit test, either apache ant or apache
> exec does not handle the qoute in the arguments correctly.
> @Test
> public void shouldHandleTheDoubelQuote() throws Exception {
> String commandline = "./script/jrake cruise:publish_installers "
> + "INSTALLER_VERSION=unstable_2_1 "
> + "INSTALLER_PATH=\"/var/lib/ cruise-agent/installers\" "
> + "INSTALLER_DOWNLOAD_SERVER='something'"
> + "WITHOUT_HELP_DOC=true";
> CommandLine line = CommandLine.parse(commandline);
> String[] args = line.getArguments();
> assertThat(args[0], is("cruise:publish_installers"));
> assertThat(args[1], is("INSTALLER_VERSION=unstable_2_1"));
> assertThat(args[2], is("INSTALLER_PATH=\"/var/lib/
> cruise-agent/installers\""));
> assertThat(args[3], is("INSTALLER_DOWNLOAD_SERVER='something'"));
> assertThat(args[4], is("WITHOUT_HELP_DOC=true"));
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.