]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-2879 Trim paths (sources, tests, binaries, libraries) before usage
authorEvgeny Mandrikov <mandrikov@gmail.com>
Mon, 24 Oct 2011 20:24:26 +0000 (00:24 +0400)
committerEvgeny Mandrikov <mandrikov@gmail.com>
Mon, 24 Oct 2011 21:03:06 +0000 (01:03 +0400)
sonar-plugin-api/src/main/java/org/sonar/api/batch/bootstrap/ProjectDefinition.java
sonar-plugin-api/src/test/java/org/sonar/api/batch/bootstrap/ProjectDefinitionTest.java

index fa71a80ab73e3a6a169386f9141094dbac511a36..cccd3b62c508e8bba51da5efb2347174e2d6450e 100644 (file)
@@ -157,7 +157,7 @@ public final class ProjectDefinition implements BatchComponent {
 
   public List<String> getSourceDirs() {
     String sources = properties.getProperty(SOURCE_DIRS_PROPERTY, "");
-    return Arrays.asList(StringUtils.split(sources, SEPARATOR));
+    return trim(StringUtils.split(sources, SEPARATOR));
   }
 
   /**
@@ -219,12 +219,12 @@ public final class ProjectDefinition implements BatchComponent {
 
   public List<String> getSourceFiles() {
     String sources = properties.getProperty(SOURCE_FILES_PROPERTY, "");
-    return Arrays.asList(StringUtils.split(sources, SEPARATOR));
+    return trim(StringUtils.split(sources, SEPARATOR));
   }
 
   public List<String> getTestDirs() {
     String sources = properties.getProperty(TEST_DIRS_PROPERTY, "");
-    return Arrays.asList(StringUtils.split(sources, SEPARATOR));
+    return trim(StringUtils.split(sources, SEPARATOR));
   }
 
   /**
@@ -286,12 +286,12 @@ public final class ProjectDefinition implements BatchComponent {
 
   public List<String> getTestFiles() {
     String sources = properties.getProperty(TEST_FILES_PROPERTY, "");
-    return Arrays.asList(StringUtils.split(sources, SEPARATOR));
+    return trim(StringUtils.split(sources, SEPARATOR));
   }
 
   public List<String> getBinaries() {
     String sources = properties.getProperty(BINARIES_PROPERTY, "");
-    return Arrays.asList(StringUtils.split(sources, SEPARATOR));
+    return trim(StringUtils.split(sources, SEPARATOR));
   }
 
   /**
@@ -310,7 +310,7 @@ public final class ProjectDefinition implements BatchComponent {
 
   public List<String> getLibraries() {
     String sources = properties.getProperty(LIBRARIES_PROPERTY, "");
-    return Arrays.asList(StringUtils.split(sources, SEPARATOR));
+    return trim(StringUtils.split(sources, SEPARATOR));
   }
 
   /**
@@ -361,4 +361,12 @@ public final class ProjectDefinition implements BatchComponent {
   public List<ProjectDefinition> getSubProjects() {
     return subProjects;
   }
+
+  private static List<String> trim(String[] strings) {
+    List<String> result = Lists.newArrayList();
+    for (String s : strings) {
+      result.add(StringUtils.trim(s));
+    }
+    return result;
+  }
 }
index 6c3d59a9452dd5f0b05b98a6aadc407fda407ff2..d62fd9268c900003481c5d1c526e9fd3b3f992db 100644 (file)
@@ -95,6 +95,23 @@ public class ProjectDefinitionTest {
     assertThat(def.getLibraries().size(), is(0));
   }
 
+  /**
+   * See SONAR-2879
+   */
+  @Test
+  public void shouldTrimPaths() {
+    ProjectDefinition def = ProjectDefinition.create();
+    def.setProperty(ProjectDefinition.SOURCE_DIRS_PROPERTY, "src1, src2 , with whitespace");
+    def.setProperty(ProjectDefinition.TEST_DIRS_PROPERTY, "test1, test2 , with whitespace");
+    def.setProperty(ProjectDefinition.BINARIES_PROPERTY, "bin1, bin2 , with whitespace");
+    def.setProperty(ProjectDefinition.LIBRARIES_PROPERTY, "lib1, lib2 , with whitespace");
+
+    assertFiles(def.getSourceDirs(), "src1", "src2", "with whitespace");
+    assertFiles(def.getTestDirs(), "test1", "test2", "with whitespace");
+    assertFiles(def.getBinaries(), "bin1", "bin2", "with whitespace");
+    assertFiles(def.getLibraries(), "lib1", "lib2", "with whitespace");
+  }
+
   @Test
   public void shouldAddDirectoriesAsPath() {
     ProjectDefinition def = ProjectDefinition.create();
@@ -132,7 +149,6 @@ public class ProjectDefinitionTest {
 
     assertFiles(def.getSourceFiles(), "src/main/java/foo/Bar.java", "src/main/java/hello/World.java");
     assertFiles(def.getTestFiles(), "src/test/java/foo/BarTest.java", "src/test/java/hello/WorldTest.java");
-
   }
 
   @Test