diff options
author | Evgeny Mandrikov <mandrikov@gmail.com> | 2011-02-07 14:58:10 +0300 |
---|---|---|
committer | Evgeny Mandrikov <mandrikov@gmail.com> | 2011-02-07 15:34:28 +0300 |
commit | c1904d3f5fd44873a8ef2b6d097d4bcb731b92a7 (patch) | |
tree | 437ead6f8f9b0cfd42e83d5236f8ccb3b60c8f31 /plugins/sonar-core-plugin | |
parent | bbfce797275cf13e8c7a0e43aa29406175c89bfc (diff) | |
download | sonarqube-c1904d3f5fd44873a8ef2b6d097d4bcb731b92a7.tar.gz sonarqube-c1904d3f5fd44873a8ef2b6d097d4bcb731b92a7.zip |
Add MavenInitializer
* Configures Java versions and encoding of sources based on Maven POM
Diffstat (limited to 'plugins/sonar-core-plugin')
-rw-r--r-- | plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java | 4 | ||||
-rw-r--r-- | plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/batch/MavenInitializer.java | 65 |
2 files changed, 69 insertions, 0 deletions
diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java index c56ab2192ef..18113235d1d 100644 --- a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java +++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/CorePlugin.java @@ -26,6 +26,7 @@ import org.sonar.api.Properties; import org.sonar.api.Property; import org.sonar.api.checks.NoSonarFilter; import org.sonar.api.resources.Java; +import org.sonar.plugins.core.batch.MavenInitializer; import org.sonar.plugins.core.batch.ExcludedResourceFilter; import org.sonar.plugins.core.charts.DistributionAreaChart; import org.sonar.plugins.core.charts.DistributionBarChart; @@ -171,6 +172,9 @@ public class CorePlugin implements Plugin { public List getExtensions() { List extensions = Lists.newLinkedList(); + // maven + extensions.add(MavenInitializer.class); + // languages extensions.add(Java.class); diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/batch/MavenInitializer.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/batch/MavenInitializer.java new file mode 100644 index 00000000000..a76799deba1 --- /dev/null +++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/batch/MavenInitializer.java @@ -0,0 +1,65 @@ +/* + * Sonar, open source software quality management tool. + * Copyright (C) 2008-2011 SonarSource + * mailto:contact AT sonarsource DOT com + * + * Sonar is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * Sonar is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with Sonar; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02 + */ +package org.sonar.plugins.core.batch; + +import org.apache.commons.configuration.Configuration; +import org.apache.commons.lang.StringUtils; +import org.apache.maven.project.MavenProject; +import org.sonar.api.CoreProperties; +import org.sonar.api.batch.Initializer; +import org.sonar.api.batch.SupportedEnvironment; +import org.sonar.api.batch.maven.MavenUtils; +import org.sonar.api.resources.Project; +import org.sonar.api.utils.Logs; +import org.sonar.java.api.JavaUtils; + +@SupportedEnvironment("maven") +public class MavenInitializer extends Initializer { + + @Override + public void execute(Project project) { + MavenProject pom = project.getPom(); + Configuration conf = project.getConfiguration(); + /* + * See http://jira.codehaus.org/browse/SONAR-2148 + * Get Java source and target versions from maven-compiler-plugin. + */ + if (StringUtils.isBlank(conf.getString(JavaUtils.JAVA_SOURCE_PROPERTY))) { + String version = MavenUtils.getJavaSourceVersion(pom); + conf.setProperty(JavaUtils.JAVA_SOURCE_PROPERTY, version); + Logs.INFO.info("Java source version: {}", version); + } + if (StringUtils.isBlank(conf.getString(JavaUtils.JAVA_TARGET_PROPERTY))) { + String version = MavenUtils.getJavaVersion(pom); + conf.setProperty(JavaUtils.JAVA_TARGET_PROPERTY, version); + Logs.INFO.info("Java target version: {}", version); + } + /* + * See http://jira.codehaus.org/browse/SONAR-2151 + * Get source encoding from POM + */ + if (StringUtils.isBlank(conf.getString(CoreProperties.ENCODING_PROPERTY))) { + String encoding = MavenUtils.getSourceEncoding(pom); + conf.setProperty(CoreProperties.ENCODING_PROPERTY, encoding); + Logs.INFO.info("Source encoding: {}", encoding); + } + } + +} |