summaryrefslogtreecommitdiffstats
path: root/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticGroupIndex.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticGroupIndex.java')
-rw-r--r--gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticGroupIndex.java46
1 files changed, 24 insertions, 22 deletions
diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticGroupIndex.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticGroupIndex.java
index c01f4b40a8..79701e135d 100644
--- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticGroupIndex.java
+++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticGroupIndex.java
@@ -21,17 +21,18 @@ import com.google.gerrit.elasticsearch.builders.SearchSourceBuilder;
import com.google.gerrit.elasticsearch.bulk.BulkRequest;
import com.google.gerrit.elasticsearch.bulk.IndexRequest;
import com.google.gerrit.elasticsearch.bulk.UpdateRequest;
+import com.google.gerrit.index.QueryOptions;
+import com.google.gerrit.index.Schema;
+import com.google.gerrit.index.query.DataSource;
+import com.google.gerrit.index.query.Predicate;
+import com.google.gerrit.index.query.QueryParseException;
import com.google.gerrit.reviewdb.client.AccountGroup;
import com.google.gerrit.server.account.GroupCache;
import com.google.gerrit.server.config.SitePaths;
+import com.google.gerrit.server.group.InternalGroup;
import com.google.gerrit.server.index.IndexUtils;
-import com.google.gerrit.server.index.QueryOptions;
-import com.google.gerrit.server.index.Schema;
import com.google.gerrit.server.index.group.GroupField;
import com.google.gerrit.server.index.group.GroupIndex;
-import com.google.gerrit.server.query.DataSource;
-import com.google.gerrit.server.query.Predicate;
-import com.google.gerrit.server.query.QueryParseException;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
@@ -45,6 +46,7 @@ import java.io.IOException;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
import org.apache.http.HttpStatus;
import org.apache.http.StatusLine;
@@ -52,14 +54,14 @@ import org.elasticsearch.client.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class ElasticGroupIndex extends AbstractElasticIndex<AccountGroup.UUID, AccountGroup>
+public class ElasticGroupIndex extends AbstractElasticIndex<AccountGroup.UUID, InternalGroup>
implements GroupIndex {
private static final Logger log = LoggerFactory.getLogger(ElasticGroupIndex.class);
static class GroupMapping {
final MappingProperties groups;
- GroupMapping(Schema<AccountGroup> schema, ElasticQueryAdapter adapter) {
+ GroupMapping(Schema<InternalGroup> schema, ElasticQueryAdapter adapter) {
this.groups = ElasticMapping.createMapping(schema, adapter);
}
}
@@ -68,7 +70,7 @@ public class ElasticGroupIndex extends AbstractElasticIndex<AccountGroup.UUID, A
private final GroupMapping mapping;
private final Provider<GroupCache> groupCache;
- private final Schema<AccountGroup> schema;
+ private final Schema<InternalGroup> schema;
@AssistedInject
ElasticGroupIndex(
@@ -76,7 +78,7 @@ public class ElasticGroupIndex extends AbstractElasticIndex<AccountGroup.UUID, A
SitePaths sitePaths,
Provider<GroupCache> groupCache,
ElasticRestClientProvider client,
- @Assisted Schema<AccountGroup> schema) {
+ @Assisted Schema<InternalGroup> schema) {
super(cfg, sitePaths, schema, client, GROUPS);
this.groupCache = groupCache;
this.mapping = new GroupMapping(schema, client.adapter());
@@ -84,7 +86,7 @@ public class ElasticGroupIndex extends AbstractElasticIndex<AccountGroup.UUID, A
}
@Override
- public void replace(AccountGroup group) throws IOException {
+ public void replace(InternalGroup group) throws IOException {
BulkRequest bulk =
new IndexRequest(getId(group), indexName, type, client.adapter())
.add(new UpdateRequest<>(schema, group));
@@ -101,7 +103,7 @@ public class ElasticGroupIndex extends AbstractElasticIndex<AccountGroup.UUID, A
}
@Override
- public DataSource<AccountGroup> getSource(Predicate<AccountGroup> p, QueryOptions opts)
+ public DataSource<InternalGroup> getSource(Predicate<InternalGroup> p, QueryOptions opts)
throws QueryParseException {
return new QuerySource(p, opts);
}
@@ -117,15 +119,15 @@ public class ElasticGroupIndex extends AbstractElasticIndex<AccountGroup.UUID, A
}
@Override
- protected String getId(AccountGroup group) {
+ protected String getId(InternalGroup group) {
return group.getGroupUUID().get();
}
- private class QuerySource implements DataSource<AccountGroup> {
+ private class QuerySource implements DataSource<InternalGroup> {
private final String search;
private final Set<String> fields;
- QuerySource(Predicate<AccountGroup> p, QueryOptions opts) throws QueryParseException {
+ QuerySource(Predicate<InternalGroup> p, QueryOptions opts) throws QueryParseException {
QueryBuilder qb = queryBuilder.toQueryBuilder(p);
fields = IndexUtils.groupFields(opts);
SearchSourceBuilder searchSource =
@@ -145,9 +147,9 @@ public class ElasticGroupIndex extends AbstractElasticIndex<AccountGroup.UUID, A
}
@Override
- public ResultSet<AccountGroup> read() throws OrmException {
+ public ResultSet<InternalGroup> read() throws OrmException {
try {
- List<AccountGroup> results = Collections.emptyList();
+ List<InternalGroup> results = Collections.emptyList();
String uri = getURI(type, SEARCH);
Response response = postRequest(uri, search);
StatusLine statusLine = response.getStatusLine();
@@ -159,21 +161,21 @@ public class ElasticGroupIndex extends AbstractElasticIndex<AccountGroup.UUID, A
JsonArray json = obj.getAsJsonArray("hits");
results = Lists.newArrayListWithCapacity(json.size());
for (int i = 0; i < json.size(); i++) {
- results.add(toAccountGroup(json.get(i)));
+ results.add(toAccountGroup(json.get(i)).get());
}
}
} else {
log.error(statusLine.getReasonPhrase());
}
- final List<AccountGroup> r = Collections.unmodifiableList(results);
- return new ResultSet<AccountGroup>() {
+ final List<InternalGroup> r = Collections.unmodifiableList(results);
+ return new ResultSet<InternalGroup>() {
@Override
- public Iterator<AccountGroup> iterator() {
+ public Iterator<InternalGroup> iterator() {
return r.iterator();
}
@Override
- public List<AccountGroup> toList() {
+ public List<InternalGroup> toList() {
return r;
}
@@ -187,7 +189,7 @@ public class ElasticGroupIndex extends AbstractElasticIndex<AccountGroup.UUID, A
}
}
- private AccountGroup toAccountGroup(JsonElement json) {
+ private Optional<InternalGroup> toAccountGroup(JsonElement json) {
JsonElement source = json.getAsJsonObject().get("_source");
if (source == null) {
source = json.getAsJsonObject().get("fields");