From 6cb1c5332fc28391af46f00252db894954d10dfd Mon Sep 17 00:00:00 2001 From: Eric Giffon Date: Wed, 26 Jul 2023 15:52:00 +0200 Subject: [PATCH] SONAR-19233 Drop deprecated paging response fields --- .../qualityprofile/ws/ChangelogActionIT.java | 10 ++--- .../sonar/server/rule/ws/SearchActionIT.java | 14 ------ .../server/usergroups/ws/UsersActionIT.java | 9 +--- .../ws/SearchActionComponentsIT/no_issue.json | 4 +- .../apply_paging_with_one_component.json | 3 -- .../default_page_size_is_100.json | 3 -- .../issue/ws/SearchActionIT/empty_result.json | 3 -- .../SearchActionIT/filter_by_leak_period.json | 3 -- ...r_by_leak_period_has_no_effect_on_prs.json | 3 -- .../SearchActionIT/filter_by_main_scope.json | 3 -- .../filter_by_main_scope_2.json | 3 -- .../SearchActionIT/filter_by_test_scope.json | 3 -- .../issue/ws/SearchActionIT/no_issue.json | 1 - .../issue/ws/SearchActionIT/paging.json | 3 -- .../result_for_rule_search.json | 3 -- .../search_by_variants_with_facets.json | 3 -- .../ChangelogActionIT/changelog_example.json | 43 ------------------- .../server/rule/ws/SearchActionIT/paging.json | 3 -- .../sonar/server/issue/ws/SearchAction.java | 1 + .../server/issue/ws/SearchResponseFormat.java | 9 +--- .../qualityprofile/ws/ChangelogAction.java | 18 +++----- .../sonar/server/rule/ws/SearchAction.java | 10 ++--- .../server/usergroups/ws/UsersAction.java | 18 +++----- .../rule/DefaultActiveRulesLoader.java | 4 +- .../rule/DefaultActiveRulesLoaderTest.java | 7 ++- sonar-ws/src/main/protobuf/ws-issues.proto | 6 +-- sonar-ws/src/main/protobuf/ws-rules.proto | 7 ++- 27 files changed, 37 insertions(+), 160 deletions(-) delete mode 100644 server/sonar-webserver-webapi/src/it/resources/org/sonar/server/qualityprofile/ws/ChangelogActionIT/changelog_example.json diff --git a/server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualityprofile/ws/ChangelogActionIT.java b/server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualityprofile/ws/ChangelogActionIT.java index 7d282d04319..d47b9957a4e 100644 --- a/server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualityprofile/ws/ChangelogActionIT.java +++ b/server/sonar-webserver-webapi/src/it/java/org/sonar/server/qualityprofile/ws/ChangelogActionIT.java @@ -80,9 +80,6 @@ public class ChangelogActionIT { .getInput(); assertJson(response).isSimilarTo("{\n" + - " \"total\": 1,\n" + - " \"p\": 1,\n" + - " \"ps\": 50,\n" + " \"paging\": {\n" + " \"pageIndex\": 1,\n" + " \"pageSize\": 50,\n" + @@ -179,7 +176,7 @@ public class ChangelogActionIT { .execute() .getInput(); - assertJson(response).isSimilarTo("{\"total\":0,\"p\":1,\"ps\":50,\"paging\":{\"pageIndex\":1,\"pageSize\":50,\"total\":0},\"events\":[]}"); + assertJson(response).isSimilarTo("{\"paging\":{\"pageIndex\":1,\"pageSize\":50,\"total\":0},\"events\":[]}"); } @Test @@ -347,13 +344,14 @@ public class ChangelogActionIT { .setChangeType(ActiveRuleChange.Type.ACTIVATED.name()) .setData(ImmutableMap.of("severity", "MAJOR", "param_format", "^[A-Z][a-zA-Z0-9]*$", "ruleUuid", rule3.getUuid()))); - ws.newRequest() + String result = ws.newRequest() .setMethod("GET") .setParam(PARAM_LANGUAGE, profile.getLanguage()) .setParam(PARAM_QUALITY_PROFILE, profile.getName()) .setParam("ps", "10") .execute() - .assertJson(this.getClass(), "changelog_example.json"); + .getInput(); + assertJson(result).isSimilarTo(ws.getDef().responseExampleAsString()); } @Test diff --git a/server/sonar-webserver-webapi/src/it/java/org/sonar/server/rule/ws/SearchActionIT.java b/server/sonar-webserver-webapi/src/it/java/org/sonar/server/rule/ws/SearchActionIT.java index a99e9d26800..96ffd6534a7 100644 --- a/server/sonar-webserver-webapi/src/it/java/org/sonar/server/rule/ws/SearchActionIT.java +++ b/server/sonar-webserver-webapi/src/it/java/org/sonar/server/rule/ws/SearchActionIT.java @@ -163,8 +163,6 @@ public class SearchActionIT { .setParam(WebService.Param.FIELDS, "actives") .executeProtobuf(Rules.SearchResponse.class); - assertThat(response.getTotal()).isZero(); - assertThat(response.getP()).isOne(); assertThat(response.getPaging().getTotal()).isZero(); assertThat(response.getPaging().getPageIndex()).isOne(); assertThat(response.getPaging().getPageSize()).isNotZero(); @@ -558,7 +556,6 @@ public class SearchActionIT { SearchResponse result = ws.newRequest() .setParam("f", "langName") .executeProtobuf(SearchResponse.class); - assertThat(result.getTotal()).isOne(); assertThat(result.getPaging().getTotal()).isOne(); assertThat(result.getPaging().getPageIndex()).isOne(); assertThat(result.getRulesCount()).isOne(); @@ -583,7 +580,6 @@ public class SearchActionIT { SearchResponse result = ws.newRequest() .setParam("f", "debtRemFn,remFnOverloaded,defaultDebtRemFn") .executeProtobuf(SearchResponse.class); - assertThat(result.getTotal()).isOne(); assertThat(result.getPaging().getTotal()).isOne(); assertThat(result.getPaging().getPageIndex()).isOne(); assertThat(result.getRulesCount()).isOne(); @@ -617,7 +613,6 @@ public class SearchActionIT { SearchResponse result = ws.newRequest() .setParam("f", "debtRemFn,remFnOverloaded,defaultDebtRemFn") .executeProtobuf(SearchResponse.class); - assertThat(result.getTotal()).isOne(); assertThat(result.getPaging().getTotal()).isOne(); assertThat(result.getPaging().getPageIndex()).isOne(); assertThat(result.getRulesCount()).isOne(); @@ -651,7 +646,6 @@ public class SearchActionIT { SearchResponse result = ws.newRequest() .setParam("f", "debtRemFn,remFnOverloaded,defaultDebtRemFn") .executeProtobuf(SearchResponse.class); - assertThat(result.getTotal()).isOne(); assertThat(result.getPaging().getTotal()).isOne(); assertThat(result.getPaging().getPageIndex()).isOne(); assertThat(result.getRulesCount()).isOne(); @@ -683,7 +677,6 @@ public class SearchActionIT { .setParam("f", "isTemplate") .setParam("is_template", "true") .executeProtobuf(SearchResponse.class); - assertThat(result.getTotal()).isOne(); assertThat(result.getPaging().getTotal()).isOne(); assertThat(result.getPaging().getPageIndex()).isOne(); assertThat(result.getRulesCount()).isOne(); @@ -707,7 +700,6 @@ public class SearchActionIT { .setParam("f", "templateKey") .setParam("template_key", templateRule.getRepositoryKey() + ":" + templateRule.getRuleKey()) .executeProtobuf(SearchResponse.class); - assertThat(result.getTotal()).isOne(); assertThat(result.getPaging().getTotal()).isOne(); assertThat(result.getPaging().getPageIndex()).isOne(); assertThat(result.getRulesCount()).isOne(); @@ -725,7 +717,6 @@ public class SearchActionIT { SearchResponse result = ws.newRequest().executeProtobuf(SearchResponse.class); - assertThat(result.getTotal()).isZero(); assertThat(result.getPaging().getTotal()).isZero(); assertThat(result.getPaging().getPageIndex()).isOne(); assertThat(result.getRulesCount()).isZero(); @@ -744,7 +735,6 @@ public class SearchActionIT { .setParam("q", rule.getName()) .setParam("activation", "true") .executeProtobuf(SearchResponse.class); - assertThat(result.getTotal()).isOne(); assertThat(result.getPaging().getTotal()).isOne(); assertThat(result.getPaging().getPageIndex()).isOne(); assertThat(result.getRulesCount()).isOne(); @@ -789,7 +779,6 @@ public class SearchActionIT { .setParam("activation", "true") .setParam("qprofile", profile.getKee()) .executeProtobuf(SearchResponse.class); - assertThat(result.getTotal()).isOne(); assertThat(result.getPaging().getTotal()).isOne(); assertThat(result.getPaging().getPageIndex()).isOne(); assertThat(result.getRulesCount()).isOne(); @@ -846,7 +835,6 @@ public class SearchActionIT { .setParam("qprofile", profile.getKee()) .executeProtobuf(SearchResponse.class); - assertThat(result.getTotal()).isOne(); assertThat(result.getPaging().getTotal()).isOne(); assertThat(result.getPaging().getPageIndex()).isOne(); assertThat(result.getRulesCount()).isOne(); @@ -1060,14 +1048,12 @@ public class SearchActionIT { requestPopulator.accept(request); Rules.SearchResponse response = request.executeProtobuf(Rules.SearchResponse.class); - assertThat(response.getP()).isOne(); assertThat(response.getPaging().getPageIndex()).isOne(); assertThat(response.getPaging().getPageSize()).isNotZero(); RuleKey[] expectedRuleKeys = stream(expectedRules).map(RuleDto::getKey).toList().toArray(new RuleKey[0]); assertThat(response.getRulesList()) .extracting(r -> RuleKey.parse(r.getKey())) .containsExactlyInAnyOrder(expectedRuleKeys); - assertThat(response.getTotal()).isEqualTo(expectedRules.length); assertThat(response.getPaging().getTotal()).isEqualTo(expectedRules.length); assertThat(response.getRulesCount()).isEqualTo(expectedRules.length); } diff --git a/server/sonar-webserver-webapi/src/it/java/org/sonar/server/usergroups/ws/UsersActionIT.java b/server/sonar-webserver-webapi/src/it/java/org/sonar/server/usergroups/ws/UsersActionIT.java index 3888e144b20..c0aa16ed73a 100644 --- a/server/sonar-webserver-webapi/src/it/java/org/sonar/server/usergroups/ws/UsersActionIT.java +++ b/server/sonar-webserver-webapi/src/it/java/org/sonar/server/usergroups/ws/UsersActionIT.java @@ -71,6 +71,7 @@ public class UsersActionIT { assertThat(wsDef.since()).isEqualTo("5.2"); assertThat(wsDef.isPost()).isFalse(); assertThat(wsDef.changelog()).extracting(Change::getVersion, Change::getDescription).containsOnly( + tuple("10.2", "Response fields 'total', 's', 'ps' dropped"), tuple("10.0", "Field 'managed' added to the payload."), tuple("10.0", "Parameter 'id' is removed. Use 'name' instead."), tuple("9.8", "response fields 'total', 's', 'ps' have been deprecated, please use 'paging' object instead."), @@ -115,8 +116,6 @@ public class UsersActionIT { assertJson(result).isSimilarTo(""" { - "p": 1, - "total": 0, "paging": { "pageIndex": 1, "pageSize": 25, @@ -255,9 +254,6 @@ public class UsersActionIT { .execute() .getInput()).isSimilarTo(""" { - "p": 1, - "ps": 1, - "total": 2, "paging": { "pageIndex": 1, "pageSize": 1, @@ -275,9 +271,6 @@ public class UsersActionIT { .execute() .getInput()).isSimilarTo(""" { - "p": 2, - "ps": 1, - "total": 2, "paging": { "pageIndex": 2, "pageSize": 1, diff --git a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionComponentsIT/no_issue.json b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionComponentsIT/no_issue.json index ce8bbfbeeb7..ba70d56c58a 100644 --- a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionComponentsIT/no_issue.json +++ b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionComponentsIT/no_issue.json @@ -1,4 +1,6 @@ { - "total": 0, + "paging": { + "total": 0 + }, "issues": [] } diff --git a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/apply_paging_with_one_component.json b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/apply_paging_with_one_component.json index 2629aa292a6..8e6bb76d1fb 100644 --- a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/apply_paging_with_one_component.json +++ b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/apply_paging_with_one_component.json @@ -1,7 +1,4 @@ { - "total": 501, - "p": 1, - "ps": 100, "paging": { "pageIndex": 1, "pageSize": 100, diff --git a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/default_page_size_is_100.json b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/default_page_size_is_100.json index 13af5a2ede8..5aa53738e1c 100644 --- a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/default_page_size_is_100.json +++ b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/default_page_size_is_100.json @@ -1,7 +1,4 @@ { - "total": 0, - "p": 1, - "ps": 100, "paging": { "pageIndex": 1, "pageSize": 100, diff --git a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/empty_result.json b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/empty_result.json index acda7495d25..8b19589dc6a 100644 --- a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/empty_result.json +++ b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/empty_result.json @@ -1,7 +1,4 @@ { - "total": 0, - "p": 1, - "ps": 100, "paging": { "pageIndex": 1, "pageSize": 100, diff --git a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/filter_by_leak_period.json b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/filter_by_leak_period.json index 65d8323fe65..9ecdda62fbf 100644 --- a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/filter_by_leak_period.json +++ b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/filter_by_leak_period.json @@ -1,7 +1,4 @@ { - "total": 1, - "p": 1, - "ps": 100, "paging": { "pageIndex": 1, "pageSize": 100, diff --git a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/filter_by_leak_period_has_no_effect_on_prs.json b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/filter_by_leak_period_has_no_effect_on_prs.json index f54458ec29a..2fe198d8f3f 100644 --- a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/filter_by_leak_period_has_no_effect_on_prs.json +++ b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/filter_by_leak_period_has_no_effect_on_prs.json @@ -1,7 +1,4 @@ { - "total": 2, - "p": 1, - "ps": 100, "paging": { "pageIndex": 1, "pageSize": 100, diff --git a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/filter_by_main_scope.json b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/filter_by_main_scope.json index 740f756f398..43ceaf9a40a 100644 --- a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/filter_by_main_scope.json +++ b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/filter_by_main_scope.json @@ -1,7 +1,4 @@ { - "total": 2, - "p": 1, - "ps": 100, "paging": { "pageIndex": 1, "pageSize": 100, diff --git a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/filter_by_main_scope_2.json b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/filter_by_main_scope_2.json index b5945de7c84..7f6f8799555 100644 --- a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/filter_by_main_scope_2.json +++ b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/filter_by_main_scope_2.json @@ -1,7 +1,4 @@ { - "total": 2, - "p": 1, - "ps": 100, "paging": { "pageIndex": 1, "pageSize": 100, diff --git a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/filter_by_test_scope.json b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/filter_by_test_scope.json index e87cfca059d..139d8801972 100644 --- a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/filter_by_test_scope.json +++ b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/filter_by_test_scope.json @@ -1,7 +1,4 @@ { - "total": 1, - "p": 1, - "ps": 100, "paging": { "pageIndex": 1, "pageSize": 100, diff --git a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/no_issue.json b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/no_issue.json index 5d7390f509e..b7fb469ac21 100644 --- a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/no_issue.json +++ b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/no_issue.json @@ -1,5 +1,4 @@ { - "total": 0, "issues": [], "paging": { "pageIndex": 1, diff --git a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/paging.json b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/paging.json index e9042aabbe7..f996885b3cd 100644 --- a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/paging.json +++ b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/paging.json @@ -1,7 +1,4 @@ { - "total": 12, - "p": 2, - "ps": 9, "paging": { "pageIndex": 2, "pageSize": 9, diff --git a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/result_for_rule_search.json b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/result_for_rule_search.json index 964d722b8de..39a61addd16 100644 --- a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/result_for_rule_search.json +++ b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/result_for_rule_search.json @@ -1,7 +1,4 @@ { - "total": 1, - "p": 1, - "ps": 100, "paging": { "pageIndex": 1, "pageSize": 100, diff --git a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/search_by_variants_with_facets.json b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/search_by_variants_with_facets.json index 3798206a378..057955f0368 100644 --- a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/search_by_variants_with_facets.json +++ b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/issue/ws/SearchActionIT/search_by_variants_with_facets.json @@ -1,7 +1,4 @@ { - "total": 3, - "p": 1, - "ps": 100, "paging": { "pageIndex": 1, "pageSize": 100, diff --git a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/qualityprofile/ws/ChangelogActionIT/changelog_example.json b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/qualityprofile/ws/ChangelogActionIT/changelog_example.json deleted file mode 100644 index c40c1bb7f32..00000000000 --- a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/qualityprofile/ws/ChangelogActionIT/changelog_example.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "total": 3, - "ps": 10, - "p": 1, - "paging": { - "pageSize": 10, - "total": 3, - "pageIndex": 1 - }, - "events": [ - { - "date" : "2015-02-23T17:58:39+0100", - "action" : "ACTIVATED", - "authorLogin" : "anakin.skywalker", - "authorName" : "Anakin Skywalker", - "ruleKey" : "java:S2438", - "ruleName" : "\"Threads\" should not be used where \"Runnables\" are expected", - "params" : { - "severity" : "CRITICAL" - } - }, - { - "date" : "2015-02-23T17:58:18+0100", - "action" : "DEACTIVATED", - "authorLogin" : "padme.amidala", - "authorName" : "Padme Amidala", - "ruleKey" : "java:S2162", - "ruleName" : "\"equals\" methods should be symmetric and work for subclasses" - }, - { - "action" : "ACTIVATED", - "authorLogin" : "obiwan.kenobi", - "authorName" : "Obiwan Kenobi", - "ruleKey" : "java:S00101", - "ruleName" : "Class names should comply with a naming convention", - "date" : "2014-09-12T15:20:46+0200", - "params" : { - "severity" : "MAJOR", - "format" : "^[A-Z][a-zA-Z0-9]*$" - } - } - ] -} diff --git a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/rule/ws/SearchActionIT/paging.json b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/rule/ws/SearchActionIT/paging.json index e9042aabbe7..f996885b3cd 100644 --- a/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/rule/ws/SearchActionIT/paging.json +++ b/server/sonar-webserver-webapi/src/it/resources/org/sonar/server/rule/ws/SearchActionIT/paging.json @@ -1,7 +1,4 @@ { - "total": 12, - "p": 2, - "ps": 9, "paging": { "pageIndex": 2, "pageSize": 9, diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/SearchAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/SearchAction.java index 674c74cca2e..e09c0347ba4 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/SearchAction.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/SearchAction.java @@ -194,6 +194,7 @@ public class SearchAction implements IssuesWsAction { + "
When issue indexation is in progress returns 503 service unavailable HTTP code.") .setSince("3.6") .setChangelog( + new Change("10.2", "Response fields 'total', 's', 'ps' dropped"), new Change("10.2", format("Parameter '%s' renamed to '%s'", PARAM_COMPONENT_KEYS, PARAM_COMPONENTS)), new Change("10.1", "Add the 'codeVariants' parameter, facet and response field"), new Change("10.0", "Parameter 'sansTop25' is deprecated"), diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/SearchResponseFormat.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/SearchResponseFormat.java index 3622343ea1b..1e769addf39 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/SearchResponseFormat.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/issue/ws/SearchResponseFormat.java @@ -101,7 +101,7 @@ public class SearchResponseFormat { SearchWsResponse formatSearch(Set fields, SearchResponseData data, Paging paging, Facets facets) { SearchWsResponse.Builder response = SearchWsResponse.newBuilder(); - formatPaging(paging, response); + response.setPaging(formatPaging(paging)); ofNullable(data.getEffortTotal()).ifPresent(response::setEffortTotal); response.addAllIssues(createIssues(fields, data)); response.addAllComponents(formatComponents(data)); @@ -142,13 +142,6 @@ public class SearchResponseFormat { return response.build(); } - private static void formatPaging(Paging paging, SearchWsResponse.Builder response) { - response.setP(paging.pageIndex()); - response.setPs(paging.pageSize()); - response.setTotal(paging.total()); - response.setPaging(formatPaging(paging)); - } - private static Common.Paging.Builder formatPaging(Paging paging) { return Common.Paging.newBuilder() .setPageIndex(paging.pageIndex()) diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ChangelogAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ChangelogAction.java index 57b3a8b902b..d04088c192b 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ChangelogAction.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/qualityprofile/ws/ChangelogAction.java @@ -70,6 +70,7 @@ public class ChangelogAction implements QProfileWsAction { .setDescription("Get the history of changes on a quality profile: rule activation/deactivation, change in parameters/severity. " + "Events are ordered by date in descending order (most recent first).") .setChangelog( + new org.sonar.api.server.ws.Change("10.2", "Response fields 'total', 's', 'ps' dropped"), new org.sonar.api.server.ws.Change("9.8", "response fields 'total', 's', 'ps' have been deprecated, please use 'paging' object instead"), new org.sonar.api.server.ws.Change("9.8", "The field 'paging' has been added to the response")) .setHandler(this) @@ -144,11 +145,6 @@ public class ChangelogAction implements QProfileWsAction { Map usersByUuid, Map rulesByRuleUuids) { json.beginObject(); writePaging(json, total, page, pageSize); - json.name("paging").beginObject() - .prop("pageIndex", page) - .prop("pageSize", pageSize) - .prop("total", total) - .endObject(); json.name("events").beginArray(); changelogs.forEach(change -> { JsonWriter changeWriter = json.beginObject(); @@ -183,14 +179,12 @@ public class ChangelogAction implements QProfileWsAction { json.endObject(); } - /** - * @deprecated since 9.8 - replaced by 'paging' object structure. - */ - @Deprecated(since = "9.8") private static void writePaging(JsonWriter json, int total, int page, int pageSize) { - json.prop("total", total); - json.prop(Param.PAGE, page); - json.prop(Param.PAGE_SIZE, pageSize); + json.name("paging").beginObject() + .prop("pageIndex", page) + .prop("pageSize", pageSize) + .prop("total", total) + .endObject(); } /** diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/SearchAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/SearchAction.java index 8f52faa0822..2e406da2d2f 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/SearchAction.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/SearchAction.java @@ -165,7 +165,8 @@ public class SearchAction implements RulesWsAction { new Change("10.0", "The value 'debtRemFn' for the 'f' parameter has been deprecated, use 'remFn' instead"), new Change("10.0", "The value 'defaultDebtRemFn' for the 'f' parameter has been deprecated, use 'defaultRemFn' instead"), new Change("10.0", "The value 'sansTop25' for the parameter 'facets' has been deprecated"), - new Change("10.0", "Parameter 'sansTop25' is deprecated") + new Change("10.0", "Parameter 'sansTop25' is deprecated"), + new Change("10.2", "Response fields 'total', 's', 'ps' dropped") ); action.createParam(FACETS) @@ -203,7 +204,7 @@ public class SearchAction implements RulesWsAction { private SearchResponse buildResponse(DbSession dbSession, SearchRequest request, SearchOptions context, SearchResult result, RuleQuery query) { SearchResponse.Builder responseBuilder = SearchResponse.newBuilder(); - writeStatistics(responseBuilder, result, context); + writePaging(responseBuilder, result, context); doContextResponse(dbSession, request, result, responseBuilder, query); if (!context.getFacets().isEmpty()) { writeFacets(responseBuilder, request, context, result); @@ -211,10 +212,7 @@ public class SearchAction implements RulesWsAction { return responseBuilder.build(); } - private static void writeStatistics(SearchResponse.Builder response, SearchResult searchResult, SearchOptions context) { - response.setTotal(searchResult.total); - response.setP(context.getPage()); - response.setPs(context.getLimit()); + private static void writePaging(SearchResponse.Builder response, SearchResult searchResult, SearchOptions context) { response.setPaging(formatPaging(searchResult.total, context.getPage(), context.getLimit())); } diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/UsersAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/UsersAction.java index 01fc9477cfd..b08e76f2596 100644 --- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/UsersAction.java +++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/usergroups/ws/UsersAction.java @@ -76,6 +76,7 @@ public class UsersAction implements UserGroupsWsAction { .addSearchQuery("freddy", "names", "logins") .addPagingParams(25) .setChangelog( + new Change("10.2", "Response fields 'total', 's', 'ps' dropped"), new Change("10.0", "Field 'managed' added to the payload."), new Change("10.0", "Parameter 'id' is removed. Use 'name' instead."), new Change("9.8", "response fields 'total', 's', 'ps' have been deprecated, please use 'paging' object instead."), @@ -111,11 +112,6 @@ public class UsersAction implements UserGroupsWsAction { json.beginObject(); writeMembers(json, users, userUuidToIsManaged); writePaging(json, paging); - json.name("paging").beginObject() - .prop("pageIndex", page) - .prop("pageSize", pageSize) - .prop("total", total) - .endObject(); json.endObject(); } } @@ -138,14 +134,12 @@ public class UsersAction implements UserGroupsWsAction { json.endArray(); } - /** - * @deprecated since 9.8 - replaced by 'paging' object structure. - */ - @Deprecated(since = "9.8") private static void writePaging(JsonWriter json, Paging paging) { - json.prop(Param.PAGE, paging.pageIndex()) - .prop(Param.PAGE_SIZE, paging.pageSize()) - .prop("total", paging.total()); + json.name("paging").beginObject() + .prop("pageIndex", paging.pageIndex()) + .prop("pageSize", paging.pageSize()) + .prop("total", paging.total()) + .endObject(); } private static String getMembership(String selected) { diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/rule/DefaultActiveRulesLoader.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/rule/DefaultActiveRulesLoader.java index 5768377de8e..6c1766f54e3 100644 --- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/rule/DefaultActiveRulesLoader.java +++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/rule/DefaultActiveRulesLoader.java @@ -63,9 +63,9 @@ public class DefaultActiveRulesLoader implements ActiveRulesLoader { SearchResponse response = loadFromStream(wsClient.call(getRequest).contentStream()); List pageRules = readPage(response); ruleList.addAll(pageRules); - loaded += response.getPs(); + loaded += response.getPaging().getPageSize(); - if (response.getTotal() <= loaded) { + if (response.getPaging().getTotal() <= loaded) { break; } page++; diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/DefaultActiveRulesLoaderTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/DefaultActiveRulesLoaderTest.java index 60b19337d23..059a0efbe8d 100644 --- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/DefaultActiveRulesLoaderTest.java +++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/rule/DefaultActiveRulesLoaderTest.java @@ -33,6 +33,7 @@ import org.sonar.api.utils.MessageException; import org.sonar.scanner.WsTestUtil; import org.sonar.scanner.bootstrap.DefaultScannerWsClient; import org.sonar.scanner.scan.branch.BranchConfiguration; +import org.sonarqube.ws.Common; import org.sonarqube.ws.Rules; import org.sonarqube.ws.Rules.Active; import org.sonarqube.ws.Rules.ActiveList; @@ -137,8 +138,7 @@ public class DefaultActiveRulesLoaderTest { }); rules.setActives(actives); - rules.setPs(numberOfRules); - rules.setTotal(total); + rules.setPaging(Common.Paging.newBuilder().setPageSize(numberOfRules).setTotal(total)); return new ByteArrayInputStream(rules.build().toByteArray()); } @@ -156,8 +156,7 @@ public class DefaultActiveRulesLoaderTest { }); rules.setActives(actives); - rules.setPs(3); - rules.setTotal(3); + rules.setPaging(Common.Paging.newBuilder().setPageSize(3).setTotal(3)); return new ByteArrayInputStream(rules.build().toByteArray()); } } diff --git a/sonar-ws/src/main/protobuf/ws-issues.proto b/sonar-ws/src/main/protobuf/ws-issues.proto index d545fe7e75d..aa88ec34083 100644 --- a/sonar-ws/src/main/protobuf/ws-issues.proto +++ b/sonar-ws/src/main/protobuf/ws-issues.proto @@ -29,9 +29,9 @@ option optimize_for = SPEED; // Response of GET api/issues/search message SearchWsResponse { reserved 5; - optional int64 total = 1 [deprecated=true]; - optional int64 p = 2 [deprecated=true]; - optional int32 ps = 3 [deprecated=true]; + reserved 1; + reserved 2; + reserved 3; optional sonarqube.ws.commons.Paging paging = 4; // Total amount of effort, only when the facet "total" is enabled diff --git a/sonar-ws/src/main/protobuf/ws-rules.proto b/sonar-ws/src/main/protobuf/ws-rules.proto index e1e242b8b81..2e68e4c0766 100644 --- a/sonar-ws/src/main/protobuf/ws-rules.proto +++ b/sonar-ws/src/main/protobuf/ws-rules.proto @@ -41,10 +41,9 @@ message ListResponse { // WS api/rules/search message SearchResponse { - optional int64 total = 1 [deprecated=true]; - optional int32 p = 2 [deprecated=true]; - optional int64 ps = 3 [deprecated=true]; - + reserved 1; + reserved 2; + reserved 3; repeated Rule rules = 4; optional Actives actives = 5; optional QProfiles qProfiles = 6; -- 2.39.5