summaryrefslogtreecommitdiffstats
path: root/sonar-batch
diff options
context:
space:
mode:
authorEvgeny Mandrikov <mandrikov@gmail.com>2011-02-04 12:46:52 +0300
committerEvgeny Mandrikov <mandrikov@gmail.com>2011-02-04 16:01:42 +0300
commit4483cea3a0a84beb648b946cfd658ae256b5a1ab (patch)
treece92a9aabdc93afd67c7df1da949a10321afcef3 /sonar-batch
parent9b57d0b379935e053ef050b0379c65fc32810bc1 (diff)
downloadsonarqube-4483cea3a0a84beb648b946cfd658ae256b5a1ab.tar.gz
sonarqube-4483cea3a0a84beb648b946cfd658ae256b5a1ab.zip
SONAR-2169: Add CoverageExtension to API
Diffstat (limited to 'sonar-batch')
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchPluginRepository.java22
-rw-r--r--sonar-batch/src/test/java/org/sonar/batch/bootstrap/BatchPluginRepositoryTest.java6
2 files changed, 16 insertions, 12 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchPluginRepository.java b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchPluginRepository.java
index 166211ae755..af4d177edb3 100644
--- a/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchPluginRepository.java
+++ b/sonar-batch/src/main/java/org/sonar/batch/bootstrap/BatchPluginRepository.java
@@ -19,6 +19,11 @@
*/
package org.sonar.batch.bootstrap;
+import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.List;
+
import com.google.common.collect.Lists;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.lang.ArrayUtils;
@@ -30,6 +35,7 @@ import org.slf4j.LoggerFactory;
import org.sonar.api.BatchExtension;
import org.sonar.api.Plugin;
import org.sonar.api.batch.AbstractCoverageExtension;
+import org.sonar.api.batch.CoverageExtension;
import org.sonar.api.batch.SupportedEnvironment;
import org.sonar.api.platform.Environment;
import org.sonar.api.resources.Java;
@@ -42,11 +48,6 @@ import org.sonar.core.plugin.JpaPlugin;
import org.sonar.core.plugin.JpaPluginDao;
import org.sonar.core.plugin.JpaPluginFile;
-import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.List;
-
public class BatchPluginRepository extends AbstractPluginRepository {
private static final Logger LOG = LoggerFactory.getLogger(BatchPluginRepository.class);
@@ -116,7 +117,7 @@ public class BatchPluginRepository extends AbstractPluginRepository {
ok = false;
LOG.debug("The following extension is ignored: " + extension + " due to execution environment.");
}
- if (ok && isType(extension, AbstractCoverageExtension.class)) {
+ if (ok && isType(extension, CoverageExtension.class)) {
ok = shouldRegisterCoverageExtension(pluginKey, container.getComponent(Project.class), container.getComponent(Configuration.class));
if (!ok) {
LOG.debug("The following extension is ignored: " + extension + ". See the parameter " + AbstractCoverageExtension.PARAM_PLUGIN);
@@ -140,14 +141,17 @@ public class BatchPluginRepository extends AbstractPluginRepository {
}
boolean shouldRegisterCoverageExtension(String pluginKey, Project project, Configuration conf) {
- boolean ok = true;
+ if (!project.getAnalysisType().isDynamic(true)) {
+ // not dynamic and not reuse reports
+ return false;
+ }
if (StringUtils.equals(project.getLanguageKey(), Java.KEY)) {
String[] selectedPluginKeys = conf.getStringArray(AbstractCoverageExtension.PARAM_PLUGIN);
if (ArrayUtils.isEmpty(selectedPluginKeys)) {
selectedPluginKeys = new String[] { AbstractCoverageExtension.DEFAULT_PLUGIN };
}
- ok = ArrayUtils.contains(selectedPluginKeys, pluginKey);
+ return ArrayUtils.contains(selectedPluginKeys, pluginKey);
}
- return ok;
+ return true;
}
}
diff --git a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/BatchPluginRepositoryTest.java b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/BatchPluginRepositoryTest.java
index 5ee91abceaf..f134ad425c6 100644
--- a/sonar-batch/src/test/java/org/sonar/batch/bootstrap/BatchPluginRepositoryTest.java
+++ b/sonar-batch/src/test/java/org/sonar/batch/bootstrap/BatchPluginRepositoryTest.java
@@ -31,8 +31,8 @@ import org.sonar.api.ServerExtension;
import org.sonar.api.batch.AbstractCoverageExtension;
import org.sonar.api.resources.Java;
import org.sonar.api.resources.Project;
+import org.sonar.api.resources.Project.AnalysisType;
import org.sonar.api.utils.IocContainer;
-import org.sonar.batch.bootstrap.BatchPluginRepository;
public class BatchPluginRepositoryTest {
@@ -83,11 +83,11 @@ public class BatchPluginRepositoryTest {
}
private static Project newJavaProject() {
- return new Project("foo").setLanguageKey(Java.KEY);
+ return new Project("foo").setLanguageKey(Java.KEY).setAnalysisType(AnalysisType.DYNAMIC);
}
private static Project newGroovyProject() {
- return new Project("foo").setLanguageKey("grvy");
+ return new Project("foo").setLanguageKey("grvy").setAnalysisType(AnalysisType.DYNAMIC);
}
public static class FakeBatchExtension implements BatchExtension {