aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java2
-rw-r--r--plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/rule/XooRulesDefinitionTest.java2
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinition.java29
-rw-r--r--sonar-plugin-api/src/test/java/org/sonar/api/server/rule/RulesDefinitionTest.java14
-rw-r--r--sonar-server/src/main/java/org/sonar/server/rule/DeprecatedRulesDefinition.java2
-rw-r--r--sonar-server/src/main/java/org/sonar/server/rule/RuleRegistration.java2
-rw-r--r--sonar-server/src/test/java/org/sonar/server/rule/DeprecatedRulesDefinitionTest.java2
-rw-r--r--sonar-server/src/test/java/org/sonar/server/rule/RuleRegistrationTest.java2
8 files changed, 29 insertions, 26 deletions
diff --git a/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java b/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java
index 8bea7cbab69..b00b46df9a1 100644
--- a/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java
+++ b/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java
@@ -52,7 +52,7 @@ public class XooRulesDefinition implements RulesDefinition {
.setSeverity(Severity.MINOR);
x1Rule
- .setDebtCharacteristic("INTEGRATION_TESTABILITY")
+ .setDebtSubCharacteristic("INTEGRATION_TESTABILITY")
.setDebtRemediationFunction(x1Rule.debtRemediationFunctions().linearWithOffset("1h", "30min"));
x1Rule.createParam("acceptWhitespace")
diff --git a/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/rule/XooRulesDefinitionTest.java b/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/rule/XooRulesDefinitionTest.java
index 229e07ca147..1508db93b13 100644
--- a/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/rule/XooRulesDefinitionTest.java
+++ b/plugins/sonar-xoo-plugin/src/test/java/org/sonar/xoo/rule/XooRulesDefinitionTest.java
@@ -44,7 +44,7 @@ public class XooRulesDefinitionTest {
assertThat(x1.tags()).containsOnly("style", "security");
assertThat(x1.htmlDescription()).isNotEmpty();
- assertThat(x1.debtCharacteristic()).isEqualTo("INTEGRATION_TESTABILITY");
+ assertThat(x1.debtSubCharacteristic()).isEqualTo("INTEGRATION_TESTABILITY");
assertThat(x1.debtRemediationFunction().type()).isEqualTo(DebtRemediationFunction.Type.LINEAR_OFFSET);
assertThat(x1.debtRemediationFunction().factor()).isEqualTo("1h");
assertThat(x1.debtRemediationFunction().offset()).isEqualTo("30min");
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinition.java b/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinition.java
index 79d08f46588..fff3f96e797 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinition.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/server/rule/RulesDefinition.java
@@ -75,7 +75,7 @@ import java.util.Set;
* .setSeverity(Severity.MINOR);
*
* x1Rule
- * .setDebtCharacteristic("INTEGRATION_TESTABILITY")
+ * .setDebtSubCharacteristic("INTEGRATION_TESTABILITY")
* .setDebtRemediationFunction(x1Rule.debtRemediationFunctions().linearWithOffset("1h", "30min"));
*
* x1Rule.createParam("acceptWhitespace")
@@ -90,7 +90,7 @@ import java.util.Set;
* </pre>
* <p/>
* If rules are declared in a XML file with the standard SonarQube format, then it can be loaded by using :
- *
+ * <p/>
* <pre>
* public class JsSquidRulesDefinition implements RulesDefinition {
*
@@ -109,10 +109,10 @@ import java.util.Set;
* }
* }
* </pre>
- *
+ * <p/>
* In the above example, XML file must contain name and description of each rule. If it's not the case, then the
* (deprecated) English bundles can be used :
- *
+ * <p/>
* <pre>
* public class JsSquidRulesDefinition implements RulesDefinition {
*
@@ -376,7 +376,7 @@ public interface RulesDefinition extends ServerExtension {
private String name, htmlDescription, internalKey, severity = Severity.MAJOR;
private boolean template;
private RuleStatus status = RuleStatus.defaultStatus();
- private String debtCharacteristic;
+ private String debtSubCharacteristic;
private DebtRemediationFunction debtRemediationFunction;
private String effortToFixDescription;
private final Set<String> tags = Sets.newTreeSet();
@@ -440,11 +440,14 @@ public interface RulesDefinition extends ServerExtension {
return this;
}
- public NewRule setDebtCharacteristic(@Nullable String debtCharacteristic) {
- this.debtCharacteristic = debtCharacteristic;
+ public NewRule setDebtSubCharacteristic(@Nullable String s) {
+ this.debtSubCharacteristic = s;
return this;
}
+ /**
+ * Factory of {@link org.sonar.api.server.debt.DebtRemediationFunction}
+ */
public DebtRemediationFunctions debtRemediationFunctions() {
return functions;
}
@@ -517,8 +520,8 @@ public interface RulesDefinition extends ServerExtension {
if (Strings.isNullOrEmpty(htmlDescription)) {
throw new IllegalStateException(String.format("HTML description of rule %s is empty", this));
}
- if ((Strings.isNullOrEmpty(debtCharacteristic) && debtRemediationFunction != null) || (!Strings.isNullOrEmpty(debtCharacteristic) && debtRemediationFunction == null)) {
- throw new IllegalStateException(String.format("Both debt characteristic and debt remediation function should be defined on rule '%s'", this));
+ if ((Strings.isNullOrEmpty(debtSubCharacteristic) && debtRemediationFunction != null) || (!Strings.isNullOrEmpty(debtSubCharacteristic) && debtRemediationFunction == null)) {
+ throw new IllegalStateException(String.format("Both debt sub-characteristic and debt remediation function should be defined on rule '%s'", this));
}
}
@@ -533,7 +536,7 @@ public interface RulesDefinition extends ServerExtension {
private final Repository repository;
private final String repoKey, key, name, htmlDescription, internalKey, severity;
private final boolean template;
- private final String debtCharacteristic;
+ private final String debtSubCharacteristic;
private final DebtRemediationFunction debtRemediationFunction;
private final String effortToFixDescription;
private final Set<String> tags;
@@ -550,7 +553,7 @@ public interface RulesDefinition extends ServerExtension {
this.severity = newRule.severity;
this.template = newRule.template;
this.status = newRule.status;
- this.debtCharacteristic = newRule.debtCharacteristic;
+ this.debtSubCharacteristic = newRule.debtSubCharacteristic;
this.debtRemediationFunction = newRule.debtRemediationFunction;
this.effortToFixDescription = newRule.effortToFixDescription;
this.tags = ImmutableSortedSet.copyOf(newRule.tags);
@@ -591,8 +594,8 @@ public interface RulesDefinition extends ServerExtension {
}
@CheckForNull
- public String debtCharacteristic() {
- return debtCharacteristic;
+ public String debtSubCharacteristic() {
+ return debtSubCharacteristic;
}
@CheckForNull
diff --git a/sonar-plugin-api/src/test/java/org/sonar/api/server/rule/RulesDefinitionTest.java b/sonar-plugin-api/src/test/java/org/sonar/api/server/rule/RulesDefinitionTest.java
index 96351855f53..186fe99dc22 100644
--- a/sonar-plugin-api/src/test/java/org/sonar/api/server/rule/RulesDefinitionTest.java
+++ b/sonar-plugin-api/src/test/java/org/sonar/api/server/rule/RulesDefinitionTest.java
@@ -71,7 +71,7 @@ public class RulesDefinitionTest {
.setSeverity(Severity.BLOCKER)
.setInternalKey("/something")
.setStatus(RuleStatus.BETA)
- .setDebtCharacteristic("COMPILER")
+ .setDebtSubCharacteristic("COMPILER")
.setEffortToFixDescription("squid.S115.effortToFix")
.setTags("one", "two")
.addTags("two", "three", "four");
@@ -93,7 +93,7 @@ public class RulesDefinitionTest {
assertThat(rule.internalKey()).isEqualTo("/something");
assertThat(rule.template()).isFalse();
assertThat(rule.status()).isEqualTo(RuleStatus.BETA);
- assertThat(rule.debtCharacteristic()).isEqualTo("COMPILER");
+ assertThat(rule.debtSubCharacteristic()).isEqualTo("COMPILER");
assertThat(rule.debtRemediationFunction().type()).isEqualTo(DebtRemediationFunction.Type.LINEAR_OFFSET);
assertThat(rule.debtRemediationFunction().factor()).isEqualTo("1h");
assertThat(rule.debtRemediationFunction().offset()).isEqualTo("10min");
@@ -120,7 +120,7 @@ public class RulesDefinitionTest {
assertThat(rule.internalKey()).isNull();
assertThat(rule.status()).isEqualTo(RuleStatus.defaultStatus());
assertThat(rule.tags()).isEmpty();
- assertThat(rule.debtCharacteristic()).isNull();
+ assertThat(rule.debtSubCharacteristic()).isNull();
assertThat(rule.debtRemediationFunction()).isNull();
}
@@ -302,12 +302,12 @@ public class RulesDefinitionTest {
public void fail_if_define_characteristic_without_function() {
RulesDefinition.NewRepository newRepository = context.createRepository("findbugs", "java");
newRepository.createRule("NPE").setName("NPE").setHtmlDescription("Detect <code>java.lang.NullPointerException</code>")
- .setDebtCharacteristic("COMPILER");
+ .setDebtSubCharacteristic("COMPILER");
try {
newRepository.done();
fail();
} catch (IllegalStateException e) {
- assertThat(e).hasMessage("Both debt characteristic and debt remediation function should be defined on rule '[repository=findbugs, key=NPE]'");
+ assertThat(e).hasMessage("Both debt sub-characteristic and debt remediation function should be defined on rule '[repository=findbugs, key=NPE]'");
}
}
@@ -315,13 +315,13 @@ public class RulesDefinitionTest {
public void fail_if_define_function_without_characteristic() {
RulesDefinition.NewRepository newRepository = context.createRepository("findbugs", "java");
RulesDefinition.NewRule newRule = newRepository.createRule("NPE").setName("NPE").setHtmlDescription("Detect <code>java.lang.NullPointerException</code>")
- .setDebtCharacteristic("");
+ .setDebtSubCharacteristic("");
newRule.setDebtRemediationFunction(newRule.debtRemediationFunctions().linearWithOffset("1h", "10min"));
try {
newRepository.done();
fail();
} catch (IllegalStateException e) {
- assertThat(e).hasMessage("Both debt characteristic and debt remediation function should be defined on rule '[repository=findbugs, key=NPE]'");
+ assertThat(e).hasMessage("Both debt sub-characteristic and debt remediation function should be defined on rule '[repository=findbugs, key=NPE]'");
}
}
diff --git a/sonar-server/src/main/java/org/sonar/server/rule/DeprecatedRulesDefinition.java b/sonar-server/src/main/java/org/sonar/server/rule/DeprecatedRulesDefinition.java
index d9bd3ea9e34..343e76c9a3e 100644
--- a/sonar-server/src/main/java/org/sonar/server/rule/DeprecatedRulesDefinition.java
+++ b/sonar-server/src/main/java/org/sonar/server/rule/DeprecatedRulesDefinition.java
@@ -111,7 +111,7 @@ public class DeprecatedRulesDefinition implements RulesDefinition {
private void updateRuleDebtDefinitions(NewRule newRule, String repoKey, String ruleKey, List<RuleDebt> ruleDebts){
RuleDebt ruleDebt = findRequirement(ruleDebts, repoKey, ruleKey);
if (ruleDebt != null) {
- newRule.setDebtCharacteristic(ruleDebt.characteristicKey());
+ newRule.setDebtSubCharacteristic(ruleDebt.characteristicKey());
switch (ruleDebt.function()) {
case LINEAR :
newRule.setDebtRemediationFunction(newRule.debtRemediationFunctions().linear(ruleDebt.factor()));
diff --git a/sonar-server/src/main/java/org/sonar/server/rule/RuleRegistration.java b/sonar-server/src/main/java/org/sonar/server/rule/RuleRegistration.java
index 9155a6e9edf..e592464e105 100644
--- a/sonar-server/src/main/java/org/sonar/server/rule/RuleRegistration.java
+++ b/sonar-server/src/main/java/org/sonar/server/rule/RuleRegistration.java
@@ -549,7 +549,7 @@ public class RuleRegistration implements Startable {
@CheckForNull
private CharacteristicDto findCharacteristic(RulesDefinition.Rule ruleDef, @Nullable Integer overridingCharacteristicId, List<CharacteristicDto> characteristicDtos) {
- String key = ruleDef.debtCharacteristic();
+ String key = ruleDef.debtSubCharacteristic();
// Rule is not linked to a default characteristic or characteristic has been disabled by user, nothing to do
if (key == null) {
return null;
diff --git a/sonar-server/src/test/java/org/sonar/server/rule/DeprecatedRulesDefinitionTest.java b/sonar-server/src/test/java/org/sonar/server/rule/DeprecatedRulesDefinitionTest.java
index cc48bef99aa..a69875ff4b5 100644
--- a/sonar-server/src/test/java/org/sonar/server/rule/DeprecatedRulesDefinitionTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/rule/DeprecatedRulesDefinitionTest.java
@@ -180,7 +180,7 @@ public class DeprecatedRulesDefinitionTest {
RulesDefinition.Rule rule = checkstyle.rule("ConstantName");
assertThat(rule).isNotNull();
assertThat(rule.key()).isEqualTo("ConstantName");
- assertThat(rule.debtCharacteristic()).isEqualTo("MEMORY_EFFICIENCY");
+ assertThat(rule.debtSubCharacteristic()).isEqualTo("MEMORY_EFFICIENCY");
assertThat(rule.debtRemediationFunction().type()).isEqualTo(DebtRemediationFunction.Type.LINEAR_OFFSET);
assertThat(rule.debtRemediationFunction().factor()).isEqualTo("1d");
assertThat(rule.debtRemediationFunction().offset()).isEqualTo("10min");
diff --git a/sonar-server/src/test/java/org/sonar/server/rule/RuleRegistrationTest.java b/sonar-server/src/test/java/org/sonar/server/rule/RuleRegistrationTest.java
index b4b2f85ee6a..5e3ebe8b9d7 100644
--- a/sonar-server/src/test/java/org/sonar/server/rule/RuleRegistrationTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/rule/RuleRegistrationTest.java
@@ -288,7 +288,7 @@ public class RuleRegistrationTest extends AbstractDaoTestCase {
.setInternalKey("config1")
.setTags("tag1", "tag3", "tag5");
- rule1.setDebtCharacteristic("MEMORY_EFFICIENCY")
+ rule1.setDebtSubCharacteristic("MEMORY_EFFICIENCY")
.setDebtRemediationFunction(rule1.debtRemediationFunctions().linearWithOffset("5d", "10h"))
.setEffortToFixDescription("squid.S115.effortToFix");