]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-3755 Rename key by issueKey in IssueQuery
authorJulien Lancelot <julien.lancelot@gmail.com>
Mon, 29 Apr 2013 13:02:39 +0000 (15:02 +0200)
committerJulien Lancelot <julien.lancelot@gmail.com>
Mon, 29 Apr 2013 13:02:39 +0000 (15:02 +0200)
13 files changed:
sonar-core/src/main/resources/org/sonar/core/issue/db/IssueMapper.xml
sonar-core/src/test/java/org/sonar/core/issue/db/IssueDaoTest.java
sonar-plugin-api/src/main/java/org/sonar/api/issue/IssueQuery.java
sonar-plugin-api/src/test/java/org/sonar/api/issue/IssueQueryTest.java
sonar-server/src/main/java/org/sonar/server/issue/JRubyApiIssues.java
sonar-server/src/main/webapp/WEB-INF/app/controllers/issue_controller.rb
sonar-server/src/test/java/org/sonar/server/issue/JRubyApiIssuesTest.java
sonar-ws-client/src/main/java/org/sonar/wsclient/issue/DefaultIssueClient.java
sonar-ws-client/src/main/java/org/sonar/wsclient/issue/IssueClient.java
sonar-ws-client/src/main/java/org/sonar/wsclient/issue/IssueQuery.java
sonar-ws-client/src/main/java/org/sonar/wsclient/issue/IssueTransition.java [deleted file]
sonar-ws-client/src/test/java/org/sonar/wsclient/issue/DefaultIssueClientTest.java
sonar-ws-client/src/test/java/org/sonar/wsclient/issue/IssueQueryTest.java

index 73c8013715eb14063947aa121d7f8cb9817a1689..1bd983329b0b56b9d9910217ed7d10f5f3d09f5f 100644 (file)
         </foreach>
         and i.resource_id=project_component.id
       </if>
-      <if test="keys != null">
+      <if test="issueKeys != null">
         and i.kee in
-        <foreach item="key" index="index" collection="keys" open="(" separator="," close=")">#{key}
+        <foreach item="key" index="index" collection="issueKeys" open="(" separator="," close=")">#{key}
         </foreach>
       </if>
       <if test="severities != null">
index 965a8195d1eddee432b39d41881482f500000aad..6330ce885cd66095351403fe13bccd0c410843b5 100644 (file)
@@ -25,8 +25,6 @@ import org.junit.Test;
 import org.sonar.api.issue.IssueQuery;
 import org.sonar.api.rule.RuleKey;
 import org.sonar.api.utils.DateUtils;
-import org.sonar.core.issue.db.IssueDao;
-import org.sonar.core.issue.db.IssueDto;
 import org.sonar.core.persistence.AbstractDaoTestCase;
 
 import java.util.Collection;
@@ -140,7 +138,7 @@ public class IssueDaoTest extends AbstractDaoTestCase {
     setupData("shared", "should_select_by_query");
 
     IssueQuery query = IssueQuery.builder()
-      .keys(newArrayList("ABCDE"))
+      .issueKeys(newArrayList("ABCDE"))
       .userLogins(newArrayList("arthur", "otherguy"))
       .assignees(newArrayList("perceval", "otherguy"))
       .components(newArrayList("Action.java"))
index bffb7cbb0b604c585605cf08248dece69780b8bc..b480b29b39f19d571d4145ae0629560cd1d41e41 100644 (file)
@@ -37,7 +37,7 @@ import java.util.Date;
  */
 public class IssueQuery {
 
-  private final Collection<String> keys;
+  private final Collection<String> issueKeys;
   private final Collection<String> severities;
   private final Collection<String> statuses;
   private final Collection<String> resolutions;
@@ -58,7 +58,7 @@ public class IssueQuery {
   private final int pageIndex;
 
   private IssueQuery(Builder builder) {
-    this.keys = builder.keys;
+    this.issueKeys = builder.issueKeys;
     this.severities = builder.severities;
     this.statuses = builder.statuses;
     this.resolutions = builder.resolutions;
@@ -75,8 +75,8 @@ public class IssueQuery {
     this.pageIndex = builder.pageIndex;
   }
 
-  public Collection<String> keys() {
-    return keys;
+  public Collection<String> issueKeys() {
+    return issueKeys;
   }
 
   public Collection<String> severities() {
@@ -158,7 +158,7 @@ public class IssueQuery {
     private static final int MAX_PAGE_SIZE = 1000;
     private static final int DEFAULT_PAGE_INDEX = 1;
 
-    private Collection<String> keys;
+    private Collection<String> issueKeys;
     private Collection<String> severities;
     private Collection<String> statuses;
     private Collection<String> resolutions;
@@ -177,8 +177,8 @@ public class IssueQuery {
     private Builder() {
     }
 
-    public Builder keys(Collection<String> l) {
-      this.keys = l;
+    public Builder issueKeys(Collection<String> l) {
+      this.issueKeys = l;
       return this;
     }
 
index 9d8a9adbdcce997ebc32f264f64a4465dd708953..484119de21dddfcae3e055a21dfed427a83db1e2 100644 (file)
@@ -34,7 +34,7 @@ public class IssueQueryTest {
   @Test
   public void should_build_query() throws Exception {
     IssueQuery query = IssueQuery.builder()
-      .keys(Lists.newArrayList("ABCDE"))
+      .issueKeys(Lists.newArrayList("ABCDE"))
       .severities(Lists.newArrayList(Severity.BLOCKER))
       .statuses(Lists.newArrayList(Issue.STATUS_RESOLVED))
       .resolutions(Lists.newArrayList(Issue.RESOLUTION_FALSE_POSITIVE))
@@ -49,7 +49,7 @@ public class IssueQueryTest {
       .pageSize(10)
       .pageIndex(2)
       .build();
-    assertThat(query.keys()).containsOnly("ABCDE");
+    assertThat(query.issueKeys()).containsOnly("ABCDE");
     assertThat(query.severities()).containsOnly(Severity.BLOCKER);
     assertThat(query.statuses()).containsOnly(Issue.STATUS_RESOLVED);
     assertThat(query.resolutions()).containsOnly(Issue.RESOLUTION_FALSE_POSITIVE);
index 513820ea09979322de7ded1f29d7b6ac421fabb8..6dba7311d733e645109b9c8a435bd4248be3eb3f 100644 (file)
@@ -33,6 +33,7 @@ import org.sonar.api.web.UserRole;
 import org.sonar.server.platform.UserSession;
 
 import javax.annotation.Nullable;
+
 import java.util.Collection;
 import java.util.Date;
 import java.util.List;
@@ -62,7 +63,7 @@ public class JRubyApiIssues implements JRubyIssues {
 
   IssueQuery toQuery(Map<String, Object> props) {
     IssueQuery.Builder builder = IssueQuery.builder();
-    builder.keys(toStrings(props.get("keys")));
+    builder.issueKeys(toStrings(props.get("issueKeys")));
     builder.severities(toStrings(props.get("severities")));
     builder.statuses(toStrings(props.get("statuses")));
     builder.resolutions(toStrings(props.get("resolutions")));
index d8b6e6069d266671a68717c681c46411e397a78b..58a1959683e95577d59bbabb0583c463f789ff94 100644 (file)
@@ -24,7 +24,7 @@ class IssueController < ApplicationController
 
   # Used for the permalink, e.g. http://localhost:9000/issue/view/1
   def view
-    issue_result = find_issues({'keys' => params[:id]})
+    issue_result = find_issues({'issueKeys' => params[:id]})
     if issue_result.issues.length == 1
       @issue = issue_result.issues[0]
       @rule = issue_result.rule(@issue)
index b8468d724276861b61c6d66edd6ef514dd9aa222..55f651ec207f3458f14e16f15e4efeb42b492b7d 100644 (file)
@@ -46,11 +46,11 @@ public class JRubyApiIssuesTest {
 
   @Test
   public void test_find() throws Exception {
-    facade.find(ImmutableMap.<String, Object>of("keys", Lists.newArrayList("ABCDE")));
+    facade.find(ImmutableMap.<String, Object>of("issueKeys", Lists.newArrayList("ABCDE")));
     verify(finder).find(argThat(new ArgumentMatcher<IssueQuery>() {
       @Override
       public boolean matches(Object o) {
-        return ((IssueQuery) o).keys().contains("ABCDE");
+        return ((IssueQuery) o).issueKeys().contains("ABCDE");
       }
     }), anyInt(), eq(UserRole.CODEVIEWER));
   }
@@ -58,7 +58,7 @@ public class JRubyApiIssuesTest {
   @Test
   public void should_create_query_from_parameters() {
     Map<String, Object> map = newHashMap();
-    map.put("keys", newArrayList("ABCDE1234"));
+    map.put("issueKeys", newArrayList("ABCDE1234"));
     map.put("severities", newArrayList("MAJOR", "MINOR"));
     map.put("statuses", newArrayList("CLOSED"));
     map.put("resolutions", newArrayList("FALSE-POSITIVE"));
@@ -73,7 +73,7 @@ public class JRubyApiIssuesTest {
     map.put("pageIndex", 50);
 
     IssueQuery query = new JRubyApiIssues(finder).toQuery(map);
-    assertThat(query.keys()).containsOnly("ABCDE1234");
+    assertThat(query.issueKeys()).containsOnly("ABCDE1234");
     assertThat(query.severities()).containsOnly("MAJOR", "MINOR");
     assertThat(query.statuses()).containsOnly("CLOSED");
     assertThat(query.resolutions()).containsOnly("FALSE-POSITIVE");
index 8069c07174715356f08c091547605d2668885651..d9670513957f368270305256378bea24561174f9 100644 (file)
@@ -31,6 +31,9 @@ import java.util.Map;
  */
 public class DefaultIssueClient implements IssueClient {
 
+  private static final String TRANSITIONS_BASE_URL = "/api/issues/transitions";
+  private static final String DO_TRANSITION_BASE_URL = "/api/issues/do_transition";
+
   private final HttpRequestFactory requestFactory;
   private final IssueParser parser;
 
@@ -55,7 +58,7 @@ public class DefaultIssueClient implements IssueClient {
   public void change(String issueKey, IssueChange change) {
     if (!change.urlParams().isEmpty()) {
       Map<String, Object> queryParams = new LinkedHashMap<String, Object>(change.urlParams());
-      queryParams.put("key", issueKey);
+      queryParams.put("issue", issueKey);
       HttpRequest request = requestFactory.post(IssueChange.BASE_URL, queryParams);
       if (!request.ok()) {
         throw new IllegalStateException("Fail to change issue " + issueKey + ".Bad HTTP response status: " + request.code());
@@ -80,7 +83,7 @@ public class DefaultIssueClient implements IssueClient {
   public List<String> transitions(String issueKey) {
     Map<String, Object> queryParams = new LinkedHashMap<String, Object>();
     queryParams.put("issue", issueKey);
-    HttpRequest request = requestFactory.get("/api/issues/transitions", queryParams);
+    HttpRequest request = requestFactory.get(TRANSITIONS_BASE_URL, queryParams);
     if (!request.ok()) {
       throw new IllegalStateException("Fail to return transition for issue. Bad HTTP response status: " + request.code());
     }
@@ -89,14 +92,13 @@ public class DefaultIssueClient implements IssueClient {
   }
 
   @Override
-  public void transition(String issueKey, IssueTransition transition) {
-    if (!transition.urlParams().isEmpty()) {
-      Map<String, Object> queryParams = new LinkedHashMap<String, Object>(transition.urlParams());
-      queryParams.put("issue", issueKey);
-      HttpRequest request = requestFactory.post(IssueTransition.BASE_URL, queryParams);
-      if (!request.ok()) {
-        throw new IllegalStateException("Fail to execute transition on issue " + issueKey + ".Bad HTTP response status: " + request.code());
-      }
+  public void doTransition(String issueKey, String transition) {
+    Map<String, Object> queryParams = new LinkedHashMap<String, Object>();
+    queryParams.put("issue", issueKey);
+    queryParams.put("transition", transition);
+    HttpRequest request = requestFactory.post(DO_TRANSITION_BASE_URL, queryParams);
+    if (!request.ok()) {
+      throw new IllegalStateException("Fail to execute transition on issue " + issueKey + ".Bad HTTP response status: " + request.code());
     }
   }
 }
index 04845bf5b6a5ccf2f58dbf59a30599428218067d..85c0b86cf3c73a19a133bf50d1a81faf83853833 100644 (file)
@@ -32,10 +32,10 @@ public interface IssueClient {
 
   void create(NewIssue issue);
 
-  void transition(String issueKey, IssueTransition transition);
-
   List<String> transitions(String issueKey);
 
+  void doTransition(String issueKey, String transition);
+
   /**
    * Shortcut for {@code #change(issueKey, IssueChange.create().comment(comment)}
    */
index e4d38dc3bef211049a3bedbb4cf685f0117b112a..dea74706900c0cbff35193849e53d17c3b3f14d4 100644 (file)
@@ -44,8 +44,8 @@ public class IssueQuery {
     return params;
   }
 
-  public IssueQuery keys(String... keys) {
-    return addParam("keys", keys);
+  public IssueQuery issues(String... keys) {
+    return addParam("issues", keys);
   }
 
   public IssueQuery severities(String... severities) {
diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/IssueTransition.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/IssueTransition.java
deleted file mode 100644 (file)
index 24e7f3e..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * SonarQube, open source software quality management tool.
- * Copyright (C) 2008-2013 SonarSource
- * mailto:contact AT sonarsource DOT com
- *
- * SonarQube is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * SonarQube is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-package org.sonar.wsclient.issue;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-/**
- * @since 3.6
- */
-public class IssueTransition {
-  static final String BASE_URL = "/api/issues/do_transition";
-  private final Map<String, Object> params = new LinkedHashMap<String, Object>();
-
-  private IssueTransition() {
-  }
-
-  public static IssueTransition create() {
-    return new IssueTransition();
-  }
-
-  Map<String, Object> urlParams() {
-    return params;
-  }
-
-  /**
-   * Ask to apply a transition
-   */
-  public IssueTransition transition(String s) {
-    params.put("transition", s);
-    return this;
-  }
-
-}
index 18352beac9ea494cd86d6240439b0e0ec069d15d..aa5fbe62a2fc5ae28315ea999a39894871232254 100644 (file)
@@ -39,10 +39,10 @@ public class DefaultIssueClientTest {
     httpServer.doReturnBody("{\"issues\": [{\"key\": \"ABCDE\"}]}");
 
     IssueClient client = new DefaultIssueClient(requestFactory);
-    IssueQuery query = IssueQuery.create().keys("ABCDE");
+    IssueQuery query = IssueQuery.create().issues("ABCDE");
     Issues issues = client.find(query);
 
-    assertThat(httpServer.requestedPath()).isEqualTo("/api/issues/search?keys=ABCDE");
+    assertThat(httpServer.requestedPath()).isEqualTo("/api/issues/search?issues=ABCDE");
     assertThat(issues.list()).hasSize(1);
     assertThat(issues.list().get(0).key()).isEqualTo("ABCDE");
   }
@@ -68,7 +68,7 @@ public class DefaultIssueClientTest {
     IssueClient client = new DefaultIssueClient(requestFactory);
     client.change("ABCDE", IssueChange.create().severity("BLOCKER").comment("because!"));
 
-    assertThat(httpServer.requestedPath()).isEqualTo("/api/issues/change?newSeverity=BLOCKER&comment=because!&key=ABCDE");
+    assertThat(httpServer.requestedPath()).isEqualTo("/api/issues/change?newSeverity=BLOCKER&comment=because!&issue=ABCDE");
   }
 
   @Test
@@ -114,8 +114,8 @@ public class DefaultIssueClientTest {
     HttpRequestFactory requestFactory = new HttpRequestFactory(httpServer.url(), null, null);
 
     IssueClient client = new DefaultIssueClient(requestFactory);
-    client.transition("ABCDE", IssueTransition.create().transition("resolve"));
+    client.doTransition("ABCDE", "resolve");
 
-    assertThat(httpServer.requestedPath()).isEqualTo("/api/issues/do_transition?transition=resolve&issue=ABCDE");
+    assertThat(httpServer.requestedPath()).isEqualTo("/api/issues/do_transition?issue=ABCDE&transition=resolve");
   }
 }
index 4a37fed1e80fc6ef5889aa6dfa97fdf4241e37db..de00cb0af06d259029f25020173ff126be70abbb 100644 (file)
@@ -34,7 +34,7 @@ public class IssueQueryTest {
   @Test
   public void get_all_issues_by_parameter() {
     IssueQuery query = IssueQuery.create()
-      .keys("ABCDE", "FGHIJ")
+      .issues("ABCDE", "FGHIJ")
       .assignees("arthur", "perceval")
       .components("Action.java", "Filter.java")
       .componentRoots("struts")
@@ -49,7 +49,7 @@ public class IssueQueryTest {
       .pageIndex(4);
 
     assertThat(query.urlParams()).hasSize(13);
-    assertThat(query.urlParams()).includes(entry("keys", "ABCDE,FGHIJ"));
+    assertThat(query.urlParams()).includes(entry("issues", "ABCDE,FGHIJ"));
     assertThat(query.urlParams()).includes(entry("assignees", "arthur,perceval"));
     assertThat(query.urlParams()).includes(entry("components", "Action.java,Filter.java"));
     assertThat(query.urlParams()).includes(entry("componentRoots", "struts"));