]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-10659 Drop support of sort by assignee in api/issues/search
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Fri, 11 May 2018 14:28:59 +0000 (16:28 +0200)
committerSonarTech <sonartech@sonarsource.com>
Wed, 23 May 2018 18:20:48 +0000 (20:20 +0200)
server/sonar-server/src/main/java/org/sonar/server/issue/IssueQuery.java
server/sonar-server/src/main/java/org/sonar/server/issue/IssuesFinderSort.java
server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueIndex.java
server/sonar-server/src/main/java/org/sonar/server/issue/ws/SearchAction.java
server/sonar-server/src/test/java/org/sonar/server/issue/IssueQueryTest.java
server/sonar-server/src/test/java/org/sonar/server/issue/IssuesFinderSortTest.java
server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexTest.java

index 158e08d6f0de9fef5f91dd602a71f77435c662dd..33ce064178533038c0ce3eec996ad3ee8faf8e0b 100644 (file)
@@ -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";
index bb0a983abd18db6a3d21849bb4c4f4f1d86f869f..21004ab49da183ec0a5d8bc63ed8a728b71576a9 100644 (file)
@@ -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) {
index 33edb48eda62cf7bf7e19b29faf835e41260621c..b5052c0177ef35455524d1af63277738e967034d 100644 (file)
@@ -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);
index 6a8761059461ac7cfa11994bf9ed4231c699e7db..5fe1c04436f760cb0b96c09b7a3b3d539f76cfa3 100644 (file)
@@ -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);
index 27cff17506e77bd0be82212dbf3b66c4b679a20e..1dbec620265f51f7b91064ad1c21dfc7ac01b313 100644 (file)
@@ -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();
   }
 
index 675bb1e771a3a321cb895b822cc8427592c55fa0..93f4380b47eea47992cddd48447a39f752f527d5 100644 (file)
@@ -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<IssueDto> 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<IssueDto> 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");
index 9e0807aaa2514fe44559a58576b577c8e48ecc60..0c2060e8a05837655391f59c4125e09c282d34ef 100644 (file)
@@ -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());