aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre <pierre.guillot@sonarsource.com>2022-07-08 16:28:19 +0200
committersonartech <sonartech@sonarsource.com>2022-07-12 14:30:04 +0000
commit201d5326c5e4471a1a77243cd2bd4ac71c9d4ada (patch)
tree59f2e3c3d101f2c2eec3c09eb55c3fd885b071f8
parentb7337e90fe3a896367ec2f4dda1684e0a2b177a8 (diff)
downloadsonarqube-201d5326c5e4471a1a77243cd2bd4ac71c9d4ada.tar.gz
sonarqube-201d5326c5e4471a1a77243cd2bd4ac71c9d4ada.zip
SONAR-16598 Rename generic concept to education principles
-rw-r--r--build.gradle2
-rw-r--r--plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java2
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDto.java10
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/rule/RuleMapper.xml8
-rw-r--r--server/sonar-db-dao/src/schema/schema-sq.ddl2
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/rule/RuleDaoTest.java2
-rw-r--r--server/sonar-db-dao/src/testFixtures/java/org/sonar/db/rule/RuleTesting.java2
-rw-r--r--server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v96/AddEducationPrinciplesColumnToRuleTable.java (renamed from server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v96/AddGenericConceptsColumnToRuleTable.java)10
-rw-r--r--server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v96/DbVersion96.java2
-rw-r--r--server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v96/AddEducationPrinciplesColumnToRuleTableTest.java (renamed from server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v96/AddGenericConceptsColumnToRuleTableTest.java)26
-rw-r--r--server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v96/AddEducationPrinciplesColumnToRuleTableTest/schema.sql (renamed from server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v96/AddGenericConceptsColumnToRuleTableTest/schema.sql)0
-rw-r--r--server/sonar-webserver-core/src/main/java/org/sonar/server/rule/RegisterRules.java14
-rw-r--r--server/sonar-webserver-core/src/test/java/org/sonar/server/rule/RegisterRulesTest.java10
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RuleMapper.java10
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RulesWsParameters.java4
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/SearchAction.java2
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/ShowAction.java2
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/user/ws/CurrentAction.java4
-rw-r--r--server/sonar-webserver-webapi/src/main/java/org/sonar/server/user/ws/DismissNoticeAction.java6
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/SearchActionTest.java4
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/ShowActionTest.java2
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/CurrentActionTest.java10
-rw-r--r--server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/DismissNoticeActionTest.java14
-rw-r--r--sonar-ws/src/main/protobuf/ws-rules.proto6
24 files changed, 77 insertions, 77 deletions
diff --git a/build.gradle b/build.gradle
index eb7be4f63b3..9339b64e526 100644
--- a/build.gradle
+++ b/build.gradle
@@ -178,7 +178,7 @@ subprojects {
dependency 'org.sonarsource.kotlin:sonar-kotlin-plugin:2.9.0.1147'
dependency 'org.sonarsource.slang:sonar-ruby-plugin:1.9.0.3429'
dependency 'org.sonarsource.slang:sonar-scala-plugin:1.9.0.3429'
- dependency 'org.sonarsource.api.plugin:sonar-plugin-api:9.8.0.196'
+ dependency 'org.sonarsource.api.plugin:sonar-plugin-api:9.8.0.203'
dependency 'org.sonarsource.xml:sonar-xml-plugin:2.5.0.3376'
dependency 'org.sonarsource.iac:sonar-iac-plugin:1.7.0.2012'
dependency 'org.sonarsource.text:sonar-text-plugin:1.1.0.282'
diff --git a/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java b/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java
index 17860487d38..24547887632 100644
--- a/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java
+++ b/plugins/sonar-xoo-plugin/src/main/java/org/sonar/xoo/rule/XooRulesDefinition.java
@@ -120,7 +120,7 @@ public class XooRulesDefinition implements RulesDefinition {
oneIssuePerLine
.setDebtRemediationFunction(oneIssuePerLine.debtRemediationFunctions().linear("1min"))
.setGapDescription("It takes about 1 minute to an experienced software craftsman to remove a line of code")
- .addGenericConceptKeys("defense_in_depth", "least_trust_principle");
+ .addEducationPrincipleKeys("defense_in_depth", "least_trust_principle");
NewRule oneQuickFixPerLine = repo.createRule(OneQuickFixPerLineSensor.RULE_KEY).setName("One Quick Fix Per Line")
.setTags("line");
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDto.java b/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDto.java
index c3809c2ded6..79446dc84b6 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDto.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/rule/RuleDto.java
@@ -60,7 +60,7 @@ public class RuleDto {
private String ruleKey = null;
private final Set<RuleDescriptionSectionDto> ruleDescriptionSectionDtos = new HashSet<>();
- private String genericConceptsField = null;
+ private String educationPrinciplesField = null;
/**
* Description format can be null on external rule, otherwise it should never be null
@@ -237,12 +237,12 @@ public class RuleDto {
return Objects.equals(contextKey, otherContextKey);
}
- public Set<String> getGenericConcepts() {
- return deserializeStringSet(genericConceptsField);
+ public Set<String> getEducationPrinciples() {
+ return deserializeStringSet(educationPrinciplesField);
}
- public RuleDto setGenericConcepts(Set<String> genericConcepts){
- this.genericConceptsField = serializeStringSet(genericConcepts);
+ public RuleDto setEducationPrinciples(Set<String> educationPrinciples){
+ this.educationPrinciplesField = serializeStringSet(educationPrinciples);
return this;
}
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/rule/RuleMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/rule/RuleMapper.xml
index 4ccbfe93651..fcd120cd8b5 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/rule/RuleMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/rule/RuleMapper.xml
@@ -39,7 +39,7 @@
r.ad_hoc_description as "adHocDescription",
r.ad_hoc_severity as "adHocSeverity",
r.ad_hoc_type as "adHocType",
- r.generic_concepts as "genericConceptsField"
+ r.education_principles as "educationPrinciplesField"
</sql>
<sql id="leftOuterJoinRulesDescriptionSections">
@@ -273,7 +273,7 @@
ad_hoc_description,
ad_hoc_severity,
ad_hoc_type,
- generic_concepts,
+ education_principles,
created_at,
updated_at
)
@@ -312,7 +312,7 @@
#{adHocDescription,jdbcType=CLOB},
#{adHocSeverity,jdbcType=VARCHAR},
#{adHocType,jdbcType=TINYINT},
- #{genericConceptsField,jdbcType=VARCHAR},
+ #{educationPrinciplesField,jdbcType=VARCHAR},
#{createdAt,jdbcType=BIGINT},
#{updatedAt,jdbcType=BIGINT}
)
@@ -353,7 +353,7 @@
ad_hoc_description=#{adHocDescription,jdbcType=CLOB},
ad_hoc_severity=#{adHocSeverity,jdbcType=VARCHAR},
ad_hoc_type=#{adHocType,jdbcType=TINYINT},
- generic_concepts=#{genericConceptsField,jdbcType=VARCHAR},
+ education_principles=#{educationPrinciplesField,jdbcType=VARCHAR},
updated_at=#{updatedAt,jdbcType=BIGINT}
where
uuid=#{uuid,jdbcType=VARCHAR}
diff --git a/server/sonar-db-dao/src/schema/schema-sq.ddl b/server/sonar-db-dao/src/schema/schema-sq.ddl
index 4c236994232..a9cfa3c66ad 100644
--- a/server/sonar-db-dao/src/schema/schema-sq.ddl
+++ b/server/sonar-db-dao/src/schema/schema-sq.ddl
@@ -865,7 +865,7 @@ CREATE TABLE "RULES"(
"AD_HOC_DESCRIPTION" CHARACTER LARGE OBJECT,
"AD_HOC_SEVERITY" CHARACTER VARYING(10),
"AD_HOC_TYPE" TINYINT,
- "GENERIC_CONCEPTS" CHARACTER VARYING(255)
+ "EDUCATION_PRINCIPLES" CHARACTER VARYING(255)
);
ALTER TABLE "RULES" ADD CONSTRAINT "PK_RULES" PRIMARY KEY("UUID");
CREATE UNIQUE INDEX "RULES_REPO_KEY" ON "RULES"("PLUGIN_RULE_KEY" NULLS FIRST, "PLUGIN_NAME" NULLS FIRST);
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/rule/RuleDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/rule/RuleDaoTest.java
index c26aea06e57..706fefe8adf 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/rule/RuleDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/rule/RuleDaoTest.java
@@ -237,7 +237,7 @@ public class RuleDaoTest {
assertThat(actual.getAdHocType()).isEqualTo(expected.getAdHocType());
assertThat(actual.getRuleDescriptionSectionDtos()).usingRecursiveFieldByFieldElementComparator()
.containsExactlyInAnyOrderElementsOf(expected.getRuleDescriptionSectionDtos());
- assertThat(actual.getGenericConcepts()).isEqualTo(expected.getGenericConcepts());
+ assertThat(actual.getEducationPrinciples()).isEqualTo(expected.getEducationPrinciples());
}
@Test
diff --git a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/rule/RuleTesting.java b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/rule/RuleTesting.java
index 87e7ed0dde5..9fd58793de7 100644
--- a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/rule/RuleTesting.java
+++ b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/rule/RuleTesting.java
@@ -119,7 +119,7 @@ public class RuleTesting {
.setCreatedAt(currentTimeMillis)
.setUpdatedAt(currentTimeMillis + 5)
.setScope(Scope.MAIN)
- .setGenericConcepts(Set.of(randomAlphanumeric(5), randomAlphanumeric(5)));
+ .setEducationPrinciples(Set.of(randomAlphanumeric(5), randomAlphanumeric(5)));
}
public static RuleParamDto newRuleParam(RuleDto rule) {
diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v96/AddGenericConceptsColumnToRuleTable.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v96/AddEducationPrinciplesColumnToRuleTable.java
index 5011ca61b20..fccc0491eb2 100644
--- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v96/AddGenericConceptsColumnToRuleTable.java
+++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v96/AddEducationPrinciplesColumnToRuleTable.java
@@ -28,22 +28,22 @@ import org.sonar.server.platform.db.migration.step.DdlChange;
import static org.sonar.server.platform.db.migration.def.VarcharColumnDef.newVarcharColumnDefBuilder;
-public class AddGenericConceptsColumnToRuleTable extends DdlChange {
+public class AddEducationPrinciplesColumnToRuleTable extends DdlChange {
- static final String COLUMN_GENERIC_CONCEPTS_KEY = "generic_concepts";
+ static final String COLUMN_EDUCATION_PRINCIPLES_KEY = "education_principles";
static final String RULE_TABLE = "rules";
- public AddGenericConceptsColumnToRuleTable(Database db) {
+ public AddEducationPrinciplesColumnToRuleTable(Database db) {
super(db);
}
@Override
public void execute(DdlChange.Context context) throws SQLException {
try (Connection connection = getDatabase().getDataSource().getConnection()) {
- if (!DatabaseUtils.tableColumnExists(connection, RULE_TABLE, COLUMN_GENERIC_CONCEPTS_KEY)) {
+ if (!DatabaseUtils.tableColumnExists(connection, RULE_TABLE, COLUMN_EDUCATION_PRINCIPLES_KEY)) {
context.execute(new AddColumnsBuilder(getDialect(), RULE_TABLE)
- .addColumn(newVarcharColumnDefBuilder().setColumnName(COLUMN_GENERIC_CONCEPTS_KEY).setIsNullable(true).setLimit(255).build())
+ .addColumn(newVarcharColumnDefBuilder().setColumnName(COLUMN_EDUCATION_PRINCIPLES_KEY).setIsNullable(true).setLimit(255).build())
.build());
}
}
diff --git a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v96/DbVersion96.java b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v96/DbVersion96.java
index faa531201a4..5a473258ad5 100644
--- a/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v96/DbVersion96.java
+++ b/server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v96/DbVersion96.java
@@ -33,7 +33,7 @@ public class DbVersion96 implements DbVersion {
.add(6503, "Create unique uniq_rule_desc_sections", CreateIndexForRuleDescSections.class)
.add(6504, "Add column 'expiration_date' to 'user_tokens'", AddExpirationDateColumnToUserTokens.class)
.add(6505, "Add column 'rule_description_context_key' to 'issues'", AddRuleDescriptionContextKeyInIssuesTable.class)
- .add(6506, "Add column 'generic_concepts' to 'rules'", AddGenericConceptsColumnToRuleTable.class)
+ .add(6506, "Add column 'education_principles' to 'rules'", AddEducationPrinciplesColumnToRuleTable.class)
;
}
}
diff --git a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v96/AddGenericConceptsColumnToRuleTableTest.java b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v96/AddEducationPrinciplesColumnToRuleTableTest.java
index 4bcc490f6ce..e296073a4e9 100644
--- a/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v96/AddGenericConceptsColumnToRuleTableTest.java
+++ b/server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/version/v96/AddEducationPrinciplesColumnToRuleTableTest.java
@@ -26,31 +26,31 @@ import org.junit.Test;
import org.sonar.db.CoreDbTester;
import static org.sonar.db.CoreDbTester.createForSchema;
-import static org.sonar.server.platform.db.migration.version.v96.AddGenericConceptsColumnToRuleTable.COLUMN_GENERIC_CONCEPTS_KEY;
-import static org.sonar.server.platform.db.migration.version.v96.AddGenericConceptsColumnToRuleTable.RULE_TABLE;
+import static org.sonar.server.platform.db.migration.version.v96.AddEducationPrinciplesColumnToRuleTable.COLUMN_EDUCATION_PRINCIPLES_KEY;
+import static org.sonar.server.platform.db.migration.version.v96.AddEducationPrinciplesColumnToRuleTable.RULE_TABLE;
-public class AddGenericConceptsColumnToRuleTableTest {
+public class AddEducationPrinciplesColumnToRuleTableTest {
@Rule
- public final CoreDbTester db = createForSchema(AddGenericConceptsColumnToRuleTableTest.class, "schema.sql");
+ public final CoreDbTester db = createForSchema(AddEducationPrinciplesColumnToRuleTableTest.class, "schema.sql");
- private final AddGenericConceptsColumnToRuleTable addGenericConceptsColumnToRuleTable = new AddGenericConceptsColumnToRuleTable(db.database());
+ private final AddEducationPrinciplesColumnToRuleTable addEducationPrinciplesColumnToRuleTable = new AddEducationPrinciplesColumnToRuleTable(db.database());
@Test
- public void column_generic_concepts_should_be_added() throws SQLException {
- db.assertColumnDoesNotExist(RULE_TABLE, COLUMN_GENERIC_CONCEPTS_KEY);
+ public void column_education_principles_should_be_added() throws SQLException {
+ db.assertColumnDoesNotExist(RULE_TABLE, COLUMN_EDUCATION_PRINCIPLES_KEY);
- addGenericConceptsColumnToRuleTable.execute();
+ addEducationPrinciplesColumnToRuleTable.execute();
- db.assertColumnDefinition(RULE_TABLE, COLUMN_GENERIC_CONCEPTS_KEY, Types.VARCHAR, 255, true);
+ db.assertColumnDefinition(RULE_TABLE, COLUMN_EDUCATION_PRINCIPLES_KEY, Types.VARCHAR, 255, true);
}
@Test
public void migration_should_be_reentrant() throws SQLException {
- db.assertColumnDoesNotExist(RULE_TABLE, COLUMN_GENERIC_CONCEPTS_KEY);
+ db.assertColumnDoesNotExist(RULE_TABLE, COLUMN_EDUCATION_PRINCIPLES_KEY);
- addGenericConceptsColumnToRuleTable.execute();
- addGenericConceptsColumnToRuleTable.execute();
+ addEducationPrinciplesColumnToRuleTable.execute();
+ addEducationPrinciplesColumnToRuleTable.execute();
- db.assertColumnDefinition(RULE_TABLE, COLUMN_GENERIC_CONCEPTS_KEY, Types.VARCHAR, 255, true);
+ db.assertColumnDefinition(RULE_TABLE, COLUMN_EDUCATION_PRINCIPLES_KEY, Types.VARCHAR, 255, true);
}
}
diff --git a/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v96/AddGenericConceptsColumnToRuleTableTest/schema.sql b/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v96/AddEducationPrinciplesColumnToRuleTableTest/schema.sql
index 8346f94d192..8346f94d192 100644
--- a/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v96/AddGenericConceptsColumnToRuleTableTest/schema.sql
+++ b/server/sonar-db-migration/src/test/resources/org/sonar/server/platform/db/migration/version/v96/AddEducationPrinciplesColumnToRuleTableTest/schema.sql
diff --git a/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/RegisterRules.java b/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/RegisterRules.java
index b7324ab3a3a..d5898eb455d 100644
--- a/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/RegisterRules.java
+++ b/server/sonar-webserver-core/src/main/java/org/sonar/server/rule/RegisterRules.java
@@ -397,7 +397,7 @@ public class RegisterRules implements Startable {
.setIsAdHoc(false)
.setCreatedAt(system2.now())
.setUpdatedAt(system2.now())
- .setGenericConcepts(ruleDef.genericConceptKeys());
+ .setEducationPrinciples(ruleDef.educationPrincipleKeys());
if (isNotEmpty(ruleDef.htmlDescription())) {
ruleDto.setDescriptionFormat(Format.HTML);
@@ -443,8 +443,8 @@ public class RegisterRules implements Startable {
boolean debtDefinitionsMerged = mergeDebtDefinitions(ruleDef, ruleDto);
boolean tagsMerged = mergeTags(ruleDef, ruleDto);
boolean securityStandardsMerged = mergeSecurityStandards(ruleDef, ruleDto);
- boolean genericConceptsMerged = mergeGenericConcepts(ruleDef, ruleDto);
- return ruleMerged || debtDefinitionsMerged || tagsMerged || securityStandardsMerged || genericConceptsMerged;
+ boolean educationPrinciplesMerged = mergeEducationPrinciples(ruleDef, ruleDto);
+ return ruleMerged || debtDefinitionsMerged || tagsMerged || securityStandardsMerged || educationPrinciplesMerged;
}
private boolean mergeRule(RulesDefinition.Rule def, RuleDto dto) {
@@ -683,11 +683,11 @@ public class RegisterRules implements Startable {
return changed;
}
- private static boolean mergeGenericConcepts(RulesDefinition.Rule ruleDef, RuleDto dto) {
+ private static boolean mergeEducationPrinciples(RulesDefinition.Rule ruleDef, RuleDto dto) {
boolean changed = false;
- if (dto.getGenericConcepts().size() != ruleDef.genericConceptKeys().size() ||
- !dto.getGenericConcepts().containsAll(ruleDef.genericConceptKeys())) {
- dto.setGenericConcepts(ruleDef.genericConceptKeys());
+ if (dto.getEducationPrinciples().size() != ruleDef.educationPrincipleKeys().size() ||
+ !dto.getEducationPrinciples().containsAll(ruleDef.educationPrincipleKeys())) {
+ dto.setEducationPrinciples(ruleDef.educationPrincipleKeys());
changed = true;
}
return changed;
diff --git a/server/sonar-webserver-core/src/test/java/org/sonar/server/rule/RegisterRulesTest.java b/server/sonar-webserver-core/src/test/java/org/sonar/server/rule/RegisterRulesTest.java
index 164949cb9e4..58e48f4d2cc 100644
--- a/server/sonar-webserver-core/src/test/java/org/sonar/server/rule/RegisterRulesTest.java
+++ b/server/sonar-webserver-core/src/test/java/org/sonar/server/rule/RegisterRulesTest.java
@@ -244,7 +244,7 @@ public class RegisterRulesTest {
assertThat(rule.getType()).isEqualTo(RuleType.CODE_SMELL.getDbConstant());
assertThat(rule.getPluginKey()).isEqualTo(FAKE_PLUGIN_KEY);
assertThat(rule.isAdHoc()).isFalse();
- assertThat(rule.getGenericConcepts()).containsOnly("concept1", "concept2", "concept3");
+ assertThat(rule.getEducationPrinciples()).containsOnly("concept1", "concept2", "concept3");
}
@Test
@@ -414,7 +414,7 @@ public class RegisterRulesTest {
assertThat(rule1.getType()).isEqualTo(RuleType.BUG.getDbConstant());
assertThat(rule1.getCreatedAt()).isEqualTo(DATE1.getTime());
assertThat(rule1.getUpdatedAt()).isEqualTo(DATE2.getTime());
- assertThat(rule1.getGenericConcepts()).containsOnly("concept1","concept4");
+ assertThat(rule1.getEducationPrinciples()).containsOnly("concept1","concept4");
}
@Test
@@ -1209,7 +1209,7 @@ public class RegisterRulesTest {
.setType(RuleType.CODE_SMELL)
.setStatus(RuleStatus.BETA)
.setGapDescription("java.S115.effortToFix")
- .addGenericConceptKeys("concept1", "concept2", "concept3");
+ .addEducationPrincipleKeys("concept1", "concept2", "concept3");
rule1.setDebtRemediationFunction(rule1.debtRemediationFunctions().linearWithOffset("5d", "10h"));
rule1.createParam("param1").setDescription("parameter one").setDefaultValue("default1");
@@ -1248,7 +1248,7 @@ public class RegisterRulesTest {
.setType(RuleType.BUG)
.setStatus(READY)
.setGapDescription("java.S115.effortToFix.v2")
- .addGenericConceptKeys("concept1", "concept4");
+ .addEducationPrincipleKeys("concept1", "concept4");
rule1.setDebtRemediationFunction(rule1.debtRemediationFunctions().linearWithOffset("6d", "2h"));
rule1.createParam("param1").setDescription("parameter one v2").setDefaultValue("default1 v2");
rule1.createParam("param2").setDescription("parameter two v2").setDefaultValue("default2 v2");
@@ -1288,7 +1288,7 @@ public class RegisterRulesTest {
.setScope(RuleScope.ALL)
.setType(RuleType.CODE_SMELL)
.setStatus(RuleStatus.BETA)
- .addGenericConceptKeys("concept1", "concept2", "concept3");
+ .addEducationPrincipleKeys("concept1", "concept2", "concept3");
repo.createRule(EXTERNAL_HOTSPOT_RULE_KEY.rule())
.setName("Hotspot")
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RuleMapper.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RuleMapper.java
index 856833ccf52..fa8f88e5382 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RuleMapper.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RuleMapper.java
@@ -59,9 +59,9 @@ import static org.sonar.server.rule.ws.RulesWsParameters.FIELD_DEFAULT_DEBT_REM_
import static org.sonar.server.rule.ws.RulesWsParameters.FIELD_DEFAULT_REM_FUNCTION;
import static org.sonar.server.rule.ws.RulesWsParameters.FIELD_DEPRECATED_KEYS;
import static org.sonar.server.rule.ws.RulesWsParameters.FIELD_DESCRIPTION_SECTIONS;
+import static org.sonar.server.rule.ws.RulesWsParameters.FIELD_EDUCATION_PRINCIPLES;
import static org.sonar.server.rule.ws.RulesWsParameters.FIELD_EFFORT_TO_FIX_DESCRIPTION;
import static org.sonar.server.rule.ws.RulesWsParameters.FIELD_GAP_DESCRIPTION;
-import static org.sonar.server.rule.ws.RulesWsParameters.FIELD_GENERIC_CONCEPTS;
import static org.sonar.server.rule.ws.RulesWsParameters.FIELD_HTML_DESCRIPTION;
import static org.sonar.server.rule.ws.RulesWsParameters.FIELD_INTERNAL_KEY;
import static org.sonar.server.rule.ws.RulesWsParameters.FIELD_IS_EXTERNAL;
@@ -148,7 +148,7 @@ public class RuleMapper {
setAdHocSeverity(ruleResponse, ruleDto, fieldsToReturn);
setAdHocType(ruleResponse, ruleDto);
}
- setGenericConcepts(ruleResponse, ruleDto, fieldsToReturn);
+ setEducationPrinciples(ruleResponse, ruleDto, fieldsToReturn);
return ruleResponse;
}
@@ -199,9 +199,9 @@ public class RuleMapper {
}
}
- private static void setGenericConcepts(Rules.Rule.Builder ruleResponse, RuleDto ruleDto, Set<String> fieldsToReturn) {
- if (shouldReturnField(fieldsToReturn, FIELD_GENERIC_CONCEPTS)) {
- ruleResponse.getGenericConceptsBuilder().addAllGenericConcepts((ruleDto.getGenericConcepts()));
+ private static void setEducationPrinciples(Rules.Rule.Builder ruleResponse, RuleDto ruleDto, Set<String> fieldsToReturn) {
+ if (shouldReturnField(fieldsToReturn, FIELD_EDUCATION_PRINCIPLES)) {
+ ruleResponse.getEducationPrinciplesBuilder().addAllEducationPrinciples((ruleDto.getEducationPrinciples()));
}
}
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RulesWsParameters.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RulesWsParameters.java
index 4f4af555c87..4177350ac28 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RulesWsParameters.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/RulesWsParameters.java
@@ -62,7 +62,7 @@ public class RulesWsParameters {
public static final String FIELD_MARKDOWN_DESCRIPTION = "mdDesc";
public static final String FIELD_DESCRIPTION_SECTIONS = "descriptionSections";
- public static final String FIELD_GENERIC_CONCEPTS = "genericConcepts";
+ public static final String FIELD_EDUCATION_PRINCIPLES = "educationPrinciples";
public static final String FIELD_NOTE_LOGIN = "noteLogin";
public static final String FIELD_MARKDOWN_NOTE = "mdNote";
public static final String FIELD_HTML_NOTE = "htmlNote";
@@ -110,7 +110,7 @@ public class RulesWsParameters {
FIELD_MARKDOWN_DESCRIPTION, FIELD_DESCRIPTION_SECTIONS, FIELD_NOTE_LOGIN, FIELD_MARKDOWN_NOTE, FIELD_HTML_NOTE,
FIELD_DEFAULT_DEBT_REM_FUNCTION, FIELD_EFFORT_TO_FIX_DESCRIPTION, FIELD_DEBT_OVERLOADED, FIELD_DEBT_REM_FUNCTION,
FIELD_DEFAULT_REM_FUNCTION, FIELD_GAP_DESCRIPTION, FIELD_REM_FUNCTION_OVERLOADED, FIELD_REM_FUNCTION,
- FIELD_PARAMS, FIELD_ACTIVES, FIELD_SCOPE, FIELD_DEPRECATED_KEYS, FIELD_GENERIC_CONCEPTS);
+ FIELD_PARAMS, FIELD_ACTIVES, FIELD_SCOPE, FIELD_DEPRECATED_KEYS, FIELD_EDUCATION_PRINCIPLES);
private RulesWsParameters() {
// prevent instantiation
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/SearchAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/SearchAction.java
index 31db2ae17a7..016d1da1236 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/SearchAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/SearchAction.java
@@ -152,7 +152,7 @@ public class SearchAction implements RulesWsAction {
new Change("9.5", "The field 'descriptionSections' has been added to the payload"),
new Change("9.5", "The field 'descriptionSections' has been added to the 'f' parameter"),
new Change("9.6", "'descriptionSections' can optionally embed a context field"),
- new Change("9.6", "The field 'genericConcepts' has been added to the 'f' parameter")
+ new Change("9.6", "The field 'educationPrinciples' has been added to the 'f' parameter")
);
action.createParam(FACETS)
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/ShowAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/ShowAction.java
index 1e5afdb58f9..ab44840e7f7 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/ShowAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/rule/ws/ShowAction.java
@@ -80,7 +80,7 @@ public class ShowAction implements RulesWsAction {
new Change("9.5", "The field 'descriptionSections' has been added to the payload"),
new Change("9.5", "The field 'descriptionSections' has been added to the 'f' parameter"),
new Change("9.6", "'descriptionSections' can optionally embed a context field"),
- new Change("9.6", "'genericConcepts' has been added")
+ new Change("9.6", "'educationPrinciples' has been added")
);
action
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/user/ws/CurrentAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/user/ws/CurrentAction.java
index 4b956f4d894..9721fad2277 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/user/ws/CurrentAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/user/ws/CurrentAction.java
@@ -50,7 +50,7 @@ import static java.util.Optional.ofNullable;
import static java.util.stream.Collectors.toList;
import static org.apache.commons.lang.StringUtils.EMPTY;
import static org.sonar.api.web.UserRole.USER;
-import static org.sonar.server.user.ws.DismissNoticeAction.GENERIC_CONCEPTS;
+import static org.sonar.server.user.ws.DismissNoticeAction.EDUCATION_PRINCIPLES;
import static org.sonar.server.ws.WsUtils.writeProtobuf;
import static org.sonarqube.ws.Users.CurrentWsResponse.HomepageType.APPLICATION;
import static org.sonarqube.ws.Users.CurrentWsResponse.HomepageType.PORTFOLIO;
@@ -123,7 +123,7 @@ public class CurrentAction implements UsersWsAction {
.setHomepage(buildHomepage(dbSession, user))
.setUsingSonarLintConnectedMode(user.getLastSonarlintConnectionDate() != null)
.setSonarLintAdSeen(user.isSonarlintAdSeen())
- .putDismissedNotices(GENERIC_CONCEPTS, isNoticeDismissed(user, GENERIC_CONCEPTS));
+ .putDismissedNotices(EDUCATION_PRINCIPLES, isNoticeDismissed(user, EDUCATION_PRINCIPLES));
ofNullable(emptyToNull(user.getEmail())).ifPresent(builder::setEmail);
ofNullable(emptyToNull(user.getEmail())).ifPresent(u -> builder.setAvatar(avatarResolver.create(user)));
ofNullable(user.getExternalLogin()).ifPresent(builder::setExternalIdentity);
diff --git a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/user/ws/DismissNoticeAction.java b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/user/ws/DismissNoticeAction.java
index 57b14f59024..d4625ffb21e 100644
--- a/server/sonar-webserver-webapi/src/main/java/org/sonar/server/user/ws/DismissNoticeAction.java
+++ b/server/sonar-webserver-webapi/src/main/java/org/sonar/server/user/ws/DismissNoticeAction.java
@@ -32,7 +32,7 @@ import static com.google.common.base.Preconditions.checkState;
public class DismissNoticeAction implements UsersWsAction {
- public static final String GENERIC_CONCEPTS = "genericConcepts";
+ public static final String EDUCATION_PRINCIPLES = "educationPrinciples";
public static final String USER_DISMISS_CONSTANT = "user.dismissedNotices.";
private final UserSession userSession;
@@ -54,8 +54,8 @@ public class DismissNoticeAction implements UsersWsAction {
action.createParam("notice")
.setDescription("notice key to dismiss")
- .setExampleValue(GENERIC_CONCEPTS)
- .setPossibleValues(GENERIC_CONCEPTS);
+ .setExampleValue(EDUCATION_PRINCIPLES)
+ .setPossibleValues(EDUCATION_PRINCIPLES);
}
@Override
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/SearchActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/SearchActionTest.java
index bdc2bf3c09a..12de1415f02 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/SearchActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/SearchActionTest.java
@@ -309,7 +309,7 @@ public class SearchActionTest {
indexRules();
Rules.SearchResponse response = ws.newRequest()
- .setParam(WebService.Param.FIELDS, "createdAt,langName,genericConcepts")
+ .setParam(WebService.Param.FIELDS, "createdAt,langName,educationPrinciples")
.executeProtobuf(Rules.SearchResponse.class);
Rules.Rule result = response.getRules(0);
@@ -320,7 +320,7 @@ public class SearchActionTest {
// selected fields
assertThat(result.getCreatedAt()).isNotEmpty();
assertThat(result.getLangName()).isNotEmpty();
- assertThat(result.getGenericConcepts().getGenericConceptsList()).containsExactlyElementsOf(rule.getGenericConcepts());
+ assertThat(result.getEducationPrinciples().getEducationPrinciplesList()).containsExactlyElementsOf(rule.getEducationPrinciples());
// not returned fields
assertThat(result.hasEffortToFixDescription()).isFalse();
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/ShowActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/ShowActionTest.java
index 8e6590dee74..2cfd6cbe501 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/ShowActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/rule/ws/ShowActionTest.java
@@ -130,7 +130,7 @@ public class ShowActionTest {
assertThat(resultRule.getParams().getParamsList())
.extracting(Rule.Param::getKey, Rule.Param::getHtmlDesc, Rule.Param::getDefaultValue)
.containsExactlyInAnyOrder(tuple(ruleParam.getName(), ruleParam.getDescription(), ruleParam.getDefaultValue()));
- assertThat(resultRule.getGenericConcepts().getGenericConceptsList()).containsExactlyElementsOf(rule.getGenericConcepts());
+ assertThat(resultRule.getEducationPrinciples().getEducationPrinciplesList()).containsExactlyElementsOf(rule.getEducationPrinciples());
}
@Test
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/CurrentActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/CurrentActionTest.java
index 7e0c5f134cf..a46493caee5 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/CurrentActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/CurrentActionTest.java
@@ -88,22 +88,22 @@ public class CurrentActionTest {
}
@Test
- public void return_generic_concepts_seen() {
+ public void return_educationPrinciples_dismiss_notice() {
UserDto user = db.users().insertUser();
userSession.logIn(user);
- PropertyDto property = new PropertyDto().setUserUuid(user.getUuid()).setKey("user.dismissedNotices.genericConcepts");
+ PropertyDto property = new PropertyDto().setUserUuid(user.getUuid()).setKey("user.dismissedNotices.educationPrinciples");
db.properties().insertProperties(userSession.getLogin(), null, null, null, property);
CurrentWsResponse response = call();
assertThat(response.getDismissedNoticesMap().entrySet())
.extracting(Map.Entry::getKey, Map.Entry::getValue)
- .contains(Tuple.tuple("genericConcepts", true));
+ .contains(Tuple.tuple("educationPrinciples", true));
}
@Test
- public void return_generic_concepts_not_seen() {
+ public void return_educationPrinciples_not_dismissed() {
UserDto user = db.users().insertUser();
userSession.logIn(user);
@@ -111,7 +111,7 @@ public class CurrentActionTest {
assertThat(response.getDismissedNoticesMap().entrySet())
.extracting(Map.Entry::getKey, Map.Entry::getValue)
- .contains(Tuple.tuple("genericConcepts", false));
+ .contains(Tuple.tuple("educationPrinciples", false));
}
@Test
diff --git a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/DismissNoticeActionTest.java b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/DismissNoticeActionTest.java
index 06457e7fc32..d20d7eeb301 100644
--- a/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/DismissNoticeActionTest.java
+++ b/server/sonar-webserver-webapi/src/test/java/org/sonar/server/user/ws/DismissNoticeActionTest.java
@@ -44,16 +44,16 @@ public class DismissNoticeActionTest {
private final WsActionTester tester = new WsActionTester(new DismissNoticeAction(userSessionRule, db.getDbClient()));
@Test
- public void dismiss_genericConcepts() {
+ public void dismiss_educationPrinciples() {
userSessionRule.logIn();
TestResponse testResponse = tester.newRequest()
- .setParam("notice", "genericConcepts")
+ .setParam("notice", "educationPrinciples")
.execute();
assertThat(testResponse.getStatus()).isEqualTo(204);
- Optional<PropertyDto> propertyDto = db.properties().findFirstUserProperty(userSessionRule.getUuid(), "user.dismissedNotices.genericConcepts");
+ Optional<PropertyDto> propertyDto = db.properties().findFirstUserProperty(userSessionRule.getUuid(), "user.dismissedNotices.educationPrinciples");
assertThat(propertyDto).isPresent();
}
@@ -88,22 +88,22 @@ public class DismissNoticeActionTest {
assertThatThrownBy(testRequest::execute)
.isInstanceOf(IllegalArgumentException.class)
- .hasMessage("Value of parameter 'notice' (not_supported_value) must be one of: [genericConcepts]");
+ .hasMessage("Value of parameter 'notice' (not_supported_value) must be one of: [educationPrinciples]");
}
@Test
public void notice_already_exist() {
userSessionRule.logIn();
- PropertyDto property = new PropertyDto().setKey("user.dismissedNotices.genericConcepts").setUserUuid(userSessionRule.getUuid());
+ PropertyDto property = new PropertyDto().setKey("user.dismissedNotices.educationPrinciples").setUserUuid(userSessionRule.getUuid());
db.properties().insertProperties(userSessionRule.getLogin(), null, null, null, property);
TestRequest testRequest = tester.newRequest()
- .setParam("notice", "genericConcepts");
+ .setParam("notice", "educationPrinciples");
assertThatThrownBy(testRequest::execute)
.isInstanceOf(IllegalArgumentException.class)
- .hasMessage("Notice genericConcepts is already dismissed");
+ .hasMessage("Notice educationPrinciples is already dismissed");
}
diff --git a/sonar-ws/src/main/protobuf/ws-rules.proto b/sonar-ws/src/main/protobuf/ws-rules.proto
index ec2ee250624..7ec1c827f9f 100644
--- a/sonar-ws/src/main/protobuf/ws-rules.proto
+++ b/sonar-ws/src/main/protobuf/ws-rules.proto
@@ -123,7 +123,7 @@ message Rule {
optional bool isExternal = 47;
optional DeprecatedKeys deprecatedKeys = 48;
optional DescriptionSections descriptionSections = 49;
- optional GenericConcepts genericConcepts = 50;
+ optional EducationPrinciples educationPrinciples = 50;
message DescriptionSections {
repeated DescriptionSection descriptionSections = 1;
@@ -164,8 +164,8 @@ message Tags {
repeated string tags = 1;
}
-message GenericConcepts {
- repeated string genericConcepts = 1;
+message EducationPrinciples {
+ repeated string educationPrinciples = 1;
}
message Actives {