aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/qualityprofile/RuleActivator.java38
1 files changed, 12 insertions, 26 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/RuleActivator.java b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/RuleActivator.java
index 392cfdcfe2f..8a0841b4c49 100644
--- a/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/RuleActivator.java
+++ b/server/sonar-server/src/main/java/org/sonar/server/qualityprofile/RuleActivator.java
@@ -21,12 +21,12 @@ package org.sonar.server.qualityprofile;
import com.google.common.base.Splitter;
import com.google.common.collect.Lists;
-import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
+import org.sonar.api.rule.RuleKey;
import org.sonar.api.server.ServerSide;
import org.sonar.api.server.rule.RuleParamType;
import org.sonar.api.utils.System2;
@@ -41,14 +41,8 @@ import org.sonar.db.rule.RuleDto;
import org.sonar.db.rule.RuleParamDto;
import org.sonar.server.activity.ActivityService;
import org.sonar.server.exceptions.BadRequestException;
-import org.sonar.server.rule.Rule;
-import org.sonar.server.rule.index.RuleIndex;
-import org.sonar.server.rule.index.RuleNormalizer;
+import org.sonar.server.rule.index.RuleIndex2;
import org.sonar.server.rule.index.RuleQuery;
-import org.sonar.server.search.IndexClient;
-import org.sonar.server.search.QueryContext;
-import org.sonar.server.search.Result;
-import org.sonar.server.user.UserSession;
import org.sonar.server.util.TypeValidations;
import static com.google.common.collect.Lists.newArrayList;
@@ -63,20 +57,18 @@ public class RuleActivator {
private final DbClient db;
private final TypeValidations typeValidations;
private final RuleActivatorContextFactory contextFactory;
- private final IndexClient index;
+ private final RuleIndex2 ruleIndex;
private final ActivityService activityService;
- private final UserSession userSession;
- public RuleActivator(System2 system2, DbClient db, IndexClient index,
+ public RuleActivator(System2 system2, DbClient db, RuleIndex2 ruleIndex,
RuleActivatorContextFactory contextFactory, TypeValidations typeValidations,
- ActivityService activityService, UserSession userSession) {
+ ActivityService activityService) {
this.system2 = system2;
this.db = db;
- this.index = index;
+ this.ruleIndex = ruleIndex;
this.contextFactory = contextFactory;
this.typeValidations = typeValidations;
this.activityService = activityService;
- this.userSession = userSession;
}
public List<ActiveRuleChange> activate(DbSession dbSession, RuleActivation activation, String profileKey) {
@@ -397,16 +389,13 @@ public class RuleActivator {
BulkChangeResult bulkActivate(RuleQuery ruleQuery, String profileKey, @Nullable String severity) {
BulkChangeResult result = new BulkChangeResult();
- RuleIndex ruleIndex = index.get(RuleIndex.class);
DbSession dbSession = db.openSession(false);
try {
- Result<Rule> ruleSearchResult = ruleIndex.search(ruleQuery, new QueryContext(userSession).setScroll(true)
- .setFieldsToReturn(Arrays.asList(RuleNormalizer.RuleField.KEY.field())));
- Iterator<Rule> rules = ruleSearchResult.scroll();
+ Iterator<RuleKey> rules = ruleIndex.searchAll(ruleQuery);
while (rules.hasNext()) {
- Rule rule = rules.next();
+ RuleKey ruleKey = rules.next();
try {
- RuleActivation activation = new RuleActivation(rule.key());
+ RuleActivation activation = new RuleActivation(ruleKey);
activation.setSeverity(severity);
List<ActiveRuleChange> changes = activate(dbSession, activation, profileKey);
result.addChanges(changes);
@@ -430,15 +419,12 @@ public class RuleActivator {
BulkChangeResult bulkDeactivate(RuleQuery ruleQuery, String profile) {
DbSession dbSession = db.openSession(false);
try {
- RuleIndex ruleIndex = index.get(RuleIndex.class);
BulkChangeResult result = new BulkChangeResult();
- Result<Rule> ruleSearchResult = ruleIndex.search(ruleQuery, new QueryContext(userSession).setScroll(true)
- .setFieldsToReturn(Arrays.asList(RuleNormalizer.RuleField.KEY.field())));
- Iterator<Rule> rules = ruleSearchResult.scroll();
+ Iterator<RuleKey> rules = ruleIndex.searchAll(ruleQuery);
while (rules.hasNext()) {
try {
- Rule rule = rules.next();
- ActiveRuleKey key = ActiveRuleKey.of(profile, rule.key());
+ RuleKey ruleKey = rules.next();
+ ActiveRuleKey key = ActiveRuleKey.of(profile, ruleKey);
List<ActiveRuleChange> changes = deactivate(dbSession, key);
result.addChanges(changes);
if (!changes.isEmpty()) {