diff options
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.java | 46 |
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"); |