aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEvgeny Mandrikov <mandrikov@gmail.com>2011-12-15 07:11:55 +0000
committerEvgeny Mandrikov <mandrikov@gmail.com>2011-12-15 07:11:55 +0000
commit0a71a3dbc595eb6f43018f60daa76aa14ed54db8 (patch)
treefce7892265f010e08b405aa91f343e19ff54dcc1 /src
parentad6b266156b136c7df2a2724af059f76ec6346c4 (diff)
downloadsonar-scanner-cli-0a71a3dbc595eb6f43018f60daa76aa14ed54db8.tar.gz
sonar-scanner-cli-0a71a3dbc595eb6f43018f60daa76aa14ed54db8.zip
SONARPLUGINS-1372 Allow definitions of properties without white space
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/sonar/runner/Main.java27
-rw-r--r--src/test/java/org/sonar/runner/MainTest.java17
2 files changed, 26 insertions, 18 deletions
diff --git a/src/main/java/org/sonar/runner/Main.java b/src/main/java/org/sonar/runner/Main.java
index 722c954..89157cc 100644
--- a/src/main/java/org/sonar/runner/Main.java
+++ b/src/main/java/org/sonar/runner/Main.java
@@ -133,16 +133,10 @@ public final class Main {
printError("Missing argument for option --define");
}
arg = args[i];
- final String key, value;
- int j = arg.indexOf('=');
- if (j == -1) {
- key = arg;
- value = "true";
- } else {
- key = arg.substring(0, j);
- value = arg.substring(j + 1);
- }
- props.setProperty(key, value);
+ parseProperty(arg, props);
+ } else if (arg.startsWith("-D")) {
+ arg = arg.substring(2);
+ parseProperty(arg, props);
} else {
printError("Unrecognized option: " + arg);
}
@@ -150,6 +144,19 @@ public final class Main {
return props;
}
+ private static void parseProperty(String arg, Properties props) {
+ final String key, value;
+ int j = arg.indexOf('=');
+ if (j == -1) {
+ key = arg;
+ value = "true";
+ } else {
+ key = arg.substring(0, j);
+ value = arg.substring(j + 1);
+ }
+ props.setProperty(key, value);
+ }
+
private static void printUsage() {
log("");
log("usage: sonar-runner [options]");
diff --git a/src/test/java/org/sonar/runner/MainTest.java b/src/test/java/org/sonar/runner/MainTest.java
index aa4bf1d..01aab24 100644
--- a/src/test/java/org/sonar/runner/MainTest.java
+++ b/src/test/java/org/sonar/runner/MainTest.java
@@ -33,27 +33,28 @@ public class MainTest {
@Test
public void shouldParseEmptyArguments() {
- Properties props = Main.parseArguments(new String[]{});
+ Properties props = Main.parseArguments(new String[] {});
assertThat(props.isEmpty(), is(true));
}
@Test
public void shouldParseArguments() {
- Properties props = Main.parseArguments(new String[]{"-D", "foo=bar", "--define", "hello=world"});
- assertThat(props.size(), is(2));
+ Properties props = Main.parseArguments(new String[] { "-D", "foo=bar", "--define", "hello=world", "-Dboolean" });
+ assertThat(props.size(), is(3));
assertThat(props.getProperty("foo"), is("bar"));
assertThat(props.getProperty("hello"), is("world"));
+ assertThat(props.getProperty("boolean"), is("true"));
}
@Test
public void shouldEnableDebugMode() {
- Properties props = Main.parseArguments(new String[]{"-X"});
+ Properties props = Main.parseArguments(new String[] { "-X" });
assertThat(props.getProperty(Runner.VERBOSE), is("true"));
}
@Test
public void shouldDisableDebugModeByDefault() {
- Properties props = Main.parseArguments(new String[]{});
+ Properties props = Main.parseArguments(new String[] {});
assertThat(props.getProperty(Runner.VERBOSE), nullValue());
}
@@ -90,9 +91,9 @@ public class MainTest {
public void shouldLoadCompleteConfiguration() throws Exception {
File runnerHome = new File(getClass().getResource("/org/sonar/runner/MainTest/shouldLoadCompleteConfiguration/runner").toURI());
File projectHome = new File(getClass().getResource("/org/sonar/runner/MainTest/shouldLoadCompleteConfiguration/project").toURI());
- Properties props = Main.loadProperties(new String[]{
- "-D", "runner.home=" + runnerHome.getCanonicalPath(),
- "-D", "project.home=" + projectHome.getCanonicalPath()
+ Properties props = Main.loadProperties(new String[] {
+ "-D", "runner.home=" + runnerHome.getCanonicalPath(),
+ "-D", "project.home=" + projectHome.getCanonicalPath()
});
assertThat(props.getProperty("project.prop"), is("foo"));