From 31af09b42f8aafb2a56522e8670b574603cd9eee Mon Sep 17 00:00:00 2001 From: simonbrandhof Date: Thu, 3 Feb 2011 17:37:34 +0100 Subject: SONAR-2094 Do not delete ACTIVE_RULES rows when rules are disabled --- .../src/main/java/org/sonar/jpa/dao/RulesDao.java | 51 ---------------------- .../test/java/org/sonar/jpa/dao/RulesDaoTest.java | 51 ---------------------- .../shouldAddActiveRulesToProfile-result.xml | 19 -------- .../RulesDaoTest/shouldAddActiveRulesToProfile.xml | 13 ------ .../shouldSynchronizeRuleOfActiveRule.xml | 13 ------ 5 files changed, 147 deletions(-) delete mode 100644 sonar-core/src/test/resources/org/sonar/jpa/dao/RulesDaoTest/shouldAddActiveRulesToProfile-result.xml delete mode 100644 sonar-core/src/test/resources/org/sonar/jpa/dao/RulesDaoTest/shouldAddActiveRulesToProfile.xml delete mode 100644 sonar-core/src/test/resources/org/sonar/jpa/dao/RulesDaoTest/shouldSynchronizeRuleOfActiveRule.xml (limited to 'sonar-core') diff --git a/sonar-core/src/main/java/org/sonar/jpa/dao/RulesDao.java b/sonar-core/src/main/java/org/sonar/jpa/dao/RulesDao.java index 8cb5151c7f5..b90e8afe852 100644 --- a/sonar-core/src/main/java/org/sonar/jpa/dao/RulesDao.java +++ b/sonar-core/src/main/java/org/sonar/jpa/dao/RulesDao.java @@ -57,60 +57,9 @@ public class RulesDao extends BaseDao { return getSession().getSingleResult(Rule.class, "key", ruleKey, "pluginName", repositoryKey, "enabled", true); } - public Long countRules(List plugins) { - return (Long) getSession().createQuery( - "SELECT COUNT(r) FROM Rule r WHERE r.pluginName IN (:pluginNames) AND r.enabled=true"). - setParameter("pluginNames", plugins). - getSingleResult(); - } - - public List getRuleParams() { - return getSession().getResults(RuleParam.class); - } public RuleParam getRuleParam(Rule rule, String paramKey) { return getSession().getSingleResult(RuleParam.class, "rule", rule, "key", paramKey); } - public void addActiveRulesToProfile(List activeRules, int profileId, String pluginKey) { - RulesProfile rulesProfile = getProfileById(profileId); - for (ActiveRule activeRule : activeRules) { - synchronizeRuleOfActiveRule(activeRule, pluginKey); - activeRule.setRulesProfile(rulesProfile); - getSession().save(activeRule); - } - } - - public List getViolations(Snapshot snapshot) { - return getSession().getResults(RuleFailureModel.class, "snapshotId", snapshot.getId()); - } - - public void synchronizeRuleOfActiveRule(ActiveRule activeRule, String pluginKey) { - Rule rule = activeRule.getRule(); - Rule ruleFromDataBase = getRuleByKey(pluginKey, rule.getKey()); - activeRule.setRule(ruleFromDataBase); - List ruleParamsFromDataBase = getRuleParams(); - for (ActiveRuleParam activeRuleParam : activeRule.getActiveRuleParams()) { - boolean found = false; - Iterator iterator = ruleParamsFromDataBase.iterator(); - while (iterator.hasNext() && !found) { - RuleParam ruleParamFromDataBase = iterator.next(); - if (isRuleParamEqual(activeRuleParam.getRuleParam(), ruleParamFromDataBase, rule.getKey(), pluginKey)) { - activeRuleParam.setRuleParam(ruleParamFromDataBase); - found = true; - } - } - } - } - - public boolean isRuleParamEqual(RuleParam ruleParam, RuleParam ruleParamFromDatabase, String ruleKey, String pluginKey) { - return ruleParam.getKey().equals(ruleParamFromDatabase.getKey()) && - ruleKey.equals(ruleParamFromDatabase.getRule().getKey()) && - ruleParamFromDatabase.getRule().getPluginName().equals(pluginKey); - } - - public RulesProfile getProfileById(int profileId) { - return getSession().getEntityManager().getReference(RulesProfile.class, profileId); - } - } diff --git a/sonar-core/src/test/java/org/sonar/jpa/dao/RulesDaoTest.java b/sonar-core/src/test/java/org/sonar/jpa/dao/RulesDaoTest.java index 4656c20bb1b..7d1b0e97a64 100644 --- a/sonar-core/src/test/java/org/sonar/jpa/dao/RulesDaoTest.java +++ b/sonar-core/src/test/java/org/sonar/jpa/dao/RulesDaoTest.java @@ -65,55 +65,4 @@ public class RulesDaoTest extends AbstractDbUnitTestCase { assertThat(rule2, nullValue()); } - @Test - public void shouldGetRuleParams() { - setupData("shouldGetRuleParams"); - - List ruleParams = rulesDao.getRuleParams(); - - assertThat(ruleParams.size(), is(3)); - } - - @Test - public void shouldSynchronizeRuleOfActiveRule() { - setupData("shouldSynchronizeRuleOfActiveRule"); - Rule rule = new Rule(null, "other key", (String) null, null, null); - RuleParam ruleParam = new RuleParam(null, "rule1_param1", null, null); - rule.setParams(Arrays.asList(ruleParam)); - ActiveRule activeRule = new ActiveRule(null, rule, null); - ActiveRuleParam activeRuleParam = new ActiveRuleParam(activeRule, ruleParam, null); - activeRule.setActiveRuleParams(Arrays.asList(activeRuleParam)); - - rulesDao.synchronizeRuleOfActiveRule(activeRule, "plugin"); - - assertThat(activeRule.getRule().getId(), notNullValue()); - assertThat(activeRule.getActiveRuleParams().size(), is(1)); - } - - @Test - public void shouldGetRulesProfileById() { - RulesProfile rulesProfile = new RulesProfile("profil", "java", true, true); - getSession().save(rulesProfile); - - RulesProfile rulesProfileExpected = rulesDao.getProfileById(rulesProfile.getId()); - - assertThat(rulesProfileExpected, is(rulesProfile)); - } - - @Test - public void shouldAddActiveRulesToProfile() { - setupData("shouldAddActiveRulesToProfile"); - - Rule rule = new Rule("rule1", "key1", "config1", null, null); - RuleParam ruleParam = new RuleParam(null, "param1", null, null); - rule.setParams(Arrays.asList(ruleParam)); - - ActiveRule activeRule = new ActiveRule(null, rule, RulePriority.MAJOR); - ActiveRuleParam activeRuleParam = new ActiveRuleParam(activeRule, ruleParam, "20"); - activeRule.setActiveRuleParams(Arrays.asList(activeRuleParam)); - rulesDao.addActiveRulesToProfile(Arrays.asList(activeRule), 1, "plugin"); - - checkTables("shouldAddActiveRulesToProfile", "rules", "active_rules", "rules_profiles"); - } - } diff --git a/sonar-core/src/test/resources/org/sonar/jpa/dao/RulesDaoTest/shouldAddActiveRulesToProfile-result.xml b/sonar-core/src/test/resources/org/sonar/jpa/dao/RulesDaoTest/shouldAddActiveRulesToProfile-result.xml deleted file mode 100644 index cecf13ba8e1..00000000000 --- a/sonar-core/src/test/resources/org/sonar/jpa/dao/RulesDaoTest/shouldAddActiveRulesToProfile-result.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/sonar-core/src/test/resources/org/sonar/jpa/dao/RulesDaoTest/shouldAddActiveRulesToProfile.xml b/sonar-core/src/test/resources/org/sonar/jpa/dao/RulesDaoTest/shouldAddActiveRulesToProfile.xml deleted file mode 100644 index 0851c7441a0..00000000000 --- a/sonar-core/src/test/resources/org/sonar/jpa/dao/RulesDaoTest/shouldAddActiveRulesToProfile.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/sonar-core/src/test/resources/org/sonar/jpa/dao/RulesDaoTest/shouldSynchronizeRuleOfActiveRule.xml b/sonar-core/src/test/resources/org/sonar/jpa/dao/RulesDaoTest/shouldSynchronizeRuleOfActiveRule.xml deleted file mode 100644 index 94227fff982..00000000000 --- a/sonar-core/src/test/resources/org/sonar/jpa/dao/RulesDaoTest/shouldSynchronizeRuleOfActiveRule.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - \ No newline at end of file -- cgit v1.2.3