From: Simon Brandhof Date: Fri, 3 May 2013 20:42:05 +0000 (+0200) Subject: SONAR-3755 rename COST to EFFORT_TO_FIX X-Git-Tag: 3.6~468 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=02f85f98608fdf03a880025768c2d576ae9a88d4;p=sonarqube.git SONAR-3755 rename COST to EFFORT_TO_FIX --- diff --git a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/issue/IssueHandlers.java b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/issue/IssueHandlers.java index dbdc000ce0b..ef60b59c944 100644 --- a/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/issue/IssueHandlers.java +++ b/plugins/sonar-core-plugin/src/main/java/org/sonar/plugins/core/issue/IssueHandlers.java @@ -101,6 +101,12 @@ public class IssueHandlers implements BatchExtension { return this; } + @Override + public IssueHandler.Context setEffortToFix(@Nullable Double d) { + updater.setEffortToFix(issue, d); + return this; + } + @Override public IssueHandler.Context setAttribute(String key, @Nullable String value) { throw new UnsupportedOperationException("TODO"); diff --git a/sonar-batch/src/main/java/org/sonar/batch/issue/DeprecatedViolations.java b/sonar-batch/src/main/java/org/sonar/batch/issue/DeprecatedViolations.java index 8ebc4150672..d0db555891a 100644 --- a/sonar-batch/src/main/java/org/sonar/batch/issue/DeprecatedViolations.java +++ b/sonar-batch/src/main/java/org/sonar/batch/issue/DeprecatedViolations.java @@ -52,7 +52,7 @@ public class DeprecatedViolations implements BatchComponent { .createdDate(creationDate) .componentKey(violation.getResource().getEffectiveKey()) .ruleKey(RuleKey.of(violation.getRule().getRepositoryKey(), violation.getRule().getKey())) - .cost(violation.getCost()) + .effortToFix(violation.getCost()) .line(violation.getLineId()) .description(violation.getMessage()) .severity(violation.getSeverity() != null ? violation.getSeverity().name() : Severity.MAJOR) diff --git a/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssue.java b/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssue.java index 86eefaed14a..2e25531216e 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssue.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssue.java @@ -51,7 +51,7 @@ public class DefaultIssue implements Issue { private boolean manualSeverity = false; private String description; private Integer line; - private Double cost; + private Double effortToFix; private String status; private String resolution; private String userLogin; @@ -140,13 +140,13 @@ public class DefaultIssue implements Issue { return this; } - public Double cost() { - return cost; + public Double effortToFix() { + return effortToFix; } - public DefaultIssue setCost(@Nullable Double c) { - Preconditions.checkArgument(c == null || c >= 0, "Cost must be positive (got " + c + ")"); - this.cost = c; + public DefaultIssue setEffortToFix(@Nullable Double d) { + Preconditions.checkArgument(d == null || d >= 0, "Effort to fix must be greater than or equal 0 (got " + d + ")"); + this.effortToFix = d; return this; } diff --git a/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssueBuilder.java b/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssueBuilder.java index 19da2da56e2..497e1f860af 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssueBuilder.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/DefaultIssueBuilder.java @@ -40,7 +40,7 @@ public class DefaultIssueBuilder implements Issuable.IssueBuilder { private Integer line; private String description; private String severity; - private Double cost; + private Double effortToFix; private boolean manual = false; private Date createdDate; private Map attributes; @@ -84,8 +84,8 @@ public class DefaultIssueBuilder implements Issuable.IssueBuilder { } @Override - public Issuable.IssueBuilder cost(@Nullable Double cost) { - this.cost = cost; + public Issuable.IssueBuilder effortToFix(@Nullable Double d) { + this.effortToFix = d; return this; } @@ -124,7 +124,7 @@ public class DefaultIssueBuilder implements Issuable.IssueBuilder { issue.setRuleKey(ruleKey); issue.setDescription(description); issue.setSeverity(Objects.firstNonNull(severity, Severity.MAJOR)); - issue.setCost(cost); + issue.setEffortToFix(effortToFix); issue.setLine(line); issue.setManual(manual); issue.setManualSeverity(manual); diff --git a/sonar-core/src/main/java/org/sonar/core/issue/IssueUpdater.java b/sonar-core/src/main/java/org/sonar/core/issue/IssueUpdater.java index 60c31e673b0..4f325a5cfa2 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/IssueUpdater.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/IssueUpdater.java @@ -106,6 +106,10 @@ public class IssueUpdater implements BatchComponent, ServerComponent { issue.setCloseDate(d); } + public void setEffortToFix(DefaultIssue issue, @Nullable Double d) { + issue.setEffortToFix(d); + } + public boolean setAttribute(DefaultIssue issue, String key, @Nullable String value, IssueChangeContext context) { String oldValue = issue.attribute(key); if (!Objects.equal(oldValue, value)) { diff --git a/sonar-core/src/main/java/org/sonar/core/issue/db/IssueDto.java b/sonar-core/src/main/java/org/sonar/core/issue/db/IssueDto.java index 46128519883..6625f8e821b 100644 --- a/sonar-core/src/main/java/org/sonar/core/issue/db/IssueDto.java +++ b/sonar-core/src/main/java/org/sonar/core/issue/db/IssueDto.java @@ -44,7 +44,7 @@ public final class IssueDto { private boolean manualIssue; private String description; private Integer line; - private Double cost; + private Double effortToFix; private String status; private String resolution; private String checksum; @@ -148,12 +148,12 @@ public final class IssueDto { return this; } - public Double getCost() { - return cost; + public Double getEffortToFix() { + return effortToFix; } - public IssueDto setCost(@Nullable Double cost) { - this.cost = cost; + public IssueDto setEffortToFix(@Nullable Double d) { + this.effortToFix = d; return this; } @@ -306,7 +306,7 @@ public final class IssueDto { .setKey(issue.key()) .setLine(issue.line()) .setDescription(issue.description()) - .setCost(issue.cost()) + .setEffortToFix(issue.effortToFix()) .setResolution(issue.resolution()) .setStatus(issue.status()) .setSeverity(issue.severity()) @@ -332,7 +332,7 @@ public final class IssueDto { issue.setStatus(status); issue.setResolution(resolution); issue.setDescription(description); - issue.setCost(cost); + issue.setEffortToFix(effortToFix); issue.setLine(line); issue.setSeverity(severity); issue.setUserLogin(userLogin); diff --git a/sonar-core/src/main/resources/org/sonar/core/issue/db/IssueMapper.xml b/sonar-core/src/main/resources/org/sonar/core/issue/db/IssueMapper.xml index d96764e5c4c..4f0c14f67d2 100644 --- a/sonar-core/src/main/resources/org/sonar/core/issue/db/IssueMapper.xml +++ b/sonar-core/src/main/resources/org/sonar/core/issue/db/IssueMapper.xml @@ -14,7 +14,7 @@ i.manual_issue as manualIssue, i.description as description, i.line as line, - i.cost as cost, + i.effort_to_fix as effortToFix, i.status as status, i.resolution as resolution, i.checksum as checksum, @@ -33,10 +33,10 @@ - INSERT INTO issues (kee, resource_id, rule_id, severity, manual_severity, manual_issue, description, line, cost, status, + INSERT INTO issues (kee, resource_id, rule_id, severity, manual_severity, manual_issue, description, line, effort_to_fix, status, resolution, checksum, user_login, assignee_login, author_login, attributes, issue_creation_date, issue_update_date, issue_close_date, created_at, updated_at) - VALUES (#{kee}, #{resourceId}, #{ruleId}, #{severity}, #{manualSeverity}, #{manualIssue}, #{description}, #{line}, #{cost}, #{status}, + VALUES (#{kee}, #{resourceId}, #{ruleId}, #{severity}, #{manualSeverity}, #{manualIssue}, #{description}, #{line}, #{effortToFix}, #{status}, #{resolution}, #{checksum}, #{userLogin}, #{assignee}, #{authorLogin}, #{attributes}, #{issueCreationDate}, #{issueUpdateDate}, #{issueCloseDate}, #{createdAt}, #{updatedAt}) @@ -46,10 +46,10 @@ select issues_seq.NEXTVAL from DUAL - INSERT INTO issues (id, kee, resource_id, rule_id, severity, manual_severity, manual_issue, description, line, cost, status, + INSERT INTO issues (id, kee, resource_id, rule_id, severity, manual_severity, manual_issue, description, line, effort_to_fix, status, resolution, checksum, user_login, assignee_login, author_login, attributes, issue_creation_date, issue_update_date, issue_close_date, created_at, updated_at) - VALUES (#{id}, #{kee}, #{resourceId}, #{ruleId}, #{severity}, #{manualSeverity}, #{manualIssue}, #{description}, #{line}, #{cost}, #{status}, + VALUES (#{id}, #{kee}, #{resourceId}, #{ruleId}, #{severity}, #{manualSeverity}, #{manualIssue}, #{description}, #{line}, #{effortToFix}, #{status}, #{resolution}, #{checksum}, #{userLogin}, #{assignee}, #{authorLogin}, #{attributes}, #{issueCreationDate}, #{issueUpdateDate}, #{issueCloseDate}, #{createdAt}, #{updatedAt}) @@ -63,7 +63,7 @@ manual_issue=#{manualIssue}, description=#{description}, line=#{line}, - cost=#{cost}, + effort_to_fix=#{effortToFix}, status=#{status}, resolution=#{resolution}, checksum=#{checksum}, diff --git a/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl b/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl index a57ece8a982..05ca08707b3 100644 --- a/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl +++ b/sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl @@ -527,7 +527,7 @@ CREATE TABLE "ISSUES" ( "MANUAL_ISSUE" BOOLEAN NOT NULL, "DESCRIPTION" VARCHAR(4000), "LINE" INTEGER, - "COST" DOUBLE, + "EFFORT_TO_FIX" DOUBLE, "STATUS" VARCHAR(20), "RESOLUTION" VARCHAR(20), "CHECKSUM" VARCHAR(1000), diff --git a/sonar-core/src/test/java/org/sonar/core/issue/DefaultIssueBuilderTest.java b/sonar-core/src/test/java/org/sonar/core/issue/DefaultIssueBuilderTest.java index fe536ac5d9a..6ce91863110 100644 --- a/sonar-core/src/test/java/org/sonar/core/issue/DefaultIssueBuilderTest.java +++ b/sonar-core/src/test/java/org/sonar/core/issue/DefaultIssueBuilderTest.java @@ -35,7 +35,7 @@ public class DefaultIssueBuilderTest { .componentKey(componentKey) .description("the desc") .line(123) - .cost(10000.0) + .effortToFix(10000.0) .ruleKey(RuleKey.of("squid", "NullDereference")) .severity(Severity.CRITICAL) .attribute("JIRA", "FOO-123") @@ -44,7 +44,7 @@ public class DefaultIssueBuilderTest { assertThat(issue).isNotNull(); assertThat(issue.key()).isNotNull(); - assertThat(issue.cost()).isEqualTo(10000.0); + assertThat(issue.effortToFix()).isEqualTo(10000.0); assertThat(issue.componentKey()).isEqualTo(componentKey); assertThat(issue.description()).isEqualTo("the desc"); assertThat(issue.line()).isEqualTo(123); diff --git a/sonar-core/src/test/java/org/sonar/core/issue/db/IssueDaoTest.java b/sonar-core/src/test/java/org/sonar/core/issue/db/IssueDaoTest.java index 83b9a362a6a..7592dae2f08 100644 --- a/sonar-core/src/test/java/org/sonar/core/issue/db/IssueDaoTest.java +++ b/sonar-core/src/test/java/org/sonar/core/issue/db/IssueDaoTest.java @@ -58,7 +58,7 @@ public class IssueDaoTest extends AbstractDaoTestCase { assertThat(issue.isManualIssue()).isFalse(); assertThat(issue.getDescription()).isNull(); assertThat(issue.getLine()).isEqualTo(200); - assertThat(issue.getCost()).isEqualTo(4.2); + assertThat(issue.getEffortToFix()).isEqualTo(4.2); assertThat(issue.getStatus()).isEqualTo("OPEN"); assertThat(issue.getResolution()).isEqualTo("FIXED"); assertThat(issue.getChecksum()).isEqualTo("XXX"); diff --git a/sonar-core/src/test/java/org/sonar/core/issue/db/IssueDtoTest.java b/sonar-core/src/test/java/org/sonar/core/issue/db/IssueDtoTest.java index 2a585569584..539229136ab 100644 --- a/sonar-core/src/test/java/org/sonar/core/issue/db/IssueDtoTest.java +++ b/sonar-core/src/test/java/org/sonar/core/issue/db/IssueDtoTest.java @@ -61,7 +61,7 @@ public class IssueDtoTest { .setResourceId(1) .setStatus(Issue.STATUS_CLOSED) .setResolution(Issue.RESOLUTION_FALSE_POSITIVE) - .setCost(15.0) + .setEffortToFix(15.0) .setLine(6) .setSeverity("BLOCKER") .setDescription("message") @@ -81,7 +81,7 @@ public class IssueDtoTest { assertThat(issue.componentKey()).isEqualTo("component-key"); assertThat(issue.status()).isEqualTo(Issue.STATUS_CLOSED); assertThat(issue.resolution()).isEqualTo(Issue.RESOLUTION_FALSE_POSITIVE); - assertThat(issue.cost()).isEqualTo(15.0); + assertThat(issue.effortToFix()).isEqualTo(15.0); assertThat(issue.line()).isEqualTo(6); assertThat(issue.severity()).isEqualTo("BLOCKER"); assertThat(issue.description()).isEqualTo("message"); diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_all.xml b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_all.xml index 17e12b371a5..285456d07fe 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_all.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_all.xml @@ -11,7 +11,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="4.2" + effort_to_fix="4.2" status="OPEN" resolution="FIXED" checksum="XXX" @@ -36,7 +36,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="4.2" + effort_to_fix="4.2" status="OPEN" resolution="FIXED" checksum="XXX" @@ -63,7 +63,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="4.2" + effort_to_fix="4.2" status="OPEN" resolution="FIXED" checksum="XXX" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_assigned.xml b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_assigned.xml index 300f7a99aad..e09cf89e7a8 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_assigned.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_assigned.xml @@ -11,7 +11,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="4.2" + effort_to_fix="4.2" status="OPEN" resolution="FIXED" checksum="XXX" @@ -36,7 +36,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="4.2" + effort_to_fix="4.2" status="OPEN" resolution="FIXED" checksum="XXX" @@ -63,7 +63,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="4.2" + effort_to_fix="4.2" status="OPEN" resolution="FIXED" checksum="XXX" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_component_root.xml b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_component_root.xml index 5867469c575..a55ab8c6142 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_component_root.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_component_root.xml @@ -10,7 +10,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="[null]" + effort_to_fix="[null]" status="OPEN" resolution="[null]" checksum="[null]" @@ -35,7 +35,7 @@ manual_issue="[false]" description="[null]" line="120" - cost="[null]" + effort_to_fix="[null]" status="CLOSED" resolution="FIXED" checksum="[null]" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_date_creation.xml b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_date_creation.xml index 40417c1bcff..dc3dce23a04 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_date_creation.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_date_creation.xml @@ -10,7 +10,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="4.2" + effort_to_fix="4.2" status="OPEN" resolution="FIXED" checksum="XXX" @@ -35,7 +35,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="4.2" + effort_to_fix="4.2" status="OPEN" resolution="FIXED" checksum="XXX" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_ids.xml b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_ids.xml index 17e12b371a5..285456d07fe 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_ids.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_ids.xml @@ -11,7 +11,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="4.2" + effort_to_fix="4.2" status="OPEN" resolution="FIXED" checksum="XXX" @@ -36,7 +36,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="4.2" + effort_to_fix="4.2" status="OPEN" resolution="FIXED" checksum="XXX" @@ -63,7 +63,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="4.2" + effort_to_fix="4.2" status="OPEN" resolution="FIXED" checksum="XXX" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_key.xml b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_key.xml index 8c79cc3237f..8b3367cd6f0 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_key.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_key.xml @@ -10,7 +10,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="4.2" + effort_to_fix="4.2" status="OPEN" resolution="FIXED" checksum="XXX" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_query.xml b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_query.xml index 64ea7b18d54..29750932d6e 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_query.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_query.xml @@ -10,7 +10,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="4.2" + effort_to_fix="4.2" status="OPEN" resolution="FIXED" checksum="XXX" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_rules.xml b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_rules.xml index 5cb5360442f..9fbab6fea10 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_rules.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_by_rules.xml @@ -11,7 +11,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="4.2" + effort_to_fix="4.2" status="OPEN" resolution="FIXED" checksum="XXX" @@ -36,7 +36,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="4.2" + effort_to_fix="4.2" status="OPEN" resolution="FIXED" checksum="XXX" @@ -63,7 +63,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="4.2" + effort_to_fix="4.2" status="OPEN" resolution="FIXED" checksum="XXX" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_issue_ids_and_components_ids.xml b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_issue_ids_and_components_ids.xml index 17e12b371a5..285456d07fe 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_issue_ids_and_components_ids.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_issue_ids_and_components_ids.xml @@ -11,7 +11,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="4.2" + effort_to_fix="4.2" status="OPEN" resolution="FIXED" checksum="XXX" @@ -36,7 +36,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="4.2" + effort_to_fix="4.2" status="OPEN" resolution="FIXED" checksum="XXX" @@ -63,7 +63,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="4.2" + effort_to_fix="4.2" status="OPEN" resolution="FIXED" checksum="XXX" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_open_issues.xml b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_open_issues.xml index f05c5895f2f..59b4add50ba 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_open_issues.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_open_issues.xml @@ -10,7 +10,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="[null]" + effort_to_fix="[null]" status="OPEN" resolution="[null]" checksum="[null]" @@ -35,7 +35,7 @@ manual_issue="[false]" description="[null]" line="120" - cost="[null]" + effort_to_fix="[null]" status="OPEN" resolution="FIXED" checksum="[null]" @@ -60,7 +60,7 @@ manual_issue="[false]" description="[null]" line="120" - cost="[null]" + effort_to_fix="[null]" status="CLOSED" resolution="FIXED" checksum="[null]" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_returned_sorted_result.xml b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_returned_sorted_result.xml index 92821838fe5..f6d9e75ea16 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_returned_sorted_result.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueDaoTest/should_select_returned_sorted_result.xml @@ -11,7 +11,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="4.2" + effort_to_fix="4.2" status="OPEN" resolution="FIXED" checksum="XXX" @@ -36,7 +36,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="4.2" + effort_to_fix="4.2" status="OPEN" resolution="FIXED" checksum="XXX" @@ -63,7 +63,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="4.2" + effort_to_fix="4.2" status="OPEN" resolution="FIXED" checksum="XXX" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueStorageTest/should_insert_new_issues-result.xml b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueStorageTest/should_insert_new_issues-result.xml index 3a0362262cc..b1e88540c59 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueStorageTest/should_insert_new_issues-result.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueStorageTest/should_insert_new_issues-result.xml @@ -3,7 +3,7 @@ assignee_login="[null]" author_login="[null]" checksum="[null]" - cost="[null]" + effort_to_fix="[null]" description="[null]" line="5000" manual_issue="[false]" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueStorageTest/should_update_issues-result.xml b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueStorageTest/should_update_issues-result.xml index a82e547ed23..57e99d174a1 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueStorageTest/should_update_issues-result.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueStorageTest/should_update_issues-result.xml @@ -8,7 +8,7 @@ assignee_login="loic" author_login="simon" checksum="FFFFF" - cost="[null]" + effort_to_fix="[null]" description="[null]" line="5000" manual_issue="[false]" diff --git a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueStorageTest/should_update_issues.xml b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueStorageTest/should_update_issues.xml index 7a34c953c4b..56998d9b2a1 100644 --- a/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueStorageTest/should_update_issues.xml +++ b/sonar-core/src/test/resources/org/sonar/core/issue/db/IssueStorageTest/should_update_issues.xml @@ -8,7 +8,7 @@ assignee_login="loic" author_login="simon" checksum="FFFFF" - cost="[null]" + effort_to_fix="[null]" description="[null]" line="3000" manual_issue="[false]" diff --git a/sonar-core/src/test/resources/org/sonar/core/persistence/DryRunDatabaseFactoryTest/should_create_database_with_issues.xml b/sonar-core/src/test/resources/org/sonar/core/persistence/DryRunDatabaseFactoryTest/should_create_database_with_issues.xml index a2e0f6fced4..1a8e204b301 100644 --- a/sonar-core/src/test/resources/org/sonar/core/persistence/DryRunDatabaseFactoryTest/should_create_database_with_issues.xml +++ b/sonar-core/src/test/resources/org/sonar/core/persistence/DryRunDatabaseFactoryTest/should_create_database_with_issues.xml @@ -28,7 +28,7 @@ manual_issue="[false]" description="[null]" line="200" - cost="[null]" + effort_to_fix="[null]" status="OPEN" resolution="[null]" checksum="[null]" @@ -53,7 +53,7 @@ manual_issue="[false]" description="[null]" line="120" - cost="[null]" + effort_to_fix="[null]" status="OPEN" resolution="FIXED" checksum="[null]" diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issuable.java b/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issuable.java index a901efba9dd..c2390849ebf 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issuable.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issuable.java @@ -23,6 +23,7 @@ package org.sonar.api.issue; import org.sonar.api.component.Perspective; import org.sonar.api.rule.RuleKey; +import javax.annotation.Nullable; import java.util.Collection; /** @@ -33,17 +34,17 @@ public interface Issuable extends Perspective { interface IssueBuilder { IssueBuilder ruleKey(RuleKey ruleKey); - IssueBuilder line(Integer line); + IssueBuilder line(@Nullable Integer line); IssueBuilder description(String description); IssueBuilder severity(String severity); - IssueBuilder cost(Double cost); + IssueBuilder effortToFix(@Nullable Double d); IssueBuilder manual(boolean b); - IssueBuilder attribute(String key, String value); + IssueBuilder attribute(String key, @Nullable String value); Issue build(); } diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issue.java b/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issue.java index 6f3de886588..5f30ec93678 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issue.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/issue/Issue.java @@ -22,7 +22,6 @@ package org.sonar.api.issue; import org.sonar.api.rule.RuleKey; import javax.annotation.CheckForNull; - import java.io.Serializable; import java.util.Date; import java.util.List; @@ -34,6 +33,7 @@ import java.util.Map; public interface Issue extends Serializable { int DESCRIPTION_MAX_SIZE = 4000; + String STATUS_OPEN = "OPEN"; String STATUS_REOPENED = "REOPENED"; String STATUS_RESOLVED = "RESOLVED"; @@ -59,8 +59,18 @@ public interface Issue extends Serializable { @CheckForNull Integer line(); + /** + * Arbitrary distance to threshold for resolving the issue. + *

+ * For examples: + *

+ */ @CheckForNull - Double cost(); + Double effortToFix(); String status(); diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/issue/IssueHandler.java b/sonar-plugin-api/src/main/java/org/sonar/api/issue/IssueHandler.java index 6be61be5484..c0882086d22 100644 --- a/sonar-plugin-api/src/main/java/org/sonar/api/issue/IssueHandler.java +++ b/sonar-plugin-api/src/main/java/org/sonar/api/issue/IssueHandler.java @@ -42,6 +42,8 @@ public interface IssueHandler extends BatchExtension { Context setSeverity(String severity); + Context setEffortToFix(@Nullable Double effortToFix); + Context setAuthorLogin(@Nullable String login); Context setAttribute(String key, @Nullable String value); diff --git a/sonar-server/src/main/java/org/sonar/server/issue/JRubyInternalIssues.java b/sonar-server/src/main/java/org/sonar/server/issue/JRubyInternalIssues.java deleted file mode 100644 index 780c4986ff0..00000000000 --- a/sonar-server/src/main/java/org/sonar/server/issue/JRubyInternalIssues.java +++ /dev/null @@ -1,90 +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.server.issue; - -import org.sonar.api.ServerComponent; -import org.sonar.api.issue.Issue; -import org.sonar.api.rule.RuleKey; -import org.sonar.core.issue.DefaultIssue; -import org.sonar.core.issue.DefaultIssueBuilder; -import org.sonar.core.issue.FieldDiffs; -import org.sonar.core.issue.IssueComment; -import org.sonar.core.issue.workflow.Transition; -import org.sonar.server.platform.UserSession; - -import java.util.List; -import java.util.Map; - -/** - * All the issue features that are not published to public API. - * TODO to be renamed to WebIssuesInternal - */ -public class JRubyInternalIssues implements ServerComponent { - - private final ServerIssueActions actions; - - public JRubyInternalIssues(ServerIssueActions actions) { - this.actions = actions; - } - - public List listTransitions(String issueKey) { - return actions.listTransitions(issueKey, UserSession.get()); - } - - public Issue doTransition(String issueKey, String transitionKey) { - return actions.doTransition(issueKey, transitionKey, UserSession.get()); - } - - public Issue assign(String issueKey, String transitionKey) { - return actions.assign(issueKey, transitionKey, UserSession.get()); - } - - public Issue setSeverity(String issueKey, String severity) { - return actions.setSeverity(issueKey, severity, UserSession.get()); - } - - public IssueComment addComment(String issueKey, String comment) { - return actions.addComment(issueKey, comment, UserSession.get()); - } - - public IssueComment[] comments(String issueKey) { - return actions.comments(issueKey, UserSession.get()); - } - - public FieldDiffs[] changes(String issueKey) { - return actions.changes(issueKey, UserSession.get()); - } - - public Issue create(Map parameters) { - String componentKey = parameters.get("component"); - // TODO verify authorization - // TODO check existence of component - DefaultIssueBuilder builder = new DefaultIssueBuilder().componentKey(componentKey); - String line = parameters.get("line"); - builder.line(line != null ? Integer.parseInt(line) : null); - builder.description(parameters.get("description")); - builder.severity(parameters.get("severity")); - // TODO verify existence of rule - builder.ruleKey(RuleKey.parse(parameters.get("rule"))); - builder.manual(true); - Issue issue = builder.build(); - return actions.create((DefaultIssue) issue, UserSession.get()); - } -} diff --git a/sonar-server/src/main/java/org/sonar/server/issue/ServerIssueActions.java b/sonar-server/src/main/java/org/sonar/server/issue/ServerIssueActions.java index 56438a7fbd3..a2e18116019 100644 --- a/sonar-server/src/main/java/org/sonar/server/issue/ServerIssueActions.java +++ b/sonar-server/src/main/java/org/sonar/server/issue/ServerIssueActions.java @@ -125,7 +125,7 @@ public class ServerIssueActions implements ServerComponent { } public Issue create(DefaultIssue issue, UserSession userSession) { - // TODO merge with JRubyInternalIssues + // TODO merge with WebIssuesInternal issue.setManual(true); issue.setUserLogin(userSession.login()); diff --git a/sonar-server/src/main/java/org/sonar/server/issue/WebIssuesInternal.java b/sonar-server/src/main/java/org/sonar/server/issue/WebIssuesInternal.java new file mode 100644 index 00000000000..0a2a2469b35 --- /dev/null +++ b/sonar-server/src/main/java/org/sonar/server/issue/WebIssuesInternal.java @@ -0,0 +1,92 @@ +/* + * 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.server.issue; + +import org.sonar.api.ServerComponent; +import org.sonar.api.issue.Issue; +import org.sonar.api.rule.RuleKey; +import org.sonar.core.issue.DefaultIssue; +import org.sonar.core.issue.DefaultIssueBuilder; +import org.sonar.core.issue.FieldDiffs; +import org.sonar.core.issue.IssueComment; +import org.sonar.core.issue.workflow.Transition; +import org.sonar.server.platform.UserSession; + +import java.util.List; +import java.util.Map; + +/** + * All the issue features that are not published to public API. + * TODO to be renamed to WebIssuesInternal + */ +public class WebIssuesInternal implements ServerComponent { + + private final ServerIssueActions actions; + + public WebIssuesInternal(ServerIssueActions actions) { + this.actions = actions; + } + + public List listTransitions(String issueKey) { + return actions.listTransitions(issueKey, UserSession.get()); + } + + public Issue doTransition(String issueKey, String transitionKey) { + return actions.doTransition(issueKey, transitionKey, UserSession.get()); + } + + public Issue assign(String issueKey, String transitionKey) { + return actions.assign(issueKey, transitionKey, UserSession.get()); + } + + public Issue setSeverity(String issueKey, String severity) { + return actions.setSeverity(issueKey, severity, UserSession.get()); + } + + public IssueComment addComment(String issueKey, String comment) { + return actions.addComment(issueKey, comment, UserSession.get()); + } + + public IssueComment[] comments(String issueKey) { + return actions.comments(issueKey, UserSession.get()); + } + + public FieldDiffs[] changes(String issueKey) { + return actions.changes(issueKey, UserSession.get()); + } + + public Issue create(Map parameters) { + String componentKey = parameters.get("component"); + // TODO verify authorization + // TODO check existence of component + DefaultIssueBuilder builder = new DefaultIssueBuilder().componentKey(componentKey); + String line = parameters.get("line"); + builder.line(line != null ? Integer.parseInt(line) : null); + builder.description(parameters.get("description")); + builder.severity(parameters.get("severity")); + String effortToFix = parameters.get("effortToFix"); + builder.effortToFix(effortToFix!=null ? Double.parseDouble(effortToFix) : null); + // TODO verify existence of rule + builder.ruleKey(RuleKey.parse(parameters.get("rule"))); + builder.manual(true); + Issue issue = builder.build(); + return actions.create((DefaultIssue) issue, UserSession.get()); + } +} diff --git a/sonar-server/src/main/java/org/sonar/server/platform/Platform.java b/sonar-server/src/main/java/org/sonar/server/platform/Platform.java index 7482610dd25..650bda941d4 100644 --- a/sonar-server/src/main/java/org/sonar/server/platform/Platform.java +++ b/sonar-server/src/main/java/org/sonar/server/platform/Platform.java @@ -246,7 +246,7 @@ public final class Platform { servicesContainer.addSingleton(ServerIssueActions.class); servicesContainer.addSingleton(ServerIssueFinder.class); servicesContainer.addSingleton(WebIssuesApi.class); - servicesContainer.addSingleton(JRubyInternalIssues.class); + servicesContainer.addSingleton(WebIssuesInternal.class); // rules servicesContainer.addSingleton(WebRules.class); diff --git a/sonar-server/src/main/java/org/sonar/server/rule/WebRules.java b/sonar-server/src/main/java/org/sonar/server/rule/WebRules.java index bb56bd0f2a5..6a6e050091d 100644 --- a/sonar-server/src/main/java/org/sonar/server/rule/WebRules.java +++ b/sonar-server/src/main/java/org/sonar/server/rule/WebRules.java @@ -36,7 +36,7 @@ public class WebRules implements ServerComponent, Startable { this.i18n = i18n; } - public String l10nRuleName(Rule rule) { + public String ruleL10nName(Rule rule) { String name = i18n.getName(rule.getRepositoryKey(), rule.getKey(), UserSession.get().locale()); if (name == null) { name = rule.getName(); @@ -44,7 +44,7 @@ public class WebRules implements ServerComponent, Startable { return name; } - public String l10nRuleDescription(Rule rule) { + public String ruleL10nDescription(Rule rule) { String desc = i18n.getDescription(rule.getRepositoryKey(), rule.getKey(), UserSession.get().locale()); if (desc == null) { desc = rule.getDescription(); diff --git a/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/issues_controller.rb b/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/issues_controller.rb index cfaf0cf18f4..76bfc42e2c5 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/issues_controller.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/controllers/api/issues_controller.rb @@ -186,8 +186,8 @@ class Api::IssuesController < Api::ApiController } json[:severity] = issue.severity if issue.severity json[:desc] = issue.description if issue.description - json[:line] = issue.line if issue.line - json[:cost] = issue.cost if issue.cost + json[:line] = issue.line.to_i if issue.line + json[:effortToFix] = issue.effortToFix.to_f if issue.effortToFix json[:userLogin] = issue.userLogin if issue.userLogin json[:assignee] = issue.assignee if issue.assignee json[:creationDate] = format_java_datetime(issue.creationDate) if issue.creationDate @@ -208,8 +208,8 @@ class Api::IssuesController < Api::ApiController end def rule_to_json(rule) - l10n_name = Internal.rules.l10nRuleName(rule) - l10n_desc = Internal.rules.l10nRuleDescription(rule) + l10n_name = Internal.rules.ruleL10nName(rule) + l10n_desc = Internal.rules.ruleL10nDescription(rule) json = {:key => rule.getKey()} json[:name] = l10n_name if l10n_name json[:desc] = l10n_desc if l10n_desc diff --git a/sonar-server/src/main/webapp/WEB-INF/app/controllers/resource_controller.rb b/sonar-server/src/main/webapp/WEB-INF/app/controllers/resource_controller.rb index c798bf21073..c38b6afd652 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/controllers/resource_controller.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/controllers/resource_controller.rb @@ -454,8 +454,8 @@ class ResourceController < ApplicationController end end - issues = Api.issues.find(options).issues - issues.each do |issue| + @issue_results = Api.issues.find(options) + @issue_results.issues.each do |issue| # sorted by severity => from blocker to info if @lines && issue.line && issue.line>0 && issue.line<=@lines.size @lines[issue.line-1].add_issue(issue) diff --git a/sonar-server/src/main/webapp/WEB-INF/app/models/internal.rb b/sonar-server/src/main/webapp/WEB-INF/app/models/internal.rb index 85717fc270e..49f5e834c4c 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/models/internal.rb +++ b/sonar-server/src/main/webapp/WEB-INF/app/models/internal.rb @@ -23,7 +23,7 @@ class Internal def self.issues - component(Java::OrgSonarServerIssue::JRubyInternalIssues.java_class) + component(Java::OrgSonarServerIssue::WebIssuesInternal.java_class) end def self.issues_api diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/issue/_issue.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/issue/_issue.html.erb index 9c20ecb21b8..a9bfe732f34 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/issue/_issue.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/issue/_issue.html.erb @@ -64,7 +64,7 @@ <%= message('author') -%>: - <% author = @issue.user_login %> + <% author = @issue.userLogin %> <%= author ? h(author) : '-' -%> @@ -87,7 +87,7 @@ <% if @issue.rule_key %> - <% rule_name = Internal.rules.ruleName(I18n.locale, @issue.rule_key) %> + <% rule_name = Internal.rules.ruleL10nName(@issue.rule_key) %> <%= message('rule') -%>: diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/issues/_list.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/issues/_list.html.erb index 37f8a78c38e..4c547c1c917 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/issues/_list.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/issues/_list.html.erb @@ -29,7 +29,7 @@ Line - Cost + Effort to Fix User @@ -90,7 +90,7 @@ <%= issue.line -%> - <%= issue.cost -%> + <%= issue.effortToFix -%> <%= issue.userLogin -%> diff --git a/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_issue.html.erb b/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_issue.html.erb index 30bed8226d5..ff817a8bfd9 100644 --- a/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_issue.html.erb +++ b/sonar-server/src/main/webapp/WEB-INF/app/views/resource/_issue.html.erb @@ -8,7 +8,7 @@   - <% rule_name = Internal.rules.ruleName(I18n.locale, issue.rule_key) %> + <% rule_name = Internal.rules.ruleL10nName(@issue_results.rule(issue)) %> <%= h rule_name -%> diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/395_create_issues.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/395_create_issues.rb index e31593b8376..90883a234ca 100644 --- a/sonar-server/src/main/webapp/WEB-INF/db/migrate/395_create_issues.rb +++ b/sonar-server/src/main/webapp/WEB-INF/db/migrate/395_create_issues.rb @@ -33,7 +33,7 @@ class CreateIssues < ActiveRecord::Migration t.column :manual_issue, :boolean, :null => false t.column :description, :string, :null => true, :limit => 4000 t.column :line, :integer, :null => true - t.column :cost, :decimal, :null => true, :precision => 30, :scale => 20 + t.column :effort_to_fix, :decimal, :null => true, :precision => 30, :scale => 20 t.column :status, :string , :null => true, :limit => 20 t.column :resolution, :string , :null => true, :limit => 20 t.column :checksum, :string , :null => true, :limit => 1000 diff --git a/sonar-server/src/test/java/org/sonar/server/rule/WebRulesTest.java b/sonar-server/src/test/java/org/sonar/server/rule/WebRulesTest.java index 390010080da..f2fb7fec281 100644 --- a/sonar-server/src/test/java/org/sonar/server/rule/WebRulesTest.java +++ b/sonar-server/src/test/java/org/sonar/server/rule/WebRulesTest.java @@ -40,7 +40,7 @@ public class WebRulesTest { UserSession.set(new UserSession(123, "emmerik", Locale.FRENCH)); when(i18n.getName("squid", "AvoidCycle", Locale.FRENCH)).thenReturn("Eviter les cycles"); - String name = facade.l10nRuleName(new Rule("squid", "AvoidCycle")); + String name = facade.ruleL10nName(new Rule("squid", "AvoidCycle")); assertThat(name).isEqualTo("Eviter les cycles"); } @@ -51,7 +51,7 @@ public class WebRulesTest { Rule rule = new Rule("squid", "AvoidCycle"); rule.setName("Avoid cycles"); - String name = facade.l10nRuleName(rule); + String name = facade.ruleL10nName(rule); assertThat(name).isEqualTo("Avoid cycles"); } @@ -60,7 +60,7 @@ public class WebRulesTest { UserSession.set(new UserSession(123, "emmerik", Locale.FRENCH)); when(i18n.getDescription("squid", "AvoidCycle", Locale.FRENCH)).thenReturn("Les cycles sont le mal"); - String desc = facade.l10nRuleDescription(new Rule("squid", "AvoidCycle")); + String desc = facade.ruleL10nDescription(new Rule("squid", "AvoidCycle")); assertThat(desc).isEqualTo("Les cycles sont le mal"); } @@ -71,7 +71,7 @@ public class WebRulesTest { Rule rule = new Rule("squid", "AvoidCycle"); rule.setDescription("Cycles are evil"); - String desc = facade.l10nRuleDescription(rule); + String desc = facade.ruleL10nDescription(rule); assertThat(desc).isEqualTo("Cycles are evil"); } diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/Issue.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/Issue.java index 15ac459efb4..62929609cd9 100644 --- a/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/Issue.java +++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/Issue.java @@ -63,8 +63,13 @@ public class Issue { return JsonUtils.getInteger(json, "line"); } + // TODO to be removed public Double cost() { - return JsonUtils.getDouble(json, "cost"); + return JsonUtils.getDouble(json, "effortToFix"); + } + + public Double effortToFix() { + return JsonUtils.getDouble(json, "effortToFix"); } public String status() { diff --git a/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/NewIssue.java b/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/NewIssue.java index 13cd69f1947..24f18407ef2 100644 --- a/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/NewIssue.java +++ b/sonar-ws-client/src/main/java/org/sonar/wsclient/issue/NewIssue.java @@ -68,11 +68,17 @@ public class NewIssue { return this; } + // TODO to be removed public NewIssue cost(Double d) { params.put("cost", d); return this; } + public NewIssue effortToFix(Double d) { + params.put("effortToFix", d); + return this; + } + public NewIssue attribute(String key, String value) { params.put("attr[" + key + "]", value); return this; diff --git a/sonar-ws-client/src/test/java/org/sonar/wsclient/issue/IssueParserTest.java b/sonar-ws-client/src/test/java/org/sonar/wsclient/issue/IssueParserTest.java index fbfb01a3a60..007707fa42a 100644 --- a/sonar-ws-client/src/test/java/org/sonar/wsclient/issue/IssueParserTest.java +++ b/sonar-ws-client/src/test/java/org/sonar/wsclient/issue/IssueParserTest.java @@ -44,7 +44,7 @@ public class IssueParserTest { assertThat(first.status()).isEqualTo("OPEN"); assertThat(first.assignee()).isEqualTo("karadoc"); assertThat(first.description()).isEqualTo("the desc"); - assertThat(first.cost()).isEqualTo(4.2); + assertThat(first.effortToFix()).isEqualTo(4.2); assertThat(first.userLogin()).isEqualTo("perceval"); assertThat(first.creationDate()).isNotNull(); assertThat(first.updateDate()).isNotNull(); @@ -56,7 +56,7 @@ public class IssueParserTest { Issue second = list.get(1); assertThat(second.key()).isEqualTo("FGHIJ"); assertThat(second.line()).isNull(); - assertThat(second.cost()).isNull(); + assertThat(second.effortToFix()).isNull(); assertThat(second.description()).isNull(); assertThat(second.attribute("JIRA")).isNull(); assertThat(second.attributes()).isEmpty(); diff --git a/sonar-ws-client/src/test/java/org/sonar/wsclient/issue/NewIssueTest.java b/sonar-ws-client/src/test/java/org/sonar/wsclient/issue/NewIssueTest.java index f22cbd2efe2..f544c9ed0c9 100644 --- a/sonar-ws-client/src/test/java/org/sonar/wsclient/issue/NewIssueTest.java +++ b/sonar-ws-client/src/test/java/org/sonar/wsclient/issue/NewIssueTest.java @@ -34,7 +34,7 @@ public class NewIssueTest { public void test_create() { NewIssue newIssue = NewIssue.create() .component("Action.java") - .cost(4.2) + .effortToFix(4.2) .description("the desc") .line(123) .rule("squid:AvoidCycle") diff --git a/sonar-ws-client/src/test/resources/org/sonar/wsclient/issue/IssueParserTest/search.json b/sonar-ws-client/src/test/resources/org/sonar/wsclient/issue/IssueParserTest/search.json index 2d6aa72a2b6..369223a48f3 100644 --- a/sonar-ws-client/src/test/resources/org/sonar/wsclient/issue/IssueParserTest/search.json +++ b/sonar-ws-client/src/test/resources/org/sonar/wsclient/issue/IssueParserTest/search.json @@ -9,7 +9,7 @@ "resolution": "FIXED", "status": "OPEN", "assignee": "karadoc", - "cost": 4.2, + "effortToFix": 4.2, "desc": "the desc", "title": "the title", "userLogin": "perceval",