Browse Source

SONAR-5007 move package org.sonar.server.rule2 to rule

tags/4.4-RC1
Simon Brandhof 10 years ago
parent
commit
ae91b78348
96 changed files with 251 additions and 792 deletions
  1. 4
    187
      sonar-core/src/main/java/org/sonar/core/rule/RuleDao.java
  2. 0
    4
      sonar-core/src/main/java/org/sonar/core/rule/RuleParamDto.java
  3. 0
    292
      sonar-core/src/test/java/org/sonar/core/rule/RuleDaoTest.java
  4. 1
    1
      sonar-server/src/main/java/org/sonar/server/db/DbClient.java
  5. 15
    14
      sonar-server/src/main/java/org/sonar/server/platform/ServerComponents.java
  6. 1
    1
      sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileActiveRuleOperations.java
  7. 1
    1
      sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileBackup.java
  8. 1
    1
      sonar-server/src/main/java/org/sonar/server/qualityprofile/persistence/ActiveRuleDao.java
  9. 1
    1
      sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/BulkRuleActivationActions.java
  10. 1
    4
      sonar-server/src/main/java/org/sonar/server/rule/DeprecatedRulesDefinition.java
  11. 1
    2
      sonar-server/src/main/java/org/sonar/server/rule/RegisterRules.java
  12. 10
    6
      sonar-server/src/main/java/org/sonar/server/rule/RubyRuleService.java
  13. 73
    3
      sonar-server/src/main/java/org/sonar/server/rule/Rule.java
  14. 2
    1
      sonar-server/src/main/java/org/sonar/server/rule/RuleDefinitionsLoader.java
  15. 1
    1
      sonar-server/src/main/java/org/sonar/server/rule/RuleParam.java
  16. 1
    2
      sonar-server/src/main/java/org/sonar/server/rule/RuleRepositories.java
  17. 6
    6
      sonar-server/src/main/java/org/sonar/server/rule/RuleService.java
  18. 2
    2
      sonar-server/src/main/java/org/sonar/server/rule/RuleTagHelper.java
  19. 1
    1
      sonar-server/src/main/java/org/sonar/server/rule/db/RuleDao.java
  20. 1
    2
      sonar-server/src/main/java/org/sonar/server/rule/db/package-info.java
  21. 28
    29
      sonar-server/src/main/java/org/sonar/server/rule/index/RuleDoc.java
  22. 2
    2
      sonar-server/src/main/java/org/sonar/server/rule/index/RuleIndex.java
  23. 7
    7
      sonar-server/src/main/java/org/sonar/server/rule/index/RuleNormalizer.java
  24. 2
    2
      sonar-server/src/main/java/org/sonar/server/rule/index/RuleQuery.java
  25. 2
    2
      sonar-server/src/main/java/org/sonar/server/rule/index/RuleResult.java
  26. 1
    2
      sonar-server/src/main/java/org/sonar/server/rule/index/package-info.java
  27. 1
    2
      sonar-server/src/main/java/org/sonar/server/rule/package-info.java
  28. 3
    3
      sonar-server/src/main/java/org/sonar/server/rule/ws/ActiveRuleCompleter.java
  29. 1
    1
      sonar-server/src/main/java/org/sonar/server/rule/ws/AppAction.java
  30. 4
    4
      sonar-server/src/main/java/org/sonar/server/rule/ws/RuleMapping.java
  31. 1
    1
      sonar-server/src/main/java/org/sonar/server/rule/ws/RulesWebService.java
  32. 7
    7
      sonar-server/src/main/java/org/sonar/server/rule/ws/SearchAction.java
  33. 2
    2
      sonar-server/src/main/java/org/sonar/server/rule/ws/SetNoteAction.java
  34. 2
    2
      sonar-server/src/main/java/org/sonar/server/rule/ws/SetTagsAction.java
  35. 3
    3
      sonar-server/src/main/java/org/sonar/server/rule/ws/ShowAction.java
  36. 2
    2
      sonar-server/src/main/java/org/sonar/server/rule/ws/TagsAction.java
  37. 1
    2
      sonar-server/src/main/java/org/sonar/server/rule/ws/package-info.java
  38. 0
    96
      sonar-server/src/main/java/org/sonar/server/rule2/Rule.java
  39. 0
    23
      sonar-server/src/main/java/org/sonar/server/rule2/persistence/package-info.java
  40. 1
    1
      sonar-server/src/main/java/org/sonar/server/startup/CopyRequirementsFromCharacteristicsToRules.java
  41. 0
    0
      sonar-server/src/main/resources/org/sonar/server/rule/ws/example-search.json
  42. 0
    0
      sonar-server/src/main/resources/org/sonar/server/rule/ws/example-show.json
  43. 0
    0
      sonar-server/src/main/resources/org/sonar/server/rule/ws/example-tags.json
  44. 1
    1
      sonar-server/src/test/java/org/sonar/server/db/DbClientTest.java
  45. 1
    1
      sonar-server/src/test/java/org/sonar/server/debt/DebtModelBackupTest.java
  46. 1
    1
      sonar-server/src/test/java/org/sonar/server/debt/DebtModelOperationsTest.java
  47. 1
    1
      sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfileBackupTest.java
  48. 1
    1
      sonar-server/src/test/java/org/sonar/server/qualityprofile/index/ActiveRuleIndexMediumTest.java
  49. 2
    2
      sonar-server/src/test/java/org/sonar/server/qualityprofile/persistence/ActiveRuleDaoTest.java
  50. 5
    5
      sonar-server/src/test/java/org/sonar/server/rule/RegisterRulesMediumTest.java
  51. 2
    4
      sonar-server/src/test/java/org/sonar/server/rule/RegisterRulesTest.java
  52. 0
    1
      sonar-server/src/test/java/org/sonar/server/rule/RubyRuleServiceTest.java
  53. 8
    8
      sonar-server/src/test/java/org/sonar/server/rule/RuleDataMediumTest.java
  54. 2
    8
      sonar-server/src/test/java/org/sonar/server/rule/RuleOperationsTest.java
  55. 5
    5
      sonar-server/src/test/java/org/sonar/server/rule/RuleRepositoriesTest.java
  56. 4
    4
      sonar-server/src/test/java/org/sonar/server/rule/RuleServiceMediumTest.java
  57. 1
    1
      sonar-server/src/test/java/org/sonar/server/rule/RuleTagHelperTest.java
  58. 5
    5
      sonar-server/src/test/java/org/sonar/server/rule/RulesDefinitionLoaderTest.java
  59. 1
    1
      sonar-server/src/test/java/org/sonar/server/rule/db/RuleDaoTest.java
  60. 6
    6
      sonar-server/src/test/java/org/sonar/server/rule/index/RuleIndexMediumTest.java
  61. 4
    4
      sonar-server/src/test/java/org/sonar/server/rule/ws/AppActionTest.java
  62. 2
    2
      sonar-server/src/test/java/org/sonar/server/rule/ws/RuleMappingTest.java
  63. 3
    3
      sonar-server/src/test/java/org/sonar/server/rule/ws/RulesWebServiceTest.java
  64. 2
    2
      sonar-server/src/test/java/org/sonar/server/search/IndexClientMediumTest.java
  65. 1
    1
      sonar-server/src/test/java/org/sonar/server/startup/CopyRequirementsFromCharacteristicsToRulesTest.java
  66. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/empty.xml
  67. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/insert-result.xml
  68. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/insert_all-result.xml
  69. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/insert_parameter-result.xml
  70. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/insert_parameter.xml
  71. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/selectAll.xml
  72. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/selectById.xml
  73. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/selectNonManual.xml
  74. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/selectParameters.xml
  75. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/select_by_name.xml
  76. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/select_by_rule_key.xml
  77. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/select_by_sub_characteristic_id.xml
  78. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/select_enables_and_non_manual.xml
  79. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/select_parameters_by_rule_id.xml
  80. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/select_parameters_by_rule_ids.xml
  81. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/update-result.xml
  82. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/update.xml
  83. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/update_parameter-result.xml
  84. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/update_parameter.xml
  85. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/ws/AppActionTest/app.json
  86. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/ws/RulesWebServiceTest/filter_by_tags.json
  87. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/ws/RulesWebServiceTest/get_note_as_markdown_and_html.json
  88. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/ws/RulesWebServiceTest/get_tags.json
  89. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/ws/RulesWebServiceTest/search_2_rules.json
  90. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/ws/RulesWebServiceTest/search_active_rules.json
  91. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/ws/RulesWebServiceTest/search_active_rules_params.json
  92. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/ws/RulesWebServiceTest/search_debt_rule.json
  93. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/ws/RulesWebServiceTest/search_no_rules.json
  94. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/ws/RulesWebServiceTest/search_profile_active_rules.json
  95. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/ws/RulesWebServiceTest/show_rule_active.json
  96. 0
    0
      sonar-server/src/test/resources/org/sonar/server/rule/ws/RulesWebServiceTest/show_rule_no_active.json

+ 4
- 187
sonar-core/src/main/java/org/sonar/core/rule/RuleDao.java View File

@@ -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);
}

+ 0
- 4
sonar-core/src/main/java/org/sonar/core/rule/RuleParamDto.java View File

@@ -32,10 +32,6 @@ public class RuleParamDto {
private String defaultValue;
private String description;

public RuleParamDto() {

}

public Integer getId() {
return id;
}

+ 0
- 292
sonar-core/src/test/java/org/sonar/core/rule/RuleDaoTest.java View File

@@ -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();
}
}));
}
}

+ 1
- 1
sonar-server/src/main/java/org/sonar/server/db/DbClient.java View File

@@ -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;


+ 15
- 14
sonar-server/src/main/java/org/sonar/server/platform/ServerComponents.java View File

@@ -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);

+ 1
- 1
sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileActiveRuleOperations.java View File

@@ -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;

+ 1
- 1
sonar-server/src/main/java/org/sonar/server/qualityprofile/QProfileBackup.java View File

@@ -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;

+ 1
- 1
sonar-server/src/main/java/org/sonar/server/qualityprofile/persistence/ActiveRuleDao.java View File

@@ -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;

+ 1
- 1
sonar-server/src/main/java/org/sonar/server/qualityprofile/ws/BulkRuleActivationActions.java View File

@@ -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 {


+ 1
- 4
sonar-server/src/main/java/org/sonar/server/rule/DeprecatedRulesDefinition.java View File

@@ -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 {


sonar-server/src/main/java/org/sonar/server/rule2/RegisterRules.java → sonar-server/src/main/java/org/sonar/server/rule/RegisterRules.java View File

@@ -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;

+ 10
- 6
sonar-server/src/main/java/org/sonar/server/rule/RubyRuleService.java View File

@@ -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")))

+ 73
- 3
sonar-server/src/main/java/org/sonar/server/rule/Rule.java View File

@@ -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();
}

+ 2
- 1
sonar-server/src/main/java/org/sonar/server/rule/RuleDefinitionsLoader.java View File

@@ -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;

sonar-server/src/main/java/org/sonar/server/rule2/RuleParam.java → sonar-server/src/main/java/org/sonar/server/rule/RuleParam.java View File

@@ -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;


+ 1
- 2
sonar-server/src/main/java/org/sonar/server/rule/RuleRepositories.java View File

@@ -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

sonar-server/src/main/java/org/sonar/server/rule2/RuleService.java → sonar-server/src/main/java/org/sonar/server/rule/RuleService.java View File

@@ -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);
}


sonar-server/src/main/java/org/sonar/server/rule2/RuleTagHelper.java → sonar-server/src/main/java/org/sonar/server/rule/RuleTagHelper.java View File

@@ -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);
}
}

sonar-server/src/main/java/org/sonar/server/rule2/persistence/RuleDao.java → sonar-server/src/main/java/org/sonar/server/rule/db/RuleDao.java View File

@@ -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;

sonar-server/src/main/java/org/sonar/server/rule2/package-info.java → sonar-server/src/main/java/org/sonar/server/rule/db/package-info.java View File

@@ -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;

sonar-server/src/main/java/org/sonar/server/rule2/index/RuleDoc.java → sonar-server/src/main/java/org/sonar/server/rule/index/RuleDoc.java View File

@@ -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

sonar-server/src/main/java/org/sonar/server/rule2/index/RuleIndex.java → sonar-server/src/main/java/org/sonar/server/rule/index/RuleIndex.java View File

@@ -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;

sonar-server/src/main/java/org/sonar/server/rule2/index/RuleNormalizer.java → sonar-server/src/main/java/org/sonar/server/rule/index/RuleNormalizer.java View File

@@ -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;

sonar-server/src/main/java/org/sonar/server/rule2/index/RuleQuery.java → sonar-server/src/main/java/org/sonar/server/rule/index/RuleQuery.java View File

@@ -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() {
}

sonar-server/src/main/java/org/sonar/server/rule2/index/RuleResult.java → sonar-server/src/main/java/org/sonar/server/rule/index/RuleResult.java View File

@@ -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;

sonar-server/src/main/java/org/sonar/server/rule2/index/package-info.java → sonar-server/src/main/java/org/sonar/server/rule/index/package-info.java View File

@@ -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;

+ 1
- 2
sonar-server/src/main/java/org/sonar/server/rule/package-info.java View File

@@ -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;

sonar-server/src/main/java/org/sonar/server/rule2/ws/ActiveRuleCompleter.java → sonar-server/src/main/java/org/sonar/server/rule/ws/ActiveRuleCompleter.java View File

@@ -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;

sonar-server/src/main/java/org/sonar/server/rule2/ws/AppAction.java → sonar-server/src/main/java/org/sonar/server/rule/ws/AppAction.java View File

@@ -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;

sonar-server/src/main/java/org/sonar/server/rule2/ws/RuleMapping.java → sonar-server/src/main/java/org/sonar/server/rule/ws/RuleMapping.java View File

@@ -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;


sonar-server/src/main/java/org/sonar/server/rule2/ws/RulesWebService.java → sonar-server/src/main/java/org/sonar/server/rule/ws/RulesWebService.java View File

@@ -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;


sonar-server/src/main/java/org/sonar/server/rule2/ws/SearchAction.java → sonar-server/src/main/java/org/sonar/server/rule/ws/SearchAction.java View File

@@ -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;

sonar-server/src/main/java/org/sonar/server/rule2/ws/SetNoteAction.java → sonar-server/src/main/java/org/sonar/server/rule/ws/SetNoteAction.java View File

@@ -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 {


sonar-server/src/main/java/org/sonar/server/rule2/ws/SetTagsAction.java → sonar-server/src/main/java/org/sonar/server/rule/ws/SetTagsAction.java View File

@@ -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;


sonar-server/src/main/java/org/sonar/server/rule2/ws/ShowAction.java → sonar-server/src/main/java/org/sonar/server/rule/ws/ShowAction.java View File

@@ -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;

/**

sonar-server/src/main/java/org/sonar/server/rule2/ws/TagsAction.java → sonar-server/src/main/java/org/sonar/server/rule/ws/TagsAction.java View File

@@ -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;


sonar-server/src/main/java/org/sonar/server/rule2/ws/package-info.java → sonar-server/src/main/java/org/sonar/server/rule/ws/package-info.java View File

@@ -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;

+ 0
- 96
sonar-server/src/main/java/org/sonar/server/rule2/Rule.java View File

@@ -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();
}

+ 0
- 23
sonar-server/src/main/java/org/sonar/server/rule2/persistence/package-info.java View File

@@ -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;

+ 1
- 1
sonar-server/src/main/java/org/sonar/server/startup/CopyRequirementsFromCharacteristicsToRules.java View File

@@ -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;

sonar-server/src/main/resources/org/sonar/server/rule2/ws/example-search.json → sonar-server/src/main/resources/org/sonar/server/rule/ws/example-search.json View File


sonar-server/src/main/resources/org/sonar/server/rule2/ws/example-show.json → sonar-server/src/main/resources/org/sonar/server/rule/ws/example-show.json View File


sonar-server/src/main/resources/org/sonar/server/rule2/ws/example-tags.json → sonar-server/src/main/resources/org/sonar/server/rule/ws/example-tags.json View File


+ 1
- 1
sonar-server/src/test/java/org/sonar/server/db/DbClientTest.java View File

@@ -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;


+ 1
- 1
sonar-server/src/test/java/org/sonar/server/debt/DebtModelBackupTest.java View File

@@ -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;

+ 1
- 1
sonar-server/src/test/java/org/sonar/server/debt/DebtModelOperationsTest.java View File

@@ -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;

+ 1
- 1
sonar-server/src/test/java/org/sonar/server/qualityprofile/QProfileBackupTest.java View File

@@ -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;


+ 1
- 1
sonar-server/src/test/java/org/sonar/server/qualityprofile/index/ActiveRuleIndexMediumTest.java View File

@@ -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;

+ 2
- 2
sonar-server/src/test/java/org/sonar/server/qualityprofile/persistence/ActiveRuleDaoTest.java View File

@@ -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();
}
}
}

sonar-server/src/test/java/org/sonar/server/rule2/RegisterRulesMediumTest.java → sonar-server/src/test/java/org/sonar/server/rule/RegisterRulesMediumTest.java View File

@@ -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;


sonar-server/src/test/java/org/sonar/server/rule2/RegisterRulesTest.java → sonar-server/src/test/java/org/sonar/server/rule/RegisterRulesTest.java View File

@@ -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;

+ 0
- 1
sonar-server/src/test/java/org/sonar/server/rule/RubyRuleServiceTest.java View File

@@ -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;


sonar-server/src/test/java/org/sonar/server/rule2/RuleDataMediumTest.java → sonar-server/src/test/java/org/sonar/server/rule/RuleDataMediumTest.java View File

@@ -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);

+ 2
- 8
sonar-server/src/test/java/org/sonar/server/rule/RuleOperationsTest.java View File

@@ -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 {

+ 5
- 5
sonar-server/src/test/java/org/sonar/server/rule/RuleRepositoriesTest.java View File

@@ -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();
}
}

sonar-server/src/test/java/org/sonar/server/rule2/RuleServiceMediumTest.java → sonar-server/src/test/java/org/sonar/server/rule/RuleServiceMediumTest.java View File

@@ -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;


sonar-server/src/test/java/org/sonar/server/rule2/RuleTagHelperTest.java → sonar-server/src/test/java/org/sonar/server/rule/RuleTagHelperTest.java View File

@@ -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;

+ 5
- 5
sonar-server/src/test/java/org/sonar/server/rule/RulesDefinitionLoaderTest.java View File

@@ -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();
}
}

sonar-server/src/test/java/org/sonar/server/rule2/persistence/RuleDaoTest.java → sonar-server/src/test/java/org/sonar/server/rule/db/RuleDaoTest.java View File

@@ -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;

sonar-server/src/test/java/org/sonar/server/rule2/index/RuleIndexMediumTest.java → sonar-server/src/test/java/org/sonar/server/rule/index/RuleIndexMediumTest.java View File

@@ -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);


sonar-server/src/test/java/org/sonar/server/rule2/ws/AppActionTest.java → sonar-server/src/test/java/org/sonar/server/rule/ws/AppActionTest.java View File

@@ -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");

sonar-server/src/test/java/org/sonar/server/rule2/ws/RuleMappingTest.java → sonar-server/src/test/java/org/sonar/server/rule/ws/RuleMappingTest.java View File

@@ -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;

sonar-server/src/test/java/org/sonar/server/rule2/ws/RulesWebServiceTest.java → sonar-server/src/test/java/org/sonar/server/rule/ws/RulesWebServiceTest.java View File

@@ -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;

+ 2
- 2
sonar-server/src/test/java/org/sonar/server/search/IndexClientMediumTest.java View File

@@ -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));
}
}
}

+ 1
- 1
sonar-server/src/test/java/org/sonar/server/startup/CopyRequirementsFromCharacteristicsToRulesTest.java View File

@@ -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;

sonar-server/src/test/resources/org/sonar/server/rule2/persistence/RuleDaoTest/empty.xml → sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/empty.xml View File


sonar-server/src/test/resources/org/sonar/server/rule2/persistence/RuleDaoTest/insert-result.xml → sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/insert-result.xml View File


sonar-server/src/test/resources/org/sonar/server/rule2/persistence/RuleDaoTest/insert_all-result.xml → sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/insert_all-result.xml View File


sonar-server/src/test/resources/org/sonar/server/rule2/persistence/RuleDaoTest/insert_parameter-result.xml → sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/insert_parameter-result.xml View File


sonar-server/src/test/resources/org/sonar/server/rule2/persistence/RuleDaoTest/insert_parameter.xml → sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/insert_parameter.xml View File


sonar-server/src/test/resources/org/sonar/server/rule2/persistence/RuleDaoTest/selectAll.xml → sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/selectAll.xml View File


sonar-server/src/test/resources/org/sonar/server/rule2/persistence/RuleDaoTest/selectById.xml → sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/selectById.xml View File


sonar-server/src/test/resources/org/sonar/server/rule2/persistence/RuleDaoTest/selectNonManual.xml → sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/selectNonManual.xml View File


sonar-server/src/test/resources/org/sonar/server/rule2/persistence/RuleDaoTest/selectParameters.xml → sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/selectParameters.xml View File


sonar-server/src/test/resources/org/sonar/server/rule2/persistence/RuleDaoTest/select_by_name.xml → sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/select_by_name.xml View File


sonar-server/src/test/resources/org/sonar/server/rule2/persistence/RuleDaoTest/select_by_rule_key.xml → sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/select_by_rule_key.xml View File


sonar-server/src/test/resources/org/sonar/server/rule2/persistence/RuleDaoTest/select_by_sub_characteristic_id.xml → sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/select_by_sub_characteristic_id.xml View File


sonar-server/src/test/resources/org/sonar/server/rule2/persistence/RuleDaoTest/select_enables_and_non_manual.xml → sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/select_enables_and_non_manual.xml View File


sonar-server/src/test/resources/org/sonar/server/rule2/persistence/RuleDaoTest/select_parameters_by_rule_id.xml → sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/select_parameters_by_rule_id.xml View File


sonar-server/src/test/resources/org/sonar/server/rule2/persistence/RuleDaoTest/select_parameters_by_rule_ids.xml → sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/select_parameters_by_rule_ids.xml View File


sonar-server/src/test/resources/org/sonar/server/rule2/persistence/RuleDaoTest/update-result.xml → sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/update-result.xml View File


sonar-server/src/test/resources/org/sonar/server/rule2/persistence/RuleDaoTest/update.xml → sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/update.xml View File


sonar-server/src/test/resources/org/sonar/server/rule2/persistence/RuleDaoTest/update_parameter-result.xml → sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/update_parameter-result.xml View File


sonar-server/src/test/resources/org/sonar/server/rule2/persistence/RuleDaoTest/update_parameter.xml → sonar-server/src/test/resources/org/sonar/server/rule/db/RuleDaoTest/update_parameter.xml View File


sonar-server/src/test/resources/org/sonar/server/rule2/ws/AppActionTest/app.json → sonar-server/src/test/resources/org/sonar/server/rule/ws/AppActionTest/app.json View File


sonar-server/src/test/resources/org/sonar/server/rule2/ws/RulesWebServiceTest/filter_by_tags.json → sonar-server/src/test/resources/org/sonar/server/rule/ws/RulesWebServiceTest/filter_by_tags.json View File


sonar-server/src/test/resources/org/sonar/server/rule2/ws/RulesWebServiceTest/get_note_as_markdown_and_html.json → sonar-server/src/test/resources/org/sonar/server/rule/ws/RulesWebServiceTest/get_note_as_markdown_and_html.json View File


sonar-server/src/test/resources/org/sonar/server/rule2/ws/RulesWebServiceTest/get_tags.json → sonar-server/src/test/resources/org/sonar/server/rule/ws/RulesWebServiceTest/get_tags.json View File


sonar-server/src/test/resources/org/sonar/server/rule2/ws/RulesWebServiceTest/search_2_rules.json → sonar-server/src/test/resources/org/sonar/server/rule/ws/RulesWebServiceTest/search_2_rules.json View File


sonar-server/src/test/resources/org/sonar/server/rule2/ws/RulesWebServiceTest/search_active_rules.json → sonar-server/src/test/resources/org/sonar/server/rule/ws/RulesWebServiceTest/search_active_rules.json View File


sonar-server/src/test/resources/org/sonar/server/rule2/ws/RulesWebServiceTest/search_active_rules_params.json → sonar-server/src/test/resources/org/sonar/server/rule/ws/RulesWebServiceTest/search_active_rules_params.json View File


sonar-server/src/test/resources/org/sonar/server/rule2/ws/RulesWebServiceTest/search_debt_rule.json → sonar-server/src/test/resources/org/sonar/server/rule/ws/RulesWebServiceTest/search_debt_rule.json View File


sonar-server/src/test/resources/org/sonar/server/rule2/ws/RulesWebServiceTest/search_no_rules.json → sonar-server/src/test/resources/org/sonar/server/rule/ws/RulesWebServiceTest/search_no_rules.json View File


sonar-server/src/test/resources/org/sonar/server/rule2/ws/RulesWebServiceTest/search_profile_active_rules.json → sonar-server/src/test/resources/org/sonar/server/rule/ws/RulesWebServiceTest/search_profile_active_rules.json View File


sonar-server/src/test/resources/org/sonar/server/rule2/ws/RulesWebServiceTest/show_rule_active.json → sonar-server/src/test/resources/org/sonar/server/rule/ws/RulesWebServiceTest/show_rule_active.json View File


sonar-server/src/test/resources/org/sonar/server/rule2/ws/RulesWebServiceTest/show_rule_no_active.json → sonar-server/src/test/resources/org/sonar/server/rule/ws/RulesWebServiceTest/show_rule_no_active.json View File


Loading…
Cancel
Save