aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-server/src
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@sonarsource.com>2014-03-05 14:33:37 +0100
committerJulien Lancelot <julien.lancelot@sonarsource.com>2014-03-05 18:46:29 +0100
commit5db887d91de4e330ac6370a90251050f8ec93517 (patch)
treef8469d6f64b08868afed3a0984eb2068eef79ae7 /sonar-server/src
parent50aca35f98ddaf325772979e73a8e25ec7aa262b (diff)
downloadsonarqube-5db887d91de4e330ac6370a90251050f8ec93517.tar.gz
sonarqube-5db887d91de4e330ac6370a90251050f8ec93517.zip
SONAR-5056 Add debt columns on rules and update Rule API to define some debt data
Diffstat (limited to 'sonar-server/src')
-rw-r--r--sonar-server/src/main/java/org/sonar/server/rule/RuleRegistration.java41
-rw-r--r--sonar-server/src/main/webapp/WEB-INF/db/migrate/520_add_debt_columns_to_rules.rb40
-rw-r--r--sonar-server/src/test/java/org/sonar/server/rule/RuleRegistrationTest.java121
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_deprecated_active_rule_params-result.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_disable_deprecated_active_rule_params-result.xml)0
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_deprecated_active_rule_params.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_disable_deprecated_active_rule_params.xml)0
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_deprecated_active_rules-result.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_disable_deprecated_active_rules-result.xml)0
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_deprecated_active_rules.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_disable_deprecated_active_rules.xml)0
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_deprecated_repositories-result.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_disable_deprecated_repositories-result.xml)0
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_deprecated_rules-result.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_disable_deprecated_rules-result.xml)0
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_deprecated_rules.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_disable_deprecated_rules.xml)0
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_template_rules_if_parent_is_disabled-result.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disableUserRulesIfParentIsDisabled-result.xml)0
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_template_rules_if_parent_is_disabled.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disableUserRulesIfParentIsDisabled.xml)2
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/insert_extended_repositories-result.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_insert_extended_repositories-result.xml)2
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/insert_new_rules-result.xml58
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/not_disable_manual_rules-result.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/shouldNotDisableManualRules-result.xml)0
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/not_disable_manual_rules.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/shouldNotDisableManualRules.xml)2
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/not_disable_template_rules_if_parent_is_enabled-result.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/doNotDisableUserRulesIfParentIsEnabled-result.xml)0
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/not_disable_template_rules_if_parent_is_enabled.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/doNotDisableUserRulesIfParentIsEnabled.xml)2
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/not_update_already_disabled_rules-result.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_not_update_already_disabled_rules-result.xml)0
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/not_update_already_disabled_rules.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_not_update_already_disabled_rules.xml)0
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/reactivate_disabled_rules-result.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_reactivate_disabled_rules-result.xml)0
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/reactivate_disabled_rules.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_reactivate_disabled_rules.xml)0
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/shared.xml2
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_insert_new_rules-result.xml22
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_update_template_rule_language-result.xml17
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_update_template_rule_language.xml17
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/store_bundle_name_and_description_in_database-result.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_store_bundle_name_and_description_in_database-result.xml)0
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/update_rule_fields-result.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/updadeRuleFields-result.xml)14
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/update_rule_fields.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/updadeRuleFields.xml)9
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/update_rule_parameters-result.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_update_rule_parameters-result.xml)0
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/update_rule_parameters.xml (renamed from sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_update_rule_parameters.xml)0
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/update_template_rule_language-result.xml57
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/update_template_rule_language.xml57
33 files changed, 338 insertions, 125 deletions
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 c9641831cb9..3356625a869 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
@@ -27,9 +27,9 @@ import org.apache.ibatis.session.SqlSession;
import org.picocontainer.Startable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.sonar.api.rule.RemediationFunction;
import org.sonar.api.rule.RuleKey;
import org.sonar.api.rules.Rule;
-import org.sonar.api.rules.RulePriority;
import org.sonar.api.server.rule.RuleDefinitions;
import org.sonar.api.utils.System2;
import org.sonar.api.utils.TimeProfiler;
@@ -152,6 +152,7 @@ public class RuleRegistration implements Startable {
}
private RuleDto enableAndInsert(Buffer buffer, SqlSession sqlSession, RuleDefinitions.Rule ruleDef) {
+ RemediationFunction remediationFunction = ruleDef.remediationFunction();
RuleDto ruleDto = new RuleDto()
.setCardinality(ruleDef.template() ? Cardinality.MULTIPLE : Cardinality.SINGLE)
.setConfigKey(ruleDef.internalKey())
@@ -160,10 +161,15 @@ public class RuleRegistration implements Startable {
.setName(ruleDef.name())
.setRepositoryKey(ruleDef.repository().key())
.setRuleKey(ruleDef.key())
- .setSeverity(RulePriority.valueOf(ruleDef.severity()).name())
+ .setSeverity(ruleDef.severity())
.setCreatedAt(buffer.now())
.setUpdatedAt(buffer.now())
- .setStatus(ruleDef.status().name());
+ .setStatus(ruleDef.status().name())
+ // TODO set default characteristic id
+ .setDefaultRemediationFunction(remediationFunction != null ? remediationFunction.name() : null)
+ .setDefaultRemediationFactor(ruleDef.remediationFactor())
+ .setDefaultRemediationOffset(ruleDef.remediationOffset())
+ .setEffortToFixL10nKey(ruleDef.effortToFixL10nKey());
ruleDao.insert(ruleDto, sqlSession);
buffer.add(ruleDto);
@@ -204,7 +210,7 @@ public class RuleRegistration implements Startable {
dto.setConfigKey(def.internalKey());
changed = true;
}
- String severity = RulePriority.valueOf(def.severity()).name();
+ String severity = def.severity();
if (!ObjectUtils.equals(dto.getSeverityString(), severity)) {
dto.setSeverity(severity);
changed = true;
@@ -219,6 +225,28 @@ public class RuleRegistration implements Startable {
dto.setStatus(status);
changed = true;
}
+
+ // TODO add characteristic id change verification
+
+ RemediationFunction remediationFunction = def.remediationFunction();
+ String remediationFunctionString = remediationFunction != null ? remediationFunction.name() : null;
+ if (!StringUtils.equals(dto.getDefaultRemediationFunction(), remediationFunctionString)) {
+ dto.setDefaultRemediationFunction(remediationFunctionString);
+ changed = true;
+ }
+ if (!StringUtils.equals(dto.getDefaultRemediationFactor(), def.remediationFactor())) {
+ dto.setDefaultRemediationFactor(def.remediationFactor());
+ changed = true;
+ }
+ if (!StringUtils.equals(dto.getDefaultRemediationOffset(), def.remediationOffset())) {
+ dto.setDefaultRemediationOffset(def.remediationOffset());
+ changed = true;
+ }
+ if (!StringUtils.equals(dto.getEffortToFixL10nKey(), def.effortToFixL10nKey())) {
+ dto.setEffortToFixL10nKey(def.effortToFixL10nKey());
+ changed = true;
+ }
+
if (!StringUtils.equals(dto.getLanguage(), def.repository().language())) {
dto.setLanguage(def.repository().language());
changed = true;
@@ -345,6 +373,11 @@ public class RuleRegistration implements Startable {
// TODO merge params and tags ?
ruleDto.setLanguage(parent.getLanguage());
ruleDto.setStatus(parent.getStatus());
+ ruleDto.setDefaultCharacteristicId(parent.getDefaultCharacteristicId());
+ ruleDto.setDefaultRemediationFunction(parent.getDefaultRemediationFunction());
+ ruleDto.setDefaultRemediationFactor(parent.getDefaultRemediationFactor());
+ ruleDto.setDefaultRemediationOffset(parent.getDefaultRemediationOffset());
+ ruleDto.setEffortToFixL10nKey(parent.getEffortToFixL10nKey());
ruleDto.setUpdatedAt(buffer.now());
ruleDao.update(ruleDto, sqlSession);
toBeRemoved = false;
diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/520_add_debt_columns_to_rules.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/520_add_debt_columns_to_rules.rb
new file mode 100644
index 00000000000..f78d6091694
--- /dev/null
+++ b/sonar-server/src/main/webapp/WEB-INF/db/migrate/520_add_debt_columns_to_rules.rb
@@ -0,0 +1,40 @@
+#
+# 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.
+#
+
+#
+# Sonar 4.3
+# SONAR-5056
+#
+class AddDebtColumnsToRules < ActiveRecord::Migration
+
+ def self.up
+ add_column 'rules', :characteristic_id, :integer, :null => true
+ add_column 'rules', :default_characteristic_id, :integer, :null => true
+ add_column 'rules', :remediation_function, :string, :null => true, :limit => 20
+ add_column 'rules', :default_remediation_function, :string, :null => true, :limit => 20
+ add_column 'rules', :remediation_factor, :string, :null => true, :limit => 20
+ add_column 'rules', :default_remediation_factor, :string, :null => true, :limit => 20
+ add_column 'rules', :remediation_offset, :string, :null => true, :limit => 20
+ add_column 'rules', :default_remediation_offset, :string, :null => true, :limit => 20
+ add_column 'rules', :effort_to_fix_l10n_key, :string, :null => true, :limit => 100
+ end
+
+end
+
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 a4f125a0867..3853bff4914 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
@@ -22,6 +22,7 @@ package org.sonar.server.rule;
import org.junit.Before;
import org.junit.Test;
+import org.sonar.api.rule.RemediationFunction;
import org.sonar.api.rule.RuleStatus;
import org.sonar.api.rule.Severity;
import org.sonar.api.server.rule.RuleDefinitions;
@@ -37,8 +38,11 @@ import static org.mockito.Mockito.*;
public class RuleRegistrationTest extends AbstractDaoTestCase {
- private static final String[] EXCLUDED_COLUMN_NAMES = {
- "created_at", "updated_at", "note_data", "note_user_login", "note_created_at", "note_updated_at"};
+ private static final String[] EXCLUDED_COLUMN_NAMES = {"created_at", "updated_at", "note_data", "note_user_login", "note_created_at", "note_updated_at"};
+ private static final String[] EXCLUDED_COLUMN_NAMES_INCLUDING_DEBT = {"created_at", "updated_at", "note_data", "note_user_login", "note_created_at", "note_updated_at",
+ "characteristic_id", "default_characteristic_id",
+ "remediation_function", "default_remediation_function", "remediation_factor", "default_remediation_factor", "remediation_offset", "default_remediation_offset",
+ "effort_to_fix_l10n_key"};
RuleRegistration task;
ProfilesManager profilesManager = mock(ProfilesManager.class);
@@ -62,19 +66,19 @@ public class RuleRegistrationTest extends AbstractDaoTestCase {
}
@Test
- public void should_insert_new_rules() {
+ public void insert_new_rules() {
setupData("shared");
task.start();
- checkTables("should_insert_new_rules", EXCLUDED_COLUMN_NAMES, "rules", "rules_parameters", "rules_rule_tags", "rule_tags");
+ checkTables("insert_new_rules", EXCLUDED_COLUMN_NAMES, "rules", "rules_parameters", "rules_rule_tags", "rule_tags");
}
@Test
- public void should_update_template_rule_language() {
- setupData("should_update_template_rule_language");
+ public void update_template_rule_language() {
+ setupData("update_template_rule_language");
task.start();
- checkTables("should_update_template_rule_language", EXCLUDED_COLUMN_NAMES, "rules");
+ checkTables("update_template_rule_language", EXCLUDED_COLUMN_NAMES, "rules");
}
/**
@@ -100,11 +104,11 @@ public class RuleRegistrationTest extends AbstractDaoTestCase {
}
@Test
- public void should_reactivate_disabled_rules() {
- setupData("should_reactivate_disabled_rules");
+ public void reactivate_disabled_rules() {
+ setupData("reactivate_disabled_rules");
task.start();
- checkTables("should_reactivate_disabled_rules", EXCLUDED_COLUMN_NAMES, "rules");
+ checkTables("reactivate_disabled_rules", EXCLUDED_COLUMN_NAMES_INCLUDING_DEBT, "rules");
assertThat(ruleDao.selectById(1).getUpdatedAt()).isNotNull();
}
@@ -114,72 +118,72 @@ public class RuleRegistrationTest extends AbstractDaoTestCase {
setupData("reactivate_disabled_template_rules");
task.start();
- checkTables("reactivate_disabled_template_rules", EXCLUDED_COLUMN_NAMES, "rules");
+ checkTables("reactivate_disabled_template_rules", EXCLUDED_COLUMN_NAMES_INCLUDING_DEBT, "rules");
}
@Test
- public void should_disable_deprecated_active_rules() {
- setupData("should_disable_deprecated_active_rules");
+ public void disable_deprecated_active_rules() {
+ setupData("disable_deprecated_active_rules");
task.start();
- checkTables("should_disable_deprecated_active_rules", EXCLUDED_COLUMN_NAMES, "rules");
+ checkTables("disable_deprecated_active_rules", EXCLUDED_COLUMN_NAMES_INCLUDING_DEBT, "rules");
}
@Test
- public void should_disable_deprecated_active_rule_params() {
- setupData("should_disable_deprecated_active_rule_params");
+ public void disable_deprecated_active_rule_params() {
+ setupData("disable_deprecated_active_rule_params");
task.start();
- checkTables("should_disable_deprecated_active_rule_params", EXCLUDED_COLUMN_NAMES, "rules", "rules_parameters", "active_rules", "active_rule_parameters");
+ checkTables("disable_deprecated_active_rule_params", EXCLUDED_COLUMN_NAMES_INCLUDING_DEBT, "rules", "rules_parameters", "active_rules", "active_rule_parameters");
}
@Test
- public void should_disable_deprecated_rules() {
- setupData("should_disable_deprecated_rules");
+ public void disable_deprecated_rules() {
+ setupData("disable_deprecated_rules");
task.start();
- checkTables("should_disable_deprecated_rules", EXCLUDED_COLUMN_NAMES, "rules", "rules_parameters", "rules_rule_tags", "rule_tags");
+ checkTables("disable_deprecated_rules", EXCLUDED_COLUMN_NAMES_INCLUDING_DEBT, "rules", "rules_parameters", "rules_rule_tags", "rule_tags");
}
@Test
- public void should_update_rule_fields() {
- setupData("updadeRuleFields");
+ public void update_rule_fields() {
+ setupData("update_rule_fields");
task.start();
- checkTables("updadeRuleFields", EXCLUDED_COLUMN_NAMES, "rules", "rules_parameters", "rule_tags", "rules_rule_tags");
+ checkTables("update_rule_fields", EXCLUDED_COLUMN_NAMES, "rules", "rules_parameters", "rule_tags", "rules_rule_tags");
}
@Test
- public void should_update_rule_parameters() {
- setupData("should_update_rule_parameters");
+ public void update_rule_parameters() {
+ setupData("update_rule_parameters");
task.start();
- checkTables("should_update_rule_parameters", EXCLUDED_COLUMN_NAMES, "rules", "rules_parameters");
+ checkTables("update_rule_parameters", EXCLUDED_COLUMN_NAMES_INCLUDING_DEBT, "rules", "rules_parameters");
}
@Test
- public void should_not_disable_template_rules_if_parent_is_enabled() {
- setupData("doNotDisableUserRulesIfParentIsEnabled");
+ public void not_disable_template_rules_if_parent_is_enabled() {
+ setupData("not_disable_template_rules_if_parent_is_enabled");
task.start();
- checkTables("doNotDisableUserRulesIfParentIsEnabled", EXCLUDED_COLUMN_NAMES, "rules");
+ checkTables("not_disable_template_rules_if_parent_is_enabled", EXCLUDED_COLUMN_NAMES_INCLUDING_DEBT, "rules");
}
@Test
- public void should_disable_template_rules_if_parent_is_disabled() {
- setupData("disableUserRulesIfParentIsDisabled");
+ public void disable_template_rules_if_parent_is_disabled() {
+ setupData("disable_template_rules_if_parent_is_disabled");
task.start();
- checkTables("disableUserRulesIfParentIsDisabled", EXCLUDED_COLUMN_NAMES, "rules");
+ checkTables("disable_template_rules_if_parent_is_disabled", EXCLUDED_COLUMN_NAMES_INCLUDING_DEBT, "rules");
}
@Test
- public void should_not_disable_manual_rules() {
+ public void not_disable_manual_rules() {
// the hardcoded repository "manual" is used for manual violations
- setupData("shouldNotDisableManualRules");
+ setupData("not_disable_manual_rules");
task.start();
- checkTables("shouldNotDisableManualRules", EXCLUDED_COLUMN_NAMES, "rules");
+ checkTables("not_disable_manual_rules", EXCLUDED_COLUMN_NAMES_INCLUDING_DEBT, "rules");
}
@Test
@@ -197,15 +201,15 @@ public class RuleRegistrationTest extends AbstractDaoTestCase {
}
@Test
- public void should_insert_extended_repositories() {
+ public void insert_extended_repositories() {
task = new RuleRegistration(new RuleDefinitionsLoader(mock(RuleRepositories.class), new RuleDefinitions[]{
- new FindbugsRepository(), new FbContribRepository()}),
+ new FindbugsRepository(), new FbContribRepository()}),
profilesManager, ruleRegistry, esRuleTags, ruleTagOperations, myBatis, ruleDao, ruleTagDao, activeRuleDao);
setupData("empty");
task.start();
- checkTables("should_insert_extended_repositories", EXCLUDED_COLUMN_NAMES, "rules");
+ checkTables("insert_extended_repositories", EXCLUDED_COLUMN_NAMES_INCLUDING_DEBT, "rules");
}
static class FakeRepository implements RuleDefinitions {
@@ -214,19 +218,24 @@ public class RuleRegistrationTest extends AbstractDaoTestCase {
NewRepository repo = context.newRepository("fake", "java");
NewRule rule1 = repo.newRule("rule1")
- .setName("One")
- .setHtmlDescription("Description of One")
- .setSeverity(Severity.BLOCKER)
- .setInternalKey("config1")
- .setTags("tag1", "tag3", "tag5");
+ .setName("One")
+ .setHtmlDescription("Description of One")
+ .setSeverity(Severity.BLOCKER)
+ .setCharacteristicKey("COMPILER")
+ .setRemediationFunction(RemediationFunction.LINEAR_OFFSET)
+ .setRemediationFactor("5d")
+ .setRemediationOffset("10h")
+ .setEffortToFixL10nKey("squid.S115.effortToFix")
+ .setInternalKey("config1")
+ .setTags("tag1", "tag3", "tag5");
rule1.newParam("param1").setDescription("parameter one").setDefaultValue("default value one");
rule1.newParam("param2").setDescription("parameter two").setDefaultValue("default value two");
repo.newRule("rule2")
- .setName("Two")
- .setHtmlDescription("Description of Two")
- .setSeverity(Severity.INFO)
- .setStatus(RuleStatus.DEPRECATED);
+ .setName("Two")
+ .setHtmlDescription("Description of Two")
+ .setSeverity(Severity.INFO)
+ .setStatus(RuleStatus.DEPRECATED);
repo.done();
}
}
@@ -239,11 +248,11 @@ public class RuleRegistrationTest extends AbstractDaoTestCase {
NewRepository repo = context.newRepository("big", "java");
for (int i = 0; i < SIZE; i++) {
NewRule rule = repo.newRule("rule" + i)
- .setName("name of " + i)
- .setHtmlDescription("description of " + i)
- .setSeverity(Severity.BLOCKER)
- .setInternalKey("config1")
- .setTags("tag1", "tag3", "tag5");
+ .setName("name of " + i)
+ .setHtmlDescription("description of " + i)
+ .setSeverity(Severity.BLOCKER)
+ .setInternalKey("config1")
+ .setTags("tag1", "tag3", "tag5");
for (int j = 0; j < 20; j++) {
rule.newParam("param" + j);
}
@@ -258,8 +267,8 @@ public class RuleRegistrationTest extends AbstractDaoTestCase {
public void define(Context context) {
NewRepository repo = context.newRepository("findbugs", "java");
repo.newRule("rule1")
- .setName("Rule One")
- .setHtmlDescription("Description of Rule One");
+ .setName("Rule One")
+ .setHtmlDescription("Description of Rule One");
repo.done();
}
}
@@ -269,8 +278,8 @@ public class RuleRegistrationTest extends AbstractDaoTestCase {
public void define(Context context) {
NewExtendedRepository repo = context.extendRepository("findbugs", "java");
repo.newRule("rule2")
- .setName("Rule Two")
- .setHtmlDescription("Description of Rule Two");
+ .setName("Rule Two")
+ .setHtmlDescription("Description of Rule Two");
repo.done();
}
}
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_disable_deprecated_active_rule_params-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_deprecated_active_rule_params-result.xml
index d802714fa76..d802714fa76 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_disable_deprecated_active_rule_params-result.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_deprecated_active_rule_params-result.xml
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_disable_deprecated_active_rule_params.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_deprecated_active_rule_params.xml
index 8b124e9c6c6..8b124e9c6c6 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_disable_deprecated_active_rule_params.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_deprecated_active_rule_params.xml
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_disable_deprecated_active_rules-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_deprecated_active_rules-result.xml
index 9d782421156..9d782421156 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_disable_deprecated_active_rules-result.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_deprecated_active_rules-result.xml
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_disable_deprecated_active_rules.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_deprecated_active_rules.xml
index 1e4bfe7b714..1e4bfe7b714 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_disable_deprecated_active_rules.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_deprecated_active_rules.xml
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_disable_deprecated_repositories-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_deprecated_repositories-result.xml
index c360f7632fe..c360f7632fe 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_disable_deprecated_repositories-result.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_deprecated_repositories-result.xml
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_disable_deprecated_rules-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_deprecated_rules-result.xml
index 6fbbd458ed6..6fbbd458ed6 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_disable_deprecated_rules-result.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_deprecated_rules-result.xml
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_disable_deprecated_rules.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_deprecated_rules.xml
index 02da4a352cd..02da4a352cd 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_disable_deprecated_rules.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_deprecated_rules.xml
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disableUserRulesIfParentIsDisabled-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_template_rules_if_parent_is_disabled-result.xml
index 9b4c8e7fec4..9b4c8e7fec4 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disableUserRulesIfParentIsDisabled-result.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_template_rules_if_parent_is_disabled-result.xml
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disableUserRulesIfParentIsDisabled.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_template_rules_if_parent_is_disabled.xml
index 3d583d9b472..3ec546d9b46 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disableUserRulesIfParentIsDisabled.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/disable_template_rules_if_parent_is_disabled.xml
@@ -16,4 +16,4 @@
<rules id="4" plugin_rule_key="template_rule2" plugin_name="fake" plugin_config_key="[null]" name="User rule" description="[null]"
status="READY" priority="4" cardinality="SINGLE" parent_id="3"/>
-</dataset> \ No newline at end of file
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_insert_extended_repositories-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/insert_extended_repositories-result.xml
index f8650b84e27..c8b08ab37e8 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_insert_extended_repositories-result.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/insert_extended_repositories-result.xml
@@ -6,4 +6,4 @@
<rules id="2" plugin_rule_key="rule2" plugin_name="findbugs" plugin_config_key="[null]" name="Rule Two" description="Description of Rule Two"
status="READY" priority="2" cardinality="SINGLE" parent_id="[null]" language="java"/>
-</dataset> \ No newline at end of file
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/insert_new_rules-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/insert_new_rules-result.xml
new file mode 100644
index 00000000000..050c8b4377c
--- /dev/null
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/insert_new_rules-result.xml
@@ -0,0 +1,58 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+
+ <rules id="1" plugin_rule_key="deprecated-key" plugin_name="deprecated-repo" plugin_config_key="[null]" name="Deprecated" description="[null]"
+ status="REMOVED" priority="4" cardinality="SINGLE" parent_id="[null]" language="[null]"
+ characteristic_id="[null]" default_characteristic_id="[null]"
+ remediation_function="[null]" default_remediation_function="[null]"
+ remediation_factor="[null]" default_remediation_factor="[null]"
+ remediation_offset="[null]" default_remediation_offset="[null]"
+ effort_to_fix_l10n_key="[null]"/>
+
+ <rules id="2" plugin_rule_key="rule1" plugin_name="fake" plugin_config_key="config1" name="One" description="Description of One"
+ status="READY" priority="4" cardinality="SINGLE" parent_id="[null]" language="java"
+ characteristic_id="[null]" default_characteristic_id="[null]"
+ remediation_function="[null]" default_remediation_function="LINEAR_OFFSET"
+ remediation_factor="[null]" default_remediation_factor="5d"
+ remediation_offset="[null]" default_remediation_offset="10h"
+ effort_to_fix_l10n_key="squid.S115.effortToFix"/>
+
+ <rules_parameters id="1" rule_id="2" default_value="default value one" description="parameter one" name="param1" param_type="STRING"/>
+ <rules_parameters id="2" rule_id="2" default_value="default value two" description="parameter two" name="param2" param_type="STRING"/>
+
+ <rule_tags id="1" tag="tag1"/>
+ <rule_tags id="2" tag="tag3"/>
+ <rule_tags id="3" tag="tag5"/>
+
+ <rules_rule_tags id="1" rule_id="2" rule_tag_id="1" tag_type="SYSTEM"/>
+ <rules_rule_tags id="2" rule_id="2" rule_tag_id="2" tag_type="SYSTEM"/>
+ <rules_rule_tags id="3" rule_id="2" rule_tag_id="3" tag_type="SYSTEM"/>
+
+ <rules id="3" plugin_rule_key="rule2" plugin_name="fake" plugin_config_key="[null]" name="Two" description="Description of Two"
+ status="DEPRECATED" priority="0" cardinality="SINGLE" parent_id="[null]" language="java"
+ characteristic_id="[null]" default_characteristic_id="[null]"
+ remediation_function="[null]" default_remediation_function="[null]"
+ remediation_factor="[null]" default_remediation_factor="[null]"
+ remediation_offset="[null]" default_remediation_offset="[null]"
+ effort_to_fix_l10n_key="[null]"/>
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/shouldNotDisableManualRules-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/not_disable_manual_rules-result.xml
index 7aa9839d5ad..7aa9839d5ad 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/shouldNotDisableManualRules-result.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/not_disable_manual_rules-result.xml
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/shouldNotDisableManualRules.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/not_disable_manual_rules.xml
index cc9e9f725d7..f745b821f72 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/shouldNotDisableManualRules.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/not_disable_manual_rules.xml
@@ -6,4 +6,4 @@
<rules id="2" plugin_rule_key="IllegalExceptionCheck" plugin_name="checkstyle" plugin_config_key="[null]" name="Illegal Exception" description="[null]"
status="READY" priority="4" cardinality="SINGLE" parent_id="[null]"/>
-</dataset> \ No newline at end of file
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/doNotDisableUserRulesIfParentIsEnabled-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/not_disable_template_rules_if_parent_is_enabled-result.xml
index ddc9c940e81..ddc9c940e81 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/doNotDisableUserRulesIfParentIsEnabled-result.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/not_disable_template_rules_if_parent_is_enabled-result.xml
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/doNotDisableUserRulesIfParentIsEnabled.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/not_disable_template_rules_if_parent_is_enabled.xml
index e45fb2ebc5d..4260a86f9a6 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/doNotDisableUserRulesIfParentIsEnabled.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/not_disable_template_rules_if_parent_is_enabled.xml
@@ -6,4 +6,4 @@
<rules id="2" plugin_rule_key="user_rule" plugin_name="fake" plugin_config_key="[null]" name="User rule" description="[null]"
status="READY" priority="4" cardinality="SINGLE" parent_id="1"/>
-</dataset> \ No newline at end of file
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_not_update_already_disabled_rules-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/not_update_already_disabled_rules-result.xml
index c8f9fa8f786..c8f9fa8f786 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_not_update_already_disabled_rules-result.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/not_update_already_disabled_rules-result.xml
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_not_update_already_disabled_rules.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/not_update_already_disabled_rules.xml
index 7a8a2fa8e95..7a8a2fa8e95 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_not_update_already_disabled_rules.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/not_update_already_disabled_rules.xml
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_reactivate_disabled_rules-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/reactivate_disabled_rules-result.xml
index 18f0f55b16e..18f0f55b16e 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_reactivate_disabled_rules-result.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/reactivate_disabled_rules-result.xml
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_reactivate_disabled_rules.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/reactivate_disabled_rules.xml
index 146807e3afc..146807e3afc 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_reactivate_disabled_rules.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/reactivate_disabled_rules.xml
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/shared.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/shared.xml
index 68ec4b5e99b..84192cc4810 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/shared.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/shared.xml
@@ -3,4 +3,4 @@
<rules id="1" plugin_rule_key="deprecated-key" plugin_name="deprecated-repo" plugin_config_key="[null]" name="Deprecated" description="[null]"
status="READY" priority="4" cardinality="SINGLE" parent_id="[null]"/>
-</dataset> \ No newline at end of file
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_insert_new_rules-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_insert_new_rules-result.xml
deleted file mode 100644
index 3c7dff4a831..00000000000
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_insert_new_rules-result.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<dataset>
-
- <rules id="1" plugin_rule_key="deprecated-key" plugin_name="deprecated-repo" plugin_config_key="[null]" name="Deprecated" description="[null]"
- status="REMOVED" priority="4" cardinality="SINGLE" parent_id="[null]" language="[null]"/>
-
- <rules id="2" plugin_rule_key="rule1" plugin_name="fake" plugin_config_key="config1" name="One" description="Description of One"
- status="READY" priority="4" cardinality="SINGLE" parent_id="[null]" language="java"/>
- <rules_parameters id="1" rule_id="2" default_value="default value one" description="parameter one" name="param1" param_type="STRING"/>
- <rules_parameters id="2" rule_id="2" default_value="default value two" description="parameter two" name="param2" param_type="STRING"/>
-
- <rule_tags id="1" tag="tag1"/>
- <rule_tags id="2" tag="tag3"/>
- <rule_tags id="3" tag="tag5"/>
-
- <rules_rule_tags id="1" rule_id="2" rule_tag_id="1" tag_type="SYSTEM"/>
- <rules_rule_tags id="2" rule_id="2" rule_tag_id="2" tag_type="SYSTEM"/>
- <rules_rule_tags id="3" rule_id="2" rule_tag_id="3" tag_type="SYSTEM"/>
-
- <rules id="3" plugin_rule_key="rule2" plugin_name="fake" plugin_config_key="[null]" name="Two" description="Description of Two"
- status="DEPRECATED" priority="0" cardinality="SINGLE" parent_id="[null]" language="java"/>
-
-</dataset> \ No newline at end of file
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_update_template_rule_language-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_update_template_rule_language-result.xml
deleted file mode 100644
index d59dce6a2a4..00000000000
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_update_template_rule_language-result.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<dataset>
-
- <rules id="1" plugin_rule_key="rule1" plugin_name="fake" plugin_config_key="config1" name="One" description="Description of One"
- status="READY" priority="4" cardinality="SINGLE" parent_id="[null]" language="java"/>
-
- <!-- Instance of old rule 1 :/ -->
- <rules id="2" plugin_rule_key="template_rule1" plugin_name="fake" plugin_config_key="[null]" name="User rule" description="[null]"
- status="READY" priority="4" cardinality="SINGLE" parent_id="1" language="java"/>
-
- <rules id="3" plugin_rule_key="rule2" plugin_name="fake" plugin_config_key="[null]" name="Two" description="Description of Two"
- status="DEPRECATED" priority="0" cardinality="SINGLE" parent_id="[null]" language="java"/>
-
- <!-- Template of old rule 3 :/ -->
- <rules id="4" plugin_rule_key="template_rule2" plugin_name="fake" plugin_config_key="[null]" name="User rule" description="[null]"
- status="DEPRECATED" priority="4" cardinality="SINGLE" parent_id="3" language="java"/>
-
-</dataset> \ No newline at end of file
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_update_template_rule_language.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_update_template_rule_language.xml
deleted file mode 100644
index c8e9ce4db16..00000000000
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_update_template_rule_language.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<dataset>
-
- <rules id="1" plugin_rule_key="rule1" plugin_name="fake" plugin_config_key="[null]" name="Rule one" description="[null]"
- status="READY" priority="4" cardinality="MULTIPLE" parent_id="[null]" language="[null]"/>
-
- <!-- Instance of rule 1 -->
- <rules id="2" plugin_rule_key="template_rule1" plugin_name="fake" plugin_config_key="[null]" name="User rule" description="[null]"
- status="READY" priority="4" cardinality="SINGLE" parent_id="1" language="[null]"/>
-
- <rules id="3" plugin_rule_key="rule2" plugin_name="fake" plugin_config_key="old_config_key2" name="old name2" description="old description2"
- status="DEPRECATED" priority="1" cardinality="MULTIPLE" parent_id="[null]" />
-
- <!-- Instance of rule 3 -->
- <rules id="4" plugin_rule_key="template_rule2" plugin_name="fake" plugin_config_key="[null]" name="User rule" description="[null]"
- status="READY" priority="4" cardinality="SINGLE" parent_id="3"/>
-
-</dataset> \ No newline at end of file
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_store_bundle_name_and_description_in_database-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/store_bundle_name_and_description_in_database-result.xml
index b7d93c5a21b..b7d93c5a21b 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_store_bundle_name_and_description_in_database-result.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/store_bundle_name_and_description_in_database-result.xml
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/updadeRuleFields-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/update_rule_fields-result.xml
index 6a946360271..f630e3adbd9 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/updadeRuleFields-result.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/update_rule_fields-result.xml
@@ -1,7 +1,12 @@
<dataset>
<rules id="1" plugin_rule_key="rule1" plugin_name="fake" plugin_config_key="config1" name="One" description="Description of One"
- status="READY" priority="4" cardinality="SINGLE" parent_id="[null]" language="java"/>
+ status="READY" priority="4" cardinality="SINGLE" parent_id="[null]" language="java"
+ characteristic_id="[null]" default_characteristic_id="200"
+ remediation_function="[null]" default_remediation_function="LINEAR_OFFSET"
+ remediation_factor="[null]" default_remediation_factor="5d"
+ remediation_offset="[null]" default_remediation_offset="10h"
+ effort_to_fix_l10n_key="squid.S115.effortToFix"/>
<rules_parameters id="1" rule_id="1" default_value="default value one" description="parameter one" name="param1" param_type="STRING"/>
<rules_parameters id="2" rule_id="1" default_value="default value two" description="parameter two" name="param2" param_type="STRING"/>
@@ -17,6 +22,11 @@
<rules_rule_tags id="5" rule_id="1" rule_tag_id="5" tag_type="SYSTEM"/>
<rules id="2" plugin_rule_key="rule2" plugin_name="fake" plugin_config_key="[null]" name="Two" description="Description of Two"
- status="DEPRECATED" priority="0" cardinality="SINGLE" parent_id="[null]" language="java"/>
+ status="DEPRECATED" priority="0" cardinality="SINGLE" parent_id="[null]" language="java"
+ characteristic_id="[null]" default_characteristic_id="[null]"
+ remediation_function="[null]" default_remediation_function="[null]"
+ remediation_factor="[null]" default_remediation_factor="[null]"
+ remediation_offset="[null]" default_remediation_offset="[null]"
+ effort_to_fix_l10n_key="[null]"/>
</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/updadeRuleFields.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/update_rule_fields.xml
index 72212945512..416104e8287 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/updadeRuleFields.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/update_rule_fields.xml
@@ -1,7 +1,12 @@
<dataset>
<rules id="1" plugin_rule_key="rule1" plugin_name="fake" plugin_config_key="old_config_key" name="old name" description="old description"
- status="READY" priority="2" cardinality="SINGLE" parent_id="[null]" />
+ status="READY" priority="2" cardinality="SINGLE" parent_id="[null]"
+ characteristic_id="[null]" default_characteristic_id="200"
+ remediation_function="[null]" default_remediation_function="LINEAR"
+ remediation_factor="[null]" default_remediation_factor="14min"
+ remediation_offset="[null]" default_remediation_offset="[null]"
+ effort_to_fix_l10n_key="[null]"/>
<rules_parameters id="1" rule_id="1" name="param1" description="[null]" param_type="STRING"/>
@@ -16,7 +21,7 @@
<rules_rule_tags id="4" rule_id="1" rule_tag_id="4" tag_type="ADMIN"/>
<rules id="2" plugin_rule_key="rule2" plugin_name="fake" plugin_config_key="old_config_key2" name="old name2" description="old description2"
- status="READY" priority="1" cardinality="SINGLE" parent_id="[null]" />
+ status="READY" priority="1" cardinality="SINGLE" parent_id="[null]"/>
</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_update_rule_parameters-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/update_rule_parameters-result.xml
index 337a28e1605..337a28e1605 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_update_rule_parameters-result.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/update_rule_parameters-result.xml
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_update_rule_parameters.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/update_rule_parameters.xml
index 6e63e30e606..6e63e30e606 100644
--- a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/should_update_rule_parameters.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/update_rule_parameters.xml
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/update_template_rule_language-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/update_template_rule_language-result.xml
new file mode 100644
index 00000000000..210511b46e1
--- /dev/null
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/update_template_rule_language-result.xml
@@ -0,0 +1,57 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+
+ <rules id="1" plugin_rule_key="rule1" plugin_name="fake" plugin_config_key="config1" name="One" description="Description of One"
+ status="READY" priority="4" cardinality="SINGLE" parent_id="[null]" language="java"
+ characteristic_id="[null]" default_characteristic_id="100"
+ remediation_function="[null]" default_remediation_function="LINEAR_OFFSET"
+ remediation_factor="[null]" default_remediation_factor="5d"
+ remediation_offset="[null]" default_remediation_offset="10h"
+ effort_to_fix_l10n_key="squid.S115.effortToFix" />
+
+ <!-- Instance of old rule 1 :/ -->
+ <rules id="2" plugin_rule_key="template_rule1" plugin_name="fake" plugin_config_key="[null]" name="User rule" description="[null]"
+ status="READY" priority="4" cardinality="SINGLE" parent_id="1" language="java"
+ characteristic_id="[null]" default_characteristic_id="100"
+ remediation_function="[null]" default_remediation_function="LINEAR_OFFSET"
+ remediation_factor="[null]" default_remediation_factor="5d"
+ remediation_offset="[null]" default_remediation_offset="10h"
+ effort_to_fix_l10n_key="squid.S115.effortToFix" />
+
+ <rules id="3" plugin_rule_key="rule2" plugin_name="fake" plugin_config_key="[null]" name="Two" description="Description of Two"
+ status="DEPRECATED" priority="0" cardinality="SINGLE" parent_id="[null]" language="java"
+ characteristic_id="[null]" default_characteristic_id="[null]"
+ remediation_function="[null]" default_remediation_function="[null]"
+ remediation_factor="[null]" default_remediation_factor="[null]"
+ remediation_offset="[null]" default_remediation_offset="[null]"
+ effort_to_fix_l10n_key="[null]" />
+
+ <!-- Template of old rule 3 :/ -->
+ <rules id="4" plugin_rule_key="template_rule2" plugin_name="fake" plugin_config_key="[null]" name="User rule" description="[null]"
+ status="DEPRECATED" priority="4" cardinality="SINGLE" parent_id="3" language="java"
+ characteristic_id="[null]" default_characteristic_id="[null]"
+ remediation_function="[null]" default_remediation_function="[null]"
+ remediation_factor="[null]" default_remediation_factor="[null]"
+ remediation_offset="[null]" default_remediation_offset="[null]"
+ effort_to_fix_l10n_key="[null]" />
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/update_template_rule_language.xml b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/update_template_rule_language.xml
new file mode 100644
index 00000000000..b5a6352ede7
--- /dev/null
+++ b/sonar-server/src/test/resources/org/sonar/server/rule/RuleRegistrationTest/update_template_rule_language.xml
@@ -0,0 +1,57 @@
+<!--
+ ~ 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.
+ -->
+
+<dataset>
+
+ <rules id="1" plugin_rule_key="rule1" plugin_name="fake" plugin_config_key="[null]" name="Rule one" description="[null]"
+ status="READY" priority="4" cardinality="MULTIPLE" parent_id="[null]" language="[null]"
+ characteristic_id="[null]" default_characteristic_id="100"
+ remediation_function="[null]" default_remediation_function="LINEAR_OFFSET"
+ remediation_factor="[null]" default_remediation_factor="5d"
+ remediation_offset="[null]" default_remediation_offset="10h"
+ effort_to_fix_l10n_key="squid.S115.effortToFix" />
+
+ <!-- Instance of rule 1 -->
+ <rules id="2" plugin_rule_key="template_rule1" plugin_name="fake" plugin_config_key="[null]" name="User rule" description="[null]"
+ status="READY" priority="4" cardinality="SINGLE" parent_id="1" language="[null]"
+ characteristic_id="[null]" default_characteristic_id="200"
+ remediation_function="[null]" default_remediation_function="LINEAR"
+ remediation_factor="[null]" default_remediation_factor="1h"
+ remediation_offset="[null]" default_remediation_offset="15min"
+ effort_to_fix_l10n_key="squid.S115.effortToFix2" />
+
+ <rules id="3" plugin_rule_key="rule2" plugin_name="fake" plugin_config_key="old_config_key2" name="old name2" description="old description2"
+ status="DEPRECATED" priority="1" cardinality="MULTIPLE" parent_id="[null]"
+ characteristic_id="[null]" default_characteristic_id="[null]"
+ remediation_function="[null]" default_remediation_function="[null]"
+ remediation_factor="[null]" default_remediation_factor="[null]"
+ remediation_offset="[null]" default_remediation_offset="[null]"
+ effort_to_fix_l10n_key="[null]" />
+
+ <!-- Instance of rule 3 -->
+ <rules id="4" plugin_rule_key="template_rule2" plugin_name="fake" plugin_config_key="[null]" name="User rule" description="[null]"
+ status="READY" priority="4" cardinality="SINGLE" parent_id="3"
+ characteristic_id="[null]" default_characteristic_id="[null]"
+ remediation_function="[null]" default_remediation_function="[null]"
+ remediation_factor="[null]" default_remediation_factor="[null]"
+ remediation_offset="[null]" default_remediation_offset="[null]"
+ effort_to_fix_l10n_key="[null]" />
+
+</dataset>