]> source.dussan.org Git - sonarqube.git/commitdiff
Add property "sonar.projectLibraries"
authorEvgeny Mandrikov <mandrikov@gmail.com>
Tue, 1 Feb 2011 12:54:00 +0000 (15:54 +0300)
committerEvgeny Mandrikov <mandrikov@gmail.com>
Tue, 1 Feb 2011 12:54:00 +0000 (15:54 +0300)
sonar-batch/src/main/java/org/sonar/batch/InMemoryPomCreator.java
sonar-batch/src/test/java/org/sonar/batch/InMemoryPomCreatorTest.java

index 8e0ada5e60d5171a09d8dbde1040530bf0290fd2..04c6e32aa74f732728d98e99206894f26507ee47 100644 (file)
@@ -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<String> getCompileClasspathElements() throws DependencyResolutionRequiredException {
-        return Arrays.asList(binaries);
+        List<String> cp = new ArrayList<String>();
+        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);
index 260e6846d696097d6581e21b4722910f28303e3c..9893598add2b1a833184ed70c6eb5709a4c1621c 100644 (file)
@@ -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<String> 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() {