From 608e72b03e61aadfe1b58817b3be6ad337617e3c Mon Sep 17 00:00:00 2001 From: Evgeny Mandrikov Date: Tue, 1 Feb 2011 15:54:00 +0300 Subject: [PATCH] Add property "sonar.projectLibraries" --- .../org/sonar/batch/InMemoryPomCreator.java | 22 +++++++++---------- .../sonar/batch/InMemoryPomCreatorTest.java | 12 ++++++---- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/sonar-batch/src/main/java/org/sonar/batch/InMemoryPomCreator.java b/sonar-batch/src/main/java/org/sonar/batch/InMemoryPomCreator.java index 8e0ada5e60d..04c6e32aa74 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/InMemoryPomCreator.java +++ b/sonar-batch/src/main/java/org/sonar/batch/InMemoryPomCreator.java @@ -28,10 +28,7 @@ import org.sonar.api.utils.SonarException; import org.sonar.batch.bootstrapper.ProjectDefinition; import java.io.File; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Properties; +import java.util.*; /** * This is a dirty hack for for non-Maven environments, @@ -46,8 +43,11 @@ public class InMemoryPomCreator { } public MavenProject create() { + File workDir = project.getWorkDir(); + String buildDirectory = workDir.getAbsolutePath() + "/target"; Properties properties = project.getProperties(); - final String[] binaries = StringUtils.split(properties.getProperty("sonar.projectBinaries", ""), ','); + final String binaries = properties.getProperty("sonar.projectBinaries", buildDirectory + "/classes"); + final String[] libraries = StringUtils.split(properties.getProperty("sonar.projectLibraries", ""), ','); final MavenProject pom = new MavenProject() { /** @@ -59,11 +59,14 @@ public class InMemoryPomCreator { }; /** - * This allows to specify project binaries. + * This allows to specify project classpath (binaries + libraries). */ @Override public List getCompileClasspathElements() throws DependencyResolutionRequiredException { - return Arrays.asList(binaries); + List cp = new ArrayList(); + cp.add(binaries); + cp.addAll(Arrays.asList(libraries)); + return cp; } }; @@ -81,11 +84,8 @@ public class InMemoryPomCreator { pom.setArtifacts(Collections.EMPTY_SET); // Configure fake directories - File workDir = project.getWorkDir(); - String buildDirectory = workDir.getAbsolutePath() + "/target"; pom.getBuild().setDirectory(buildDirectory); - String buildOutputDirectory = buildDirectory + "/classes"; - pom.getBuild().setOutputDirectory(buildOutputDirectory); + pom.getBuild().setOutputDirectory(binaries); Reporting reporting = new Reporting(); String reportingOutputDirectory = buildDirectory + "/site"; reporting.setOutputDirectory(reportingOutputDirectory); diff --git a/sonar-batch/src/test/java/org/sonar/batch/InMemoryPomCreatorTest.java b/sonar-batch/src/test/java/org/sonar/batch/InMemoryPomCreatorTest.java index 260e6846d69..9893598add2 100644 --- a/sonar-batch/src/test/java/org/sonar/batch/InMemoryPomCreatorTest.java +++ b/sonar-batch/src/test/java/org/sonar/batch/InMemoryPomCreatorTest.java @@ -27,6 +27,7 @@ import org.sonar.api.utils.SonarException; import org.sonar.batch.bootstrapper.ProjectDefinition; import java.io.File; +import java.util.List; import java.util.Properties; import static org.hamcrest.Matchers.is; @@ -96,12 +97,15 @@ public class InMemoryPomCreatorTest { @Test public void classpath() throws Exception { createRequiredProperties(); - properties.setProperty("sonar.projectBinaries", "junit.jar"); + properties.setProperty("sonar.projectBinaries", "/classes"); + properties.setProperty("sonar.projectLibraries", "junit.jar"); MavenProject pom = create(); - assertThat(pom.getCompileClasspathElements().size(), is(1)); - assertThat((String) pom.getCompileClasspathElements().get(0), is("junit.jar")); + List cp = pom.getCompileClasspathElements(); + assertThat(cp.size(), is(2)); + assertThat(cp.get(0), is("/classes")); + assertThat(cp.get(1), is("junit.jar")); } @Test @@ -109,7 +113,7 @@ public class InMemoryPomCreatorTest { createRequiredProperties(); MavenProject pom = create(); - assertThat(pom.getCompileClasspathElements().size(), is(0)); + assertThat(pom.getCompileClasspathElements().size(), is(1)); } private void createRequiredProperties() { -- 2.39.5