aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHavoc Pennington <havoc.pennington@sonarsource.com>2025-02-13 11:03:27 -0500
committersonartech <sonartech@sonarsource.com>2025-02-19 20:03:12 +0000
commitc5c17d491872221f5fc9d376ee045211094009f0 (patch)
tree46c9f2ace1fab5feec8704f5dd054ce1155ec392
parent983e0d3ba901cda55938d608e2e3856642705108 (diff)
downloadsonarqube-c5c17d491872221f5fc9d376ee045211094009f0.tar.gz
sonarqube-c5c17d491872221f5fc9d376ee045211094009f0.zip
SQRP-192 Store SCA analysis errors as task messages
-rw-r--r--server/sonar-ce-common/src/main/java/org/sonar/ce/common/sca/ScaStepProvider.java5
-rw-r--r--server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ScaStep.java12
-rw-r--r--server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ScaStepTest.java7
3 files changed, 13 insertions, 11 deletions
diff --git a/server/sonar-ce-common/src/main/java/org/sonar/ce/common/sca/ScaStepProvider.java b/server/sonar-ce-common/src/main/java/org/sonar/ce/common/sca/ScaStepProvider.java
index 6a9d3e21823..7ebfab3aaf7 100644
--- a/server/sonar-ce-common/src/main/java/org/sonar/ce/common/sca/ScaStepProvider.java
+++ b/server/sonar-ce-common/src/main/java/org/sonar/ce/common/sca/ScaStepProvider.java
@@ -21,13 +21,14 @@ package org.sonar.ce.common.sca;
import org.sonar.api.ce.ComputeEngineSide;
import org.sonar.ce.common.scanner.ScannerReportReader;
+import org.sonar.ce.task.log.CeTaskMessages;
import org.sonar.ce.task.step.ComputationStep;
/**
* When an implementation of this interface is available in the ioc container, the Compute Engine will use the value returned by
- * {@link #get(ScannerReportReader, ScaHolder)} as an extra step for software composition analysis.
+ * {@link #get(ScannerReportReader, CeTaskMessages, ScaHolder)} as an extra step for software composition analysis.
*/
@ComputeEngineSide
public interface ScaStepProvider {
- ComputationStep get(ScannerReportReader reportReader, ScaHolder scaHolder);
+ ComputationStep get(ScannerReportReader reportReader, CeTaskMessages ceTaskMessages, ScaHolder scaHolder);
}
diff --git a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ScaStep.java b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ScaStep.java
index 1156af7f71d..c349bfa8410 100644
--- a/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ScaStep.java
+++ b/server/sonar-ce-task-projectanalysis/src/main/java/org/sonar/ce/task/projectanalysis/step/ScaStep.java
@@ -20,10 +20,10 @@
package org.sonar.ce.task.projectanalysis.step;
import javax.annotation.Nullable;
-
import org.sonar.ce.common.sca.ScaHolder;
import org.sonar.ce.common.sca.ScaStepProvider;
import org.sonar.ce.common.scanner.ScannerReportReader;
+import org.sonar.ce.task.log.CeTaskMessages;
import org.sonar.ce.task.step.ComputationStep;
import org.springframework.beans.factory.annotation.Autowired;
@@ -32,14 +32,14 @@ public class ScaStep implements ComputationStep {
private final ComputationStep wrapped;
@Autowired(required = false)
- public ScaStep(ScannerReportReader reportReader) {
- this(reportReader, null, null);
+ public ScaStep(ScannerReportReader reportReader, CeTaskMessages ceTaskMessages) {
+ this(reportReader, ceTaskMessages, null, null);
}
@Autowired(required = false)
- public ScaStep(ScannerReportReader reportReader, @Nullable ScaStepProvider provider, @Nullable ScaHolder scaHolder ) {
- if (provider != null && scaHolder != null ){
- this.wrapped = provider.get(reportReader, scaHolder);
+ public ScaStep(ScannerReportReader reportReader, CeTaskMessages ceTaskMessages, @Nullable ScaStepProvider provider, @Nullable ScaHolder scaHolder) {
+ if (provider != null && scaHolder != null) {
+ this.wrapped = provider.get(reportReader, ceTaskMessages, scaHolder);
} else {
this.wrapped = null;
}
diff --git a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ScaStepTest.java b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ScaStepTest.java
index d3791e39afe..0bf793c7c3b 100644
--- a/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ScaStepTest.java
+++ b/server/sonar-ce-task-projectanalysis/src/test/java/org/sonar/ce/task/projectanalysis/step/ScaStepTest.java
@@ -23,6 +23,7 @@ import org.junit.jupiter.api.Test;
import org.sonar.ce.common.sca.ScaHolder;
import org.sonar.ce.common.sca.ScaStepProvider;
import org.sonar.ce.common.scanner.ScannerReportReader;
+import org.sonar.ce.task.log.CeTaskMessages;
import org.sonar.ce.task.step.ComputationStep;
import static org.assertj.core.api.Assertions.assertThat;
@@ -35,7 +36,7 @@ class ScaStepTest {
@Test
void shouldSkipScaStepIfNotAvailable() {
- var underTest = new ScaStep(mock(ScannerReportReader.class), null, null);
+ var underTest = new ScaStep(mock(ScannerReportReader.class), mock(CeTaskMessages.class), null, null);
assertThat(underTest.getDescription()).isEqualTo("Software composition analysis unavailable");
@@ -47,8 +48,8 @@ class ScaStepTest {
var wrappedStep = mock(ComputationStep.class);
when(wrappedStep.getDescription()).thenReturn("wrapped step");
- ScaStepProvider scaStepProvider = (reportReader, scaHolder) -> wrappedStep;
- var underTest = new ScaStep(mock(ScannerReportReader.class), scaStepProvider, mock(ScaHolder.class));
+ ScaStepProvider scaStepProvider = (reportReader, ceTaskMessages, scaHolder) -> wrappedStep;
+ var underTest = new ScaStep(mock(ScannerReportReader.class), mock(CeTaskMessages.class), scaStepProvider, mock(ScaHolder.class));
assertThat(underTest.getDescription()).isEqualTo("wrapped step");