diff options
author | Teryk Bellahsene <teryk.bellahsene@sonarsource.com> | 2017-10-02 11:02:12 +0200 |
---|---|---|
committer | Teryk Bellahsene <teryk@users.noreply.github.com> | 2017-10-03 14:45:02 +0200 |
commit | 266450099096400d6134cc429a462bb52c198b06 (patch) | |
tree | 8d2ca7f95147213390a78049ee57ffceb29bd169 /server | |
parent | 3be234a8129229de4f44da012d0a901a026a265d (diff) | |
download | sonarqube-266450099096400d6134cc429a462bb52c198b06.tar.gz sonarqube-266450099096400d6134cc429a462bb52c198b06.zip |
SONAR-9820 update telemetry format - list instead of map
Diffstat (limited to 'server')
3 files changed, 67 insertions, 19 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/telemetry/TelemetryDataJsonWriter.java b/server/sonar-server/src/main/java/org/sonar/server/telemetry/TelemetryDataJsonWriter.java index dba9dc46afe..569841f7743 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/telemetry/TelemetryDataJsonWriter.java +++ b/server/sonar-server/src/main/java/org/sonar/server/telemetry/TelemetryDataJsonWriter.java @@ -35,15 +35,36 @@ public class TelemetryDataJsonWriter { json.prop("id", statistics.getServerId()); json.prop("version", statistics.getVersion()); json.name("plugins"); - json.valueObject(statistics.getPlugins()); + json.beginArray(); + statistics.getPlugins().forEach((plugin, version) -> { + json.beginObject(); + json.prop("name", plugin); + json.prop("version", version); + json.endObject(); + }); + json.endArray(); json.prop("userCount", statistics.getUserCount()); json.prop("projectCount", statistics.getProjectCount()); json.prop(LINES_KEY, statistics.getLines()); json.prop(NCLOC_KEY, statistics.getNcloc()); json.name("projectCountByLanguage"); - json.valueObject(statistics.getProjectCountByLanguage()); + json.beginArray(); + statistics.getProjectCountByLanguage().forEach((language, count) -> { + json.beginObject(); + json.prop("language", language); + json.prop("count", count); + json.endObject(); + }); + json.endArray(); json.name("nclocByLanguage"); - json.valueObject(statistics.getNclocByLanguage()); + json.beginArray(); + statistics.getNclocByLanguage().forEach((language, ncloc) -> { + json.beginObject(); + json.prop("language", language); + json.prop("ncloc", ncloc); + json.endObject(); + }); + json.endArray(); json.endObject(); } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/platform/ws/InfoActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/platform/ws/InfoActionTest.java index 6efbac1161f..ab6ef319a94 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/platform/ws/InfoActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/platform/ws/InfoActionTest.java @@ -102,7 +102,7 @@ public class InfoActionTest { TestResponse response = ws.newRequest().execute(); // response does not contain empty "Section Three" assertThat(response.getInput()).isEqualTo("{\"Health\":\"GREEN\",\"Health Causes\":[],\"Section One\":{\"foo\":\"bar\"},\"Section Two\":{\"one\":1,\"two\":2}," + - "\"Statistics\":{\"plugins\":{},\"userCount\":0,\"projectCount\":0,\"lines\":0,\"ncloc\":0,\"projectCountByLanguage\":{},\"nclocByLanguage\":{}}}"); + "\"Statistics\":{\"plugins\":[],\"userCount\":0,\"projectCount\":0,\"lines\":0,\"ncloc\":0,\"projectCountByLanguage\":[],\"nclocByLanguage\":[]}}"); } private void logInAsSystemAdministrator() { diff --git a/server/sonar-server/src/test/resources/org/sonar/server/telemetry/telemetry-example.json b/server/sonar-server/src/test/resources/org/sonar/server/telemetry/telemetry-example.json index b17a4aab7c4..93cf4f1280f 100644 --- a/server/sonar-server/src/test/resources/org/sonar/server/telemetry/telemetry-example.json +++ b/server/sonar-server/src/test/resources/org/sonar/server/telemetry/telemetry-example.json @@ -1,23 +1,50 @@ { "id": "AU-TpxcB-iU5OvuD2FL7", "version": "7.5.4", - "plugins": { - "java": "4.12.0.11033", - "scmgit": "1.2", - "other": "undefined" - }, + "plugins": [ + { + "name": "java", + "version": "4.12.0.11033" + }, + { + "name": "scmgit", + "version": "1.2" + }, + { + "name": "other", + "version": "undefined" + } + ], "userCount": 3, "projectCount": 2, "lines": 500, "ncloc": 300, - "projectCountByLanguage": { - "java": 2, - "kotlin": 1, - "js": 1 - }, - "nclocByLanguage": { - "java": 500, - "kotlin": 2500, - "js": 50 - } + "projectCountByLanguage": [ + { + "language": "java", + "count": 2 + }, + { + "language": "kotlin", + "count": 1 + }, + { + "language": "js", + "count": 1 + } + ], + "nclocByLanguage": [ + { + "language": "java", + "ncloc": 500 + }, + { + "language": "kotlin", + "ncloc": 2500 + }, + { + "language": "js", + "ncloc": 50 + } + ] } |