aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-batch
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@gmail.com>2013-02-13 15:33:43 +0100
committerSimon Brandhof <simon.brandhof@gmail.com>2013-02-13 15:36:04 +0100
commitb6e7cc0ac63191ebcd85a3ef77fb18c224280195 (patch)
tree14b7f1703aa64bfa061a8fa3e91ed7bdecdcd85f /sonar-batch
parent34205904ad43efbe4b7270174d4d743fb8442944 (diff)
downloadsonarqube-b6e7cc0ac63191ebcd85a3ef77fb18c224280195.tar.gz
sonarqube-b6e7cc0ac63191ebcd85a3ef77fb18c224280195.zip
Fix loading of source encoding from Maven POM
Diffstat (limited to 'sonar-batch')
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/MavenProjectConverter.java21
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/DefaultModuleFileSystem.java3
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/DeprecatedFileSystemAdapter.java4
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/AbstractMavenPluginExecutorTest.java2
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/DefaultModuleFileSystemTest.java3
5 files changed, 25 insertions, 8 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/MavenProjectConverter.java b/sonar-batch/src/main/java/org/sonar/batch/MavenProjectConverter.java
index 7aecc6d72d3..eb9da9cd895 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/MavenProjectConverter.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/MavenProjectConverter.java
@@ -29,8 +29,10 @@ import org.apache.maven.model.Scm;
import org.apache.maven.project.MavenProject;
import org.sonar.api.CoreProperties;
import org.sonar.api.batch.bootstrap.ProjectDefinition;
+import org.sonar.api.batch.maven.MavenUtils;
import org.sonar.api.utils.SonarException;
import org.sonar.batch.scan.filesystem.DefaultModuleFileSystem;
+import org.sonar.java.api.JavaUtils;
import java.io.File;
import java.io.IOException;
@@ -114,10 +116,24 @@ public final class MavenProjectConverter {
.setDescription(pom.getDescription())
.addContainerExtension(pom);
- convertMavenLinksToProperties(definition, pom);
+ // See http://jira.codehaus.org/browse/SONAR-2148
+ // Get Java source and target versions from maven-compiler-plugin.
+ String version = MavenUtils.getJavaSourceVersion(pom);
+ if (version != null) {
+ definition.setProperty(JavaUtils.JAVA_SOURCE_PROPERTY, version);
+ }
+ version = MavenUtils.getJavaVersion(pom);
+ if (version != null) {
+ definition.setProperty(JavaUtils.JAVA_TARGET_PROPERTY, version);
+ }
+ //See http://jira.codehaus.org/browse/SONAR-2151
+ String encoding = MavenUtils.getSourceEncoding(pom);
+ if (encoding != null) {
+ definition.setProperty(CoreProperties.ENCODING_PROPERTY, encoding);
+ }
+ convertMavenLinksToProperties(definition, pom);
synchronizeFileSystem(pom, definition);
-
return definition;
}
@@ -171,7 +187,6 @@ public final class MavenProjectConverter {
public static void synchronizeFileSystem(MavenProject pom, DefaultModuleFileSystem into) {
into.resetDirs(
pom.getBasedir(),
- new File(resolvePath(pom.getBuild().getDirectory(), pom.getBasedir()), "sonar"),
resolvePath(pom.getBuild().getDirectory(), pom.getBasedir()),
resolvePaths((List<String>) pom.getCompileSourceRoots(), pom.getBasedir()),
resolvePaths((List<String>) pom.getTestCompileSourceRoots(), pom.getBasedir()),
diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/DefaultModuleFileSystem.java b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/DefaultModuleFileSystem.java
index 9b864e150de..0e9e7734a22 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/DefaultModuleFileSystem.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/DefaultModuleFileSystem.java
@@ -125,10 +125,9 @@ public class DefaultModuleFileSystem implements ModuleFileSystem {
/**
* Breaks immutability but it's required to allow Maven Plugins to be executed and to change project structure.
*/
- public void resetDirs(File basedir, File workDir, File buildDir, List<File> sourceDirs, List<File> testDirs, List<File> binaryDirs) {
+ public void resetDirs(File basedir, File buildDir, List<File> sourceDirs, List<File> testDirs, List<File> binaryDirs) {
Preconditions.checkNotNull(basedir, "Basedir can't be null");
this.baseDir = basedir;
- this.workingDir = workDir;
this.buildDir = buildDir;
this.sourceDirs = existingDirs(sourceDirs);
this.testDirs = existingDirs(testDirs);
diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/DeprecatedFileSystemAdapter.java b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/DeprecatedFileSystemAdapter.java
index 92a98988f5b..c9ec4802a85 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/DeprecatedFileSystemAdapter.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/DeprecatedFileSystemAdapter.java
@@ -65,6 +65,10 @@ public class DeprecatedFileSystemAdapter implements ProjectFileSystem {
this(target, project, null);
}
+ public void start() {
+ // used to avoid NPE in Project#getFileSystem()
+ }
+
public Charset getSourceCharset() {
return target.sourceCharset();
}
diff --git a/sonar-batch/src/test/java/org/sonar/batch/AbstractMavenPluginExecutorTest.java b/sonar-batch/src/test/java/org/sonar/batch/AbstractMavenPluginExecutorTest.java
index 982a31d7167..053f8b88e46 100644
--- a/sonar-batch/src/test/java/org/sonar/batch/AbstractMavenPluginExecutorTest.java
+++ b/sonar-batch/src/test/java/org/sonar/batch/AbstractMavenPluginExecutorTest.java
@@ -62,7 +62,7 @@ public class AbstractMavenPluginExecutorTest {
DefaultModuleFileSystem fs = mock(DefaultModuleFileSystem.class);
executor.execute(foo, fs, new AddSourceMavenPluginHandler());
- verify(fs).resetDirs(any(File.class), any(File.class), any(File.class), anyList(), anyList(), anyList());
+ verify(fs).resetDirs(any(File.class), any(File.class), anyList(), anyList(), anyList());
}
static class AddSourceMavenPluginHandler implements MavenPluginHandler {
diff --git a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/DefaultModuleFileSystemTest.java b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/DefaultModuleFileSystemTest.java
index 8646364216a..a16e895464a 100644
--- a/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/DefaultModuleFileSystemTest.java
+++ b/sonar-batch/src/test/java/org/sonar/batch/scan/filesystem/DefaultModuleFileSystemTest.java
@@ -202,11 +202,10 @@ public class DefaultModuleFileSystemTest {
File existingDir = temp.newFolder("new_folder");
File notExistingDir = new File(existingDir, "not_exist");
- fileSystem.resetDirs(existingDir, existingDir, existingDir,
+ fileSystem.resetDirs(existingDir, existingDir,
Arrays.asList(existingDir, notExistingDir), Arrays.asList(existingDir, notExistingDir), Arrays.asList(existingDir, notExistingDir));
assertThat(fileSystem.baseDir().getCanonicalPath()).isEqualTo(existingDir.getCanonicalPath());
- assertThat(fileSystem.workingDir().getCanonicalPath()).isEqualTo(existingDir.getCanonicalPath());
assertThat(fileSystem.buildDir().getCanonicalPath()).isEqualTo(existingDir.getCanonicalPath());
assertThat(fileSystem.sourceDirs()).hasSize(1);
assertThat(fileSystem.sourceDirs().get(0).getCanonicalPath()).isEqualTo(existingDir.getCanonicalPath());