private void addActiveRules(ProjectReferentials ref) {
for (org.sonar.batch.protocol.input.QProfile qProfile : ref.qProfiles()) {
for (ActiveRule activeRule : qProfileLoader.findActiveRulesByProfile(qProfile.key())) {
- Rule rule = ruleService.getByKey(activeRule.key().ruleKey());
+ Rule rule = ruleService.getNonNullByKey(activeRule.key().ruleKey());
org.sonar.batch.protocol.input.ActiveRule inputActiveRule = new org.sonar.batch.protocol.input.ActiveRule(
activeRule.key().ruleKey().repository(),
activeRule.key().ruleKey().rule(),
for (RulesDefinition.ExtendedRepository repoDef : getRepositories(context)) {
if (languages.get(repoDef.language()) != null) {
for (RulesDefinition.Rule ruleDef : repoDef.rules()) {
- RuleKey ruleKey = RuleKey.of(ruleDef.repository().key(), ruleDef.key());
-
- RuleDto rule = allRules.containsKey(ruleKey) ? allRules.remove(ruleKey) : createRuleDto(ruleDef, session);
-
- boolean executeUpdate = false;
- if (mergeRule(ruleDef, rule)) {
- executeUpdate = true;
- }
-
- CharacteristicDto subCharacteristic = characteristic(ruleDef, rule.getSubCharacteristicId(), allCharacteristics);
- if (mergeDebtDefinitions(ruleDef, rule, subCharacteristic)) {
- executeUpdate = true;
- }
-
- if (mergeTags(ruleDef, rule)) {
- executeUpdate = true;
- }
-
- if (executeUpdate) {
- dbClient.ruleDao().update(session, rule);
- }
-
- mergeParams(ruleDef, rule, session);
+ registerRule(ruleDef, allRules, allCharacteristics, session);
}
session.commit();
}
// nothing
}
+ private void registerRule(RulesDefinition.Rule ruleDef, Map<RuleKey, RuleDto> allRules, Map<String, CharacteristicDto> allCharacteristics, DbSession session) {
+ RuleKey ruleKey = RuleKey.of(ruleDef.repository().key(), ruleDef.key());
+
+ RuleDto rule = allRules.containsKey(ruleKey) ? allRules.remove(ruleKey) : createRuleDto(ruleDef, session);
+
+ boolean executeUpdate = false;
+ if (mergeRule(ruleDef, rule)) {
+ executeUpdate = true;
+ }
+
+ CharacteristicDto subCharacteristic = characteristic(ruleDef, rule.getSubCharacteristicId(), allCharacteristics);
+ if (mergeDebtDefinitions(ruleDef, rule, subCharacteristic)) {
+ executeUpdate = true;
+ }
+
+ if (mergeTags(ruleDef, rule)) {
+ executeUpdate = true;
+ }
+
+ if (executeUpdate) {
+ dbClient.ruleDao().update(session, rule);
+ }
+
+ mergeParams(ruleDef, rule, session);
+ }
+
private Map<RuleKey, RuleDto> loadRules(DbSession session) {
Map<RuleKey, RuleDto> rules = new HashMap<RuleKey, RuleDto>();
for (RuleDto rule : dbClient.ruleDao().findByNonManual(session)) {