]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-1722: Rename ActiveRule.overrides to AcriveRule.overridden
authorGodin <mandrikov@gmail.com>
Tue, 21 Dec 2010 01:31:35 +0000 (01:31 +0000)
committerGodin <mandrikov@gmail.com>
Tue, 21 Dec 2010 01:31:35 +0000 (01:31 +0000)
SONAR-2052: Support inheritance of quality profiles in backup of global configuration

18 files changed:
sonar-plugin-api/src/main/java/org/sonar/api/rules/ActiveRule.java
sonar-server/src/main/java/org/sonar/server/configuration/ProfilesBackup.java
sonar-server/src/main/java/org/sonar/server/configuration/ProfilesManager.java
sonar-server/src/main/webapp/WEB-INF/app/views/rules_configuration/_rule.html.erb
sonar-server/src/main/webapp/WEB-INF/db/migrate/169_add_columns_for_profiles_inheritance.rb
sonar-server/src/test/java/org/sonar/server/configuration/BackupTest.java
sonar-server/src/test/resources/org/sonar/server/configuration/BackupTest/backup-restore-valid.xml
sonar-server/src/test/resources/org/sonar/server/configuration/BackupTest/backup-valid.xml
sonar-server/src/test/resources/org/sonar/server/configuration/InheritedProfilesTest/shouldActivateInChildren-result.xml
sonar-server/src/test/resources/org/sonar/server/configuration/InheritedProfilesTest/shouldActivateInChildren.xml
sonar-server/src/test/resources/org/sonar/server/configuration/InheritedProfilesTest/shouldChangeParent-result.xml
sonar-server/src/test/resources/org/sonar/server/configuration/InheritedProfilesTest/shouldChangeParent.xml
sonar-server/src/test/resources/org/sonar/server/configuration/InheritedProfilesTest/shouldDeactivateInChildren-result.xml
sonar-server/src/test/resources/org/sonar/server/configuration/InheritedProfilesTest/shouldDeactivateInChildren.xml
sonar-server/src/test/resources/org/sonar/server/configuration/InheritedProfilesTest/shouldRemoveParent-result.xml
sonar-server/src/test/resources/org/sonar/server/configuration/InheritedProfilesTest/shouldRemoveParent.xml
sonar-server/src/test/resources/org/sonar/server/configuration/InheritedProfilesTest/shouldSetParent-result.xml
sonar-server/src/test/resources/org/sonar/server/configuration/InheritedProfilesTest/shouldSetParent.xml

index bc3c36c04c343cc0a9ded02f27665e1ca0814ef8..badb3bb249218c1e1153cb741af663f08a2c5404 100644 (file)
@@ -60,8 +60,8 @@ public class ActiveRule implements Cloneable {
   @Column(name = "inherited", updatable = true, nullable = true)
   private Boolean inherited;
 
-  @Column(name = "overrides", updatable = true, nullable = true)
-  private Boolean overrides;
+  @Column(name = "overridden", updatable = true, nullable = true)
+  private Boolean overridden;
 
   /**
    * @deprecated visibility should be reduced to protected or package
@@ -112,8 +112,8 @@ public class ActiveRule implements Cloneable {
    * 
    * @since 2.5
    */
-  public Boolean isOverrides() {
-    return overrides == null ? false : overrides;
+  public boolean isOverridden() {
+    return overridden == null ? false : overridden;
   }
 
   /**
@@ -121,8 +121,8 @@ public class ActiveRule implements Cloneable {
    * 
    * @since 2.5
    */
-  public void setOverrides(Boolean overrides) {
-    this.overrides = overrides;
+  public void setOverridden(Boolean overridden) {
+    this.overridden = overridden;
   }
 
   /**
@@ -280,6 +280,7 @@ public class ActiveRule implements Cloneable {
   public Object clone() {
     final ActiveRule clone = new ActiveRule(getRulesProfile(), getRule(), getSeverity());
     clone.setInherited(isInherited());
+    clone.setOverridden(isOverridden());
     if (CollectionUtils.isNotEmpty(getActiveRuleParams())) {
       clone.setActiveRuleParams(new ArrayList<ActiveRuleParam>(CollectionUtils.collect(getActiveRuleParams(), new Transformer() {
         public Object transform(Object input) {
index 67ef7de918541c3a5d7169b8fa58fc9c4ab1d289..85dfbbae810ff6e061f8e84c3e85e620de28996b 100644 (file)
@@ -169,6 +169,8 @@ public class ProfilesBackup implements Backupable {
         writeNode(writer, "key", rule.getRule().getKey());
         writeNode(writer, "plugin", rule.getRule().getRepositoryKey());
         writeNode(writer, "level", rule.getSeverity().name());
+        writeNode(writer, "inherited", Boolean.toString(rule.isInherited()));
+        writeNode(writer, "overridden", Boolean.toString(rule.isOverridden()));
 
         if (!rule.getActiveRuleParams().isEmpty()) {
           writer.startNode("params");
@@ -204,6 +206,8 @@ public class ProfilesBackup implements Backupable {
         ActiveRule activeRule = new ActiveRule(null, new Rule(valuesRule.get("plugin"), valuesRule.get("key")), RulePriority
             .valueOf(valuesRule.get("level")));
         activeRule.setActiveRuleParams(params);
+        activeRule.setInherited(Boolean.parseBoolean(valuesRule.get("inherited")));
+        activeRule.setOverridden(Boolean.parseBoolean(valuesRule.get("overridden")));
         return activeRule;
       }
 
index 549f71742f22628b905e4186e5371326e6f7261e..9053b287aca9b25ecfcf17193ede74ff5a81754c 100644 (file)
@@ -104,8 +104,8 @@ public class ProfilesManager extends BaseDao {
   public void activatedOrChanged(int parentProfileId, int activeRuleId) {
     List<RulesProfile> children = getChildren(parentProfileId);
     ActiveRule parentActiveRule = getSession().getEntity(ActiveRule.class, activeRuleId);
-    if (parentActiveRule.isInherited() && !parentActiveRule.isOverrides()) {
-      parentActiveRule.setOverrides(true);
+    if (parentActiveRule.isInherited() && !parentActiveRule.isOverridden()) {
+      parentActiveRule.setOverridden(true);
       getSession().saveWithoutFlush(parentActiveRule);
     }
     for (RulesProfile child : children) {
@@ -129,7 +129,7 @@ public class ProfilesManager extends BaseDao {
   public void revert(int profileId, int activeRuleId) {
     RulesProfile profile = getSession().getEntity(RulesProfile.class, profileId);
     ActiveRule activeRule = getSession().getEntity(ActiveRule.class, activeRuleId);
-    if (activeRule != null && activeRule.isInherited() && activeRule.isOverrides()) {
+    if (activeRule != null && activeRule.isInherited() && activeRule.isOverridden()) {
       ActiveRule parentActiveRule = getParentProfile(profile).getActiveRule(activeRule.getRule());
       removeActiveRule(profile, activeRule);
       activeRule = (ActiveRule) parentActiveRule.clone();
@@ -143,11 +143,11 @@ public class ProfilesManager extends BaseDao {
   private void activateOrChange(RulesProfile profile, ActiveRule parentActiveRule) {
     ActiveRule activeRule = profile.getActiveRule(parentActiveRule.getRule());
     if (activeRule != null) {
-      if (activeRule.isInherited() && !activeRule.isOverrides()) {
+      if (activeRule.isInherited() && !activeRule.isOverridden()) {
         removeActiveRule(profile, activeRule);
       } else {
         activeRule.setInherited(true);
-        activeRule.setOverrides(true);
+        activeRule.setOverridden(true);
         getSession().saveWithoutFlush(activeRule);
         return;
       }
@@ -161,11 +161,11 @@ public class ProfilesManager extends BaseDao {
   private void deactivate(RulesProfile profile, Rule rule) {
     ActiveRule activeRule = profile.getActiveRule(rule);
     if (activeRule != null) {
-      if (activeRule.isInherited() && !activeRule.isOverrides()) {
+      if (activeRule.isInherited() && !activeRule.isOverridden()) {
         removeActiveRule(profile, activeRule);
       } else {
         activeRule.setInherited(false);
-        activeRule.setOverrides(false);
+        activeRule.setOverridden(false);
         getSession().saveWithoutFlush(activeRule);
       }
     }
index dd8d4ae7885aeb9b4357ea7901d7e17478a26499..e8bc6427c828c9be0a0d40b06fdfe5e30b7e066a 100644 (file)
@@ -1,6 +1,6 @@
 <td nowrap valign="top" class="left" x="<%= active_rule.failure_level if active_rule -%>" width="1%">
   <% inherited = active_rule.inherited if active_rule
-     overrides = active_rule.overrides if active_rule
+     overridden = active_rule.overridden if active_rule
   %>
   <form id="levels_<%= rule.id -%>" action="">
       <% enable_modification = is_admin && !profile.provided?
@@ -25,7 +25,7 @@
 </td>
 <td valign="top" class="left">
   <% if inherited %>
-    <% if overrides %>
+    <% if overridden %>
       Overrides rule from parent profile.<br/>
       <%= button_to "Revert", :action => 'revert_rule', :id => profile.id, :active_rule_id => active_rule.id %><br/>
     <% else %>
index 2119cbe479b753a3ba0c39b8901962e9564f83d5..9d99baf78171ac74b07a80ed83b1cda10cae6d10 100644 (file)
@@ -25,9 +25,9 @@ class AddColumnsForProfilesInheritance < ActiveRecord::Migration
 
   def self.up
     add_column 'active_rules', 'inherited', :boolean, :null => true
-    add_column 'active_rules', 'overrides', :boolean, :null => true
+    add_column 'active_rules', 'overridden', :boolean, :null => true
     ActiveRule.reset_column_information
-    ActiveRule.update_all(ActiveRule.sanitize_sql_for_assignment({:inherited => false, :overrides => false}))
+    ActiveRule.update_all(ActiveRule.sanitize_sql_for_assignment({:inherited => false, :overridden => false}))
 
     add_column 'rules_profiles', 'parent_name', :string, :limit => 40, :null => true
     Profile.reset_column_information
index c9afa4d3daeec4d451bce12c65f2acdad9f74d4d..3a2b52029f2b3d7956a085b7fd74acd85a551a84 100644 (file)
@@ -114,7 +114,7 @@ public class BackupTest {
     }
 
     Collection<RulesProfile> profiles = sonarConfig.getProfiles();
-    assertEquals(3, profiles.size());
+    assertEquals(2, profiles.size());
 
     Iterator<RulesProfile> profilesIter = profiles.iterator();
     RulesProfile testProfile = profilesIter.next();
@@ -128,6 +128,8 @@ public class BackupTest {
     assertNotNull(testActiveRule.getRule());
     assertEquals("test key", testActiveRule.getRule().getKey());
     assertEquals("test plugin", testActiveRule.getRule().getRepositoryKey());
+    assertThat(testActiveRule.isInherited(), is(false));
+    assertThat(testActiveRule.isOverridden(), is(false));
     assertEquals(1, testActiveRule.getActiveRuleParams().size());
 
     ActiveRuleParam testActiveRuleParam = testActiveRule.getActiveRuleParams().get(0);
@@ -143,8 +145,13 @@ public class BackupTest {
     assertNotNull(testAlert.getMetric());
     assertEquals("test key", testAlert.getMetric().getKey());
 
+    // Child profile
     testProfile = profilesIter.next();
-    assertEquals("test2 parent", testProfile.getParentName());
+    assertEquals("test2 name", testProfile.getName());
+    assertEquals("test name", testProfile.getParentName());
+    testActiveRule = testProfile.getActiveRules().get(0);
+    assertThat(testActiveRule.isInherited(), is(true));
+    assertThat(testActiveRule.isOverridden(), is(true));
 
     Collection<Rule> rules = sonarConfig.getRules();
     assertThat(rules.size(), is(1));
@@ -245,23 +252,25 @@ public class BackupTest {
   private List<RulesProfile> getProfiles() {
     List<RulesProfile> profiles = new ArrayList<RulesProfile>();
 
+    Rule rule = Rule.create("test plugin", "test key", null);
+    rule.createParameter("test param key");
+
     RulesProfile profile1 = RulesProfile.create("test name", "test language");
     profile1.setDefaultProfile(true);
     profile1.setProvided(true);
     profiles.add(profile1);
 
-    RulesProfile parentProfile = RulesProfile.create("test2 parent", "test2 language");
-    profiles.add(parentProfile);
+    ActiveRule activeRule = profile1.activateRule(rule, RulePriority.MAJOR);
+    activeRule.setParameter("test param key", "test value");
 
-    RulesProfile profile2 = RulesProfile.create("test2 name", "test2 language");
-    profile2.setParentName(parentProfile.getName());
+    RulesProfile profile2 = RulesProfile.create("test2 name", "test language");
+    profile2.setParentName(profile1.getName());
     profiles.add(profile2);
 
-    Rule rule = Rule.create("test plugin", "test key", null);
-    rule.createParameter("test param key");
-
-    ActiveRule activeRule = profile1.activateRule(rule, RulePriority.MAJOR);
-    activeRule.setParameter("test param key", "test value");
+    ActiveRule activeRule2 = profile2.activateRule(rule, RulePriority.MINOR);
+    activeRule2.setParameter("test param key", "test value");
+    activeRule2.setInherited(true);
+    activeRule2.setOverridden(true);
 
     profiles.get(0).getAlerts().add(new Alert(null, new Metric("test key"), Alert.OPERATOR_GREATER, "testError", "testWarn"));
 
index e549391d960802c8a997f053d36fb6fc72b44182..d271cb729c3393016eccac5c38576eb2f400b6f0 100644 (file)
       <name><![CDATA[test2 name]]></name>
       <default-profile><![CDATA[false]]></default-profile>
       <provided><![CDATA[false]]></provided>
-      <language><![CDATA[test2 language]]></language>
-      <parentName><![CDATA[test2 parent]]></parentName>
-      <active-rules/>
-      <alerts/>
-    </profile>
-    <profile>
-      <name><![CDATA[test2 parent]]></name>
-      <default-profile><![CDATA[false]]></default-profile>
-      <provided><![CDATA[false]]></provided>
-      <language><![CDATA[test2 language]]></language>
-      <active-rules/>
+      <language><![CDATA[test language]]></language>
+      <parentName><![CDATA[test name]]></parentName>
+      <active-rules>
+        <active-rule>
+          <key><![CDATA[test key]]></key>
+          <plugin><![CDATA[test plugin]]></plugin>
+          <level><![CDATA[ERROR]]></level>
+          <inherited><![CDATA[true]]></inherited>
+          <overridden><![CDATA[true]]></overridden>
+          <params>
+            <param>
+              <key><![CDATA[test param key]]></key>
+              <value><![CDATA[test value]]></value>
+            </param>
+          </params>
+        </active-rule>
+      </active-rules>
       <alerts/>
     </profile>
   </profiles>
index 7d0db470c7792fe1fb80da3027d6fe24bbc5faab..7f353a51f6790fde8b96c15788ff49d2f59aa374 100644 (file)
@@ -44,6 +44,8 @@
           <key><![CDATA[test key]]></key>
           <plugin><![CDATA[test plugin]]></plugin>
           <level><![CDATA[MAJOR]]></level>
+          <inherited><![CDATA[false]]></inherited>
+          <overridden><![CDATA[false]]></overridden>
           <params>
             <param>
               <key><![CDATA[test param key]]></key>
         </alert>
       </alerts>
     </profile>
-    <profile>
-      <name><![CDATA[test2 parent]]></name>
-      <default-profile><![CDATA[false]]></default-profile>
-      <provided><![CDATA[false]]></provided>
-      <language><![CDATA[test2 language]]></language>
-      <active-rules/>
-      <alerts/>
-    </profile>
     <profile>
       <name><![CDATA[test2 name]]></name>
       <default-profile><![CDATA[false]]></default-profile>
       <provided><![CDATA[false]]></provided>
-      <language><![CDATA[test2 language]]></language>
-      <parentName><![CDATA[test2 parent]]></parentName>
-      <active-rules/>
+      <language><![CDATA[test language]]></language>
+      <parentName><![CDATA[test name]]></parentName>
+      <active-rules>
+        <active-rule>
+          <key><![CDATA[test key]]></key>
+          <plugin><![CDATA[test plugin]]></plugin>
+          <level><![CDATA[MINOR]]></level>
+          <inherited><![CDATA[true]]></inherited>
+          <overridden><![CDATA[true]]></overridden>
+          <params>
+            <param>
+              <key><![CDATA[test param key]]></key>
+              <value><![CDATA[test value]]></value>
+            </param>
+          </params>
+        </active-rule>
+      </active-rules>
       <alerts/>
     </profile>
   </profiles>
index 04db426da65218117f8e1f3a8739c2d0a194b337..36f0a7035e0bfd92d845d2765cb5b9a932dfb05b 100644 (file)
@@ -9,10 +9,10 @@
   
   <rules_profiles id="2" provided="false" name="child" default_profile="0" language="java" parent_name="parent"/>
 
-  <active_rules id="1" profile_id="1" rule_id="1" failure_level="2" inherited="false" overrides="[null]"/>
+  <active_rules id="1" profile_id="1" rule_id="1" failure_level="2" inherited="false" overridden="[null]"/>
   <active_rule_parameters id="1" active_rule_id="1" rules_parameter_id="1" value="30"/>
   
-  <active_rules id="2" profile_id="2" rule_id="1" failure_level="2" inherited="true" overrides="[null]"/>
+  <active_rules id="2" profile_id="2" rule_id="1" failure_level="2" inherited="true" overridden="[null]"/>
   <active_rule_parameters id="2" active_rule_id="2" rules_parameter_id="1" value="30"/>
   
 </dataset>
index 0cc852064636d75214a5d1cc529925624429e0e4..8eaee0986149a7d479342be03727e889ee5c8f20 100644 (file)
@@ -9,7 +9,7 @@
   
   <rules_profiles id="2" provided="false" name="child" default_profile="0" language="java" parent_name="parent"/>
 
-  <active_rules id="1" profile_id="1" rule_id="1" failure_level="2" inherited="false" overrides="[null]"/>
+  <active_rules id="1" profile_id="1" rule_id="1" failure_level="2" inherited="false" overridden="[null]"/>
   <active_rule_parameters id="1" active_rule_id="1" rules_parameter_id="1" value="30"/>
 
 </dataset>
index c93d81534ff4a43d3ceb11b4f6b2c14068a656f9..2d8dcd06fef816c732107defd87015e88a6d8ac8 100644 (file)
   
   <rules_profiles id="3" provided="false" name="child" default_profile="0" language="java" parent_name="new_parent"/>
 
-  <active_rules id="1" profile_id="1" rule_id="1" failure_level="2" inherited="false" overrides="[null]"/>
+  <active_rules id="1" profile_id="1" rule_id="1" failure_level="2" inherited="false" overridden="[null]"/>
 
-  <active_rules id="2" profile_id="2" rule_id="2" failure_level="2" inherited="false" overrides="[null]"/>
+  <active_rules id="2" profile_id="2" rule_id="2" failure_level="2" inherited="false" overridden="[null]"/>
   
-  <active_rules id="4" profile_id="3" rule_id="2" failure_level="2" inherited="true" overrides="[null]"/>
+  <active_rules id="4" profile_id="3" rule_id="2" failure_level="2" inherited="true" overridden="[null]"/>
   
 </dataset>
index d93a6684d193ed36b504e3a0376891f6c093e6af..4e94e54fa5fca92e3bfba5e4e6ace2598e545c37 100644 (file)
   
   <rules_profiles id="3" provided="false" name="child" default_profile="0" language="java" parent_name="parent"/>
 
-  <active_rules id="1" profile_id="1" rule_id="1" failure_level="2" inherited="false" overrides="[null]"/>
+  <active_rules id="1" profile_id="1" rule_id="1" failure_level="2" inherited="false" overridden="[null]"/>
 
-  <active_rules id="2" profile_id="2" rule_id="2" failure_level="2" inherited="false" overrides="[null]"/>
+  <active_rules id="2" profile_id="2" rule_id="2" failure_level="2" inherited="false" overridden="[null]"/>
   
-  <active_rules id="3" profile_id="3" rule_id="1" failure_level="2" inherited="true" overrides="[null]"/>
+  <active_rules id="3" profile_id="3" rule_id="1" failure_level="2" inherited="true" overridden="[null]"/>
   
 </dataset>
index 6f68f9f6338be782ab865dc5453f3c7a9fc54a2b..874f79d03e4950de4286fa84365ece22d630a269 100644 (file)
@@ -7,6 +7,6 @@
   
   <rules_profiles id="2" provided="false" name="child" default_profile="0" language="java" parent_name="parent"/>
 
-  <active_rules id="1" profile_id="1" rule_id="1" failure_level="2" inherited="false" overrides="[null]"/>
+  <active_rules id="1" profile_id="1" rule_id="1" failure_level="2" inherited="false" overridden="[null]"/>
 
 </dataset>
index 73010f07a0bfb844f6467b801eae770652e332ec..016e11a46f46ee6329bb443f3e568d9f8b762c0a 100644 (file)
@@ -7,8 +7,8 @@
   
   <rules_profiles id="2" provided="false" name="child" default_profile="0" language="java" parent_name="parent"/>
 
-  <active_rules id="1" profile_id="1" rule_id="1" failure_level="2" inherited="false" overrides="[null]"/>
+  <active_rules id="1" profile_id="1" rule_id="1" failure_level="2" inherited="false" overridden="[null]"/>
 
-  <active_rules id="2" profile_id="2" rule_id="1" failure_level="2" inherited="true" overrides="[null]"/>
+  <active_rules id="2" profile_id="2" rule_id="1" failure_level="2" inherited="true" overridden="[null]"/>
 
 </dataset>
index 7c93dac1ad3b3628e28a2cf0cf419e063cc943da..783ad6580b8f67023db6cf56f29de5d25056b2b3 100644 (file)
@@ -7,6 +7,6 @@
   
   <rules_profiles id="2" provided="false" name="child" default_profile="0" language="java" parent_name="[null]"/>
 
-  <active_rules id="1" profile_id="1" rule_id="1" failure_level="2" inherited="false" overrides="[null]"/>
+  <active_rules id="1" profile_id="1" rule_id="1" failure_level="2" inherited="false" overridden="[null]"/>
 
 </dataset>
index 73010f07a0bfb844f6467b801eae770652e332ec..016e11a46f46ee6329bb443f3e568d9f8b762c0a 100644 (file)
@@ -7,8 +7,8 @@
   
   <rules_profiles id="2" provided="false" name="child" default_profile="0" language="java" parent_name="parent"/>
 
-  <active_rules id="1" profile_id="1" rule_id="1" failure_level="2" inherited="false" overrides="[null]"/>
+  <active_rules id="1" profile_id="1" rule_id="1" failure_level="2" inherited="false" overridden="[null]"/>
 
-  <active_rules id="2" profile_id="2" rule_id="1" failure_level="2" inherited="true" overrides="[null]"/>
+  <active_rules id="2" profile_id="2" rule_id="1" failure_level="2" inherited="true" overridden="[null]"/>
 
 </dataset>
index 73010f07a0bfb844f6467b801eae770652e332ec..016e11a46f46ee6329bb443f3e568d9f8b762c0a 100644 (file)
@@ -7,8 +7,8 @@
   
   <rules_profiles id="2" provided="false" name="child" default_profile="0" language="java" parent_name="parent"/>
 
-  <active_rules id="1" profile_id="1" rule_id="1" failure_level="2" inherited="false" overrides="[null]"/>
+  <active_rules id="1" profile_id="1" rule_id="1" failure_level="2" inherited="false" overridden="[null]"/>
 
-  <active_rules id="2" profile_id="2" rule_id="1" failure_level="2" inherited="true" overrides="[null]"/>
+  <active_rules id="2" profile_id="2" rule_id="1" failure_level="2" inherited="true" overridden="[null]"/>
 
 </dataset>
index 7c93dac1ad3b3628e28a2cf0cf419e063cc943da..783ad6580b8f67023db6cf56f29de5d25056b2b3 100644 (file)
@@ -7,6 +7,6 @@
   
   <rules_profiles id="2" provided="false" name="child" default_profile="0" language="java" parent_name="[null]"/>
 
-  <active_rules id="1" profile_id="1" rule_id="1" failure_level="2" inherited="false" overrides="[null]"/>
+  <active_rules id="1" profile_id="1" rule_id="1" failure_level="2" inherited="false" overridden="[null]"/>
 
 </dataset>