aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabrice Bellingard <bellingard@gmail.com>2011-05-30 19:18:32 +0200
committerFabrice Bellingard <bellingard@gmail.com>2011-05-30 19:19:12 +0200
commita7ef4f0a1d3c51ab9f74a8ac4bd695fe84c947eb (patch)
treeabaeed322b7a16d2d9dff671ea429f9fa64a4064
parent3cd3a7dcc73cb3924d8c61f532423226bb38b38b (diff)
downloadsonarqube-a7ef4f0a1d3c51ab9f74a8ac4bd695fe84c947eb.tar.gz
sonarqube-a7ef4f0a1d3c51ab9f74a8ac4bd695fe84c947eb.zip
SONAR-2453 Update the way "FALSE-POSITIVE" reviews are managed
Add the violation id on a review JSON/XML format so that we don't have to add it later when we implement manual reviews.
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/app/models/review.rb2
-rw-r--r--sonar-ws-client/src/main/java/org/sonar/wsclient/services/Review.java18
-rw-r--r--sonar-ws-client/src/main/java/org/sonar/wsclient/services/ReviewCreateQuery.java2
-rw-r--r--sonar-ws-client/src/main/java/org/sonar/wsclient/services/ReviewDeleteQuery.java7
-rw-r--r--sonar-ws-client/src/main/java/org/sonar/wsclient/services/ReviewQuery.java4
-rw-r--r--sonar-ws-client/src/main/java/org/sonar/wsclient/services/ReviewUpdateQuery.java2
-rw-r--r--sonar-ws-client/src/main/java/org/sonar/wsclient/unmarshallers/ReviewUnmarshaller.java1
-rw-r--r--sonar-ws-client/src/test/java/org/sonar/wsclient/services/ReviewDeleteQueryTest.java1
-rw-r--r--sonar-ws-client/src/test/java/org/sonar/wsclient/unmarshallers/ReviewUnmarshallerTest.java1
-rw-r--r--sonar-ws-client/src/test/resources/reviews/reviews-2.9.json2
10 files changed, 30 insertions, 10 deletions
diff --git a/sonar-server/src/main/webapp/WEB-INF/app/models/review.rb b/sonar-server/src/main/webapp/WEB-INF/app/models/review.rb
index d28b1de6a73..e44ce280a55 100644
--- a/sonar-server/src/main/webapp/WEB-INF/app/models/review.rb
+++ b/sonar-server/src/main/webapp/WEB-INF/app/models/review.rb
@@ -257,6 +257,7 @@ class Review < ActiveRecord::Base
xml.severity(severity)
xml.resource(resource.kee) if resource
xml.line(resource_line) if resource_line && resource_line>0
+ xml.violationId(rule_failure_permanent_id) if rule_failure_permanent_id
xml.comments do
review_comments.each do |comment|
xml.comment do
@@ -291,6 +292,7 @@ class Review < ActiveRecord::Base
json['severity'] = severity
json['resource'] = resource.kee if resource
json['line'] = resource_line if resource_line && resource_line>0
+ json['violationId'] = rule_failure_permanent_id if rule_failure_permanent_id
comments = []
review_comments.each do |comment|
comments << {
diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/services/Review.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/services/Review.java
index ba17f28d376..596b2763639 100644
--- a/sonar-ws-client/src/main/java/org/sonar/wsclient/services/Review.java
+++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/services/Review.java
@@ -40,6 +40,7 @@ public class Review extends Model {
private String resourceKee = null;
private Integer line = null;
private Boolean falsePositive = null;
+ private Long violationId;
private List<Review.Comment> comments = new ArrayList<Review.Comment>();
/**
@@ -243,6 +244,23 @@ public class Review extends Model {
this.falsePositive = falsePositive;
return this;
}
+
+ /**
+ * @since 2.9
+ * @return the violation id
+ */
+ public Long getViolationId() {
+ return violationId;
+ }
+
+ /**
+ * @param id
+ * the violation id to set
+ */
+ public Review setViolationId(Long violationId) {
+ this.violationId = violationId;
+ return this;
+ }
/**
* @return the comments
diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/services/ReviewCreateQuery.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/services/ReviewCreateQuery.java
index 96d7a57c66a..f48eb971e19 100644
--- a/sonar-ws-client/src/main/java/org/sonar/wsclient/services/ReviewCreateQuery.java
+++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/services/ReviewCreateQuery.java
@@ -22,7 +22,7 @@ package org.sonar.wsclient.services;
/**
* @since 2.9
*/
-public class ReviewCreateQuery extends UpdateQuery<Review> {
+public class ReviewCreateQuery extends CreateQuery<Review> {
private Long violationId;
private String text;
diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/services/ReviewDeleteQuery.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/services/ReviewDeleteQuery.java
index fc919b00ea5..5a217666607 100644
--- a/sonar-ws-client/src/main/java/org/sonar/wsclient/services/ReviewDeleteQuery.java
+++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/services/ReviewDeleteQuery.java
@@ -22,7 +22,7 @@ package org.sonar.wsclient.services;
/**
* @since 2.9
*/
-public class ReviewDeleteQuery extends CreateQuery<Review> {
+public class ReviewDeleteQuery extends DeleteQuery<Review> {
private Long reviewId;
private Long commentId;
@@ -74,9 +74,4 @@ public class ReviewDeleteQuery extends CreateQuery<Review> {
appendUrlParameter(url, "comment_id", getCommentId());
return url.toString();
}
-
- @Override
- public Class<Review> getModelClass() {
- return Review.class;
- }
}
diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/services/ReviewQuery.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/services/ReviewQuery.java
index a6701d4a18e..800bc048e04 100644
--- a/sonar-ws-client/src/main/java/org/sonar/wsclient/services/ReviewQuery.java
+++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/services/ReviewQuery.java
@@ -264,6 +264,10 @@ public class ReviewQuery extends Query<Review> {
return Review.class;
}
+ public static ReviewQuery createForReview(Long id) {
+ return new ReviewQuery().setId(id);
+ }
+
public static ReviewQuery createForResource(Resource resource) {
return new ReviewQuery().setResourceKeysOrIds(resource.getId().toString());
}
diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/services/ReviewUpdateQuery.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/services/ReviewUpdateQuery.java
index 328ec295216..244ef0b5b4d 100644
--- a/sonar-ws-client/src/main/java/org/sonar/wsclient/services/ReviewUpdateQuery.java
+++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/services/ReviewUpdateQuery.java
@@ -22,7 +22,7 @@ package org.sonar.wsclient.services;
/**
* @since 2.9
*/
-public class ReviewUpdateQuery extends CreateQuery<Review> {
+public class ReviewUpdateQuery extends UpdateQuery<Review> {
private Long reviewId;
private String text;
diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/unmarshallers/ReviewUnmarshaller.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/unmarshallers/ReviewUnmarshaller.java
index f3fbb3a57e4..3ea023700ea 100644
--- a/sonar-ws-client/src/main/java/org/sonar/wsclient/unmarshallers/ReviewUnmarshaller.java
+++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/unmarshallers/ReviewUnmarshaller.java
@@ -43,6 +43,7 @@ public class ReviewUnmarshaller extends AbstractUnmarshaller<Review> {
review.setResourceKee(utils.getString(json, "resource"));
review.setLine(utils.getInteger(json, "line"));
review.setFalsePositive(utils.getBoolean(json, "falsePositive"));
+ review.setViolationId(utils.getLong(json, "violationId"));
review.setType(utils.getString(json, "type"));
Object comments = utils.getField(json, "comments");
diff --git a/sonar-ws-client/src/test/java/org/sonar/wsclient/services/ReviewDeleteQueryTest.java b/sonar-ws-client/src/test/java/org/sonar/wsclient/services/ReviewDeleteQueryTest.java
index ff2b22dadf8..d78bcf39baf 100644
--- a/sonar-ws-client/src/test/java/org/sonar/wsclient/services/ReviewDeleteQueryTest.java
+++ b/sonar-ws-client/src/test/java/org/sonar/wsclient/services/ReviewDeleteQueryTest.java
@@ -30,7 +30,6 @@ public class ReviewDeleteQueryTest extends QueryTestCase {
public void testAddComment() {
ReviewDeleteQuery query = ReviewDeleteQuery.deleteCommentQuery(13L, 2L);
assertThat(query.getUrl(), is("/api/reviews/?id=13&comment_id=2&"));
- assertThat(query.getModelClass().getName(), is(Review.class.getName()));
}
} \ No newline at end of file
diff --git a/sonar-ws-client/src/test/java/org/sonar/wsclient/unmarshallers/ReviewUnmarshallerTest.java b/sonar-ws-client/src/test/java/org/sonar/wsclient/unmarshallers/ReviewUnmarshallerTest.java
index d2c4cc73564..9041c11a06a 100644
--- a/sonar-ws-client/src/test/java/org/sonar/wsclient/unmarshallers/ReviewUnmarshallerTest.java
+++ b/sonar-ws-client/src/test/java/org/sonar/wsclient/unmarshallers/ReviewUnmarshallerTest.java
@@ -55,6 +55,7 @@ public class ReviewUnmarshallerTest extends UnmarshallerTestCase {
assertThat(review.getSeverity(), is("MINOR"));
assertThat(review.getResourceKee(), is("org.codehaus.sonar:sonar-channel:org.sonar.channel.CodeReaderConfiguration"));
assertThat(review.getLine(), is(33));
+ assertThat(review.getViolationId(), is(1L));
List<Comment> comments = review.getComments();
assertThat(comments.size(), is(4));
Comment comment = comments.get(0);
diff --git a/sonar-ws-client/src/test/resources/reviews/reviews-2.9.json b/sonar-ws-client/src/test/resources/reviews/reviews-2.9.json
index 707438bbd31..8b1f11c62a8 100644
--- a/sonar-ws-client/src/test/resources/reviews/reviews-2.9.json
+++ b/sonar-ws-client/src/test/resources/reviews/reviews-2.9.json
@@ -1 +1 @@
-[{"id":3,"createdAt":"2011-04-26T15:44:42+0200","updatedAt":"2011-04-26T15:44:42+0200","author":"admin","assignee":"admin","title":"'static' modifier out of order with the JLS suggestions.","falsePositive":false,"status":"OPEN","severity":"MINOR","resource":"org.codehaus.sonar:sonar-channel:org.sonar.channel.CodeReaderConfiguration","line":33,"comments":[{"id":1,"author":"admin","updatedAt":"2011-04-26T15:44:42+0200","text":"This is a review.<br/>And this is on multiple lines...<br/><br/><code>Wouhou!!!!!</code>"},{"id":2,"author":"admin","updatedAt":"2011-04-26T17:10:19+0200","text":"<em>Bold on multiple line?</em>"},{"id":3,"author":"admin","updatedAt":"2011-04-26T17:11:02+0200","text":"And the bullets:<br/><ul><li>1 bullet</li>\n<li>2 bullets</li></ul>"},{"id":4,"author":"admin","updatedAt":"2011-04-26T17:27:37+0200","text":"Wazzaa"}]},{"id":9,"createdAt":"2011-04-27T14:37:20+0200","updatedAt":"2011-04-27T14:37:20+0200","author":"admin","title":"New exception is thrown in catch block, original stack trace may be lost","falsePositive":true,"status":"OPEN","severity":"MAJOR","resource":"org.codehaus.sonar:sonar-channel:org.sonar.channel.CodeReader","line":84,"comments":[{"id":5,"author":"admin","updatedAt":"2011-04-27T14:37:20+0200","text":"Wazzaaaa"}]}] \ No newline at end of file
+[{"id":3,"createdAt":"2011-04-26T15:44:42+0200","updatedAt":"2011-04-26T15:44:42+0200","author":"admin","assignee":"admin","title":"'static' modifier out of order with the JLS suggestions.","falsePositive":false,"status":"OPEN","severity":"MINOR","resource":"org.codehaus.sonar:sonar-channel:org.sonar.channel.CodeReaderConfiguration","line":33,"violationId":1,"comments":[{"id":1,"author":"admin","updatedAt":"2011-04-26T15:44:42+0200","text":"This is a review.<br/>And this is on multiple lines...<br/><br/><code>Wouhou!!!!!</code>"},{"id":2,"author":"admin","updatedAt":"2011-04-26T17:10:19+0200","text":"<em>Bold on multiple line?</em>"},{"id":3,"author":"admin","updatedAt":"2011-04-26T17:11:02+0200","text":"And the bullets:<br/><ul><li>1 bullet</li>\n<li>2 bullets</li></ul>"},{"id":4,"author":"admin","updatedAt":"2011-04-26T17:27:37+0200","text":"Wazzaa"}]},{"id":9,"createdAt":"2011-04-27T14:37:20+0200","updatedAt":"2011-04-27T14:37:20+0200","author":"admin","title":"New exception is thrown in catch block, original stack trace may be lost","falsePositive":true,"status":"OPEN","severity":"MAJOR","resource":"org.codehaus.sonar:sonar-channel:org.sonar.channel.CodeReader","line":84,"violationId":2,"comments":[{"id":5,"author":"admin","updatedAt":"2011-04-27T14:37:20+0200","text":"Wazzaaaa"}]}] \ No newline at end of file