]> source.dussan.org Git - sonarqube.git/commitdiff
Using DAO2 for RegisterRules
authorStephane Gamard <stephane.gamard@searchbox.com>
Thu, 8 May 2014 17:28:59 +0000 (19:28 +0200)
committerStephane Gamard <stephane.gamard@searchbox.com>
Thu, 8 May 2014 17:28:59 +0000 (19:28 +0200)
42 files changed:
sonar-core/src/main/java/org/sonar/core/rule/RuleDto.java
sonar-core/src/main/java/org/sonar/core/rule/RuleRuleTagDto.java
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_deprecated_active_rule_params-result.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_deprecated_active_rule_params.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_deprecated_active_rules-result.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_deprecated_active_rules.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_deprecated_repositories-result.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_deprecated_rules-result.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_deprecated_rules.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_template_rules_if_parent_is_disabled-result.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_template_rules_if_parent_is_disabled.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/empty.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/ignore_rule_debt_definitions_if_rule_is_linked_on_root_characteristic.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/insert_extended_repositories-result.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/insert_new_rules-result.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_disable_already_disabled_rules-result.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_disable_already_disabled_rules.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_disable_manual_rules-result.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_disable_manual_rules.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_disable_template_rules_if_parent_is_enabled-result.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_disable_template_rules_if_parent_is_enabled.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_update_already_disabled_rules-result.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_update_already_disabled_rules.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/notify_for_removed_rules_when_repository_is_still_existing.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/reactivate_disabled_rules-result.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/reactivate_disabled_rules.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/reactivate_disabled_template_rules-result.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/reactivate_disabled_template_rules.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/set_no_characteristic_when_characteristic_not_found-result.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/set_no_characteristic_when_characteristic_not_found.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/set_no_characteristic_when_default_characteristic_not_found_and_overriding_characteristic_disabled-result.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/set_no_characteristic_when_default_characteristic_not_found_and_overriding_characteristic_disabled.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/set_no_default_characteristic_when_default_characteristic_not_found_but_characteristic_has_been_overridden-result.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/set_no_default_characteristic_when_default_characteristic_not_found_but_characteristic_has_been_overridden.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/shared.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/store_bundle_name_and_description_in_database-result.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/update_rule_fields-result.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/update_rule_fields.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/update_rule_parameters-result.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/update_rule_parameters.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/update_template_rule_language-result.xml [new file with mode: 0644]
sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/update_template_rule_language.xml [new file with mode: 0644]

index c4b8ebf2ee3a79ef22ba760665052f1fd5275e8e..c547ac27d3da96553503ff6bfaff8972ffcd645a 100644 (file)
@@ -19,7 +19,6 @@
  */
 package org.sonar.core.rule;
 
-import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.builder.EqualsBuilder;
 import org.apache.commons.lang.builder.HashCodeBuilder;
@@ -31,7 +30,10 @@ import org.sonar.core.db.Dto;
 
 import javax.annotation.CheckForNull;
 import javax.annotation.Nullable;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.Date;
+import java.util.List;
 
 public final class RuleDto implements Dto<RuleKey> {
 
@@ -311,12 +313,16 @@ public final class RuleDto implements Dto<RuleKey> {
     return this;
   }
 
-  public String[] getTags() {
-    return tags == null ? ArrayUtils.EMPTY_STRING_ARRAY : StringUtils.split(tags, ',');
+  public List<String> getTags() {
+    return tags == null ?
+      Collections.EMPTY_LIST :
+      Arrays.asList(StringUtils.split(tags, ','));
   }
 
-  public String[] getSystemTags() {
-    return systemTags == null ? ArrayUtils.EMPTY_STRING_ARRAY : StringUtils.split(systemTags, ',');
+  public List<String> getSystemTags() {
+    return systemTags == null ?
+      Collections.EMPTY_LIST :
+      Arrays.asList(StringUtils.split(systemTags, ','));
   }
 
   private String getTagsField() {
index 16a5a7ba1637a8a8ffc3dc12ffb54e1f44038541..b2058b3650c85131a7254eb2ceda449a3de1dc9d 100644 (file)
@@ -78,4 +78,8 @@ public class RuleRuleTagDto {
     return String.format("RuleRuleTag[id=%d, ruleId=%d, tagId=%d, tag=%s, type=%s]",
         id, ruleId, tagId, tag, type);
   }
+
+  public boolean isSystemTag(){
+    return this.getType().equals(RuleTagType.SYSTEM);
+  }
 }
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_deprecated_active_rule_params-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_deprecated_active_rule_params-result.xml
new file mode 100644 (file)
index 0000000..dfa2ccf
--- /dev/null
@@ -0,0 +1,17 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" 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"/>
+
+  <rules tags="[null]" system_tags="[null]" 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"/>
+
+  <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"/>
+
+  <rules_profiles id="1" version="1" used_profile="true" name="profile name" language="java" />
+  <active_rules id="1" rule_id="1" profile_id="1" failure_level="4" inheritance="[null]" />
+  <active_rule_parameters id="1" active_rule_id="1" rules_parameter_id="1" value="one" rules_parameter_key="[null]"/>
+  <active_rule_parameters id="2" active_rule_id="1" rules_parameter_id="2" value="two" rules_parameter_key="[null]"/>
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_deprecated_active_rule_params.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_deprecated_active_rule_params.xml
new file mode 100644 (file)
index 0000000..2f429f4
--- /dev/null
@@ -0,0 +1,21 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" 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]" />
+
+  <rules_parameters id="1" rule_id="1" name="param1" description="[null]" param_type="STRING"/>
+  <rules_parameters id="2" rule_id="1" name="param2" description="[null]" param_type="STRING"/>
+
+  <!-- to be removed -->
+  <rules_parameters id="3" rule_id="1" name="param3" description="[null]" param_type="STRING"/>
+
+
+  <rules_profiles id="1" version="1" used_profile="true" name="profile name" language="java" />
+  <active_rules id="1" rule_id="1" profile_id="1" failure_level="4" />
+  <active_rule_parameters id="1" active_rule_id="1" rules_parameter_id="1" value="one" />
+  <active_rule_parameters id="2" active_rule_id="1" rules_parameter_id="2" value="two" />
+
+  <!-- to be removed -->
+  <active_rule_parameters id="3" active_rule_id="1" rules_parameter_id="3" value="three" />
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_deprecated_active_rules-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_deprecated_active_rules-result.xml
new file mode 100644 (file)
index 0000000..9314995
--- /dev/null
@@ -0,0 +1,15 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" 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 tags="[null]" system_tags="[null]" id="2" plugin_rule_key="deprecated" plugin_name="fake" plugin_config_key="[null]" name="Deprecated fake" description="[null]"
+         status="REMOVED" priority="4" cardinality="SINGLE" parent_id="[null]" language="[null]"/>
+
+  <rules tags="[null]" system_tags="[null]" id="3" 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 tags="[null]" system_tags="[null]" id="4" 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>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_deprecated_active_rules.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_deprecated_active_rules.xml
new file mode 100644 (file)
index 0000000..8957a23
--- /dev/null
@@ -0,0 +1,15 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" 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]"/>
+
+  <rules tags="[null]" system_tags="[null]" id="2" plugin_rule_key="deprecated" plugin_name="fake" plugin_config_key="[null]" name="Deprecated fake" description="[null]"
+         status="READY" priority="4" cardinality="SINGLE" parent_id="[null]"/>
+
+  <rules_parameters id="1" rule_id="1" name="deprecated-prop" description="[null]" param_type="STRING"/>
+
+  <rules_profiles id="1" version="1" used_profile="true" name="sonar way" language="java" />
+  <active_rules id="1" rule_id="1" profile_id="1" failure_level="4" />
+  <active_rules id="2" rule_id="2" profile_id="1" failure_level="0" />
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_deprecated_repositories-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_deprecated_repositories-result.xml
new file mode 100644 (file)
index 0000000..f350c52
--- /dev/null
@@ -0,0 +1,17 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" 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 tags="[null]" system_tags="[null]" 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" rule_id="2" tag="tag1" tag_type="SYSTEM"/>
+  <rule_tags id="2" rule_id="2" tag="tag3" tag_type="SYSTEM"/>
+  <rule_tags id="3" rule_id="2" tag="tag5" tag_type="SYSTEM"/>
+
+  <rules tags="[null]" system_tags="[null]" id="3" plugin_rule_key="rule2" plugin_name="fake" plugin_config_key="rule2" name="Two" description="Description of Two"
+                   status="DEPRECATED" priority="0" cardinality="SINGLE" parent_id="[null]" language="java"/>
+  
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_deprecated_rules-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_deprecated_rules-result.xml
new file mode 100644 (file)
index 0000000..fdf0c45
--- /dev/null
@@ -0,0 +1,28 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" 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 tags="[null]" system_tags="[null]" id="2" plugin_rule_key="deprecated" plugin_name="fake" plugin_config_key="[null]" name="Deprecated fake" description="[null]"
+         status="REMOVED" priority="4" cardinality="SINGLE" parent_id="[null]" language="[null]"/>
+
+  <rules_parameters id="1" rule_id="1" name="deprecated-prop" description="[null]" param_type="STRING" default_value="[null]"/>
+
+  <rules tags="[null]" system_tags="[null]" id="3" 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="2" rule_id="3" default_value="default value one" description="parameter one" name="param1" param_type="STRING"/>
+  <rules_parameters id="3" rule_id="3" default_value="default value two" description="parameter two" name="param2" param_type="STRING"/>
+
+  <rules tags="[null]" system_tags="[null]" id="4" 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"/>
+
+  <rule_tags id="3" tag="tag1"/>
+  <rule_tags id="4" tag="tag3"/>
+  <rule_tags id="5" tag="tag5"/>
+
+  <rules_rule_tags id="3" rule_id="3" rule_tag_id="3" tag_type="SYSTEM"/>
+  <rules_rule_tags id="4" rule_id="3" rule_tag_id="4" tag_type="SYSTEM"/>
+  <rules_rule_tags id="5" rule_id="3" rule_tag_id="5" tag_type="SYSTEM"/>
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_deprecated_rules.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_deprecated_rules.xml
new file mode 100644 (file)
index 0000000..2c47ca2
--- /dev/null
@@ -0,0 +1,17 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" 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]"/>
+
+  <rules tags="[null]" system_tags="[null]" id="2" plugin_rule_key="deprecated" plugin_name="fake" plugin_config_key="[null]" name="Deprecated fake" description="[null]"
+         status="READY" priority="4" cardinality="SINGLE" parent_id="[null]"/>
+
+  <rules_parameters id="1" rule_id="1" name="deprecated-prop" description="[null]" param_type="STRING"/>
+
+  <rule_tags id="1" tag="formertag1"/>
+  <rule_tags id="2" tag="formertag2"/>
+
+  <rules_rule_tags id="1" rule_id="1" rule_tag_id="1" tag_type="SYSTEM"/>
+  <rules_rule_tags id="2" rule_id="1" rule_tag_id="2" tag_type="ADMIN"/>
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_template_rules_if_parent_is_disabled-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_template_rules_if_parent_is_disabled-result.xml
new file mode 100644 (file)
index 0000000..8168253
--- /dev/null
@@ -0,0 +1,21 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" id="1" plugin_rule_key="disabled_rule" plugin_name="fake" plugin_config_key="[null]" name="Disabled rule" description="[null]"
+         status="REMOVED" priority="4" cardinality="MULTIPLE" parent_id="[null]" language="[null]"/>
+
+  <rules tags="[null]" system_tags="[null]" id="2" plugin_rule_key="user_rule" plugin_name="fake" plugin_config_key="[null]" name="User rule" description="[null]"
+         status="REMOVED" priority="4" cardinality="SINGLE" parent_id="1" language="[null]"/>
+
+  <rules tags="[null]" system_tags="[null]" id="3" plugin_rule_key="disabled_rule2" plugin_name="fake" plugin_config_key="old_config_key2" name="old name2" description="old description2"
+         status="REMOVED" priority="1" cardinality="SINGLE" parent_id="[null]"  language="[null]"/>
+
+  <rules tags="[null]" system_tags="[null]" id="4" plugin_rule_key="template_rule2" plugin_name="fake" plugin_config_key="[null]" name="User rule" description="[null]"
+         status="REMOVED" priority="4" cardinality="SINGLE" parent_id="3" language="[null]"/>
+
+  <rules tags="[null]" system_tags="[null]" id="5" 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 tags="[null]" system_tags="[null]" id="6" 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>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_template_rules_if_parent_is_disabled.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/disable_template_rules_if_parent_is_disabled.xml
new file mode 100644 (file)
index 0000000..d3e6127
--- /dev/null
@@ -0,0 +1,19 @@
+<dataset>
+
+  <!-- Rule as been removed -->
+  <rules tags="[null]" system_tags="[null]" id="1" plugin_rule_key="disabled_rule" plugin_name="fake" plugin_config_key="[null]" name="Disabled rule" description="[null]"
+         status="REMOVED" priority="4" cardinality="MULTIPLE" parent_id="[null]"/>
+
+  <!-- user rule duplicated from rule 1. It is currently enabled. -->
+  <rules tags="[null]" system_tags="[null]" 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"/>
+
+  <!-- This rule will be removed... -->
+  <rules tags="[null]" system_tags="[null]" id="3" plugin_rule_key="disabled_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]" />
+
+  <!-- ...so this template will be removed too -->
+  <rules tags="[null]" system_tags="[null]" 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>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/empty.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/empty.xml
new file mode 100644 (file)
index 0000000..5ed00ba
--- /dev/null
@@ -0,0 +1 @@
+<dataset></dataset>
\ No newline at end of file
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/ignore_rule_debt_definitions_if_rule_is_linked_on_root_characteristic.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/ignore_rule_debt_definitions_if_rule_is_linked_on_root_characteristic.xml
new file mode 100644 (file)
index 0000000..d5dfe74
--- /dev/null
@@ -0,0 +1,17 @@
+<dataset>
+
+  <characteristics id="2" kee="MEMORY_EFFICIENCY" name="Efficiency" parent_id="[null]" characteristic_order="[null]" enabled="[true]"/>
+
+  <rules tags="[null]" system_tags="[null]" 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]"
+         characteristic_id="[null]" default_characteristic_id="200"
+         remediation_function="[null]" default_remediation_function="LINEAR"
+         remediation_coeff="[null]" default_remediation_coeff="14min"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="squid.S1115.effortTotFix"/>
+
+  <rules tags="[null]" system_tags="[null]" 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]"/>
+
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/insert_extended_repositories-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/insert_extended_repositories-result.xml
new file mode 100644 (file)
index 0000000..5ad7d6d
--- /dev/null
@@ -0,0 +1,9 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" id="1" plugin_rule_key="rule1" plugin_name="findbugs" plugin_config_key="[null]" name="Rule One" description="Description of Rule One"
+     status="READY" priority="2" cardinality="SINGLE" parent_id="[null]" language="java"/>
+
+    <rules tags="[null]" system_tags="[null]" 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>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/insert_new_rules-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/insert_new_rules-result.xml
new file mode 100644 (file)
index 0000000..0578a3d
--- /dev/null
@@ -0,0 +1,38 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" 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_coeff="[null]" default_remediation_coeff="[null]"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]"/>
+
+  <rules tags="[null]" system_tags="[null]" 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="2"
+         remediation_function="[null]" default_remediation_function="LINEAR_OFFSET"
+         remediation_coeff="[null]" default_remediation_coeff="5d"
+         remediation_offset="[null]" default_remediation_offset="10h"
+         effort_to_fix_description="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 tags="[null]" system_tags="[null]" 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_coeff="[null]" default_remediation_coeff="[null]"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]"/>
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_disable_already_disabled_rules-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_disable_already_disabled_rules-result.xml
new file mode 100644 (file)
index 0000000..c798a6a
--- /dev/null
@@ -0,0 +1,40 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" 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_coeff="[null]" default_remediation_coeff="[null]"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]"
+         updated_at="2014-03-16"/>
+
+  <rules tags="[null]" system_tags="[null]" id="2" plugin_rule_key="deprecated" plugin_name="fake" plugin_config_key="[null]" name="Deprecated fake" 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_coeff="[null]" default_remediation_coeff="[null]"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]"
+         updated_at="2014-03-16"/>
+
+ <!-- New rules -->
+  <rules tags="[null]" system_tags="[null]" id="3" 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="2"
+         remediation_function="[null]" default_remediation_function="LINEAR_OFFSET"
+         remediation_coeff="[null]" default_remediation_coeff="5d"
+         remediation_offset="[null]" default_remediation_offset="10h"
+         effort_to_fix_description="squid.S115.effortToFix"
+         updated_at="2014-03-17 19:10:03.0"/>
+
+  <rules tags="[null]" system_tags="[null]" id="4" 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_coeff="[null]" default_remediation_coeff="[null]"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]"
+         updated_at="2014-03-17 19:10:03.0"/>
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_disable_already_disabled_rules.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_disable_already_disabled_rules.xml
new file mode 100644 (file)
index 0000000..1390753
--- /dev/null
@@ -0,0 +1,23 @@
+<dataset>
+
+  <characteristics id="2" kee="MEMORY_EFFICIENCY" name="Memory Efficiency" parent_id="1" characteristic_order="1" enabled="[true]"/>
+
+  <rules tags="[null]" system_tags="[null]" 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]"
+         characteristic_id="[null]" default_characteristic_id="[null]"
+         remediation_function="[null]" default_remediation_function="[null]"
+         remediation_coeff="[null]" default_remediation_coeff="[null]"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]"
+         updated_at="2014-03-16"/>
+
+  <rules tags="[null]" system_tags="[null]" id="2" plugin_rule_key="deprecated" plugin_name="fake" plugin_config_key="[null]" name="Deprecated fake" description="[null]"
+         status="REMOVED" priority="4" cardinality="SINGLE" parent_id="[null]"
+         characteristic_id="[null]" default_characteristic_id="[null]"
+         remediation_function="[null]" default_remediation_function="[null]"
+         remediation_coeff="[null]" default_remediation_coeff="[null]"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]"
+         updated_at="2014-03-16"/>
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_disable_manual_rules-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_disable_manual_rules-result.xml
new file mode 100644 (file)
index 0000000..0f73b04
--- /dev/null
@@ -0,0 +1,15 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" id="1" plugin_rule_key="PerformanceIssue" plugin_name="manual" plugin_config_key="[null]" name="Performance Issue" description="[null]"
+         status="READY" priority="[null]" cardinality="SINGLE" parent_id="[null]" language="[null]"/>
+
+  <rules tags="[null]" system_tags="[null]" id="2" plugin_rule_key="IllegalExceptionCheck" plugin_name="checkstyle" plugin_config_key="[null]" name="Illegal Exception" description="[null]"
+         status="REMOVED" priority="4" cardinality="SINGLE" parent_id="[null]" language="[null]"/>
+
+  <rules tags="[null]" system_tags="[null]" id="3" 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 tags="[null]" system_tags="[null]" id="4" 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>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_disable_manual_rules.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_disable_manual_rules.xml
new file mode 100644 (file)
index 0000000..7f175d9
--- /dev/null
@@ -0,0 +1,9 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" id="1" plugin_rule_key="PerformanceIssue" plugin_name="manual" plugin_config_key="[null]" name="Performance Issue" description="[null]"
+         status="READY" priority="[null]" cardinality="SINGLE" parent_id="[null]"/>
+
+  <rules tags="[null]" system_tags="[null]" 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>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_disable_template_rules_if_parent_is_enabled-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_disable_template_rules_if_parent_is_enabled-result.xml
new file mode 100644 (file)
index 0000000..e4a4196
--- /dev/null
@@ -0,0 +1,12 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" 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"/>
+
+  <rules tags="[null]" system_tags="[null]" 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" language="java"/>
+
+  <rules tags="[null]" system_tags="[null]" 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>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_disable_template_rules_if_parent_is_enabled.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_disable_template_rules_if_parent_is_enabled.xml
new file mode 100644 (file)
index 0000000..8e3bcfb
--- /dev/null
@@ -0,0 +1,9 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" 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]"/>
+
+  <rules tags="[null]" system_tags="[null]" 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>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_update_already_disabled_rules-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_update_already_disabled_rules-result.xml
new file mode 100644 (file)
index 0000000..91f0b99
--- /dev/null
@@ -0,0 +1,9 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" 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="java"/>
+
+  <rules tags="[null]" system_tags="[null]" id="2" plugin_rule_key="rule2" plugin_name="fake" plugin_config_key="rule2" name="Two" description="Description of Two"
+                   status="DEPRECATED" priority="0" cardinality="SINGLE" parent_id="[null]" language="java"/>
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_update_already_disabled_rules.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/not_update_already_disabled_rules.xml
new file mode 100644 (file)
index 0000000..45e3706
--- /dev/null
@@ -0,0 +1,6 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" 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]"/>
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/notify_for_removed_rules_when_repository_is_still_existing.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/notify_for_removed_rules_when_repository_is_still_existing.xml
new file mode 100644 (file)
index 0000000..f4e73c9
--- /dev/null
@@ -0,0 +1,6 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" id="1" plugin_rule_key="deprecated-key" plugin_name="fake" plugin_config_key="[null]" name="Deprecated" description="[null]"
+                   status="READY" priority="4" cardinality="SINGLE" parent_id="[null]"/>
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/reactivate_disabled_rules-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/reactivate_disabled_rules-result.xml
new file mode 100644 (file)
index 0000000..57d8e33
--- /dev/null
@@ -0,0 +1,9 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" 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"/>
+
+  <rules tags="[null]" system_tags="[null]" 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"/>
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/reactivate_disabled_rules.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/reactivate_disabled_rules.xml
new file mode 100644 (file)
index 0000000..d5b8297
--- /dev/null
@@ -0,0 +1,6 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" id="1" plugin_rule_key="rule1" plugin_name="fake" plugin_config_key="[null]" name="Old name" description="Old description"
+         status="REMOVED" priority="4" cardinality="SINGLE" parent_id="[null]"/>
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/reactivate_disabled_template_rules-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/reactivate_disabled_template_rules-result.xml
new file mode 100644 (file)
index 0000000..7e0166e
--- /dev/null
@@ -0,0 +1,12 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" 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"/>
+
+  <rules tags="[null]" system_tags="[null]" 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" language="java"/>
+
+  <rules tags="[null]" system_tags="[null]" 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>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/reactivate_disabled_template_rules.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/reactivate_disabled_template_rules.xml
new file mode 100644 (file)
index 0000000..3982ccb
--- /dev/null
@@ -0,0 +1,9 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" id="1" plugin_rule_key="rule1" plugin_name="fake" plugin_config_key="config1" name="One" description="Description of One"
+         status="REMOVED" priority="4" cardinality="SINGLE" parent_id="[null]" language="java"/>
+
+  <rules tags="[null]" system_tags="[null]" id="2" plugin_rule_key="user_rule" plugin_name="fake" plugin_config_key="[null]" name="User rule" description="[null]"
+         status="REMOVED" priority="4" cardinality="SINGLE" parent_id="1" language="java"/>
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/set_no_characteristic_when_characteristic_not_found-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/set_no_characteristic_when_characteristic_not_found-result.xml
new file mode 100644 (file)
index 0000000..681ce32
--- /dev/null
@@ -0,0 +1,19 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" 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="[null]"
+         remediation_function="[null]" default_remediation_function="[null]"
+         remediation_coeff="[null]" default_remediation_coeff="[null]"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]"/>
+
+  <rules tags="[null]" system_tags="[null]" 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"
+         characteristic_id="[null]" default_characteristic_id="[null]"
+         remediation_function="[null]" default_remediation_function="[null]"
+         remediation_coeff="[null]" default_remediation_coeff="[null]"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]"/>
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/set_no_characteristic_when_characteristic_not_found.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/set_no_characteristic_when_characteristic_not_found.xml
new file mode 100644 (file)
index 0000000..36041f8
--- /dev/null
@@ -0,0 +1,17 @@
+<dataset>
+
+  <characteristics id="999" kee="NEW" name="New" parent_id="1" characteristic_order="1" enabled="[true]"/>
+
+  <rules tags="[null]" system_tags="[null]" 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]"
+         characteristic_id="[null]" default_characteristic_id="200"
+         remediation_function="[null]" default_remediation_function="LINEAR"
+         remediation_coeff="[null]" default_remediation_coeff="14min"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]"/>
+
+  <rules tags="[null]" system_tags="[null]" 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]"/>
+
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/set_no_characteristic_when_default_characteristic_not_found_and_overriding_characteristic_disabled-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/set_no_characteristic_when_default_characteristic_not_found_and_overriding_characteristic_disabled-result.xml
new file mode 100644 (file)
index 0000000..7da7918
--- /dev/null
@@ -0,0 +1,19 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" 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="-1" default_characteristic_id="[null]"
+         remediation_function="[null]" default_remediation_function="[null]"
+         remediation_coeff="[null]" default_remediation_coeff="[null]"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]"/>
+
+  <rules tags="[null]" system_tags="[null]" 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"
+         characteristic_id="[null]" default_characteristic_id="[null]"
+         remediation_function="[null]" default_remediation_function="[null]"
+         remediation_coeff="[null]" default_remediation_coeff="[null]"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]"/>
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/set_no_characteristic_when_default_characteristic_not_found_and_overriding_characteristic_disabled.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/set_no_characteristic_when_default_characteristic_not_found_and_overriding_characteristic_disabled.xml
new file mode 100644 (file)
index 0000000..0c99aac
--- /dev/null
@@ -0,0 +1,21 @@
+<dataset>
+
+  <characteristics id="999" kee="NEW" name="New" parent_id="1" characteristic_order="1" enabled="[true]"/>
+
+  <rules tags="[null]" system_tags="[null]" 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]"
+         characteristic_id="-1" default_characteristic_id="[null]"
+         remediation_function="[null]" default_remediation_function="[null]"
+         remediation_coeff="[null]" default_remediation_coeff="[null]"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]"/>
+
+  <rules tags="[null]" system_tags="[null]" 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]"
+         characteristic_id="[null]" default_characteristic_id="[null]"
+         remediation_function="[null]" default_remediation_function="[null]"
+         remediation_coeff="[null]" default_remediation_coeff="[null]"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]"/>
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/set_no_default_characteristic_when_default_characteristic_not_found_but_characteristic_has_been_overridden-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/set_no_default_characteristic_when_default_characteristic_not_found_but_characteristic_has_been_overridden-result.xml
new file mode 100644 (file)
index 0000000..d4f6269
--- /dev/null
@@ -0,0 +1,19 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" 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="3" default_characteristic_id="[null]"
+         remediation_function="LINEAR_OFFSET" default_remediation_function="[null]"
+         remediation_coeff="5d" default_remediation_coeff="[null]"
+         remediation_offset="10h" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]"/>
+
+  <rules tags="[null]" system_tags="[null]" 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"
+         characteristic_id="[null]" default_characteristic_id="[null]"
+         remediation_function="[null]" default_remediation_function="[null]"
+         remediation_coeff="[null]" default_remediation_coeff="[null]"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]"/>
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/set_no_default_characteristic_when_default_characteristic_not_found_but_characteristic_has_been_overridden.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/set_no_default_characteristic_when_default_characteristic_not_found_but_characteristic_has_been_overridden.xml
new file mode 100644 (file)
index 0000000..8439879
--- /dev/null
@@ -0,0 +1,23 @@
+<dataset>
+
+  <!-- User has removed the default characteristic used by rule1 and linked it to a a new characteristic-->
+  <characteristics id="2" kee="MEMORY_EFFICIENCY" name="Memory Efficiency" parent_id="1" characteristic_order="1" enabled="[false]"/>
+  <characteristics id="3" kee="COMPILER" name="Compiler" parent_id="1" characteristic_order="1" enabled="[true]"/>
+
+  <rules tags="[null]" system_tags="[null]" 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]"
+         characteristic_id="3" default_characteristic_id="[null]"
+         remediation_function="LINEAR_OFFSET" default_remediation_function="[null]"
+         remediation_coeff="5d" default_remediation_coeff="[null]"
+         remediation_offset="10h" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]"/>
+
+  <rules tags="[null]" system_tags="[null]" 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]"
+         characteristic_id="[null]" default_characteristic_id="[null]"
+         remediation_function="[null]" default_remediation_function="[null]"
+         remediation_coeff="[null]" default_remediation_coeff="[null]"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]"/>
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/shared.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/shared.xml
new file mode 100644 (file)
index 0000000..c1c3fb3
--- /dev/null
@@ -0,0 +1,8 @@
+<dataset>
+
+  <characteristics id="2" kee="MEMORY_EFFICIENCY" name="Memory Efficiency" parent_id="1" characteristic_order="1" enabled="[true]"/>
+
+  <rules tags="[null]" system_tags="[null]" 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>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/store_bundle_name_and_description_in_database-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/store_bundle_name_and_description_in_database-result.xml
new file mode 100644 (file)
index 0000000..1cfe02d
--- /dev/null
@@ -0,0 +1,9 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" id="1" plugin_rule_key="rule1" plugin_name="fake" plugin_config_key="config1" name="The One" description="The Description of One"
+     status="READY" priority="4" cardinality="SINGLE" parent_id="[null]" language="java"/>
+
+  <rules tags="[null]" system_tags="[null]" id="2" plugin_rule_key="rule2" plugin_name="fake" plugin_config_key="rule2" name="Two" description="Description of Two"
+     status="DEPRECATED" priority="0" cardinality="SINGLE" parent_id="[null]" language="java"/>
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/update_rule_fields-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/update_rule_fields-result.xml
new file mode 100644 (file)
index 0000000..7ac8818
--- /dev/null
@@ -0,0 +1,32 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" 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="200"
+         remediation_function="[null]" default_remediation_function="LINEAR_OFFSET"
+         remediation_coeff="[null]" default_remediation_coeff="5d"
+         remediation_offset="[null]" default_remediation_offset="10h"
+         effort_to_fix_description="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"/>
+
+  <rule_tags id="1" tag="tag1"/>
+  <rule_tags id="3" tag="tag3"/>
+  <rule_tags id="4" tag="tag4"/>
+  <rule_tags id="5" tag="tag5"/>
+
+  <rules_rule_tags id="1" rule_id="1" rule_tag_id="1" tag_type="SYSTEM"/>
+  <rules_rule_tags id="3" rule_id="1" rule_tag_id="3" tag_type="SYSTEM"/>
+  <rules_rule_tags id="4" rule_id="1" rule_tag_id="4" tag_type="ADMIN"/>
+  <rules_rule_tags id="5" rule_id="1" rule_tag_id="5" tag_type="SYSTEM"/>
+
+  <rules tags="[null]" system_tags="[null]" 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"
+         characteristic_id="[null]" default_characteristic_id="[null]"
+         remediation_function="[null]" default_remediation_function="[null]"
+         remediation_coeff="[null]" default_remediation_coeff="[null]"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]"/>
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/update_rule_fields.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/update_rule_fields.xml
new file mode 100644 (file)
index 0000000..dddc193
--- /dev/null
@@ -0,0 +1,29 @@
+<dataset>
+
+  <characteristics id="200" kee="MEMORY_EFFICIENCY" name="Memory Efficiency" parent_id="1" characteristic_order="1" enabled="[true]"/>
+
+  <rules tags="[null]" system_tags="[null]" 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]"
+         characteristic_id="[null]" default_characteristic_id="200"
+         remediation_function="[null]" default_remediation_function="LINEAR"
+         remediation_coeff="[null]" default_remediation_coeff="14min"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]"/>
+
+  <rules_parameters id="1" rule_id="1" name="param1" description="[null]" param_type="STRING"/>
+
+  <rule_tags id="1" tag="tag1"/>
+  <rule_tags id="2" tag="tag2"/>
+  <rule_tags id="3" tag="tag3"/>
+  <rule_tags id="4" tag="tag4"/>
+
+  <rules_rule_tags id="1" rule_id="1" rule_tag_id="1" tag_type="SYSTEM"/>
+  <rules_rule_tags id="2" rule_id="1" rule_tag_id="2" tag_type="SYSTEM"/>
+  <rules_rule_tags id="3" rule_id="1" rule_tag_id="3" tag_type="ADMIN"/>
+  <rules_rule_tags id="4" rule_id="1" rule_tag_id="4" tag_type="ADMIN"/>
+
+  <rules tags="[null]" system_tags="[null]" 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]"/>
+
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/update_rule_parameters-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/update_rule_parameters-result.xml
new file mode 100644 (file)
index 0000000..e4eb07e
--- /dev/null
@@ -0,0 +1,11 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" 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"/>
+  <rules_parameters id="1" rule_id="1" default_value="default value one" description="parameter one" name="param1" param_type="STRING"/>
+  <rules_parameters id="3" rule_id="1" default_value="default value two" description="parameter two" name="param2" param_type="STRING"/>
+
+  <rules tags="[null]" system_tags="[null]" 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"/>
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/update_rule_parameters.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/update_rule_parameters.xml
new file mode 100644 (file)
index 0000000..f1037dc
--- /dev/null
@@ -0,0 +1,12 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" 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]"/>
+
+  <rules tags="[null]" system_tags="[null]" 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]"/>
+
+  <rules_parameters id="1" rule_id="1" name="param1" description="old description" param_type="STRING"/>
+  <rules_parameters id="2" rule_id="1" name="deprecated_param" description="deprecated param to be removed" param_type="STRING"/>
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/update_template_rule_language-result.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/update_template_rule_language-result.xml
new file mode 100644 (file)
index 0000000..0e03814
--- /dev/null
@@ -0,0 +1,37 @@
+<dataset>
+
+  <rules tags="[null]" system_tags="[null]" 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_coeff="[null]" default_remediation_coeff="5d"
+         remediation_offset="[null]" default_remediation_offset="10h"
+         effort_to_fix_description="squid.S115.effortToFix" />
+
+  <!-- Instance of old rule 1 :/ -->
+  <rules tags="[null]" system_tags="[null]" 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_coeff="[null]" default_remediation_coeff="5d"
+         remediation_offset="[null]" default_remediation_offset="10h"
+         effort_to_fix_description="squid.S115.effortToFix" />
+
+  <rules tags="[null]" system_tags="[null]" 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_coeff="[null]" default_remediation_coeff="[null]"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]" />
+
+  <!-- Template of old rule 3 :/ -->
+  <rules tags="[null]" system_tags="[null]" 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_coeff="[null]" default_remediation_coeff="[null]"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]" />
+
+</dataset>
diff --git a/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/update_template_rule_language.xml b/sonar-server/src/test/resources/org/sonar/server/rule2/RegisterRulesTest/update_template_rule_language.xml
new file mode 100644 (file)
index 0000000..ef46759
--- /dev/null
@@ -0,0 +1,39 @@
+<dataset>
+
+  <characteristics id="100" kee="MEMORY_EFFICIENCY" name="Memory Efficiency" parent_id="1" characteristic_order="1" enabled="[true]"/>
+
+  <rules tags="[null]" system_tags="[null]" 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_coeff="[null]" default_remediation_coeff="5d"
+         remediation_offset="[null]" default_remediation_offset="10h"
+         effort_to_fix_description="squid.S115.effortToFix" />
+
+  <!-- Instance of rule 1 -->
+  <rules tags="[null]" system_tags="[null]" 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_coeff="[null]" default_remediation_coeff="1h"
+         remediation_offset="[null]" default_remediation_offset="15min"
+         effort_to_fix_description="squid.S115.effortToFix2" />
+
+  <rules tags="[null]" system_tags="[null]" 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_coeff="[null]" default_remediation_coeff="[null]"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]" />
+
+  <!-- Instance of rule 3 -->
+  <rules tags="[null]" system_tags="[null]" 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_coeff="[null]" default_remediation_coeff="[null]"
+         remediation_offset="[null]" default_remediation_offset="[null]"
+         effort_to_fix_description="[null]" />
+
+</dataset>