diff options
author | Stephane Gamard <stephane.gamard@sonarsource.com> | 2014-10-01 13:12:07 +0200 |
---|---|---|
committer | Stephane Gamard <stephane.gamard@sonarsource.com> | 2014-10-01 13:12:13 +0200 |
commit | 6d28e964b5c438c113dfce9e8461564a6dff2b00 (patch) | |
tree | 6414ae34e996539aaee1fbadbb4e516ec47ca118 | |
parent | 05b1172fa916ff7b0d2373eacb761df6613f89fb (diff) | |
download | sonarqube-6d28e964b5c438c113dfce9e8461564a6dff2b00.tar.gz sonarqube-6d28e964b5c438c113dfce9e8461564a6dff2b00.zip |
SONAR-5564 - Switch from object mapping to string for Issue.attributes since it is not used in any search way
4 files changed, 16 insertions, 7 deletions
diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueDoc.java b/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueDoc.java index 0abaa1b88d1..edd27d6a012 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueDoc.java +++ b/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueDoc.java @@ -23,11 +23,11 @@ import org.sonar.api.issue.Issue; import org.sonar.api.issue.IssueComment; import org.sonar.api.rule.RuleKey; import org.sonar.api.utils.Duration; +import org.sonar.api.utils.KeyValueFormat; import org.sonar.server.search.BaseDoc; import org.sonar.server.search.IndexUtils; import javax.annotation.CheckForNull; - import java.util.Date; import java.util.List; import java.util.Map; @@ -130,7 +130,7 @@ public class IssueDoc extends BaseDoc implements Issue { @Override public Map<String, String> attributes() { - return getField(IssueNormalizer.IssueField.ATTRIBUTES.field()); + return KeyValueFormat.parse((String) getNullableField(IssueNormalizer.IssueField.ATTRIBUTES.field())); } @Override diff --git a/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueNormalizer.java b/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueNormalizer.java index 5e09f9b957f..cba659090b4 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueNormalizer.java +++ b/server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueNormalizer.java @@ -21,7 +21,6 @@ package org.sonar.server.issue.index; import com.google.common.collect.ImmutableList; import org.elasticsearch.action.update.UpdateRequest; -import org.sonar.api.utils.KeyValueFormat; import org.sonar.core.issue.db.IssueDto; import org.sonar.server.db.DbClient; import org.sonar.server.search.BaseNormalizer; @@ -51,7 +50,7 @@ public class IssueNormalizer extends BaseNormalizer<IssueDto, String> { public static final IndexField ACTION_PLAN = add(IndexField.Type.STRING, "actionPlan"); public static final IndexField ASSIGNEE = addSortable(IndexField.Type.STRING, "assignee"); - public static final IndexField ATTRIBUTES = add(IndexField.Type.OBJECT, "attributes"); + public static final IndexField ATTRIBUTES = add(IndexField.Type.STRING, "attributes"); public static final IndexField AUTHOR_LOGIN = add(IndexField.Type.STRING, "authorLogin"); public static final IndexField COMPONENT = add(IndexField.Type.STRING, "component"); public static final IndexField DEBT = add(IndexField.Type.NUMERIC, "debt"); @@ -105,7 +104,7 @@ public class IssueNormalizer extends BaseNormalizer<IssueDto, String> { update.put(IssueField.CREATED_AT.field(), dto.getCreatedAt()); update.put(IssueField.ACTION_PLAN.field(), dto.getActionPlanKey()); - update.put(IssueField.ATTRIBUTES.field(), KeyValueFormat.parse(dto.getIssueAttributes())); + update.put(IssueField.ATTRIBUTES.field(), dto.getIssueAttributes()); update.put(IssueField.ASSIGNEE.field(), dto.getAssignee()); update.put(IssueField.AUTHOR_LOGIN.field(), dto.getAuthorLogin()); update.put(IssueField.ISSUE_CLOSE_DATE.field(), dto.getIssueCloseDate()); diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/db/IssueBackendMediumTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/db/IssueBackendMediumTest.java index 5305b0f128c..92a7517ca5b 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/issue/db/IssueBackendMediumTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/issue/db/IssueBackendMediumTest.java @@ -20,6 +20,7 @@ package org.sonar.server.issue.db; +import com.google.common.collect.ImmutableMap; import org.junit.After; import org.junit.Before; import org.junit.ClassRule; @@ -27,6 +28,7 @@ import org.junit.Test; import org.sonar.api.issue.Issue; import org.sonar.api.rule.RuleKey; import org.sonar.api.security.DefaultGroups; +import org.sonar.api.utils.KeyValueFormat; import org.sonar.api.web.UserRole; import org.sonar.core.component.ComponentDto; import org.sonar.core.issue.db.IssueDto; @@ -101,7 +103,8 @@ public class IssueBackendMediumTest { .setComponent(resource) .setStatus("OPEN").setResolution("OPEN") .setKee(UUID.randomUUID().toString()) - .setSeverity("MAJOR"); + .setSeverity("MAJOR") + .setIssueAttributes(KeyValueFormat.format(ImmutableMap.of("key", "value"))); dbClient.issueDao().insert(dbSession, issue); dbSession.commit(); @@ -128,8 +131,9 @@ public class IssueBackendMediumTest { assertThat(issueDoc.updateDate()).isEqualTo(issue.getIssueUpdateDate()); assertThat(issueDoc.status()).isEqualTo(issue.getStatus()); assertThat(issueDoc.severity()).isEqualTo(issue.getSeverity()); + assertThat(issueDoc.attributes()).isEqualTo(KeyValueFormat.parse(issue.getIssueAttributes())); + assertThat(issueDoc.attribute("key")).isEqualTo("value"); - // assertThat(issueDoc.attributes()).isEqualTo(issue.getIssueAttributes()); // assertThat(issueDoc.isNew()).isEqualTo(issue.isN()); // assertThat(issueDoc.comments()).isEqualTo(issue.()); } diff --git a/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexMediumTest.java b/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexMediumTest.java index 215ff555bb6..ca4617a17bb 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexMediumTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexMediumTest.java @@ -20,6 +20,7 @@ package org.sonar.server.issue.index; import com.google.common.collect.ImmutableMap; +import org.elasticsearch.action.admin.indices.stats.IndicesStatsResponse; import org.junit.After; import org.junit.Before; import org.junit.ClassRule; @@ -52,6 +53,7 @@ import org.sonar.server.rule.db.RuleDao; import org.sonar.server.search.IndexDefinition; import org.sonar.server.search.QueryContext; import org.sonar.server.search.Result; +import org.sonar.server.search.SearchClient; import org.sonar.server.tester.ServerTester; import org.sonar.server.user.MockUserSession; @@ -643,6 +645,7 @@ public class IssueIndexMediumTest { List<String> issueKeys = newArrayList(); for (int i = 0; i < numberOfIssues; i++) { IssueDto issue = IssueTesting.newDto(rule, resource, project); + issue.setIssueAttributes("attr" + i); tester.get(IssueDao.class).insert(session, issue); issueKeys.add(issue.getKey()); } @@ -668,5 +671,8 @@ public class IssueIndexMediumTest { assertThat(index.countAll()).isEqualTo(numberOfIssues); + SearchClient elastic = tester.get(SearchClient.class); + IndicesStatsResponse stats = elastic.admin().indices().prepareStats(IndexDefinition.ISSUES.getIndexName()).get(); + System.out.println("stats = " + stats); } } |