aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Marion <steve.marion@sonarsource.com>2025-03-01 02:45:09 +0100
committerMatteo Mara <matteo.mara@sonarsource.com>2025-03-17 22:23:55 +0100
commit051b18e3e260ca068f480d08c7cee6ad8c951db6 (patch)
tree9ae40fc195d309c2f6e3294903ed21a24cd5f5b3
parent8dda5ad3e9824137ae6c273c69e7db70459fef16 (diff)
downloadsonarqube-051b18e3e260ca068f480d08c7cee6ad8c951db6.tar.gz
sonarqube-051b18e3e260ca068f480d08c7cee6ad8c951db6.zip
SONAR-24233 Add web api v2 architecture domain and file-graph endpoint.
-rw-r--r--plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/architecture/ArchitectureSensor.java6
-rw-r--r--plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/architecture/ArchitectureSensorTest.java2
-rw-r--r--server/sonar-db-core/src/main/java/org/sonar/db/version/SqTables.java1
-rw-r--r--sonar-scanner-engine/src/it/java/org/sonar/scanner/mediumtest/analysisdata/AnalysisDataIT.java2
-rw-r--r--sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/DefaultSensorStorage.java1
5 files changed, 7 insertions, 5 deletions
diff --git a/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/architecture/ArchitectureSensor.java b/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/architecture/ArchitectureSensor.java
index e8fbc623c87..e3e75a9932f 100644
--- a/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/architecture/ArchitectureSensor.java
+++ b/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/architecture/ArchitectureSensor.java
@@ -36,7 +36,7 @@ public class ArchitectureSensor implements ProjectSensor {
@Override
public void execute(SensorContext context) {
- final String mimeType = "application/file-graph+json;version=1.0;source=xoo";
+ final String mimeType = "application/file_graph+json;version=1.0";
long count = StreamSupport.stream(
context.fileSystem().inputFiles(
@@ -44,14 +44,14 @@ public class ArchitectureSensor implements ProjectSensor {
.count();
context.addAnalysisData(
- Xoo.NAME + ".class_file_graph",
+ "architecture.file_graph.java",
mimeType,
new ByteArrayInputStream(("{graph:\"data\", \"classCount\":" + count + "}")
.getBytes(StandardCharsets.UTF_8))
);
context.addAnalysisData(
- Xoo.NAME + ".file_graph",
+ "architecture.file_graph." + Xoo.KEY,
mimeType,
new ByteArrayInputStream(("{graph:\"data\", \"fileCount\":" + count + "}")
.getBytes(StandardCharsets.UTF_8))
diff --git a/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/architecture/ArchitectureSensorTest.java b/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/architecture/ArchitectureSensorTest.java
index 09e46c9a21d..d1bac6b14b6 100644
--- a/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/architecture/ArchitectureSensorTest.java
+++ b/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/architecture/ArchitectureSensorTest.java
@@ -76,7 +76,7 @@ public class ArchitectureSensorTest {
// then
ArgumentCaptor<InputStream> inputStreamCaptor = ArgumentCaptor.forClass(InputStream.class);
- verify(context).addAnalysisData(eq(Xoo.NAME + ".file_graph"), contains("application/file-graph+json"), inputStreamCaptor.capture());
+ verify(context).addAnalysisData(eq("architecture.file_graph.xoo"), contains("application/file_graph+json"), inputStreamCaptor.capture());
try {
String capturedData = new String(inputStreamCaptor.getValue().readAllBytes(), StandardCharsets.UTF_8);
assertThat(capturedData).contains("\"fileCount\":" + nbFileSensor);
diff --git a/server/sonar-db-core/src/main/java/org/sonar/db/version/SqTables.java b/server/sonar-db-core/src/main/java/org/sonar/db/version/SqTables.java
index 6e5d6d34e74..8f54baa76c7 100644
--- a/server/sonar-db-core/src/main/java/org/sonar/db/version/SqTables.java
+++ b/server/sonar-db-core/src/main/java/org/sonar/db/version/SqTables.java
@@ -36,6 +36,7 @@ public final class SqTables {
"analysis_properties",
"app_branch_project_branch",
"app_projects",
+ "architecture_graphs",
"audits",
"ce_activity",
"ce_queue",
diff --git a/sonar-scanner-engine/src/it/java/org/sonar/scanner/mediumtest/analysisdata/AnalysisDataIT.java b/sonar-scanner-engine/src/it/java/org/sonar/scanner/mediumtest/analysisdata/AnalysisDataIT.java
index 732d759264c..7f56cb87cce 100644
--- a/sonar-scanner-engine/src/it/java/org/sonar/scanner/mediumtest/analysisdata/AnalysisDataIT.java
+++ b/sonar-scanner-engine/src/it/java/org/sonar/scanner/mediumtest/analysisdata/AnalysisDataIT.java
@@ -63,6 +63,6 @@ public class AnalysisDataIT {
// then
List<ScannerReport.AnalysisData> analysisData = result.analysisData();
assertThat(analysisData)
- .anyMatch(data -> data.getKey().equals(Xoo.NAME + ".file_graph"));
+ .anyMatch(data -> data.getKey().equals("architecture.file_graph." + Xoo.KEY));
}
}
diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/DefaultSensorStorage.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/DefaultSensorStorage.java
index dfc6df5050c..0ff5109124d 100644
--- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/DefaultSensorStorage.java
+++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/sensor/DefaultSensorStorage.java
@@ -488,6 +488,7 @@ public class DefaultSensorStorage implements SensorStorage {
try (data) {
ScannerReport.AnalysisData analysisData = ScannerReport.AnalysisData.newBuilder()
.setKey(key)
+ .setMimeType(mimeType)
.setData(ByteString.readFrom(data))
.build();
ScannerReportWriter writer = reportPublisher.getWriter();