Browse Source

SONAR-1852 Add the analysis date to the Java web service client libray

tags/2.6
simonbrandhof 13 years ago
parent
commit
21d609df3a

+ 34
- 29
sonar-gwt-api/src/main/java/org/sonar/gwt/JsonUtils.java View File

@@ -36,7 +36,9 @@ public final class JsonUtils {

public interface JSONHandler {
void onResponse(JavaScriptObject obj);

void onTimeout();

void onError(int errorCode, String errorMessage);
}

@@ -55,35 +57,35 @@ public final class JsonUtils {
}

public static native void makeJSONRequest(int requestId, String url, JSONHandler handler) /*-{
var callback = "callback" + requestId;
var callback = "callback" + requestId;

// create SCRIPT tag, and set SRC attribute equal to JSON feed URL + callback function name
var script = document.createElement("script");
script.setAttribute("src", url+callback);
script.setAttribute("type", "text/javascript");
// create SCRIPT tag, and set SRC attribute equal to JSON feed URL + callback function name
var script = document.createElement("script");
script.setAttribute("src", url + callback);
script.setAttribute("type", "text/javascript");

window[callback] = function(jsonObj) {
@org.sonar.gwt.JsonUtils::dispatchJSON(Lcom/google/gwt/core/client/JavaScriptObject;Lorg/sonar/gwt/JsonUtils$JSONHandler;)(jsonObj, handler);
window[callback + "done"] = true;
}
window[callback] = function(jsonObj) {
@org.sonar.gwt.JsonUtils::dispatchJSON(Lcom/google/gwt/core/client/JavaScriptObject;Lorg/sonar/gwt/JsonUtils$JSONHandler;)(jsonObj, handler);
window[callback + "done"] = true;
}

setTimeout(function() {
if (!window[callback + "done"]) {
handler.@org.sonar.gwt.JsonUtils.JSONHandler::onTimeout();
}
setTimeout(function() {
if (!window[callback + "done"]) {
handler.@org.sonar.gwt.JsonUtils.JSONHandler::onTimeout();
}

// cleanup
document.body.removeChild(script);
if (window[callback]) {
delete window[callback];
}
if (window[callback + "done"]) {
delete window[callback + "done"];
}
}, 120000);
// cleanup
document.body.removeChild(script);
if (window[callback]) {
delete window[callback];
}
if (window[callback + "done"]) {
delete window[callback + "done"];
}
}, 120000);

document.body.appendChild(script);
}-*/;
document.body.appendChild(script);
}-*/;

public static void dispatchJSON(JavaScriptObject jsonObj, JSONHandler handler) {
JSONObject obj = new JSONObject(jsonObj);
@@ -111,13 +113,16 @@ public final class JsonUtils {
}

public static Date getDate(JSONObject json, String field) {
DateTimeFormat frmt = DateTimeFormat.getFormat("yyyy-MM-dd'T'HH:mm:ssZ");
String date = getString(json, field);
if (date!=null && date.endsWith("Z") && date.length()>2) {
// see SONAR-1182
date = date.substring(0, date.length()-2) + "+00:00";
if (date != null) {
DateTimeFormat frmt = DateTimeFormat.getFormat("yyyy-MM-dd'T'HH:mm:ssZ");
if (date.endsWith("Z") && date.length() > 2) {
// see SONAR-1182
date = date.substring(0, date.length() - 2) + "+0000";
}
return frmt.parse(date);
}
return frmt.parse(date);
return null;
}

public static Boolean getBoolean(JSONObject json, String field) {

+ 1
- 0
sonar-gwt-api/src/main/java/org/sonar/wsclient/gwt/unmarshallers/ResourceUnmarshaller.java View File

@@ -55,6 +55,7 @@ public class ResourceUnmarshaller extends AbstractUnmarshaller<Resource> {
.setQualifier(JsonUtils.getString(json, "qualifier"))
.setLanguage(JsonUtils.getString(json, "lang"))
.setVersion(JsonUtils.getString(json, "version"))
.setDate(JsonUtils.getDate(json, "date"))
.setCopy(JsonUtils.getInteger(json, "copy"));
}


+ 2
- 2
sonar-plugin-api/src/test/resources/org/sonar/api/rules/XMLRuleParserTest/rules.xml View File

@@ -6,7 +6,7 @@
<description>
<![CDATA[Checks that local, non-final variable names conform to a format specified by the format property.]]>
</description>
<isoCategory>Efficiency</isoCategory>
<category name="Efficiency" />
<configKey>Checker/TreeWalker/LocalVariableName</configKey>
<priority>BLOCKER</priority>
<cardinality>MULTIPLE</cardinality>
@@ -35,6 +35,6 @@
<description>
<![CDATA[Checks for magic numbers.]]>
</description>
<isoCategory>Maintainability</isoCategory>
<category name="Maintainability" />
</rule>
</rules>

+ 11
- 0
sonar-ws-client/src/main/java/org/sonar/wsclient/services/Resource.java View File

@@ -20,6 +20,7 @@
package org.sonar.wsclient.services;

import java.util.Collections;
import java.util.Date;
import java.util.List;

public class Resource extends Model {
@@ -54,6 +55,7 @@ public class Resource extends Model {
private String version;
private Integer copy;
private String description;
private Date date;
private List<Measure> measures;

public Integer getId() {
@@ -153,6 +155,15 @@ public class Resource extends Model {
return this;
}

public Date getDate() {
return date;
}

public Resource setDate(Date d) {
this.date = d;
return this;
}

public List<Measure> getMeasures() {
if (measures == null) {
return Collections.emptyList();

+ 1
- 0
sonar-ws-client/src/main/java/org/sonar/wsclient/unmarshallers/ResourceUnmarshaller.java View File

@@ -46,6 +46,7 @@ public class ResourceUnmarshaller extends AbstractUnmarshaller<Resource> {
.setQualifier(JsonUtils.getString(json, "qualifier"))
.setLanguage(JsonUtils.getString(json, "lang"))
.setDescription(JsonUtils.getString(json, "description"))
.setDate(JsonUtils.getDateTime(json, "date"))
.setVersion(JsonUtils.getString(json, "version"));
}


+ 1
- 0
sonar-ws-client/src/test/java/org/sonar/wsclient/unmarshallers/ResourceUnmarshallerTest.java View File

@@ -100,6 +100,7 @@ public class ResourceUnmarshallerTest {
assertThat(resource.getQualifier(), is("TRK"));
assertThat(resource.getLanguage(), is("java"));
assertThat(resource.getDescription(), is("Embrace Quality"));
assertThat(resource.getDate(), not(nullValue()));
}

private static String loadFile(String path) throws IOException {

+ 1
- 1
sonar-ws-client/src/test/resources/resources/many-resources-with-measures.json
File diff suppressed because it is too large
View File


+ 1
- 1
sonar-ws-client/src/test/resources/resources/many-resources.json View File

@@ -1 +1 @@
[{"id":38909,"key":"org.codehaus.sonar:sonar-plugin-api","name":"Sonar API","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:27:25+00:00","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":94156,"key":"org.codehaus.sonar:sonar-squid","name":"Sonar Squid","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:29:42+00:00","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":182945,"key":"org.codehaus.sonar:sonar-colorizer","name":"Sonar Code Colorizer","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:32:32+00:00","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":222615,"key":"org.codehaus.sonar:sonar-client","name":"Sonar Client","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:32:50+00:00","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":172279,"key":"org.codehaus.sonar.archetypes:sonar-archetypes","name":"Sonar archetypes","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:32:53+00:00","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":39023,"key":"org.codehaus.sonar:sonar-core","name":"Sonar core","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:32:57+00:00","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":88480,"key":"org.codehaus.sonar.runtime:sonar-core-maven-plugin","name":"Sonar batch","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:33:57+00:00","lang":"java","version":"1.13-SNAPSHOT","description":"Sonar batch"},{"id":39141,"key":"org.codehaus.sonar:sonar-web","name":"Sonar web","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:34:42+00:00","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":39212,"key":"org.codehaus.sonar:sonar-application","name":"Sonar application","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:35:38+00:00","lang":"java","version":"1.13-SNAPSHOT","description":"Package the standalone distribution"},{"id":48696,"key":"org.codehaus.sonar.plugins:sonar-plugin-core","name":"Sonar plugin core","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:35:53+00:00","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":39200,"key":"org.codehaus.sonar.plugins:sonar-plugin-checkstyle","name":"Sonar Checkstyle plugin","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:39:05+00:00","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":39218,"key":"org.codehaus.sonar.plugins:sonar-plugin-pmd","name":"Sonar PMD plugin","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:39:21+00:00","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":48767,"key":"org.codehaus.sonar.plugins:sonar-plugin-cobertura","name":"Sonar Cobertura plugin","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:39:37+00:00","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":48774,"key":"org.codehaus.sonar.plugins:sonar-plugin-clover","name":"Sonar Clover plugin","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:39:52+00:00","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":48796,"key":"org.codehaus.sonar.plugins:sonar-plugin-surefire","name":"Sonar Surefire plugin","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:40:08+00:00","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":48806,"key":"org.codehaus.sonar.plugins:sonar-plugin-googleanalytics","name":"Sonar Google analytics plugin","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:40:21+00:00","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":48810,"key":"org.codehaus.sonar.plugins:sonar-plugin-findbugs","name":"Sonar Findbugs plugin","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:40:29+00:00","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":48790,"key":"org.codehaus.sonar.plugins:sonar-plugin-cpd","name":"Sonar CPD plugin","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:40:47+00:00","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":94200,"key":"org.codehaus.sonar.plugins:sonar-plugin-squid","name":"Sonar Squid plugin","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:40:59+00:00","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"}]
[{"id":38909,"key":"org.codehaus.sonar:sonar-plugin-api","name":"Sonar API","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:27:25+0000","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":94156,"key":"org.codehaus.sonar:sonar-squid","name":"Sonar Squid","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:29:42+0000","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":182945,"key":"org.codehaus.sonar:sonar-colorizer","name":"Sonar Code Colorizer","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:32:32+0000","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":222615,"key":"org.codehaus.sonar:sonar-client","name":"Sonar Client","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:32:50+0000","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":172279,"key":"org.codehaus.sonar.archetypes:sonar-archetypes","name":"Sonar archetypes","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:32:53+0000","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":39023,"key":"org.codehaus.sonar:sonar-core","name":"Sonar core","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:32:57+0000","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":88480,"key":"org.codehaus.sonar.runtime:sonar-core-maven-plugin","name":"Sonar batch","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:33:57+0000","lang":"java","version":"1.13-SNAPSHOT","description":"Sonar batch"},{"id":39141,"key":"org.codehaus.sonar:sonar-web","name":"Sonar web","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:34:42+0000","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":39212,"key":"org.codehaus.sonar:sonar-application","name":"Sonar application","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:35:38+0000","lang":"java","version":"1.13-SNAPSHOT","description":"Package the standalone distribution"},{"id":48696,"key":"org.codehaus.sonar.plugins:sonar-plugin-core","name":"Sonar plugin core","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:35:53+0000","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":39200,"key":"org.codehaus.sonar.plugins:sonar-plugin-checkstyle","name":"Sonar Checkstyle plugin","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:39:05+0000","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":39218,"key":"org.codehaus.sonar.plugins:sonar-plugin-pmd","name":"Sonar PMD plugin","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:39:21+0000","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":48767,"key":"org.codehaus.sonar.plugins:sonar-plugin-cobertura","name":"Sonar Cobertura plugin","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:39:37+0000","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":48774,"key":"org.codehaus.sonar.plugins:sonar-plugin-clover","name":"Sonar Clover plugin","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:39:52+0000","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":48796,"key":"org.codehaus.sonar.plugins:sonar-plugin-surefire","name":"Sonar Surefire plugin","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:40:08+0000","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":48806,"key":"org.codehaus.sonar.plugins:sonar-plugin-googleanalytics","name":"Sonar Google analytics plugin","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:40:21+0000","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":48810,"key":"org.codehaus.sonar.plugins:sonar-plugin-findbugs","name":"Sonar Findbugs plugin","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:40:29+0000","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":48790,"key":"org.codehaus.sonar.plugins:sonar-plugin-cpd","name":"Sonar CPD plugin","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:40:47+0000","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"},{"id":94200,"key":"org.codehaus.sonar.plugins:sonar-plugin-squid","name":"Sonar Squid plugin","scope":"PRJ","qualifier":"BRC","date":"2010-01-01T22:40:59+0000","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"}]

+ 1
- 1
sonar-ws-client/src/test/resources/resources/single-resource-with-measures.json View File

@@ -1 +1 @@
[{"id":48569,"key":"org.codehaus.sonar:sonar","name":"Sonar","scope":"PRJ","qualifier":"TRK","date":"2010-01-01T22:27:25+00:00","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality","msr":[{"key":"lines","val":47798.0,"frmt_val":"47,798"},{"key":"ncloc","val":27066.0,"frmt_val":"27,066"}]}]
[{"id":48569,"key":"org.codehaus.sonar:sonar","name":"Sonar","scope":"PRJ","qualifier":"TRK","date":"2010-01-01T22:27:25+0000","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality","msr":[{"key":"lines","val":47798.0,"frmt_val":"47,798"},{"key":"ncloc","val":27066.0,"frmt_val":"27,066"}]}]

+ 1
- 1
sonar-ws-client/src/test/resources/resources/single-resource-with-trends.json View File

@@ -5,7 +5,7 @@
"name":"Sonar",
"scope":"PRJ",
"qualifier":"TRK",
"date":"2010-01-01T22:27:25+00:00",
"date":"2010-01-01T22:27:25+0000",
"lang":"java",
"version":"1.13-SNAPSHOT",
"description":"Embrace Quality",

+ 1
- 1
sonar-ws-client/src/test/resources/resources/single-resource.json View File

@@ -1 +1 @@
[{"id":48569,"key":"org.codehaus.sonar:sonar","name":"Sonar","scope":"PRJ","qualifier":"TRK","date":"2010-01-01T22:27:25+00:00","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"}]
[{"id":48569,"key":"org.codehaus.sonar:sonar","name":"Sonar","scope":"PRJ","qualifier":"TRK","date":"2010-01-01T22:27:25+0000","lang":"java","version":"1.13-SNAPSHOT","description":"Embrace Quality"}]

Loading…
Cancel
Save