@@ -19,19 +19,17 @@ | |||
*/ | |||
package org.sonar.core.rule; | |||
import com.google.common.collect.Lists; | |||
import org.apache.ibatis.session.SqlSession; | |||
import org.sonar.api.BatchComponent; | |||
import org.sonar.api.ServerComponent; | |||
import org.sonar.api.rule.RuleKey; | |||
import org.sonar.core.persistence.MyBatis; | |||
import javax.annotation.CheckForNull; | |||
import java.util.Collection; | |||
import java.util.List; | |||
import static com.google.common.collect.Lists.newArrayList; | |||
/** | |||
* @deprecated in 4.4 moved to org.sonar.server.rule.db.RuleDao. | |||
*/ | |||
@Deprecated | |||
public class RuleDao implements BatchComponent, ServerComponent { | |||
private MyBatis mybatis; | |||
@@ -40,19 +38,6 @@ public class RuleDao implements BatchComponent, ServerComponent { | |||
this.mybatis = mybatis; | |||
} | |||
public List<RuleDto> selectAll() { | |||
SqlSession session = mybatis.openSession(); | |||
try { | |||
return selectAll(session); | |||
} finally { | |||
MyBatis.closeQuietly(session); | |||
} | |||
} | |||
public List<RuleDto> selectAll(SqlSession session) { | |||
return getMapper(session).selectAll(); | |||
} | |||
public List<RuleDto> selectEnablesAndNonManual() { | |||
SqlSession session = mybatis.openSession(); | |||
try { | |||
@@ -66,110 +51,6 @@ public class RuleDao implements BatchComponent, ServerComponent { | |||
return getMapper(session).selectEnablesAndNonManual(); | |||
} | |||
public List<RuleDto> selectNonManual(SqlSession session) { | |||
return getMapper(session).selectNonManual(); | |||
} | |||
public List<RuleDto> selectBySubCharacteristicId(Integer characteristicOrSubCharacteristicId) { | |||
SqlSession session = mybatis.openSession(); | |||
try { | |||
return selectBySubCharacteristicId(characteristicOrSubCharacteristicId, session); | |||
} finally { | |||
MyBatis.closeQuietly(session); | |||
} | |||
} | |||
/** | |||
* Return all rules (even the REMOVED ones) linked on to a sub characteristic | |||
*/ | |||
public List<RuleDto> selectBySubCharacteristicId(Integer subCharacteristicId, SqlSession session) { | |||
return getMapper(session).selectBySubCharacteristicId(subCharacteristicId); | |||
} | |||
@CheckForNull | |||
public RuleDto selectById(Integer id, SqlSession session) { | |||
return getMapper(session).selectById(id); | |||
} | |||
@CheckForNull | |||
public RuleDto selectById(Integer id) { | |||
SqlSession session = mybatis.openSession(); | |||
try { | |||
return selectById(id, session); | |||
} finally { | |||
MyBatis.closeQuietly(session); | |||
} | |||
} | |||
@CheckForNull | |||
public RuleDto selectByKey(RuleKey ruleKey, SqlSession session) { | |||
return getMapper(session).selectByKey(ruleKey); | |||
} | |||
@CheckForNull | |||
public RuleDto selectByKey(RuleKey ruleKey) { | |||
SqlSession session = mybatis.openSession(); | |||
try { | |||
return selectByKey(ruleKey, session); | |||
} finally { | |||
MyBatis.closeQuietly(session); | |||
} | |||
} | |||
@CheckForNull | |||
public RuleDto selectByName(String name) { | |||
SqlSession session = mybatis.openSession(); | |||
try { | |||
return getMapper(session).selectByName(name); | |||
} finally { | |||
MyBatis.closeQuietly(session); | |||
} | |||
} | |||
public void update(RuleDto rule, SqlSession session) { | |||
getMapper(session).update(rule); | |||
} | |||
public void update(RuleDto rule) { | |||
SqlSession session = mybatis.openSession(); | |||
try { | |||
update(rule, session); | |||
session.commit(); | |||
} finally { | |||
MyBatis.closeQuietly(session); | |||
} | |||
} | |||
public void insert(RuleDto ruleToInsert, SqlSession session) { | |||
getMapper(session).insert(ruleToInsert); | |||
} | |||
public void insert(RuleDto ruleToInsert) { | |||
SqlSession session = mybatis.openSession(); | |||
try { | |||
insert(ruleToInsert, session); | |||
session.commit(); | |||
} finally { | |||
MyBatis.closeQuietly(session); | |||
} | |||
} | |||
public void insert(Collection<RuleDto> rules) { | |||
SqlSession session = mybatis.openBatchSession(); | |||
try { | |||
for (RuleDto rule : rules) { | |||
getMapper(session).batchInsert(rule); | |||
} | |||
session.commit(); | |||
} finally { | |||
MyBatis.closeQuietly(session); | |||
} | |||
} | |||
//****************************** | |||
// Methods for Rule Parameters | |||
//****************************** | |||
public List<RuleParamDto> selectParameters() { | |||
SqlSession session = mybatis.openSession(); | |||
try { | |||
@@ -183,70 +64,6 @@ public class RuleDao implements BatchComponent, ServerComponent { | |||
return getMapper(session).selectAllParams(); | |||
} | |||
public List<RuleParamDto> selectParametersByRuleId(Integer ruleId) { | |||
SqlSession session = mybatis.openSession(); | |||
try { | |||
return selectParametersByRuleId(ruleId, session); | |||
} finally { | |||
MyBatis.closeQuietly(session); | |||
} | |||
} | |||
public List<RuleParamDto> selectParametersByRuleId(Integer ruleId, SqlSession session) { | |||
return selectParametersByRuleIds(newArrayList(ruleId)); | |||
} | |||
public List<RuleParamDto> selectParametersByRuleIds(List<Integer> ruleIds) { | |||
SqlSession session = mybatis.openSession(); | |||
try { | |||
return selectParametersByRuleIds(ruleIds, session); | |||
} finally { | |||
MyBatis.closeQuietly(session); | |||
} | |||
} | |||
public List<RuleParamDto> selectParametersByRuleIds(List<Integer> ruleIds, SqlSession session) { | |||
List<RuleParamDto> dtos = newArrayList(); | |||
List<List<Integer>> partitionList = Lists.partition(newArrayList(ruleIds), 1000); | |||
for (List<Integer> partition : partitionList) { | |||
dtos.addAll(getMapper(session).selectParamsByRuleIds(partition)); | |||
} | |||
return dtos; | |||
} | |||
public void insert(RuleParamDto param, SqlSession session) { | |||
getMapper(session).insertParameter(param); | |||
} | |||
public void insert(RuleParamDto param) { | |||
SqlSession session = mybatis.openSession(); | |||
try { | |||
insert(param, session); | |||
session.commit(); | |||
} finally { | |||
MyBatis.closeQuietly(session); | |||
} | |||
} | |||
public void update(RuleParamDto param, SqlSession session) { | |||
getMapper(session).updateParameter(param); | |||
} | |||
public void update(RuleParamDto param) { | |||
SqlSession session = mybatis.openSession(); | |||
try { | |||
update(param, session); | |||
session.commit(); | |||
} finally { | |||
MyBatis.closeQuietly(session); | |||
} | |||
} | |||
@CheckForNull | |||
public RuleParamDto selectParamByRuleAndKey(Integer ruleId, String key, SqlSession session) { | |||
return getMapper(session).selectParamByRuleAndKey(ruleId, key); | |||
} | |||
private RuleMapper getMapper(SqlSession session) { | |||
return session.getMapper(RuleMapper.class); | |||
} |
@@ -32,10 +32,6 @@ public class RuleParamDto { | |||
private String defaultValue; | |||
private String description; | |||
public RuleParamDto() { | |||
} | |||
public Integer getId() { | |||
return id; | |||
} |
@@ -19,24 +19,13 @@ | |||
*/ | |||
package org.sonar.core.rule; | |||
import com.google.common.base.Function; | |||
import com.google.common.collect.ImmutableList; | |||
import com.google.common.collect.Iterables; | |||
import org.apache.ibatis.session.SqlSession; | |||
import org.junit.Before; | |||
import org.junit.Ignore; | |||
import org.junit.Test; | |||
import org.sonar.api.rule.RuleKey; | |||
import org.sonar.api.rule.Severity; | |||
import org.sonar.api.rules.Rule; | |||
import org.sonar.api.server.debt.DebtRemediationFunction; | |||
import org.sonar.api.utils.DateUtils; | |||
import org.sonar.check.Cardinality; | |||
import org.sonar.core.persistence.AbstractDaoTestCase; | |||
import java.util.List; | |||
import static com.google.common.collect.Lists.newArrayList; | |||
import static org.fest.assertions.Assertions.assertThat; | |||
public class RuleDaoTest extends AbstractDaoTestCase { | |||
@@ -48,31 +37,6 @@ public class RuleDaoTest extends AbstractDaoTestCase { | |||
dao = new RuleDao(getMyBatis()); | |||
} | |||
@Test | |||
public void select_all() throws Exception { | |||
setupData("selectAll"); | |||
List<RuleDto> ruleDtos = dao.selectAll(); | |||
assertThat(ruleDtos).hasSize(1); | |||
RuleDto ruleDto = ruleDtos.get(0); | |||
assertThat(ruleDto.getId()).isEqualTo(1); | |||
assertThat(ruleDto.getName()).isEqualTo("Avoid Null"); | |||
assertThat(ruleDto.getDescription()).isEqualTo("Should avoid NULL"); | |||
assertThat(ruleDto.getStatus()).isEqualTo(Rule.STATUS_READY); | |||
assertThat(ruleDto.getRepositoryKey()).isEqualTo("checkstyle"); | |||
assertThat(ruleDto.getNoteData()).isEqualTo("Rule note with accents \u00e9\u00e8\u00e0"); | |||
assertThat(ruleDto.getSubCharacteristicId()).isEqualTo(100); | |||
assertThat(ruleDto.getDefaultSubCharacteristicId()).isEqualTo(101); | |||
assertThat(ruleDto.getRemediationFunction()).isEqualTo("linear"); | |||
assertThat(ruleDto.getDefaultRemediationFunction()).isEqualTo("linear_offset"); | |||
assertThat(ruleDto.getRemediationCoefficient()).isEqualTo("1h"); | |||
assertThat(ruleDto.getDefaultRemediationCoefficient()).isEqualTo("5d"); | |||
assertThat(ruleDto.getRemediationOffset()).isEqualTo("5min"); | |||
assertThat(ruleDto.getDefaultRemediationOffset()).isEqualTo("10h"); | |||
assertThat(ruleDto.getEffortToFixDescription()).isEqualTo("squid.S115.effortToFix"); | |||
} | |||
@Test | |||
public void select_enables_and_non_manual() throws Exception { | |||
setupData("select_enables_and_non_manual"); | |||
@@ -97,198 +61,6 @@ public class RuleDaoTest extends AbstractDaoTestCase { | |||
assertThat(ruleDto.getEffortToFixDescription()).isEqualTo("squid.S115.effortToFix"); | |||
} | |||
@Test | |||
public void select_by_id() throws Exception { | |||
setupData("selectById"); | |||
RuleDto ruleDto = dao.selectById(2); | |||
assertThat(ruleDto.getId()).isEqualTo(2); | |||
assertThat(ruleDto.getName()).isEqualTo("Avoid Null"); | |||
assertThat(ruleDto.getDescription()).isEqualTo("Should avoid NULL"); | |||
assertThat(ruleDto.getStatus()).isEqualTo(Rule.STATUS_READY); | |||
assertThat(ruleDto.getRepositoryKey()).isEqualTo("checkstyle"); | |||
} | |||
@Test | |||
public void select_by_rule_key() throws Exception { | |||
setupData("select_by_rule_key"); | |||
assertThat(dao.selectByKey(RuleKey.of("checkstyle", "AvoidComparison"))).isNotNull(); | |||
assertThat(dao.selectByKey(RuleKey.of("checkstyle", "Unknown"))).isNull(); | |||
assertThat(dao.selectByKey(RuleKey.of("Unknown", "AvoidComparison"))).isNull(); | |||
} | |||
@Test | |||
public void select_by_name() throws Exception { | |||
setupData("select_by_name"); | |||
RuleDto ruleDto = dao.selectByName("Avoid Null"); | |||
assertThat(ruleDto.getId()).isEqualTo(2); | |||
assertThat(ruleDto.getName()).isEqualTo("Avoid Null"); | |||
assertThat(ruleDto.getDescription()).isEqualTo("Should avoid NULL"); | |||
assertThat(ruleDto.getStatus()).isEqualTo(Rule.STATUS_READY); | |||
assertThat(ruleDto.getRepositoryKey()).isEqualTo("checkstyle"); | |||
} | |||
@Test | |||
public void select_non_manual() throws Exception { | |||
setupData("selectNonManual"); | |||
SqlSession session = getMyBatis().openSession(); | |||
List<RuleDto> ruleDtos = dao.selectNonManual(session); | |||
session.commit(); | |||
session.close(); | |||
assertThat(ruleDtos.size()).isEqualTo(1); | |||
RuleDto ruleDto = ruleDtos.get(0); | |||
assertThat(ruleDto.getId()).isEqualTo(1); | |||
assertThat(ruleDto.getName()).isEqualTo("Avoid Null"); | |||
assertThat(ruleDto.getDescription()).isEqualTo("Should avoid NULL"); | |||
assertThat(ruleDto.getStatus()).isEqualTo(Rule.STATUS_READY); | |||
assertThat(ruleDto.getRepositoryKey()).isEqualTo("checkstyle"); | |||
} | |||
@Test | |||
public void select_by_sub_characteristic_id(){ | |||
setupData("select_by_sub_characteristic_id"); | |||
// Rules from sub characteristic (even REMOVED ones are returned) | |||
List<RuleDto> ruleDtos = dao.selectBySubCharacteristicId(3); | |||
assertThat(ruleDtos).hasSize(3); | |||
assertThat(idsFromRuleDtos(ruleDtos)).containsExactly(2, 4, 5); | |||
// Nothing on root characteristic | |||
ruleDtos = dao.selectBySubCharacteristicId(1); | |||
assertThat(ruleDtos).isEmpty(); | |||
// Rules from disabled characteristic | |||
ruleDtos = dao.selectBySubCharacteristicId(11); | |||
assertThat(idsFromRuleDtos(ruleDtos)).containsExactly(3); | |||
} | |||
@Test | |||
@Ignore | |||
//TODO The date is set by BaseDao. fails because of date. Fixed in next merge from @Simon | |||
public void update() { | |||
setupData("update"); | |||
RuleDto ruleToUpdate = new RuleDto() | |||
.setId(1) | |||
.setRuleKey("NewRuleKey") | |||
.setRepositoryKey("plugin") | |||
.setName("new name") | |||
.setDescription("new description") | |||
.setStatus(Rule.STATUS_DEPRECATED) | |||
.setConfigKey("NewConfigKey") | |||
.setSeverity(Severity.INFO) | |||
.setCardinality(Cardinality.MULTIPLE) | |||
.setLanguage("dart") | |||
.setParentId(3) | |||
.setNoteData("My note") | |||
.setNoteUserLogin("admin") | |||
.setNoteCreatedAt(DateUtils.parseDate("2013-12-19")) | |||
.setNoteUpdatedAt(DateUtils.parseDate("2013-12-20")) | |||
.setSubCharacteristicId(100) | |||
.setDefaultSubCharacteristicId(101) | |||
.setRemediationFunction(DebtRemediationFunction.Type.LINEAR.toString()) | |||
.setDefaultRemediationFunction(DebtRemediationFunction.Type.LINEAR_OFFSET.toString()) | |||
.setRemediationCoefficient("1h") | |||
.setDefaultRemediationCoefficient("5d") | |||
.setRemediationOffset("5min") | |||
.setDefaultRemediationOffset("10h") | |||
.setEffortToFixDescription("squid.S115.effortToFix"); | |||
dao.update(ruleToUpdate); | |||
checkTables("update", "rules"); | |||
} | |||
@Test | |||
@Ignore | |||
//TODO The date is set by BaseDao. fails because of date. Fixed in next merge from @Simon | |||
public void insert() { | |||
setupData("empty"); | |||
RuleDto ruleToInsert = new RuleDto() | |||
.setId(1) | |||
.setRuleKey("NewRuleKey") | |||
.setRepositoryKey("plugin") | |||
.setName("new name") | |||
.setDescription("new description") | |||
.setStatus(Rule.STATUS_DEPRECATED) | |||
.setConfigKey("NewConfigKey") | |||
.setSeverity(Severity.INFO) | |||
.setCardinality(Cardinality.MULTIPLE) | |||
.setLanguage("dart") | |||
.setParentId(3) | |||
.setSubCharacteristicId(100) | |||
.setDefaultSubCharacteristicId(101) | |||
.setRemediationFunction(DebtRemediationFunction.Type.LINEAR.toString()) | |||
.setDefaultRemediationFunction(DebtRemediationFunction.Type.LINEAR_OFFSET.toString()) | |||
.setRemediationCoefficient("1h") | |||
.setDefaultRemediationCoefficient("5d") | |||
.setRemediationOffset("5min") | |||
.setDefaultRemediationOffset("10h") | |||
.setEffortToFixDescription("squid.S115.effortToFix"); | |||
dao.insert(ruleToInsert); | |||
checkTables("insert", "rules"); | |||
} | |||
@Test | |||
@Ignore | |||
//TODO The date is set by BaseDao. fails because of date. Fixed in next merge from @Simon | |||
public void insert_all() { | |||
setupData("empty"); | |||
RuleDto ruleToInsert1 = new RuleDto() | |||
.setId(1) | |||
.setRuleKey("NewRuleKey") | |||
.setRepositoryKey("plugin") | |||
.setName("new name") | |||
.setDescription("new description") | |||
.setStatus(Rule.STATUS_DEPRECATED) | |||
.setConfigKey("NewConfigKey") | |||
.setSeverity(Severity.INFO) | |||
.setCardinality(Cardinality.MULTIPLE) | |||
.setLanguage("dart") | |||
.setParentId(3) | |||
.setSubCharacteristicId(100) | |||
.setDefaultSubCharacteristicId(101) | |||
.setRemediationFunction(DebtRemediationFunction.Type.LINEAR.toString()) | |||
.setDefaultRemediationFunction(DebtRemediationFunction.Type.LINEAR_OFFSET.toString()) | |||
.setRemediationCoefficient("1h") | |||
.setDefaultRemediationCoefficient("5d") | |||
.setRemediationOffset("5min") | |||
.setDefaultRemediationOffset("10h") | |||
.setEffortToFixDescription("squid.S115.effortToFix"); | |||
RuleDto ruleToInsert2 = new RuleDto() | |||
.setId(2) | |||
.setRuleKey("NewRuleKey2") | |||
.setRepositoryKey("plugin2") | |||
.setName("new name2") | |||
.setDescription("new description2") | |||
.setStatus(Rule.STATUS_BETA) | |||
.setConfigKey("NewConfigKey2") | |||
.setSeverity(Severity.MAJOR) | |||
.setCardinality(Cardinality.SINGLE) | |||
.setLanguage("js") | |||
.setParentId(null) | |||
.setSubCharacteristicId(102) | |||
.setDefaultSubCharacteristicId(103) | |||
.setRemediationFunction(DebtRemediationFunction.Type.LINEAR_OFFSET.toString()) | |||
.setDefaultRemediationFunction(DebtRemediationFunction.Type.LINEAR.toString()) | |||
.setRemediationCoefficient("5d") | |||
.setDefaultRemediationCoefficient("1h") | |||
.setRemediationOffset("10h") | |||
.setDefaultRemediationOffset("5min") | |||
.setEffortToFixDescription("squid.S115.effortToFix2"); | |||
dao.insert(ImmutableList.of(ruleToInsert1, ruleToInsert2)); | |||
checkTables("insert_all", "rules"); | |||
} | |||
@Test | |||
public void select_parameters() throws Exception { | |||
setupData("selectParameters"); | |||
@@ -302,68 +74,4 @@ public class RuleDaoTest extends AbstractDaoTestCase { | |||
assertThat(ruleDto.getType()).isEqualTo("plop"); | |||
assertThat(ruleDto.getDefaultValue()).isEqualTo("plouf"); | |||
} | |||
@Test | |||
public void select_parameters_by_rule_id() throws Exception { | |||
setupData("select_parameters_by_rule_id"); | |||
int ruleId = 1; | |||
List<RuleParamDto> ruleDtos = dao.selectParametersByRuleId(ruleId); | |||
assertThat(ruleDtos.size()).isEqualTo(1); | |||
RuleParamDto ruleDto = ruleDtos.get(0); | |||
assertThat(ruleDto.getId()).isEqualTo(1); | |||
assertThat(ruleDto.getName()).isEqualTo("myParameter"); | |||
assertThat(ruleDto.getDescription()).isEqualTo("My Parameter"); | |||
assertThat(ruleDto.getType()).isEqualTo("plop"); | |||
assertThat(ruleDto.getRuleId()).isEqualTo(ruleId); | |||
} | |||
@Test | |||
public void select_parameters_by_rule_ids() throws Exception { | |||
setupData("select_parameters_by_rule_ids"); | |||
assertThat(dao.selectParametersByRuleIds(newArrayList(1, 2))).hasSize(2); | |||
assertThat(dao.selectParametersByRuleIds(newArrayList(1))).hasSize(1); | |||
} | |||
@Test | |||
public void insert_parameter() { | |||
setupData("insert_parameter"); | |||
RuleParamDto param = new RuleParamDto() | |||
.setRuleId(1) | |||
.setName("max") | |||
.setType("INTEGER") | |||
.setDefaultValue("30") | |||
.setDescription("My Parameter"); | |||
dao.insert(param); | |||
checkTables("insert_parameter", "rules_parameters"); | |||
} | |||
@Test | |||
public void update_parameter() { | |||
setupData("update_parameter"); | |||
RuleParamDto param = new RuleParamDto() | |||
.setId(1) | |||
.setName("format") | |||
.setType("STRING") | |||
.setDefaultValue("^[a-z]+(\\.[a-z][a-z0-9]*)*$") | |||
.setDescription("Regular expression used to check the package names against."); | |||
dao.update(param); | |||
checkTables("update_parameter", "rules_parameters"); | |||
} | |||
private List<Integer> idsFromRuleDtos(List<RuleDto> ruleDtos){ | |||
return newArrayList(Iterables.transform(ruleDtos, new Function<RuleDto, Integer>() { | |||
@Override | |||
public Integer apply(RuleDto input) { | |||
return input.getId(); | |||
} | |||
})); | |||
} | |||
} |
@@ -33,7 +33,7 @@ import org.sonar.core.template.LoadedTemplateDao; | |||
import org.sonar.server.component.persistence.ComponentDao; | |||
import org.sonar.server.measure.persistence.MeasureDao; | |||
import org.sonar.server.qualityprofile.persistence.ActiveRuleDao; | |||
import org.sonar.server.rule2.persistence.RuleDao; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import java.util.Map; | |||
@@ -196,18 +196,19 @@ import org.sonar.server.rule.RubyRuleService; | |||
import org.sonar.server.rule.RuleDefinitionsLoader; | |||
import org.sonar.server.rule.RuleOperations; | |||
import org.sonar.server.rule.RuleRepositories; | |||
import org.sonar.server.rule2.RegisterRules; | |||
import org.sonar.server.rule2.RuleService; | |||
import org.sonar.server.rule2.index.RuleIndex; | |||
import org.sonar.server.rule2.index.RuleNormalizer; | |||
import org.sonar.server.rule2.persistence.RuleDao; | |||
import org.sonar.server.rule2.ws.ActiveRuleCompleter; | |||
import org.sonar.server.rule2.ws.RuleMapping; | |||
import org.sonar.server.rule2.ws.RulesWebService; | |||
import org.sonar.server.rule2.ws.SearchAction; | |||
import org.sonar.server.rule2.ws.SetNoteAction; | |||
import org.sonar.server.rule2.ws.SetTagsAction; | |||
import org.sonar.server.rule2.ws.TagsAction; | |||
import org.sonar.server.rule.ws.AppAction; | |||
import org.sonar.server.rule.RegisterRules; | |||
import org.sonar.server.rule.RuleService; | |||
import org.sonar.server.rule.index.RuleIndex; | |||
import org.sonar.server.rule.index.RuleNormalizer; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import org.sonar.server.rule.ws.ActiveRuleCompleter; | |||
import org.sonar.server.rule.ws.RuleMapping; | |||
import org.sonar.server.rule.ws.RulesWebService; | |||
import org.sonar.server.rule.ws.SearchAction; | |||
import org.sonar.server.rule.ws.SetNoteAction; | |||
import org.sonar.server.rule.ws.SetTagsAction; | |||
import org.sonar.server.rule.ws.TagsAction; | |||
import org.sonar.server.search.IndexClient; | |||
import org.sonar.server.search.IndexQueue; | |||
import org.sonar.server.search.IndexQueueWorker; | |||
@@ -435,13 +436,13 @@ class ServerComponents { | |||
pico.addSingleton(RuleService.class); | |||
pico.addSingleton(RulesWebService.class); | |||
pico.addSingleton(SearchAction.class); | |||
pico.addSingleton(org.sonar.server.rule2.ws.ShowAction.class); | |||
pico.addSingleton(org.sonar.server.rule.ws.ShowAction.class); | |||
pico.addSingleton(TagsAction.class); | |||
pico.addSingleton(SetTagsAction.class); | |||
pico.addSingleton(SetNoteAction.class); | |||
pico.addSingleton(RuleMapping.class); | |||
pico.addSingleton(ActiveRuleCompleter.class); | |||
pico.addSingleton(org.sonar.server.rule2.ws.AppAction.class); | |||
pico.addSingleton(AppAction.class); | |||
// measure | |||
pico.addComponent(MeasuresDao.class, false); |
@@ -34,7 +34,7 @@ import org.sonar.core.rule.RuleDto; | |||
import org.sonar.core.rule.RuleParamDto; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
import org.sonar.server.qualityprofile.persistence.ActiveRuleDao; | |||
import org.sonar.server.rule2.persistence.RuleDao; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import org.sonar.server.util.TypeValidations; | |||
import javax.annotation.CheckForNull; |
@@ -41,7 +41,7 @@ import org.sonar.core.rule.RuleDto; | |||
import org.sonar.jpa.session.DatabaseSessionFactory; | |||
import org.sonar.server.exceptions.BadRequestException; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
import org.sonar.server.rule2.persistence.RuleDao; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import org.sonar.server.user.UserSession; | |||
import java.io.StringReader; |
@@ -36,7 +36,7 @@ import org.sonar.core.qualityprofile.db.QualityProfileKey; | |||
import org.sonar.core.rule.RuleDto; | |||
import org.sonar.server.db.BaseDao; | |||
import org.sonar.server.qualityprofile.QProfile; | |||
import org.sonar.server.rule2.persistence.RuleDao; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import org.sonar.server.search.IndexDefinition; | |||
import org.sonar.server.search.action.IndexAction; | |||
import org.sonar.server.search.action.KeyIndexAction; |
@@ -27,7 +27,7 @@ import org.sonar.api.server.ws.Response; | |||
import org.sonar.api.server.ws.WebService; | |||
import org.sonar.server.qualityprofile.ActiveRuleService; | |||
import org.sonar.server.qualityprofile.BulkRuleActivation; | |||
import org.sonar.server.rule2.ws.SearchAction; | |||
import org.sonar.server.rule.ws.SearchAction; | |||
public class BulkRuleActivationActions implements ServerComponent { | |||
@@ -41,7 +41,6 @@ import org.sonar.server.debt.DebtRulesXMLImporter; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nullable; | |||
import java.io.Reader; | |||
import java.util.Collection; | |||
import java.util.List; | |||
@@ -50,9 +49,7 @@ import static com.google.common.collect.Lists.newArrayList; | |||
import static org.sonar.server.debt.DebtModelXMLExporter.RuleDebt; | |||
/** | |||
* Inject deprecated RuleRepository into RuleDefinitions for backward-compatibility. | |||
* | |||
* @since 4.2 | |||
* Inject deprecated RuleRepository into {@link org.sonar.api.server.rule.RulesDefinition} for backward-compatibility. | |||
*/ | |||
public class DeprecatedRulesDefinition implements RulesDefinition { | |||
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2; | |||
package org.sonar.server.rule; | |||
import com.google.common.annotations.VisibleForTesting; | |||
import com.google.common.base.Function; | |||
@@ -43,7 +43,6 @@ import org.sonar.core.technicaldebt.db.CharacteristicDao; | |||
import org.sonar.core.technicaldebt.db.CharacteristicDto; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.qualityprofile.ProfilesManager; | |||
import org.sonar.server.rule.RuleDefinitionsLoader; | |||
import org.sonar.server.search.IndexDefinition; | |||
import org.sonar.server.search.action.EmbeddedIndexAction; | |||
import org.sonar.server.search.action.IndexAction; |
@@ -26,8 +26,8 @@ import org.sonar.api.rule.RuleKey; | |||
import org.sonar.api.rule.RuleStatus; | |||
import org.sonar.server.paging.PagedResult; | |||
import org.sonar.server.paging.PagingResult; | |||
import org.sonar.server.rule2.RuleService; | |||
import org.sonar.server.rule2.index.RuleResult; | |||
import org.sonar.server.rule.index.RuleQuery; | |||
import org.sonar.server.rule.index.RuleResult; | |||
import org.sonar.server.search.QueryOptions; | |||
import org.sonar.server.util.RubyUtils; | |||
@@ -36,7 +36,10 @@ import java.util.Map; | |||
/** | |||
* Used through ruby code <pre>Internal.rules</pre> | |||
* | |||
* @deprecated in 4.4 because Ruby on Rails is deprecated too ! | |||
*/ | |||
@Deprecated | |||
public class RubyRuleService implements ServerComponent, Startable { | |||
private final RuleService service; | |||
@@ -49,15 +52,15 @@ public class RubyRuleService implements ServerComponent, Startable { | |||
* Used in issues_controller.rb | |||
*/ | |||
@CheckForNull | |||
public org.sonar.server.rule2.Rule findByKey(String ruleKey) { | |||
public org.sonar.server.rule.Rule findByKey(String ruleKey) { | |||
return service.getByKey(RuleKey.parse(ruleKey)); | |||
} | |||
/** | |||
* Used in SQALE | |||
*/ | |||
public PagedResult<org.sonar.server.rule2.Rule> find(Map<String, Object> params) { | |||
org.sonar.server.rule2.index.RuleQuery query = service.newRuleQuery(); | |||
public PagedResult<org.sonar.server.rule.Rule> find(Map<String, Object> params) { | |||
RuleQuery query = service.newRuleQuery(); | |||
query.setQueryText(Strings.emptyToNull((String) params.get("searchQuery"))); | |||
query.setKey(Strings.emptyToNull((String) params.get("key"))); | |||
query.setLanguages(RubyUtils.toStrings(params.get("languages"))); | |||
@@ -70,11 +73,12 @@ public class RubyRuleService implements ServerComponent, Startable { | |||
QueryOptions options = new QueryOptions(); | |||
RuleResult rules = service.search(query, options); | |||
return new PagedResult<org.sonar.server.rule2.Rule>(rules.getRules(), PagingResult.create(options.getLimit(), 1, rules.getTotal())); | |||
return new PagedResult<org.sonar.server.rule.Rule>(rules.getRules(), PagingResult.create(options.getLimit(), 1, rules.getTotal())); | |||
} | |||
// sqale | |||
public void updateRule(Map<String, Object> params) { | |||
//TODO | |||
// rules.updateRule(new RuleOperations.RuleChange() | |||
// .setRuleKey(RuleKey.parse((String) params.get("ruleKey"))) | |||
// .setDebtCharacteristicKey(Strings.emptyToNull((String) params.get("debtCharacteristicKey"))) |
@@ -19,10 +19,80 @@ | |||
*/ | |||
package org.sonar.server.rule; | |||
import org.sonar.api.rule.RuleKey; | |||
import org.sonar.api.rule.RuleStatus; | |||
import org.sonar.api.server.debt.DebtRemediationFunction; | |||
import javax.annotation.CheckForNull; | |||
import java.util.Date; | |||
import java.util.List; | |||
/** | |||
* @deprecated to be dropped in 4.4 | |||
* @since 4.4 | |||
*/ | |||
@Deprecated | |||
public class Rule { | |||
public interface Rule { | |||
public static final String MANUAL_REPOSITORY_KEY = "manual"; | |||
RuleKey key(); | |||
String language(); | |||
String name(); | |||
String htmlDescription(); | |||
/** | |||
* Default severity when activated on a Quality profile | |||
* | |||
* @see org.sonar.api.rule.Severity | |||
*/ | |||
String severity(); | |||
/** | |||
* @see org.sonar.api.rule.RuleStatus | |||
*/ | |||
RuleStatus status(); | |||
boolean template(); | |||
/** | |||
* Tags that can be customized by administrators | |||
*/ | |||
List<String> tags(); | |||
/** | |||
* Read-only tags defined by plugins | |||
*/ | |||
List<String> systemTags(); | |||
List<RuleParam> params(); | |||
@CheckForNull | |||
String debtCharacteristicKey(); | |||
@CheckForNull | |||
String debtSubCharacteristicKey(); | |||
@CheckForNull | |||
DebtRemediationFunction debtRemediationFunction(); | |||
Date createdAt(); | |||
Date updatedAt(); | |||
@CheckForNull | |||
String internalKey(); | |||
@CheckForNull | |||
String markdownNote(); | |||
@CheckForNull | |||
String noteLogin(); | |||
@CheckForNull | |||
Date noteCreatedAt(); | |||
@CheckForNull | |||
Date noteUpdatedAt(); | |||
} |
@@ -23,7 +23,8 @@ import org.sonar.api.ServerComponent; | |||
import org.sonar.api.server.rule.RulesDefinition; | |||
/** | |||
* Loads all instances of RuleDefinitions and initializes RuleRepositories. Used at server startup. | |||
* Loads all instances of {@link org.sonar.api.server.rule.RulesDefinition} | |||
* and initializes {@link org.sonar.server.rule.RuleRepositories}. Used at server startup. | |||
*/ | |||
public class RuleDefinitionsLoader implements ServerComponent { | |||
private final RulesDefinition[] definitions; |
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2; | |||
package org.sonar.server.rule; | |||
import org.sonar.api.server.rule.RuleParamType; | |||
@@ -28,7 +28,6 @@ import org.sonar.api.ServerComponent; | |||
import org.sonar.api.server.rule.RulesDefinition; | |||
import javax.annotation.CheckForNull; | |||
import java.util.Collection; | |||
import java.util.Map; | |||
import java.util.SortedSet; | |||
@@ -36,7 +35,7 @@ import java.util.SortedSet; | |||
/** | |||
* This component keeps metadata of rule repositories. | |||
* <p/> | |||
* Rule repositories are not persisted into datastores, so their metadata (name) | |||
* Rule repositories are not persisted into database, so their metadata (name) | |||
* is kept by this component. | |||
* | |||
* @since 4.2 |
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2; | |||
package org.sonar.server.rule; | |||
import org.apache.commons.lang.StringUtils; | |||
import org.sonar.api.ServerComponent; | |||
@@ -26,10 +26,10 @@ import org.sonar.core.permission.GlobalPermissions; | |||
import org.sonar.core.persistence.DbSession; | |||
import org.sonar.core.rule.RuleDto; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.rule2.index.RuleIndex; | |||
import org.sonar.server.rule2.index.RuleNormalizer; | |||
import org.sonar.server.rule2.index.RuleQuery; | |||
import org.sonar.server.rule2.index.RuleResult; | |||
import org.sonar.server.rule.index.RuleIndex; | |||
import org.sonar.server.rule.index.RuleNormalizer; | |||
import org.sonar.server.rule.index.RuleQuery; | |||
import org.sonar.server.rule.index.RuleResult; | |||
import org.sonar.server.search.QueryOptions; | |||
import org.sonar.server.user.UserSession; | |||
@@ -52,7 +52,7 @@ public class RuleService implements ServerComponent { | |||
} | |||
@CheckForNull | |||
public Rule getByKey(RuleKey key) { | |||
public org.sonar.server.rule.Rule getByKey(RuleKey key) { | |||
return index.getByKey(key); | |||
} | |||
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2; | |||
package org.sonar.server.rule; | |||
import com.google.common.base.Predicate; | |||
import com.google.common.collect.Sets; | |||
@@ -50,6 +50,6 @@ class RuleTagHelper { | |||
} | |||
}); | |||
rule.setTags(withoutSystemTags); | |||
return withoutSystemTags.size()!=initialTags.size() || !withoutSystemTags.containsAll(initialTags); | |||
return withoutSystemTags.size() != initialTags.size() || !withoutSystemTags.containsAll(initialTags); | |||
} | |||
} |
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2.persistence; | |||
package org.sonar.server.rule.db; | |||
import com.google.common.annotations.VisibleForTesting; | |||
import com.google.common.base.Preconditions; |
@@ -17,7 +17,6 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
@ParametersAreNonnullByDefault | |||
package org.sonar.server.rule2; | |||
@ParametersAreNonnullByDefault package org.sonar.server.rule.db; | |||
import javax.annotation.ParametersAreNonnullByDefault; |
@@ -17,16 +17,15 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2.index; | |||
package org.sonar.server.rule.index; | |||
import org.apache.commons.lang.builder.ReflectionToStringBuilder; | |||
import org.sonar.api.rule.RuleKey; | |||
import org.sonar.api.rule.RuleStatus; | |||
import org.sonar.api.server.debt.DebtRemediationFunction; | |||
import org.sonar.api.server.rule.RuleParamType; | |||
import org.sonar.server.rule2.Rule; | |||
import org.sonar.server.rule2.RuleParam; | |||
import org.sonar.server.rule2.index.RuleNormalizer.RuleField; | |||
import org.sonar.server.rule.Rule; | |||
import org.sonar.server.rule.RuleParam; | |||
import org.sonar.server.search.BaseDoc; | |||
import org.sonar.server.search.IndexUtils; | |||
@@ -47,7 +46,7 @@ public class RuleDoc extends BaseDoc implements Rule { | |||
@Override | |||
public RuleKey key() { | |||
String key = getField(RuleField.KEY.key()); | |||
String key = getField(RuleNormalizer.RuleField.KEY.key()); | |||
if (key == null || key.isEmpty()) { | |||
throw new IllegalStateException("Missing values for RuleKey in RuleDoc"); | |||
} else { | |||
@@ -65,68 +64,68 @@ public class RuleDoc extends BaseDoc implements Rule { | |||
@Override | |||
@CheckForNull | |||
public String internalKey() { | |||
return getField(RuleField.INTERNAL_KEY.key()); | |||
return getField(RuleNormalizer.RuleField.INTERNAL_KEY.key()); | |||
} | |||
@Override | |||
public String markdownNote() { | |||
return getField(RuleField.NOTE.key()); | |||
return getField(RuleNormalizer.RuleField.NOTE.key()); | |||
} | |||
@Override | |||
@CheckForNull | |||
public String language() { | |||
return getField(RuleField.LANGUAGE.key()); | |||
return getField(RuleNormalizer.RuleField.LANGUAGE.key()); | |||
} | |||
@Override | |||
@CheckForNull | |||
public String name() { | |||
return getField(RuleField.NAME.key()); | |||
return getField(RuleNormalizer.RuleField.NAME.key()); | |||
} | |||
@Override | |||
@CheckForNull | |||
public String htmlDescription() { | |||
return getField(RuleField.HTML_DESCRIPTION.key()); | |||
return getField(RuleNormalizer.RuleField.HTML_DESCRIPTION.key()); | |||
} | |||
@Override | |||
@CheckForNull | |||
public String severity() { | |||
return (String) getField(RuleField.SEVERITY.key()); | |||
return (String) getField(RuleNormalizer.RuleField.SEVERITY.key()); | |||
} | |||
@Override | |||
@CheckForNull | |||
public RuleStatus status() { | |||
return RuleStatus.valueOf((String) getField(RuleField.STATUS.key())); | |||
return RuleStatus.valueOf((String) getField(RuleNormalizer.RuleField.STATUS.key())); | |||
} | |||
@Override | |||
@CheckForNull | |||
public boolean template() { | |||
return (Boolean) getField(RuleField.TEMPLATE.key()); | |||
return (Boolean) getField(RuleNormalizer.RuleField.TEMPLATE.key()); | |||
} | |||
@Override | |||
@CheckForNull | |||
public List<String> tags() { | |||
return (List<String>) getField(RuleField.TAGS.key()); | |||
return (List<String>) getField(RuleNormalizer.RuleField.TAGS.key()); | |||
} | |||
@Override | |||
@CheckForNull | |||
public List<String> systemTags() { | |||
return (List<String>) getField(RuleField.SYSTEM_TAGS.key()); | |||
return (List<String>) getField(RuleNormalizer.RuleField.SYSTEM_TAGS.key()); | |||
} | |||
@Override | |||
@CheckForNull | |||
public List<RuleParam> params() { | |||
List<RuleParam> params = new ArrayList<RuleParam>(); | |||
if (this.getField(RuleField.PARAMS.key()) != null) { | |||
List<Map<String, Object>> esParams = this.getField(RuleField.PARAMS.key()); | |||
if (this.getField(RuleNormalizer.RuleField.PARAMS.key()) != null) { | |||
List<Map<String, Object>> esParams = this.getField(RuleNormalizer.RuleField.PARAMS.key()); | |||
for (final Map<String, Object> param : esParams) { | |||
params.add(new RuleParam() { | |||
{ | |||
@@ -164,20 +163,20 @@ public class RuleDoc extends BaseDoc implements Rule { | |||
@Override | |||
@CheckForNull | |||
public String debtCharacteristicKey() { | |||
return (String) getField(RuleField.CHARACTERISTIC.key()); | |||
return (String) getField(RuleNormalizer.RuleField.CHARACTERISTIC.key()); | |||
} | |||
@Override | |||
@CheckForNull | |||
public String debtSubCharacteristicKey(){ | |||
return (String) getField(RuleField.SUB_CHARACTERISTIC.key()); | |||
public String debtSubCharacteristicKey() { | |||
return (String) getField(RuleNormalizer.RuleField.SUB_CHARACTERISTIC.key()); | |||
} | |||
@Override | |||
@CheckForNull | |||
public DebtRemediationFunction debtRemediationFunction() { | |||
final String function = this.getField(RuleField.DEBT_FUNCTION_TYPE.key()); | |||
if(function == null || function.isEmpty()){ | |||
final String function = this.getField(RuleNormalizer.RuleField.DEBT_FUNCTION_TYPE.key()); | |||
if (function == null || function.isEmpty()) { | |||
return null; | |||
} else { | |||
return new DebtRemediationFunction() { | |||
@@ -188,12 +187,12 @@ public class RuleDoc extends BaseDoc implements Rule { | |||
@Override | |||
public String coefficient() { | |||
return (String) getField(RuleField.DEBT_FUNCTION_COEFFICIENT.key()); | |||
return (String) getField(RuleNormalizer.RuleField.DEBT_FUNCTION_COEFFICIENT.key()); | |||
} | |||
@Override | |||
public String offset() { | |||
return (String) getField(RuleField.DEBT_FUNCTION_OFFSET.key()); | |||
return (String) getField(RuleNormalizer.RuleField.DEBT_FUNCTION_OFFSET.key()); | |||
} | |||
}; | |||
} | |||
@@ -202,29 +201,29 @@ public class RuleDoc extends BaseDoc implements Rule { | |||
@Override | |||
@CheckForNull | |||
public String noteLogin() { | |||
return (String) getField(RuleField.NOTE_LOGIN.key()); | |||
return (String) getField(RuleNormalizer.RuleField.NOTE_LOGIN.key()); | |||
} | |||
@Override | |||
public Date noteCreatedAt() { | |||
return IndexUtils.parseDateTime((String) getField(RuleField.NOTE_CREATED_AT.key())); | |||
return IndexUtils.parseDateTime((String) getField(RuleNormalizer.RuleField.NOTE_CREATED_AT.key())); | |||
} | |||
@Override | |||
public Date noteUpdatedAt() { | |||
return IndexUtils.parseDateTime((String) getField(RuleField.NOTE_UPDATED_AT.key())); | |||
return IndexUtils.parseDateTime((String) getField(RuleNormalizer.RuleField.NOTE_UPDATED_AT.key())); | |||
} | |||
@Override | |||
@CheckForNull | |||
public Date createdAt() { | |||
return IndexUtils.parseDateTime((String)getField(RuleField.CREATED_AT.key())); | |||
return IndexUtils.parseDateTime((String) getField(RuleNormalizer.RuleField.CREATED_AT.key())); | |||
} | |||
@Override | |||
@CheckForNull | |||
public Date updatedAt() { | |||
return IndexUtils.parseDateTime((String) getField(RuleField.UPDATED_AT.key())); | |||
return IndexUtils.parseDateTime((String) getField(RuleNormalizer.RuleField.UPDATED_AT.key())); | |||
} | |||
@Override |
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2.index; | |||
package org.sonar.server.rule.index; | |||
import com.google.common.base.Preconditions; | |||
import org.elasticsearch.action.search.SearchRequestBuilder; | |||
@@ -39,7 +39,7 @@ import org.sonar.core.cluster.WorkQueue; | |||
import org.sonar.core.rule.RuleDto; | |||
import org.sonar.server.es.ESNode; | |||
import org.sonar.server.qualityprofile.index.ActiveRuleNormalizer; | |||
import org.sonar.server.rule2.Rule; | |||
import org.sonar.server.rule.Rule; | |||
import org.sonar.server.search.BaseIndex; | |||
import org.sonar.server.search.IndexDefinition; | |||
import org.sonar.server.search.QueryOptions; |
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2.index; | |||
package org.sonar.server.rule.index; | |||
import com.google.common.base.Function; | |||
import com.google.common.collect.Collections2; | |||
@@ -81,9 +81,9 @@ public class RuleNormalizer extends BaseNormalizer<RuleDto, RuleKey> { | |||
return key; | |||
} | |||
public static RuleField fromKey(String key){ | |||
for(RuleField ruleField : RuleField.values()){ | |||
if(ruleField.key().equals(key)){ | |||
public static RuleField fromKey(String key) { | |||
for (RuleField ruleField : RuleField.values()) { | |||
if (ruleField.key().equals(key)) { | |||
return ruleField; | |||
} | |||
} | |||
@@ -135,7 +135,7 @@ public class RuleNormalizer extends BaseNormalizer<RuleDto, RuleKey> { | |||
List<UpdateRequest> requests = new ArrayList<UpdateRequest>(); | |||
try { | |||
requests.addAll(normalize(db.ruleDao().getByKey(key, dbSession))); | |||
for(RuleParamDto param : db.ruleDao().findRuleParamsByRuleKey(key, dbSession)){ | |||
for (RuleParamDto param : db.ruleDao().findRuleParamsByRuleKey(key, dbSession)) { | |||
requests.addAll(normalize(param, key)); | |||
} | |||
} finally { | |||
@@ -181,8 +181,8 @@ public class RuleNormalizer extends BaseNormalizer<RuleDto, RuleKey> { | |||
db.debtCharacteristicDao().selectById(characteristic.getParentId()).getKey()); | |||
} | |||
} else { | |||
update.put(RuleField.CHARACTERISTIC.key(),null); | |||
update.put(RuleField.SUB_CHARACTERISTIC.key(),null); | |||
update.put(RuleField.CHARACTERISTIC.key(), null); | |||
update.put(RuleField.SUB_CHARACTERISTIC.key(), null); | |||
} | |||
String dType = null, dCoefficient = null, dOffset = null; |
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2.index; | |||
package org.sonar.server.rule.index; | |||
import com.google.common.base.Preconditions; | |||
import org.sonar.api.rule.RuleStatus; | |||
@@ -83,7 +83,7 @@ public class RuleQuery { | |||
/** | |||
* TODO should not be public | |||
* | |||
* @see org.sonar.server.rule2.RuleService#newRuleQuery() | |||
* @see org.sonar.server.rule.RuleService#newRuleQuery() | |||
*/ | |||
public RuleQuery() { | |||
} |
@@ -17,10 +17,10 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2.index; | |||
package org.sonar.server.rule.index; | |||
import org.elasticsearch.action.search.SearchResponse; | |||
import org.sonar.server.rule2.Rule; | |||
import org.sonar.server.rule.Rule; | |||
import org.sonar.server.search.Result; | |||
import java.util.Collection; |
@@ -17,7 +17,6 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
@ParametersAreNonnullByDefault | |||
package org.sonar.server.rule2.index; | |||
@ParametersAreNonnullByDefault package org.sonar.server.rule.index; | |||
import javax.annotation.ParametersAreNonnullByDefault; |
@@ -17,7 +17,6 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
@ParametersAreNonnullByDefault | |||
package org.sonar.server.rule; | |||
@ParametersAreNonnullByDefault package org.sonar.server.rule; | |||
import javax.annotation.ParametersAreNonnullByDefault; |
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2.ws; | |||
package org.sonar.server.rule.ws; | |||
import org.sonar.api.ServerComponent; | |||
import org.sonar.api.rule.RuleKey; | |||
@@ -26,8 +26,8 @@ import org.sonar.core.qualityprofile.db.ActiveRuleKey; | |||
import org.sonar.core.qualityprofile.db.QualityProfileKey; | |||
import org.sonar.server.qualityprofile.ActiveRule; | |||
import org.sonar.server.qualityprofile.ActiveRuleService; | |||
import org.sonar.server.rule2.Rule; | |||
import org.sonar.server.rule2.index.RuleQuery; | |||
import org.sonar.server.rule.Rule; | |||
import org.sonar.server.rule.index.RuleQuery; | |||
import java.util.Arrays; | |||
import java.util.Collection; |
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2.ws; | |||
package org.sonar.server.rule.ws; | |||
import org.elasticsearch.common.collect.Maps; | |||
import org.sonar.api.i18n.I18n; |
@@ -17,15 +17,15 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2.ws; | |||
package org.sonar.server.rule.ws; | |||
import org.sonar.api.resources.Language; | |||
import org.sonar.api.resources.Languages; | |||
import org.sonar.api.utils.text.JsonWriter; | |||
import org.sonar.markdown.Markdown; | |||
import org.sonar.server.rule2.Rule; | |||
import org.sonar.server.rule2.RuleParam; | |||
import org.sonar.server.rule2.index.RuleNormalizer; | |||
import org.sonar.server.rule.Rule; | |||
import org.sonar.server.rule.RuleParam; | |||
import org.sonar.server.rule.index.RuleNormalizer; | |||
import org.sonar.server.search.ws.BaseMapping; | |||
import org.sonar.server.text.MacroInterpreter; | |||
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2.ws; | |||
package org.sonar.server.rule.ws; | |||
import org.sonar.api.server.ws.WebService; | |||
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2.ws; | |||
package org.sonar.server.rule.ws; | |||
import com.google.common.collect.ImmutableList; | |||
import com.google.common.io.Resources; | |||
@@ -28,12 +28,12 @@ import org.sonar.api.server.ws.RequestHandler; | |||
import org.sonar.api.server.ws.Response; | |||
import org.sonar.api.server.ws.WebService; | |||
import org.sonar.api.utils.text.JsonWriter; | |||
import org.sonar.server.rule2.Rule; | |||
import org.sonar.server.rule2.RuleService; | |||
import org.sonar.server.rule2.index.RuleDoc; | |||
import org.sonar.server.rule2.index.RuleNormalizer; | |||
import org.sonar.server.rule2.index.RuleQuery; | |||
import org.sonar.server.rule2.index.RuleResult; | |||
import org.sonar.server.rule.Rule; | |||
import org.sonar.server.rule.RuleService; | |||
import org.sonar.server.rule.index.RuleDoc; | |||
import org.sonar.server.rule.index.RuleNormalizer; | |||
import org.sonar.server.rule.index.RuleQuery; | |||
import org.sonar.server.rule.index.RuleResult; | |||
import org.sonar.server.search.FacetValue; | |||
import org.sonar.server.search.QueryOptions; | |||
import org.sonar.server.search.ws.SearchOptions; |
@@ -17,14 +17,14 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2.ws; | |||
package org.sonar.server.rule.ws; | |||
import org.sonar.api.rule.RuleKey; | |||
import org.sonar.api.server.ws.Request; | |||
import org.sonar.api.server.ws.RequestHandler; | |||
import org.sonar.api.server.ws.Response; | |||
import org.sonar.api.server.ws.WebService; | |||
import org.sonar.server.rule2.RuleService; | |||
import org.sonar.server.rule.RuleService; | |||
public class SetNoteAction implements RequestHandler { | |||
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2.ws; | |||
package org.sonar.server.rule.ws; | |||
import com.google.common.collect.Sets; | |||
import org.sonar.api.rule.RuleKey; | |||
@@ -25,7 +25,7 @@ import org.sonar.api.server.ws.Request; | |||
import org.sonar.api.server.ws.RequestHandler; | |||
import org.sonar.api.server.ws.Response; | |||
import org.sonar.api.server.ws.WebService; | |||
import org.sonar.server.rule2.RuleService; | |||
import org.sonar.server.rule.RuleService; | |||
import java.util.Set; | |||
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2.ws; | |||
package org.sonar.server.rule.ws; | |||
import com.google.common.io.Resources; | |||
import org.sonar.api.rule.RuleKey; | |||
@@ -27,8 +27,8 @@ import org.sonar.api.server.ws.Response; | |||
import org.sonar.api.server.ws.WebService; | |||
import org.sonar.api.utils.text.JsonWriter; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
import org.sonar.server.rule2.Rule; | |||
import org.sonar.server.rule2.RuleService; | |||
import org.sonar.server.rule.Rule; | |||
import org.sonar.server.rule.RuleService; | |||
import org.sonar.server.search.BaseDoc; | |||
/** |
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2.ws; | |||
package org.sonar.server.rule.ws; | |||
import com.google.common.io.Resources; | |||
import org.sonar.api.server.ws.Request; | |||
@@ -25,7 +25,7 @@ import org.sonar.api.server.ws.RequestHandler; | |||
import org.sonar.api.server.ws.Response; | |||
import org.sonar.api.server.ws.WebService; | |||
import org.sonar.api.utils.text.JsonWriter; | |||
import org.sonar.server.rule2.RuleService; | |||
import org.sonar.server.rule.RuleService; | |||
import java.util.Set; | |||
@@ -17,7 +17,6 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
@ParametersAreNonnullByDefault | |||
package org.sonar.server.rule2.ws; | |||
@ParametersAreNonnullByDefault package org.sonar.server.rule.ws; | |||
import javax.annotation.ParametersAreNonnullByDefault; |
@@ -1,96 +0,0 @@ | |||
/* | |||
* SonarQube, open source software quality management tool. | |||
* Copyright (C) 2008-2014 SonarSource | |||
* mailto:contact AT sonarsource DOT com | |||
* | |||
* SonarQube is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU Lesser General Public | |||
* License as published by the Free Software Foundation; either | |||
* version 3 of the License, or (at your option) any later version. | |||
* | |||
* SonarQube is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
* Lesser General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Lesser General Public License | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2; | |||
import org.sonar.api.rule.RuleKey; | |||
import org.sonar.api.rule.RuleStatus; | |||
import org.sonar.api.server.debt.DebtRemediationFunction; | |||
import javax.annotation.CheckForNull; | |||
import java.util.Date; | |||
import java.util.List; | |||
/** | |||
* @since 4.4 | |||
*/ | |||
public interface Rule { | |||
RuleKey key(); | |||
String language(); | |||
String name(); | |||
String htmlDescription(); | |||
/** | |||
* Default severity when activated on a Quality profile | |||
* | |||
* @see org.sonar.api.rule.Severity | |||
*/ | |||
String severity(); | |||
/** | |||
* @see org.sonar.api.rule.RuleStatus | |||
*/ | |||
RuleStatus status(); | |||
boolean template(); | |||
/** | |||
* Tags that can be customized by administrators | |||
*/ | |||
List<String> tags(); | |||
/** | |||
* Read-only tags defined by plugins | |||
*/ | |||
List<String> systemTags(); | |||
List<RuleParam> params(); | |||
@CheckForNull | |||
String debtCharacteristicKey(); | |||
@CheckForNull | |||
String debtSubCharacteristicKey(); | |||
@CheckForNull | |||
DebtRemediationFunction debtRemediationFunction(); | |||
Date createdAt(); | |||
Date updatedAt(); | |||
@CheckForNull | |||
String internalKey(); | |||
@CheckForNull | |||
String markdownNote(); | |||
@CheckForNull | |||
String noteLogin(); | |||
@CheckForNull | |||
Date noteCreatedAt(); | |||
@CheckForNull | |||
Date noteUpdatedAt(); | |||
} |
@@ -1,23 +0,0 @@ | |||
/* | |||
* SonarQube, open source software quality management tool. | |||
* Copyright (C) 2008-2014 SonarSource | |||
* mailto:contact AT sonarsource DOT com | |||
* | |||
* SonarQube is free software; you can redistribute it and/or | |||
* modify it under the terms of the GNU Lesser General Public | |||
* License as published by the Free Software Foundation; either | |||
* version 3 of the License, or (at your option) any later version. | |||
* | |||
* SonarQube is distributed in the hope that it will be useful, | |||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
* Lesser General Public License for more details. | |||
* | |||
* You should have received a copy of the GNU Lesser General Public License | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
@ParametersAreNonnullByDefault | |||
package org.sonar.server.rule2.persistence; | |||
import javax.annotation.ParametersAreNonnullByDefault; |
@@ -38,7 +38,7 @@ import org.sonar.core.persistence.MyBatis; | |||
import org.sonar.core.rule.RuleDto; | |||
import org.sonar.core.technicaldebt.db.CharacteristicMapper; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.rule2.RegisterRules; | |||
import org.sonar.server.rule.RegisterRules; | |||
import javax.annotation.CheckForNull; | |||
import javax.annotation.Nullable; |
@@ -26,7 +26,7 @@ import org.sonar.core.persistence.MyBatis; | |||
import org.sonar.core.persistence.TestDatabase; | |||
import org.sonar.core.qualityprofile.db.QualityProfileDao; | |||
import org.sonar.server.qualityprofile.persistence.ActiveRuleDao; | |||
import org.sonar.server.rule2.persistence.RuleDao; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import static org.fest.assertions.Assertions.assertThat; | |||
@@ -48,7 +48,7 @@ import org.sonar.server.debt.DebtModelXMLExporter.DebtModel; | |||
import org.sonar.server.debt.DebtModelXMLExporter.RuleDebt; | |||
import org.sonar.server.rule.RuleDefinitionsLoader; | |||
import org.sonar.server.rule.RuleOperations; | |||
import org.sonar.server.rule2.persistence.RuleDao; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import org.sonar.server.user.MockUserSession; | |||
import java.io.Reader; |
@@ -44,7 +44,7 @@ import org.sonar.server.db.DbClient; | |||
import org.sonar.server.exceptions.BadRequestException; | |||
import org.sonar.server.exceptions.ForbiddenException; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
import org.sonar.server.rule2.persistence.RuleDao; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import org.sonar.server.user.MockUserSession; | |||
import java.util.Date; |
@@ -48,7 +48,7 @@ import org.sonar.jpa.session.DatabaseSessionFactory; | |||
import org.sonar.server.exceptions.BadRequestException; | |||
import org.sonar.server.exceptions.ForbiddenException; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
import org.sonar.server.rule2.persistence.RuleDao; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import org.sonar.server.user.MockUserSession; | |||
import org.sonar.server.user.UserSession; | |||
@@ -38,7 +38,7 @@ import org.sonar.core.rule.RuleDto; | |||
import org.sonar.core.rule.RuleParamDto; | |||
import org.sonar.server.qualityprofile.ActiveRule; | |||
import org.sonar.server.qualityprofile.persistence.ActiveRuleDao; | |||
import org.sonar.server.rule2.persistence.RuleDao; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import org.sonar.server.tester.ServerTester; | |||
import java.util.Collection; |
@@ -31,7 +31,7 @@ import org.sonar.core.qualityprofile.db.ActiveRuleDto; | |||
import org.sonar.core.qualityprofile.db.QualityProfileDao; | |||
import org.sonar.core.qualityprofile.db.QualityProfileDto; | |||
import org.sonar.core.rule.RuleDto; | |||
import org.sonar.server.rule2.persistence.RuleDao; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import static org.fest.assertions.Assertions.assertThat; | |||
@@ -76,4 +76,4 @@ public class ActiveRuleDaoTest extends AbstractDaoTestCase{ | |||
assertThat(result).isNotNull(); | |||
assertThat(result.getKey()).isNotNull(); | |||
} | |||
} | |||
} |
@@ -18,7 +18,7 @@ | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2; | |||
package org.sonar.server.rule; | |||
import org.junit.Test; | |||
import org.sonar.api.rule.Severity; | |||
@@ -29,10 +29,10 @@ import org.sonar.core.rule.RuleDto; | |||
import org.sonar.core.rule.RuleParamDto; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.platform.Platform; | |||
import org.sonar.server.rule2.index.RuleIndex; | |||
import org.sonar.server.rule2.index.RuleQuery; | |||
import org.sonar.server.rule2.index.RuleResult; | |||
import org.sonar.server.rule2.persistence.RuleDao; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import org.sonar.server.rule.index.RuleIndex; | |||
import org.sonar.server.rule.index.RuleQuery; | |||
import org.sonar.server.rule.index.RuleResult; | |||
import org.sonar.server.search.QueryOptions; | |||
import org.sonar.server.tester.ServerTester; | |||
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2; | |||
package org.sonar.server.rule; | |||
import com.google.common.collect.Sets; | |||
import org.junit.After; | |||
@@ -38,9 +38,7 @@ import org.sonar.core.technicaldebt.db.CharacteristicDao; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.qualityprofile.ProfilesManager; | |||
import org.sonar.server.qualityprofile.persistence.ActiveRuleDao; | |||
import org.sonar.server.rule.RuleDefinitionsLoader; | |||
import org.sonar.server.rule.RuleRepositories; | |||
import org.sonar.server.rule2.persistence.RuleDao; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import java.util.Date; | |||
import java.util.List; |
@@ -25,7 +25,6 @@ import org.junit.runner.RunWith; | |||
import org.mockito.Mock; | |||
import org.mockito.runners.MockitoJUnitRunner; | |||
import org.sonar.api.rule.RuleKey; | |||
import org.sonar.server.rule2.RuleService; | |||
import java.util.Map; | |||
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2; | |||
package org.sonar.server.rule; | |||
import com.google.common.collect.ImmutableSet; | |||
import com.google.common.collect.Iterables; | |||
@@ -37,8 +37,8 @@ import org.sonar.core.rule.RuleDto; | |||
import org.sonar.core.rule.RuleParamDto; | |||
import org.sonar.core.technicaldebt.db.CharacteristicDto; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.rule2.index.RuleIndex; | |||
import org.sonar.server.rule2.persistence.RuleDao; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import org.sonar.server.rule.index.RuleIndex; | |||
import org.sonar.server.tester.ServerTester; | |||
import java.util.List; | |||
@@ -252,7 +252,7 @@ public class RuleDataMediumTest { | |||
.setParentId(char1.getId()); | |||
db.debtCharacteristicDao().insert(char11, dbSession); | |||
RuleKey ruleKey = RuleKey.of("test","r1"); | |||
RuleKey ruleKey = RuleKey.of("test", "r1"); | |||
RuleDto ruleDto = newRuleDto(ruleKey) | |||
.setDefaultSubCharacteristicId(char11.getId()); | |||
dao.insert(ruleDto, dbSession); | |||
@@ -260,10 +260,10 @@ public class RuleDataMediumTest { | |||
// 0. assert chars in DB | |||
assertThat(db.debtCharacteristicDao().selectByKey("c1",dbSession)).isNotNull(); | |||
assertThat(db.debtCharacteristicDao().selectByKey("c1",dbSession).getParentId()).isNull(); | |||
assertThat(db.debtCharacteristicDao().selectByKey("c11",dbSession)).isNotNull(); | |||
assertThat(db.debtCharacteristicDao().selectByKey("c11",dbSession).getParentId()).isEqualTo(char1.getId()); | |||
assertThat(db.debtCharacteristicDao().selectByKey("c1", dbSession)).isNotNull(); | |||
assertThat(db.debtCharacteristicDao().selectByKey("c1", dbSession).getParentId()).isNull(); | |||
assertThat(db.debtCharacteristicDao().selectByKey("c11", dbSession)).isNotNull(); | |||
assertThat(db.debtCharacteristicDao().selectByKey("c11", dbSession).getParentId()).isEqualTo(char1.getId()); | |||
// 1. find char and subChar from rule | |||
Rule rule = index.getByKey(ruleKey); |
@@ -28,8 +28,6 @@ import org.mockito.Captor; | |||
import org.mockito.Mock; | |||
import org.mockito.runners.MockitoJUnitRunner; | |||
import org.sonar.api.rule.RuleKey; | |||
import org.sonar.api.utils.DateUtils; | |||
import org.sonar.api.utils.System2; | |||
import org.sonar.core.permission.GlobalPermissions; | |||
import org.sonar.core.persistence.DbSession; | |||
import org.sonar.core.rule.RuleDto; | |||
@@ -39,18 +37,14 @@ import org.sonar.server.db.DbClient; | |||
import org.sonar.server.exceptions.BadRequestException; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
import org.sonar.server.rule.RuleOperations.RuleChange; | |||
import org.sonar.server.rule2.persistence.RuleDao; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import org.sonar.server.user.MockUserSession; | |||
import org.sonar.server.user.UserSession; | |||
import java.util.Date; | |||
import static org.fest.assertions.Assertions.assertThat; | |||
import static org.mockito.Matchers.any; | |||
import static org.mockito.Matchers.eq; | |||
import static org.mockito.Mockito.never; | |||
import static org.mockito.Mockito.verify; | |||
import static org.mockito.Mockito.when; | |||
import static org.mockito.Mockito.*; | |||
@RunWith(MockitoJUnitRunner.class) | |||
public class RuleOperationsTest { |
@@ -75,7 +75,7 @@ public class RuleRepositoriesTest { | |||
new RulesDefinition() { | |||
@Override | |||
public void define(Context context) { | |||
context.createRepository("javascript", "js").setName("SonarQube").done(); | |||
context.createRepository("javascript", "js").setName("SonarQube").done(); | |||
} | |||
}.define(context); | |||
@@ -91,8 +91,8 @@ public class RuleRepositoriesTest { | |||
NewRepository repo = context.createRepository("findbugs", "java"); | |||
repo.setName("Findbugs"); | |||
repo.createRule("ABC") | |||
.setName("ABC") | |||
.setHtmlDescription("Description of ABC"); | |||
.setName("ABC") | |||
.setHtmlDescription("Description of ABC"); | |||
repo.done(); | |||
} | |||
} | |||
@@ -103,8 +103,8 @@ public class RuleRepositoriesTest { | |||
NewRepository repo = context.createRepository("squid", "java"); | |||
repo.setName("Squid"); | |||
repo.createRule("DEF") | |||
.setName("DEF") | |||
.setHtmlDescription("Description of DEF"); | |||
.setName("DEF") | |||
.setHtmlDescription("Description of DEF"); | |||
repo.done(); | |||
} | |||
} |
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2; | |||
package org.sonar.server.rule; | |||
import com.google.common.collect.ImmutableSet; | |||
import com.google.common.collect.Sets; | |||
@@ -40,9 +40,9 @@ import org.sonar.core.rule.RuleDto; | |||
import org.sonar.server.exceptions.ForbiddenException; | |||
import org.sonar.server.exceptions.NotFoundException; | |||
import org.sonar.server.qualityprofile.persistence.ActiveRuleDao; | |||
import org.sonar.server.rule2.index.RuleIndex; | |||
import org.sonar.server.rule2.index.RuleNormalizer; | |||
import org.sonar.server.rule2.persistence.RuleDao; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import org.sonar.server.rule.index.RuleIndex; | |||
import org.sonar.server.rule.index.RuleNormalizer; | |||
import org.sonar.server.tester.ServerTester; | |||
import org.sonar.server.user.MockUserSession; | |||
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2; | |||
package org.sonar.server.rule; | |||
import com.google.common.collect.Sets; | |||
import org.junit.Test; |
@@ -40,7 +40,7 @@ public class RulesDefinitionLoaderTest { | |||
RuleRepositories repositories = new RuleRepositories(); | |||
RulesDefinition.Context context = new RuleDefinitionsLoader(repositories, new RulesDefinition[]{ | |||
new FindbugsDefinitions(), new SquidDefinitions() | |||
new FindbugsDefinitions(), new SquidDefinitions() | |||
}).load(); | |||
assertThat(context.repositories()).hasSize(2); | |||
@@ -57,8 +57,8 @@ public class RulesDefinitionLoaderTest { | |||
NewRepository repo = context.createRepository("findbugs", "java"); | |||
repo.setName("Findbugs"); | |||
repo.createRule("ABC") | |||
.setName("ABC") | |||
.setHtmlDescription("Description of ABC"); | |||
.setName("ABC") | |||
.setHtmlDescription("Description of ABC"); | |||
repo.done(); | |||
} | |||
} | |||
@@ -69,8 +69,8 @@ public class RulesDefinitionLoaderTest { | |||
NewRepository repo = context.createRepository("squid", "java"); | |||
repo.setName("Squid"); | |||
repo.createRule("DEF") | |||
.setName("DEF") | |||
.setHtmlDescription("Description of DEF"); | |||
.setName("DEF") | |||
.setHtmlDescription("Description of DEF"); | |||
repo.done(); | |||
} | |||
} |
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2.persistence; | |||
package org.sonar.server.rule.db; | |||
import com.google.common.collect.ImmutableList; | |||
import com.google.common.collect.Iterables; |
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2.index; | |||
package org.sonar.server.rule.index; | |||
import com.google.common.collect.ImmutableSet; | |||
import com.google.common.collect.Iterables; | |||
@@ -38,8 +38,8 @@ import org.sonar.core.qualityprofile.db.QualityProfileDto; | |||
import org.sonar.core.rule.RuleDto; | |||
import org.sonar.core.technicaldebt.db.CharacteristicDto; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.rule2.Rule; | |||
import org.sonar.server.rule2.persistence.RuleDao; | |||
import org.sonar.server.rule.Rule; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import org.sonar.server.search.FacetValue; | |||
import org.sonar.server.search.QueryOptions; | |||
import org.sonar.server.search.Result; | |||
@@ -259,7 +259,7 @@ public class RuleIndexMediumTest { | |||
} | |||
@Test | |||
public void search_by_any_of_languages() throws InterruptedException { | |||
public void search_by_any_of_languages() throws InterruptedException { | |||
dao.insert(newRuleDto(RuleKey.of("java", "S001")).setLanguage("java"), dbSession); | |||
dao.insert(newRuleDto(RuleKey.of("javascript", "S002")).setLanguage("js"), dbSession); | |||
dbSession.commit(); | |||
@@ -341,7 +341,7 @@ public class RuleIndexMediumTest { | |||
assertThat(index.search(query, new QueryOptions()).getHits()).hasSize(1); | |||
// search by SubChar & Char | |||
query = new RuleQuery().setQueryText(char11.getKey()+" "+char1.getKey()); | |||
query = new RuleQuery().setQueryText(char11.getKey() + " " + char1.getKey()); | |||
assertThat(index.search(query, new QueryOptions()).getHits()).hasSize(1); | |||
} | |||
@@ -486,7 +486,7 @@ public class RuleIndexMediumTest { | |||
// 3. get all rules not active on profile | |||
index.search(new RuleQuery().setActivation(false).setQProfileKey(qualityProfileDto2.getKey().toString()), | |||
new QueryOptions()); | |||
new QueryOptions()); | |||
// TODO | |||
assertThat(result.getRules()).hasSize(1); | |||
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2.ws; | |||
package org.sonar.server.rule.ws; | |||
import com.google.common.collect.ImmutableList; | |||
import org.junit.Test; | |||
@@ -73,8 +73,8 @@ public class AppActionTest { | |||
MockUserSession.set().setGlobalPermissions(GlobalPermissions.QUALITY_PROFILE_ADMIN); | |||
QualityProfileDto profile1 = QualityProfileDto.createFor("Profile One","bf"); | |||
QualityProfileDto profile2 = QualityProfileDto.createFor("Profile Two","bf").setParent("Profile One"); | |||
QualityProfileDto profile1 = QualityProfileDto.createFor("Profile One", "bf"); | |||
QualityProfileDto profile2 = QualityProfileDto.createFor("Profile Two", "bf").setParent("Profile One"); | |||
when(qualityProfileService.findAll()).thenReturn(ImmutableList.of(profile1, profile2)); | |||
Language brainfsck = mock(Language.class); | |||
@@ -83,7 +83,7 @@ public class AppActionTest { | |||
Language whitespace = mock(Language.class); | |||
when(whitespace.getKey()).thenReturn("ws"); | |||
when(whitespace.getName()).thenReturn("Whitespace"); | |||
when(languages.all()).thenReturn(new Language[] { brainfsck, whitespace }); | |||
when(languages.all()).thenReturn(new Language[]{brainfsck, whitespace}); | |||
RuleRepositories.Repository repo1 = mock(RuleRepositories.Repository.class); | |||
when(repo1.key()).thenReturn("squid"); |
@@ -17,12 +17,12 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2.ws; | |||
package org.sonar.server.rule.ws; | |||
import org.junit.Test; | |||
import org.sonar.api.resources.Languages; | |||
import org.sonar.api.server.ws.internal.SimpleGetRequest; | |||
import org.sonar.server.rule2.index.RuleNormalizer; | |||
import org.sonar.server.rule.index.RuleNormalizer; | |||
import org.sonar.server.search.QueryOptions; | |||
import org.sonar.server.search.ws.SearchOptions; | |||
import org.sonar.server.text.MacroInterpreter; |
@@ -17,7 +17,7 @@ | |||
* along with this program; if not, write to the Free Software Foundation, | |||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |||
*/ | |||
package org.sonar.server.rule2.ws; | |||
package org.sonar.server.rule.ws; | |||
import com.google.common.collect.ImmutableSet; | |||
import org.junit.After; | |||
@@ -39,8 +39,8 @@ import org.sonar.core.qualityprofile.db.QualityProfileDto; | |||
import org.sonar.core.rule.RuleDto; | |||
import org.sonar.core.rule.RuleParamDto; | |||
import org.sonar.server.qualityprofile.persistence.ActiveRuleDao; | |||
import org.sonar.server.rule2.index.RuleNormalizer; | |||
import org.sonar.server.rule2.persistence.RuleDao; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import org.sonar.server.rule.index.RuleNormalizer; | |||
import org.sonar.server.search.ws.SearchOptions; | |||
import org.sonar.server.tester.ServerTester; | |||
import org.sonar.server.user.MockUserSession; |
@@ -21,7 +21,7 @@ package org.sonar.server.search; | |||
import org.junit.ClassRule; | |||
import org.junit.Test; | |||
import org.sonar.server.rule2.index.RuleIndex; | |||
import org.sonar.server.rule.index.RuleIndex; | |||
import org.sonar.server.tester.ServerTester; | |||
import static org.fest.assertions.Assertions.assertThat; | |||
@@ -38,4 +38,4 @@ public class IndexClientMediumTest{ | |||
assertThat(tester.get(RuleIndex.class)) | |||
.isEqualTo(indexClient.get(RuleIndex.class)); | |||
} | |||
} | |||
} |
@@ -31,7 +31,7 @@ import org.sonar.api.utils.System2; | |||
import org.sonar.core.persistence.TestDatabase; | |||
import org.sonar.core.rule.RuleDto; | |||
import org.sonar.server.db.DbClient; | |||
import org.sonar.server.rule2.persistence.RuleDao; | |||
import org.sonar.server.rule.db.RuleDao; | |||
import static org.fest.assertions.Assertions.assertThat; | |||
import static org.mockito.Mockito.when; |