From: Julien Lancelot Date: Fri, 11 May 2018 14:28:59 +0000 (+0200) Subject: SONAR-10659 Drop support of sort by assignee in api/issues/search X-Git-Tag: 7.5~1157 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=11c567859c646bc3202e6ca15f2c8f53e928d633;p=sonarqube.git SONAR-10659 Drop support of sort by assignee in api/issues/search --- diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/IssueQuery.java b/server/sonar-server/src/main/java/org/sonar/server/issue/IssueQuery.java index 158e08d6f0d..33ce0641785 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/IssueQuery.java +++ b/server/sonar-server/src/main/java/org/sonar/server/issue/IssueQuery.java @@ -41,6 +41,10 @@ public class IssueQuery { public static final String SORT_BY_CREATION_DATE = "CREATION_DATE"; public static final String SORT_BY_UPDATE_DATE = "UPDATE_DATE"; public static final String SORT_BY_CLOSE_DATE = "CLOSE_DATE"; + /** + * @deprecated since 7.2, it's no more possible to sort by assignee + */ + @Deprecated public static final String SORT_BY_ASSIGNEE = "ASSIGNEE"; public static final String SORT_BY_SEVERITY = "SEVERITY"; public static final String SORT_BY_STATUS = "STATUS"; diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/IssuesFinderSort.java b/server/sonar-server/src/main/java/org/sonar/server/issue/IssuesFinderSort.java index bb0a983abd1..21004ab49da 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/IssuesFinderSort.java +++ b/server/sonar-server/src/main/java/org/sonar/server/issue/IssuesFinderSort.java @@ -51,9 +51,6 @@ class IssuesFinderSort { } private static IssueProcessor getIssueProcessor(String sort) { - if (IssueQuery.SORT_BY_ASSIGNEE.equals(sort)) { - return new AssigneeSortIssueProcessor(); - } if (IssueQuery.SORT_BY_SEVERITY.equals(sort)) { return new SeveritySortIssueProcessor(); } @@ -106,13 +103,6 @@ class IssuesFinderSort { } } - static class AssigneeSortIssueProcessor extends TextSortIssueProcessor { - @Override - String sortField(IssueDto issueDto) { - return issueDto.getAssigneeUuid(); - } - } - static class StatusSortIssueProcessor extends TextSortIssueProcessor { @Override String sortField(IssueDto issueDto) { diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueIndex.java b/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueIndex.java index 33edb48eda6..b5052c0177e 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueIndex.java +++ b/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueIndex.java @@ -164,7 +164,6 @@ public class IssueIndex { this.authorizationTypeSupport = authorizationTypeSupport; this.sorting = new Sorting(); - this.sorting.add(IssueQuery.SORT_BY_ASSIGNEE, IssueIndexDefinition.FIELD_ISSUE_ASSIGNEE_UUID); this.sorting.add(IssueQuery.SORT_BY_STATUS, IssueIndexDefinition.FIELD_ISSUE_STATUS); this.sorting.add(IssueQuery.SORT_BY_SEVERITY, IssueIndexDefinition.FIELD_ISSUE_SEVERITY_VALUE); this.sorting.add(IssueQuery.SORT_BY_CREATION_DATE, IssueIndexDefinition.FIELD_ISSUE_FUNC_CREATED_AT); diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/ws/SearchAction.java b/server/sonar-server/src/main/java/org/sonar/server/issue/ws/SearchAction.java index 6a876105946..5fe1c04436f 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/ws/SearchAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/issue/ws/SearchAction.java @@ -75,6 +75,7 @@ import static java.util.stream.Collectors.toList; import static org.sonar.api.utils.Paging.forPageIndex; import static org.sonar.core.util.stream.MoreCollectors.toSet; import static org.sonar.server.es.SearchOptions.MAX_LIMIT; +import static org.sonar.server.issue.IssueQuery.SORT_BY_ASSIGNEE; import static org.sonar.server.issue.IssueQueryFactory.UNKNOWN; import static org.sonar.server.ws.KeyExamples.KEY_BRANCH_EXAMPLE_001; import static org.sonar.server.ws.KeyExamples.KEY_PROJECT_EXAMPLE_001; @@ -171,7 +172,8 @@ public class SearchAction implements IssuesWsAction { new Change("5.5", "response fields 'reporter' and 'actionPlan' are removed (drop of action plan and manual issue features)"), new Change("5.5", "parameters 'reporters', 'actionPlans' and 'planned' are dropped and therefore ignored (drop of action plan and manual issue features)"), new Change("5.5", "response field 'debt' is renamed 'effort'"), - new Change("7.2", "response field 'externalRuleEngine' added to issues that have been imported from an external rule engine")) + new Change("7.2", "response field 'externalRuleEngine' added to issues that have been imported from an external rule engine"), + new Change("7.2", format("value '%s' in parameter '%s' is deprecated, it won't have any effect", SORT_BY_ASSIGNEE, Param.SORT))) .setResponseExample(getClass().getResource("search-example.json")); action.addPagingParams(100, MAX_LIMIT); diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/IssueQueryTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/IssueQueryTest.java index 27cff17506e..1dbec620265 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/issue/IssueQueryTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/issue/IssueQueryTest.java @@ -60,7 +60,7 @@ public class IssueQueryTest { .createdBefore(new Date()) .createdAt(new Date()) .resolved(true) - .sort(IssueQuery.SORT_BY_ASSIGNEE) + .sort(IssueQuery.SORT_BY_CREATION_DATE) .asc(true) .build(); assertThat(query.issueKeys()).containsOnly("ABCDE"); @@ -83,7 +83,7 @@ public class IssueQueryTest { assertThat(query.createdBefore()).isNotNull(); assertThat(query.createdAt()).isNotNull(); assertThat(query.resolved()).isTrue(); - assertThat(query.sort()).isEqualTo(IssueQuery.SORT_BY_ASSIGNEE); + assertThat(query.sort()).isEqualTo(IssueQuery.SORT_BY_CREATION_DATE); assertThat(query.asc()).isTrue(); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/IssuesFinderSortTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/IssuesFinderSortTest.java index 675bb1e771a..93f4380b47e 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/issue/IssuesFinderSortTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/issue/IssuesFinderSortTest.java @@ -32,26 +32,6 @@ import static org.mockito.Mockito.when; public class IssuesFinderSortTest { - @Test - public void should_sort_by_assignee() { - IssueDto issue1 = new IssueDto().setId(1L).setAssigneeUuid("perceval"); - IssueDto issue2 = new IssueDto().setId(2L).setAssigneeUuid("arthur"); - IssueDto issue3 = new IssueDto().setId(3L).setAssigneeUuid("vincent"); - IssueDto issue4 = new IssueDto().setId(4L).setAssigneeUuid(null); - List dtoList = newArrayList(issue1, issue2, issue3, issue4); - - IssueQuery query = IssueQuery.builder().sort(IssueQuery.SORT_BY_ASSIGNEE).asc(true).build(); - IssuesFinderSort issuesFinderSort = new IssuesFinderSort(dtoList, query); - - List result = newArrayList(issuesFinderSort.sort()); - - assertThat(result).hasSize(4); - assertThat(result.get(0).getAssigneeUuid()).isEqualTo("arthur"); - assertThat(result.get(1).getAssigneeUuid()).isEqualTo("perceval"); - assertThat(result.get(2).getAssigneeUuid()).isEqualTo("vincent"); - assertThat(result.get(3).getAssigneeUuid()).isNull(); - } - @Test public void should_sort_by_status() { IssueDto issue1 = new IssueDto().setId(1L).setStatus("CLOSED"); diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexTest.java index 9e0807aaa25..0c2060e8a05 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexTest.java @@ -989,22 +989,6 @@ public class IssueIndexTest { assertThatSearchReturnsOnly(query, "I1", "I4", "I5", "I3", "I2"); } - @Test - public void sort_by_assignee() { - ComponentDto project = newPrivateProjectDto(newOrganizationDto()); - ComponentDto file = newFileDto(project, null); - - indexIssues( - newDoc("I1", file).setAssigneeUuid("steph-uuid"), - newDoc("I2", file).setAssigneeUuid("marcel-uuid")); - - IssueQuery.Builder query = IssueQuery.builder().sort(IssueQuery.SORT_BY_ASSIGNEE).asc(true); - assertThatSearchReturnsOnly(query, "I2", "I1"); - - query = IssueQuery.builder().sort(IssueQuery.SORT_BY_ASSIGNEE).asc(false); - assertThatSearchReturnsOnly(query, "I1", "I2"); - } - @Test public void sort_by_creation_date() { ComponentDto project = newPrivateProjectDto(newOrganizationDto());