]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5287 Improve "/api/sources/show"
authorJulien Lancelot <julien.lancelot@sonarsource.com>
Mon, 12 May 2014 15:44:03 +0000 (17:44 +0200)
committerJulien Lancelot <julien.lancelot@sonarsource.com>
Mon, 12 May 2014 15:46:18 +0000 (17:46 +0200)
sonar-server/src/main/java/org/sonar/server/source/ws/ScmWriter.java
sonar-server/src/main/java/org/sonar/server/source/ws/ShowAction.java
sonar-server/src/main/resources/org/sonar/server/source/ws/scm-example-show.json
sonar-server/src/test/java/org/sonar/server/source/ws/ScmWriterTest.java

index d00b837c3659aedc1e4a9dbf403bd03519e46c84..38137894c007507d454b8970d0666a394eda1635 100644 (file)
@@ -25,6 +25,7 @@ import org.sonar.api.utils.DateUtils;
 import org.sonar.api.utils.text.JsonWriter;
 
 import javax.annotation.Nullable;
+
 import java.util.Collections;
 import java.util.List;
 
@@ -33,7 +34,7 @@ import static com.google.common.collect.Lists.newArrayList;
 public class ScmWriter implements ServerComponent {
 
   void write(@Nullable String authorsData, @Nullable String datesDate, int from, int to, boolean group, JsonWriter json) {
-    json.name("scm").beginObject();
+    json.name("scm").beginArray();
     if (authorsData != null) {
       List<String> authors = splitLine(authorsData);
       List<String> dates = splitLine(datesDate);
@@ -51,7 +52,8 @@ public class ScmWriter implements ServerComponent {
         String formattedDate = DateUtils.formatDate(DateUtils.parseDateTime(date));
         if (line >= from && line <= to) {
           if (!started || !group || !isSameCommit(date, previousDate, author, previousAuthor)) {
-            json.name(Integer.toString(line)).beginArray();
+            json.beginArray();
+            json.value(line);
             json.value(author);
             json.value(formattedDate);
             json.endArray();
@@ -62,7 +64,7 @@ public class ScmWriter implements ServerComponent {
         previousDate = date;
       }
     }
-    json.endObject();
+    json.endArray();
   }
 
   private List<String> splitLine(@Nullable String line) {
index 7b54a4cbc8b27cd073ab663f73736981e0cc1f1d..cd2f7d4425546797d9396bbe4947b22521cd60a1 100644 (file)
@@ -41,7 +41,7 @@ public class ShowAction implements RequestHandler {
 
   void define(WebService.NewController controller) {
     WebService.NewAction action = controller.createAction("show")
-      .setDescription("Get source code. Parameter 'output' with value 'raw' is missing before being marked as a public WS")
+      .setDescription("Get source code")
       .setSince("4.4")
       .setResponseExample(Resources.getResource(getClass(), "show-example-show.json"))
       .setHandler(this);
index 54e9187c2cc2d102333a17dd7114fb392d68295f..513f3e4a17f58912b1087843b42b6aeb407ccbf5 100644 (file)
@@ -1,7 +1,7 @@
 {
-  "scm": {
-    "1": ["julien", "2013-03-13"],
-    "2": ["julien", "2013-03-13"],
-    "3": ["simon", "2014-01-01"]
-  }
+  "scm": [
+    [1, "julien", "2013-03-13"],
+    [2, "julien", "2013-03-14"],
+    [3, "simon", "2014-01-01"]
+  ]
 }
index 381801282437fa3e243d393071e2ad0963d192b8..62ce9715788d0dc11c3542cad001def9458066a3 100644 (file)
@@ -34,7 +34,7 @@ public class ScmWriterTest {
   public void write_authors_and_dates() throws Exception {
     // same commit on lines 1 and 2
     test("1=julien;2=julien;3=simon;", "1=2013-03-13T16:22:31+0100;2=2013-03-13T16:22:31+0100;3=2014-01-01T16:22:31+0100;", 1, Integer.MAX_VALUE, false,
-      "{\"scm\": {\"1\": [\"julien\", \"2013-03-13\"], \"2\": [\"julien\", \"2013-03-13\"], \"3\": [\"simon\", \"2014-01-01\"]}}");
+      "{\"scm\": [[1, \"julien\", \"2013-03-13\"], [2, \"julien\", \"2013-03-13\"], [3, \"simon\", \"2014-01-01\"]]}");
   }
 
   @Test
@@ -42,9 +42,9 @@ public class ScmWriterTest {
     String authors = "1=julien;2=simon;";
     String dates = "1=2013-03-13T16:22:31+0100;2=2014-01-01T16:22:31+0100;";
 
-    test(authors, dates, 2, 200, false, "{\"scm\": {\"2\": [\"simon\", \"2014-01-01\"]}}");
-    test(authors, dates, 3, 5, false, "{\"scm\": {}}");
-    test(authors, dates, -2, 1, false, "{\"scm\": {\"1\": [\"julien\", \"2013-03-13\"]}}");
+    test(authors, dates, 2, 200, false, "{\"scm\": [[2, \"simon\", \"2014-01-01\"]]}");
+    test(authors, dates, 3, 5, false, "{\"scm\": []}");
+    test(authors, dates, -2, 1, false, "{\"scm\": [[1, \"julien\", \"2013-03-13\"]]}");
   }
 
   @Test
@@ -54,13 +54,13 @@ public class ScmWriterTest {
     String dates = "1=2013-03-13T16:22:31+0100;2=2013-03-13T16:22:31+0100;3=2013-03-14T16:22:31+0100;4=2014-01-01T16:22:31+0100";
 
     test(authors, dates, 1, Integer.MAX_VALUE, true,
-      "{\"scm\": {\"1\": [\"julien\", \"2013-03-13\"], \"3\": [\"julien\", \"2013-03-14\"], \"4\": [\"simon\", \"2014-01-01\"]}}");
+      "{\"scm\": [[1, \"julien\", \"2013-03-13\"], [3, \"julien\", \"2013-03-14\"], [4, \"simon\", \"2014-01-01\"]]}");
 
     test(authors, dates, 2, 4, true,
-      "{\"scm\": {\"2\": [\"julien\", \"2013-03-13\"], \"3\": [\"julien\", \"2013-03-14\"], \"4\": [\"simon\", \"2014-01-01\"]}}");
+      "{\"scm\": [[2, \"julien\", \"2013-03-13\"], [3, \"julien\", \"2013-03-14\"], [4, \"simon\", \"2014-01-01\"]]}");
 
-    test(authors, dates, 1, 2, true, "{\"scm\": {\"1\": [\"julien\", \"2013-03-13\"]}}");
-    test(authors, dates, 10, 20, true, "{\"scm\": {}}");
+    test(authors, dates, 1, 2, true, "{\"scm\": [[1, \"julien\", \"2013-03-13\"]]}");
+    test(authors, dates, 10, 20, true, "{\"scm\": []}");
   }