import com.google.common.collect.Maps;
import java.util.Map;
import javax.annotation.Nullable;
-import org.sonar.api.rule.RuleKey;
import org.sonar.server.es.BaseDoc;
import org.sonar.server.qualityprofile.ActiveRule;
import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_ACTIVE_RULE_ID;
import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_ACTIVE_RULE_INHERITANCE;
import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_ACTIVE_RULE_PROFILE_UUID;
-import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_ACTIVE_RULE_REPOSITORY;
import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_ACTIVE_RULE_RULE_ID;
-import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_ACTIVE_RULE_RULE_KEY;
import static org.sonar.server.rule.index.RuleIndexDefinition.FIELD_ACTIVE_RULE_SEVERITY;
public class ActiveRuleDoc extends BaseDoc {
return getRuleIdAsString();
}
- RuleKey getRuleKey() {
- return RuleKey.parse(getRuleKeyAsString());
- }
-
- private String getRuleKeyAsString() {
- return getField(FIELD_ACTIVE_RULE_RULE_KEY);
- }
-
- String getRuleRepository() {
- return getField(FIELD_ACTIVE_RULE_REPOSITORY);
- }
-
- ActiveRuleDoc setRuleKey(RuleKey ruleKey) {
- setField(FIELD_ACTIVE_RULE_RULE_KEY, ruleKey.toString());
- setField(FIELD_ACTIVE_RULE_REPOSITORY, ruleKey.repository());
- return this;
- }
-
private String getRuleIdAsString() {
return getField(FIELD_ACTIVE_RULE_RULE_ID);
}
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.search.SearchRequestBuilder;
import org.elasticsearch.index.query.QueryBuilders;
-import org.sonar.api.rule.RuleKey;
import org.sonar.api.utils.log.Logger;
import org.sonar.api.utils.log.Loggers;
import org.sonar.db.DbClient;
ActiveRuleDoc doc = new ActiveRuleDoc(dto.getId())
.setRuleId(dto.getRuleId())
.setRuleProfileUuid(dto.getRuleProfileUuid())
- .setSeverity(SeverityUtil.getSeverityFromOrdinal(dto.getSeverity()))
- .setRuleKey(RuleKey.of(dto.getRepository(), dto.getKey()));
+ .setSeverity(SeverityUtil.getSeverityFromOrdinal(dto.getSeverity()));
// all the fields must be present, even if value is null
String inheritance = dto.getInheritance();
doc.setInheritance(inheritance == null ? ActiveRule.Inheritance.NONE.name() : inheritance);
public static final IndexType INDEX_TYPE_ACTIVE_RULE = new IndexType(INDEX, "activeRule");
public static final String FIELD_ACTIVE_RULE_ID = "id";
public static final String FIELD_ACTIVE_RULE_RULE_ID = "ruleId";
- public static final String FIELD_ACTIVE_RULE_REPOSITORY = "repo";
public static final String FIELD_ACTIVE_RULE_INHERITANCE = "inheritance";
public static final String FIELD_ACTIVE_RULE_PROFILE_UUID = "ruleProfile";
public static final String FIELD_ACTIVE_RULE_SEVERITY = "severity";
- public static final String FIELD_ACTIVE_RULE_RULE_KEY = "ruleKey";
private final Configuration config;
private final boolean enableSource;
activeRuleMapping.keywordFieldBuilder(FIELD_ACTIVE_RULE_ID).disableNorms().build();
activeRuleMapping.keywordFieldBuilder(FIELD_ACTIVE_RULE_RULE_ID).disableNorms().build();
- activeRuleMapping.keywordFieldBuilder(FIELD_ACTIVE_RULE_RULE_KEY).addSubFields(SORTABLE_ANALYZER).build();
- activeRuleMapping.keywordFieldBuilder(FIELD_ACTIVE_RULE_REPOSITORY).build();
activeRuleMapping.keywordFieldBuilder(FIELD_ACTIVE_RULE_PROFILE_UUID).disableNorms().build();
activeRuleMapping.keywordFieldBuilder(FIELD_ACTIVE_RULE_INHERITANCE).disableNorms().build();
activeRuleMapping.keywordFieldBuilder(FIELD_ACTIVE_RULE_SEVERITY).disableNorms().build();
List<ActiveRuleDoc> docs = es.getDocuments(INDEX_TYPE_ACTIVE_RULE, ActiveRuleDoc.class);
assertThat(docs).hasSize(1);
- verify(docs.get(0), rule1, profile1, activeRule);
+ verify(docs.get(0), profile1, activeRule);
assertThatEsQueueTableIsEmpty();
}
}
}
- private void verify(ActiveRuleDoc doc1, RuleDefinitionDto rule, QProfileDto profile, ActiveRuleDto activeRule) {
+ private void verify(ActiveRuleDoc doc1, QProfileDto profile, ActiveRuleDto activeRule) {
assertThat(doc1)
- .matches(doc -> doc.getRuleKey().equals(rule.getKey()))
.matches(doc -> doc.getId().equals("" + activeRule.getId()))
.matches(doc -> doc.getRuleProfileUuid().equals(profile.getRulesProfileUuid()))
- .matches(doc -> doc.getRuleRepository().equals(rule.getRepositoryKey()))
.matches(doc -> doc.getSeverity().equals(activeRule.getSeverityString()));
}