summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien HENRY <julien.henry@sonarsource.com>2015-09-28 16:04:44 +0200
committerJulien HENRY <julien.henry@sonarsource.com>2015-09-28 16:13:48 +0200
commit8865c467f7686cc52938b361fcd738a48cab654b (patch)
tree9e69e7a1e99672bfebce437880aaf9d5c3d88fc8
parentd5bbf2ddad26c751030d20074ce63912ae36319b (diff)
downloadsonar-scanner-cli-8865c467f7686cc52938b361fcd738a48cab654b.tar.gz
sonar-scanner-cli-8865c467f7686cc52938b361fcd738a48cab654b.zip
SONARUNNER-131 Don't fail with empty modules
-rw-r--r--sonar-runner-cli/src/main/java/org/sonar/runner/cli/Conf.java15
-rw-r--r--sonar-runner-cli/src/test/java/org/sonar/runner/cli/ConfTest.java23
-rw-r--r--sonar-runner-cli/src/test/resources/org/sonar/runner/ConfTest/emptyModules/project/sonar-project.properties1
3 files changed, 32 insertions, 7 deletions
diff --git a/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Conf.java b/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Conf.java
index ac7248f..be94193 100644
--- a/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Conf.java
+++ b/sonar-runner-cli/src/main/java/org/sonar/runner/cli/Conf.java
@@ -24,6 +24,8 @@ import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Properties;
@@ -257,11 +259,18 @@ class Conf {
*
*/
static String[] getListFromProperty(Properties properties, String key) {
- String value = properties.getProperty(key, "");
+ String value = properties.getProperty(key, "").trim();
+ if (value.isEmpty()) {
+ return new String[0];
+ }
String[] values = value.split(",");
+ List<String> trimmedValues = new ArrayList<>();
for (int i = 0; i < values.length; i++) {
- values[i] = values[i].trim();
+ String trimmedValue = values[i].trim();
+ if (!trimmedValue.isEmpty()) {
+ trimmedValues.add(trimmedValue);
+ }
}
- return values;
+ return trimmedValues.toArray(new String[trimmedValues.size()]);
}
}
diff --git a/sonar-runner-cli/src/test/java/org/sonar/runner/cli/ConfTest.java b/sonar-runner-cli/src/test/java/org/sonar/runner/cli/ConfTest.java
index 4c9d775..50a53e5 100644
--- a/sonar-runner-cli/src/test/java/org/sonar/runner/cli/ConfTest.java
+++ b/sonar-runner-cli/src/test/java/org/sonar/runner/cli/ConfTest.java
@@ -19,14 +19,12 @@
*/
package org.sonar.runner.cli;
+import java.io.File;
+import java.util.Properties;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
-import org.sonar.runner.cli.Cli;
-import org.sonar.runner.cli.Conf;
-import java.io.File;
-import java.util.Properties;
import static org.fest.assertions.Assertions.assertThat;
import static org.mockito.Mockito.mock;
@@ -134,4 +132,21 @@ public class ConfTest {
assertThat(properties.getProperty("module2.sonar.projectName")).isEqualTo("Module 2");
}
+ @Test
+ public void ignoreEmptyModule() throws Exception {
+ File projectHome = new File(getClass().getResource("/org/sonar/runner/ConfTest/emptyModules/project").toURI());
+ args.setProperty("project.home", temp.newFolder().getCanonicalPath());
+ args.setProperty("sonar.projectBaseDir", projectHome.getCanonicalPath());
+
+ conf.properties();
+ }
+
+ @Test
+ public void shouldGetList() {
+ Properties props = new Properties();
+
+ props.put("prop", " foo ,, bar , \n\ntoto,tutu");
+ assertThat(Conf.getListFromProperty(props, "prop")).containsOnly("foo", "bar", "toto", "tutu");
+ }
+
}
diff --git a/sonar-runner-cli/src/test/resources/org/sonar/runner/ConfTest/emptyModules/project/sonar-project.properties b/sonar-runner-cli/src/test/resources/org/sonar/runner/ConfTest/emptyModules/project/sonar-project.properties
new file mode 100644
index 0000000..708db4c
--- /dev/null
+++ b/sonar-runner-cli/src/test/resources/org/sonar/runner/ConfTest/emptyModules/project/sonar-project.properties
@@ -0,0 +1 @@
+sonar.modules=