From 1c9627f7a7b328eb38aa0094a4d2bf58512124ad Mon Sep 17 00:00:00 2001 From: Evgeny Mandrikov Date: Tue, 25 Oct 2011 00:24:26 +0400 Subject: [PATCH] SONAR-2879 Trim paths (sources, tests, binaries, libraries) before usage --- .../batch/bootstrap/ProjectDefinition.java | 20 +++++++++++++------ .../bootstrap/ProjectDefinitionTest.java | 18 ++++++++++++++++- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/batch/bootstrap/ProjectDefinition.java b/sonar-plugin-api/src/main/java/org/sonar/api/batch/bootstrap/ProjectDefinition.java index fa71a80ab73..cccd3b62c50 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/batch/bootstrap/ProjectDefinition.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/batch/bootstrap/ProjectDefinition.java @@ -157,7 +157,7 @@ public final class ProjectDefinition implements BatchComponent { public List 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 getSourceFiles() { String sources = properties.getProperty(SOURCE_FILES_PROPERTY, ""); - return Arrays.asList(StringUtils.split(sources, SEPARATOR)); + return trim(StringUtils.split(sources, SEPARATOR)); } public List 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 getTestFiles() { String sources = properties.getProperty(TEST_FILES_PROPERTY, ""); - return Arrays.asList(StringUtils.split(sources, SEPARATOR)); + return trim(StringUtils.split(sources, SEPARATOR)); } public List 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 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 getSubProjects() { return subProjects; } + + private static List trim(String[] strings) { + List result = Lists.newArrayList(); + for (String s : strings) { + result.add(StringUtils.trim(s)); + } + return result; + } } diff --git a/sonar-plugin-api/src/test/java/org/sonar/api/batch/bootstrap/ProjectDefinitionTest.java b/sonar-plugin-api/src/test/java/org/sonar/api/batch/bootstrap/ProjectDefinitionTest.java index 6c3d59a9452..d62fd9268c9 100644 --- a/sonar-plugin-api/src/test/java/org/sonar/api/batch/bootstrap/ProjectDefinitionTest.java +++ b/sonar-plugin-api/src/test/java/org/sonar/api/batch/bootstrap/ProjectDefinitionTest.java @@ -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 -- 2.39.5