diff options
author | Evgeny Mandrikov <mandrikov@gmail.com> | 2011-02-04 12:46:52 +0300 |
---|---|---|
committer | Evgeny Mandrikov <mandrikov@gmail.com> | 2011-02-04 16:01:42 +0300 |
commit | 4483cea3a0a84beb648b946cfd658ae256b5a1ab (patch) | |
tree | ce92a9aabdc93afd67c7df1da949a10321afcef3 /sonar-batch | |
parent | 9b57d0b379935e053ef050b0379c65fc32810bc1 (diff) | |
download | sonarqube-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.java | 22 | ||||
-rw-r--r-- | sonar-batch/src/test/java/org/sonar/batch/bootstrap/BatchPluginRepositoryTest.java | 6 |
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 { |