aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephane Gamard <stephane.gamard@sonarsource.com>2014-10-01 13:12:07 +0200
committerStephane Gamard <stephane.gamard@sonarsource.com>2014-10-01 13:12:13 +0200
commit6d28e964b5c438c113dfce9e8461564a6dff2b00 (patch)
tree6414ae34e996539aaee1fbadbb4e516ec47ca118
parent05b1172fa916ff7b0d2373eacb761df6613f89fb (diff)
downloadsonarqube-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
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueDoc.java4
-rw-r--r--server/sonar-server/src/main/java/org/sonar/server/issue/index/IssueNormalizer.java5
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/db/IssueBackendMediumTest.java8
-rw-r--r--server/sonar-server/src/test/java/org/sonar/server/issue/index/IssueIndexMediumTest.java6
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);
}
}