aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@sonarsource.com>2014-05-12 17:44:03 +0200
committerJulien Lancelot <julien.lancelot@sonarsource.com>2014-05-12 17:46:18 +0200
commitddc3390f81c0e00eba677a24b28f3e46c5b45a50 (patch)
tree9899deef47640902d68616d01874396d12dcc981
parente68949500502b176e986bc1ce8f87d6f6d1bf71d (diff)
downloadsonarqube-ddc3390f81c0e00eba677a24b28f3e46c5b45a50.tar.gz
sonarqube-ddc3390f81c0e00eba677a24b28f3e46c5b45a50.zip
SONAR-5287 Improve "/api/sources/show"
-rw-r--r--sonar-server/src/main/java/org/sonar/server/source/ws/ScmWriter.java8
-rw-r--r--sonar-server/src/main/java/org/sonar/server/source/ws/ShowAction.java2
-rw-r--r--sonar-server/src/main/resources/org/sonar/server/source/ws/scm-example-show.json10
-rw-r--r--sonar-server/src/test/java/org/sonar/server/source/ws/ScmWriterTest.java16
4 files changed, 19 insertions, 17 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/source/ws/ScmWriter.java b/sonar-server/src/main/java/org/sonar/server/source/ws/ScmWriter.java
index d00b837c365..38137894c00 100644
--- a/sonar-server/src/main/java/org/sonar/server/source/ws/ScmWriter.java
+++ b/sonar-server/src/main/java/org/sonar/server/source/ws/ScmWriter.java
@@ -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) {
diff --git a/sonar-server/src/main/java/org/sonar/server/source/ws/ShowAction.java b/sonar-server/src/main/java/org/sonar/server/source/ws/ShowAction.java
index 7b54a4cbc8b..cd2f7d44255 100644
--- a/sonar-server/src/main/java/org/sonar/server/source/ws/ShowAction.java
+++ b/sonar-server/src/main/java/org/sonar/server/source/ws/ShowAction.java
@@ -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);
diff --git a/sonar-server/src/main/resources/org/sonar/server/source/ws/scm-example-show.json b/sonar-server/src/main/resources/org/sonar/server/source/ws/scm-example-show.json
index 54e9187c2cc..513f3e4a17f 100644
--- a/sonar-server/src/main/resources/org/sonar/server/source/ws/scm-example-show.json
+++ b/sonar-server/src/main/resources/org/sonar/server/source/ws/scm-example-show.json
@@ -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"]
+ ]
}
diff --git a/sonar-server/src/test/java/org/sonar/server/source/ws/ScmWriterTest.java b/sonar-server/src/test/java/org/sonar/server/source/ws/ScmWriterTest.java
index 38180128243..62ce9715788 100644
--- a/sonar-server/src/test/java/org/sonar/server/source/ws/ScmWriterTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/source/ws/ScmWriterTest.java
@@ -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\": []}");
}