diff options
author | Julien HENRY <julien.henry@sonarsource.com> | 2014-06-18 11:41:59 +0200 |
---|---|---|
committer | Julien HENRY <julien.henry@sonarsource.com> | 2014-06-18 16:26:00 +0200 |
commit | 1e39cf737eed643f1aaed340fce5696eb760a7d8 (patch) | |
tree | f5f3763d04d45f3b0708c935a92b9c0cdd025167 /sonar-batch/src/main/java/org/sonar/batch/scan | |
parent | f3ce69889f1a33e07d81ba20e052eebe599a03bc (diff) | |
download | sonarqube-1e39cf737eed643f1aaed340fce5696eb760a7d8.tar.gz sonarqube-1e39cf737eed643f1aaed340fce5696eb760a7d8.zip |
SONAR-5389 Drop batch-api module
Diffstat (limited to 'sonar-batch/src/main/java/org/sonar/batch/scan')
7 files changed, 50 insertions, 34 deletions
diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/AnalyzerContextAdaptor.java b/sonar-batch/src/main/java/org/sonar/batch/scan/AnalyzerContextAdaptor.java index a3f125d9c4f..97bf89d1aa9 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/scan/AnalyzerContextAdaptor.java +++ b/sonar-batch/src/main/java/org/sonar/batch/scan/AnalyzerContextAdaptor.java @@ -20,7 +20,13 @@ package org.sonar.batch.scan; import org.sonar.api.batch.SensorContext; +import org.sonar.api.batch.analyzer.AnalyzerContext; +import org.sonar.api.batch.analyzer.issue.AnalyzerIssue; +import org.sonar.api.batch.analyzer.measure.AnalyzerMeasure; +import org.sonar.api.batch.analyzer.measure.AnalyzerMeasureBuilder; +import org.sonar.api.batch.analyzer.measure.internal.DefaultAnalyzerMeasureBuilder; import org.sonar.api.batch.fs.InputFile; +import org.sonar.api.batch.measures.Metric; import org.sonar.api.component.ResourcePerspectives; import org.sonar.api.issue.Issuable; import org.sonar.api.measures.Measure; @@ -29,10 +35,6 @@ import org.sonar.api.resources.File; import org.sonar.api.resources.Project; import org.sonar.api.resources.Resource; import org.sonar.api.rule.RuleKey; -import org.sonar.batch.api.analyzer.AnalyzerContext; -import org.sonar.batch.api.analyzer.issue.AnalyzerIssue; -import org.sonar.batch.api.analyzer.measure.AnalyzerMeasure; -import org.sonar.batch.api.measures.Metric; import java.io.Serializable; import java.util.Collection; @@ -52,6 +54,11 @@ public class AnalyzerContextAdaptor implements AnalyzerContext { } @Override + public <G extends Serializable> AnalyzerMeasureBuilder<G> measureBuilder() { + return new DefaultAnalyzerMeasureBuilder<G>(); + } + + @Override public AnalyzerMeasure<?> getMeasure(String metricKey) { Metric<?> m = metricFinder.findByKey(metricKey); if (m == null) { @@ -67,7 +74,7 @@ public class AnalyzerContextAdaptor implements AnalyzerContext { if (measure == null) { return null; } - return AnalyzerMeasure.<G>builder() + return this.<G>measureBuilder() .onProject() .forMetric(metric) .withValue(measure.value()) @@ -91,7 +98,7 @@ public class AnalyzerContextAdaptor implements AnalyzerContext { if (measure == null) { return null; } - return AnalyzerMeasure.<G>builder() + return this.<G>measureBuilder() .onFile(file) .forMetric(metric) .withValue(measure.value()) diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/LanguageVerifier.java b/sonar-batch/src/main/java/org/sonar/batch/scan/LanguageVerifier.java index 7f32e03e98e..88cc4365bed 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/scan/LanguageVerifier.java +++ b/sonar-batch/src/main/java/org/sonar/batch/scan/LanguageVerifier.java @@ -19,6 +19,8 @@ */ package org.sonar.batch.scan; +import org.sonar.api.batch.languages.Language; + import org.picocontainer.Startable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -26,7 +28,6 @@ import org.sonar.api.CoreProperties; import org.sonar.api.batch.fs.internal.DefaultFileSystem; import org.sonar.api.config.Settings; import org.sonar.api.utils.MessageException; -import org.sonar.batch.api.languages.Language; import org.sonar.batch.languages.LanguagesReferential; /** diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/ModuleScanContainer.java b/sonar-batch/src/main/java/org/sonar/batch/scan/ModuleScanContainer.java index 6b1e0e1a501..a0584e490d9 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/scan/ModuleScanContainer.java +++ b/sonar-batch/src/main/java/org/sonar/batch/scan/ModuleScanContainer.java @@ -200,8 +200,7 @@ public class ModuleScanContainer extends ComponentContainer { // Example : C# plugin adds sub-projects at runtime, even if they are not defined in root pom. return !ExtensionUtils.isMavenExtensionOnly(extension) || module.getPom() != null; } - return ExtensionUtils.isType(extension, org.sonar.batch.api.BatchComponent.class) - && ExtensionUtils.isInstantiationStrategy(extension, org.sonar.batch.api.InstantiationStrategy.PER_PROJECT); + return false; } }); } diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/ProjectScanContainer.java b/sonar-batch/src/main/java/org/sonar/batch/scan/ProjectScanContainer.java index 8d4dfa22df7..12eaf5aa378 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/scan/ProjectScanContainer.java +++ b/sonar-batch/src/main/java/org/sonar/batch/scan/ProjectScanContainer.java @@ -100,23 +100,26 @@ public class ProjectScanContainer extends ComponentContainer { } private void projectBootstrap() { - ProjectReactor reactor; - // OK, not present, so look for a custom ProjectBootstrapper - ProjectBootstrapper bootstrapper = getComponentByType(ProjectBootstrapper.class); - Settings settings = getComponentByType(Settings.class); - if (bootstrapper == null - // Starting from Maven plugin 2.3 then only DefaultProjectBootstrapper should be used. - || "true".equals(settings.getString("sonar.mojoUseRunner"))) { - // Use default SonarRunner project bootstrapper - ProjectReactorBuilder builder = getComponentByType(ProjectReactorBuilder.class); - reactor = builder.execute(); - } else { - reactor = bootstrapper.bootstrap(); - } + // Views pass a custom ProjectReactor + ProjectReactor reactor = getComponentByType(ProjectReactor.class); if (reactor == null) { - throw new SonarException(bootstrapper + " has returned null as ProjectReactor"); + // OK, not present, so look for a deprecated custom ProjectBootstrapper for old versions of SQ Runner + ProjectBootstrapper bootstrapper = getComponentByType(ProjectBootstrapper.class); + Settings settings = getComponentByType(Settings.class); + if (bootstrapper == null + // Starting from Maven plugin 2.3 then only DefaultProjectBootstrapper should be used. + || "true".equals(settings.getString("sonar.mojoUseRunner"))) { + // Use default SonarRunner project bootstrapper + ProjectReactorBuilder builder = getComponentByType(ProjectReactorBuilder.class); + reactor = builder.execute(); + } else { + reactor = bootstrapper.bootstrap(); + } + if (reactor == null) { + throw new SonarException(bootstrapper + " has returned null as ProjectReactor"); + } + add(reactor); } - add(reactor); } private void addBatchComponents() { diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/ScanTask.java b/sonar-batch/src/main/java/org/sonar/batch/scan/ScanTask.java index 33285ae2be6..0ff2d3be352 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/scan/ScanTask.java +++ b/sonar-batch/src/main/java/org/sonar/batch/scan/ScanTask.java @@ -19,6 +19,8 @@ */ package org.sonar.batch.scan; +import org.sonar.batch.scan2.ProjectScanContainer; + import org.sonar.api.CoreProperties; import org.sonar.api.platform.ComponentContainer; import org.sonar.api.task.Task; @@ -27,7 +29,6 @@ import org.sonar.batch.DefaultProjectTree; import org.sonar.batch.bootstrap.BootstrapProperties; import org.sonar.batch.bootstrap.TaskContainer; import org.sonar.batch.phases.Phases; -import org.sonar.batch.scan2.ProjectScanContainer; public class ScanTask implements Task { public static final TaskDefinition DEFINITION = TaskDefinition.builder() diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/SensorWrapper.java b/sonar-batch/src/main/java/org/sonar/batch/scan/SensorWrapper.java index ae9a25c59dc..ac53dbec1db 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/scan/SensorWrapper.java +++ b/sonar-batch/src/main/java/org/sonar/batch/scan/SensorWrapper.java @@ -23,11 +23,12 @@ import org.sonar.api.batch.DependedUpon; import org.sonar.api.batch.DependsUpon; import org.sonar.api.batch.Sensor; import org.sonar.api.batch.SensorContext; +import org.sonar.api.batch.analyzer.Analyzer; +import org.sonar.api.batch.analyzer.AnalyzerContext; +import org.sonar.api.batch.analyzer.internal.DefaultAnalyzerDescriptor; import org.sonar.api.batch.fs.FileSystem; +import org.sonar.api.batch.measures.Metric; import org.sonar.api.resources.Project; -import org.sonar.batch.api.analyzer.Analyzer; -import org.sonar.batch.api.analyzer.AnalyzerContext; -import org.sonar.batch.api.measures.Metric; import java.util.Arrays; import java.util.List; @@ -37,31 +38,34 @@ public class SensorWrapper implements Sensor { private Analyzer analyzer; private AnalyzerContext adaptor; private FileSystem fs; + private DefaultAnalyzerDescriptor descriptor; public SensorWrapper(Analyzer analyzer, AnalyzerContext adaptor, FileSystem fs) { this.analyzer = analyzer; + descriptor = new DefaultAnalyzerDescriptor(); + analyzer.describe(descriptor); this.adaptor = adaptor; this.fs = fs; } @DependedUpon public List<Metric<?>> provides() { - return Arrays.asList(analyzer.describe().provides()); + return Arrays.asList(descriptor.provides()); } @DependsUpon public List<Metric<?>> depends() { - return Arrays.asList(analyzer.describe().dependsOn()); + return Arrays.asList(descriptor.dependsOn()); } @Override public boolean shouldExecuteOnProject(Project project) { - if (!analyzer.describe().languages().isEmpty()) { - if (project.getLanguageKey() != null && !analyzer.describe().languages().contains(project.getLanguageKey())) { + if (!descriptor.languages().isEmpty()) { + if (project.getLanguageKey() != null && !descriptor.languages().contains(project.getLanguageKey())) { return false; } boolean hasFile = false; - for (String languageKey : analyzer.describe().languages()) { + for (String languageKey : descriptor.languages()) { hasFile |= fs.hasFiles(fs.predicates().hasLanguage(languageKey)); } if (!hasFile) { diff --git a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/LanguageDetection.java b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/LanguageDetection.java index 7256c5592a3..8bdddc89c90 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/LanguageDetection.java +++ b/sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/LanguageDetection.java @@ -19,6 +19,8 @@ */ package org.sonar.batch.scan.filesystem; +import org.sonar.api.batch.languages.Language; + import com.google.common.base.Joiner; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -30,7 +32,6 @@ import org.sonar.api.batch.fs.InputFile; import org.sonar.api.batch.fs.internal.PathPattern; import org.sonar.api.config.Settings; import org.sonar.api.utils.MessageException; -import org.sonar.batch.api.languages.Language; import org.sonar.batch.languages.LanguagesReferential; import javax.annotation.CheckForNull; |