aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-batch/src/main/java/org/sonar/batch/scan
diff options
context:
space:
mode:
authorJulien HENRY <julien.henry@sonarsource.com>2014-06-18 11:41:59 +0200
committerJulien HENRY <julien.henry@sonarsource.com>2014-06-18 16:26:00 +0200
commit1e39cf737eed643f1aaed340fce5696eb760a7d8 (patch)
treef5f3763d04d45f3b0708c935a92b9c0cdd025167 /sonar-batch/src/main/java/org/sonar/batch/scan
parentf3ce69889f1a33e07d81ba20e052eebe599a03bc (diff)
downloadsonarqube-1e39cf737eed643f1aaed340fce5696eb760a7d8.tar.gz
sonarqube-1e39cf737eed643f1aaed340fce5696eb760a7d8.zip
SONAR-5389 Drop batch-api module
Diffstat (limited to 'sonar-batch/src/main/java/org/sonar/batch/scan')
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/AnalyzerContextAdaptor.java19
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/LanguageVerifier.java3
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/ModuleScanContainer.java3
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/ProjectScanContainer.java33
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/ScanTask.java3
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/SensorWrapper.java20
-rw-r--r--sonar-batch/src/main/java/org/sonar/batch/scan/filesystem/LanguageDetection.java3
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;