diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/AbstractElasticIndex.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/AbstractElasticIndex.java index c813d2b582..3462eebaf3 100644 --- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/AbstractElasticIndex.java +++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/AbstractElasticIndex.java @@ -25,7 +25,6 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Streams; import com.google.gerrit.server.config.GerritServerConfig; import com.google.gerrit.server.config.SitePaths; -import com.google.gerrit.server.index.FieldDef.FillArgs; import com.google.gerrit.server.index.Index; import com.google.gerrit.server.index.IndexUtils; import com.google.gerrit.server.index.Schema; @@ -60,7 +59,6 @@ abstract class AbstractElasticIndex implements Index { } private final Schema schema; - private final FillArgs fillArgs; private final SitePaths sitePaths; protected final String indexName; @@ -70,12 +68,10 @@ abstract class AbstractElasticIndex implements Index { AbstractElasticIndex( @GerritServerConfig Config cfg, - FillArgs fillArgs, SitePaths sitePaths, Schema schema, JestClientBuilder clientBuilder, String indexName) { - this.fillArgs = fillArgs; this.sitePaths = sitePaths; this.schema = schema; this.gson = new GsonBuilder().setFieldNamingPolicy(LOWER_CASE_WITH_UNDERSCORES).create(); @@ -160,7 +156,7 @@ abstract class AbstractElasticIndex implements Index { private String toDoc(V v) throws IOException { XContentBuilder builder = jsonBuilder().startObject(); - for (Values values : schema.buildFields(v, fillArgs)) { + for (Values values : schema.buildFields(v)) { String name = values.getField().getName(); if (values.getField().isRepeatable()) { builder.field( diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticAccountIndex.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticAccountIndex.java index c13d8d7ad6..29d787aceb 100644 --- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticAccountIndex.java +++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticAccountIndex.java @@ -83,8 +83,7 @@ public class ElasticAccountIndex extends AbstractElasticIndex accountCache, JestClientBuilder clientBuilder, @Assisted Schema schema) { - // No parts of FillArgs are currently required, just use null. - super(cfg, null, sitePaths, schema, clientBuilder, ACCOUNTS_PREFIX); + super(cfg, sitePaths, schema, clientBuilder, ACCOUNTS_PREFIX); this.accountCache = accountCache; this.mapping = new AccountMapping(schema); } diff --git a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticChangeIndex.java b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticChangeIndex.java index cbc064083e..53b16b1b8c 100644 --- a/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticChangeIndex.java +++ b/gerrit-elasticsearch/src/main/java/com/google/gerrit/elasticsearch/ElasticChangeIndex.java @@ -39,7 +39,6 @@ import com.google.gerrit.server.ReviewerByEmailSet; import com.google.gerrit.server.ReviewerSet; import com.google.gerrit.server.config.GerritServerConfig; import com.google.gerrit.server.config.SitePaths; -import com.google.gerrit.server.index.FieldDef.FillArgs; import com.google.gerrit.server.index.IndexUtils; import com.google.gerrit.server.index.QueryOptions; import com.google.gerrit.server.index.Schema; @@ -106,11 +105,10 @@ class ElasticChangeIndex extends AbstractElasticIndex @GerritServerConfig Config cfg, Provider db, ChangeData.Factory changeDataFactory, - FillArgs fillArgs, SitePaths sitePaths, JestClientBuilder clientBuilder, @Assisted Schema schema) { - super(cfg, fillArgs, sitePaths, schema, clientBuilder, CHANGES_PREFIX); + super(cfg, sitePaths, schema, clientBuilder, CHANGES_PREFIX); this.db = db; this.changeDataFactory = changeDataFactory; mapping = new ChangeMapping(schema); 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 018f8d89e5..51c2a67148 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 @@ -80,8 +80,7 @@ public class ElasticGroupIndex extends AbstractElasticIndex groupCache, JestClientBuilder clientBuilder, @Assisted Schema schema) { - // No parts of FillArgs are currently required, just use null. - super(cfg, null, sitePaths, schema, clientBuilder, GROUPS_PREFIX); + super(cfg, sitePaths, schema, clientBuilder, GROUPS_PREFIX); this.groupCache = groupCache; this.mapping = new GroupMapping(schema); } diff --git a/gerrit-lucene/src/main/java/com/google/gerrit/lucene/AbstractLuceneIndex.java b/gerrit-lucene/src/main/java/com/google/gerrit/lucene/AbstractLuceneIndex.java index 9e375e7184..ad72f7080c 100644 --- a/gerrit-lucene/src/main/java/com/google/gerrit/lucene/AbstractLuceneIndex.java +++ b/gerrit-lucene/src/main/java/com/google/gerrit/lucene/AbstractLuceneIndex.java @@ -27,7 +27,6 @@ import com.google.common.util.concurrent.MoreExecutors; import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.google.gerrit.server.config.SitePaths; import com.google.gerrit.server.index.FieldDef; -import com.google.gerrit.server.index.FieldDef.FillArgs; import com.google.gerrit.server.index.FieldType; import com.google.gerrit.server.index.Index; import com.google.gerrit.server.index.IndexUtils; @@ -285,9 +284,9 @@ public abstract class AbstractLuceneIndex implements Index { searcherManager.release(searcher); } - Document toDocument(V obj, FillArgs fillArgs) { + Document toDocument(V obj) { Document result = new Document(); - for (Values vs : schema.buildFields(obj, fillArgs)) { + for (Values vs : schema.buildFields(obj)) { if (vs.getValues() != null) { add(result, vs); } diff --git a/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneAccountIndex.java b/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneAccountIndex.java index be4f917c7d..b08301feb5 100644 --- a/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneAccountIndex.java +++ b/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneAccountIndex.java @@ -109,8 +109,7 @@ public class LuceneAccountIndex extends AbstractLuceneIndex db; private final ChangeData.Factory changeDataFactory; @@ -158,10 +156,8 @@ public class LuceneChangeIndex implements ChangeIndex { @IndexExecutor(INTERACTIVE) ListeningExecutorService executor, Provider db, ChangeData.Factory changeDataFactory, - FillArgs fillArgs, @Assisted Schema schema) throws IOException { - this.fillArgs = fillArgs; this.executor = executor; this.db = db; this.changeDataFactory = changeDataFactory; @@ -215,7 +211,7 @@ public class LuceneChangeIndex implements ChangeIndex { Term id = LuceneChangeIndex.idTerm(cd); // toDocument is essentially static and doesn't depend on the specific // sub-index, so just pick one. - Document doc = openIndex.toDocument(cd, fillArgs); + Document doc = openIndex.toDocument(cd); try { if (cd.change().getStatus().isOpen()) { Futures.allAsList(closedIndex.delete(id), openIndex.replace(id, doc)).get(); diff --git a/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneGroupIndex.java b/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneGroupIndex.java index daece8c18c..21371e25eb 100644 --- a/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneGroupIndex.java +++ b/gerrit-lucene/src/main/java/com/google/gerrit/lucene/LuceneGroupIndex.java @@ -108,8 +108,7 @@ public class LuceneGroupIndex extends AbstractLuceneIndex { T get(I input) throws OrmException, IOException; } - @FunctionalInterface - public interface GetterWithArgs { - T get(I input, FillArgs args) throws OrmException, IOException; - } - - /** Arguments needed to fill in missing data in the input object. */ - public static class FillArgs {} - public static class Builder { private final FieldType type; private final String name; @@ -87,18 +79,10 @@ public final class FieldDef { } public FieldDef build(Getter getter) { - return build((in, a) -> getter.get(in)); - } - - public FieldDef build(GetterWithArgs getter) { return new FieldDef<>(name, type, stored, false, getter); } public FieldDef> buildRepeatable(Getter> getter) { - return buildRepeatable((in, a) -> getter.get(in)); - } - - public FieldDef> buildRepeatable(GetterWithArgs> getter) { return new FieldDef<>(name, type, stored, true, getter); } } @@ -107,14 +91,10 @@ public final class FieldDef { private final FieldType type; private final boolean stored; private final boolean repeatable; - private final GetterWithArgs getter; + private final Getter getter; private FieldDef( - String name, - FieldType type, - boolean stored, - boolean repeatable, - GetterWithArgs getter) { + String name, FieldType type, boolean stored, boolean repeatable, Getter getter) { checkArgument( !(repeatable && type == FieldType.INTEGER_RANGE), "Range queries against repeated fields are unsupported"); @@ -150,13 +130,12 @@ public final class FieldDef { * Get the field contents from the input object. * * @param input input object. - * @param args arbitrary arguments needed to fill in indexable fields of the input object. * @return the field value(s) to index. * @throws OrmException */ - public T get(I input, FillArgs args) throws OrmException { + public T get(I input) throws OrmException { try { - return getter.get(input, args); + return getter.get(input); } catch (IOException e) { throw new OrmException(e); } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/index/Schema.java b/gerrit-server/src/main/java/com/google/gerrit/server/index/Schema.java index 0fae9c9229..d14a37fa35 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/index/Schema.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/index/Schema.java @@ -22,7 +22,6 @@ import com.google.common.base.Predicates; import com.google.common.collect.FluentIterable; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import com.google.gerrit.server.index.FieldDef.FillArgs; import com.google.gwtorm.server.OrmException; import java.util.ArrayList; import java.util.Arrays; @@ -173,10 +172,9 @@ public class Schema { *

Null values are omitted, as are fields which cause errors, which are logged. * * @param obj input object. - * @param fillArgs arguments for filling fields. * @return all non-null field values from the object. */ - public final Iterable> buildFields(T obj, FillArgs fillArgs) { + public final Iterable> buildFields(T obj) { return FluentIterable.from(fields.values()) .transform( new Function, Values>() { @@ -184,7 +182,7 @@ public class Schema { public Values apply(FieldDef f) { Object v; try { - v = f.get(obj, fillArgs); + v = f.get(obj); } catch (OrmException e) { log.error(String.format("error getting field %s of %s", f.getName(), obj), e); return null; diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/AddedPredicate.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/AddedPredicate.java index 05bf24bd26..06cccf4e34 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/AddedPredicate.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/AddedPredicate.java @@ -25,6 +25,6 @@ public class AddedPredicate extends IntegerRangeChangePredicate { @Override protected Integer getValueInt(ChangeData changeData) throws OrmException { - return ChangeField.ADDED.get(changeData, null); + return ChangeField.ADDED.get(changeData); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/BooleanPredicate.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/BooleanPredicate.java index 31e3ee16f1..50d9c90fc5 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/BooleanPredicate.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/BooleanPredicate.java @@ -15,20 +15,16 @@ package com.google.gerrit.server.query.change; import com.google.gerrit.server.index.FieldDef; -import com.google.gerrit.server.index.FieldDef.FillArgs; import com.google.gwtorm.server.OrmException; public class BooleanPredicate extends ChangeIndexPredicate { - protected final FillArgs args; - - public BooleanPredicate(FieldDef field, FillArgs args) { + public BooleanPredicate(FieldDef field) { super(field, "1"); - this.args = args; } @Override public boolean match(ChangeData object) throws OrmException { - return getValue().equals(getField().get(object, args)); + return getValue().equals(getField().get(object)); } @Override diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java index 5979594a1a..e997a82aad 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/ChangeQueryBuilder.java @@ -52,7 +52,6 @@ import com.google.gerrit.server.config.GerritServerConfig; import com.google.gerrit.server.git.GitRepositoryManager; import com.google.gerrit.server.git.strategy.SubmitDryRun; import com.google.gerrit.server.group.ListMembers; -import com.google.gerrit.server.index.FieldDef; import com.google.gerrit.server.index.IndexConfig; import com.google.gerrit.server.index.Schema; import com.google.gerrit.server.index.SchemaUtil; @@ -205,7 +204,6 @@ public class ChangeQueryBuilder extends QueryBuilder { final ConflictsCache conflictsCache; final DynamicMap hasOperands; final DynamicMap opFactories; - final FieldDef.FillArgs fillArgs; final GitRepositoryManager repoManager; final GroupBackend groupBackend; final IdentifiedUser.GenericFactory userFactory; @@ -237,7 +235,6 @@ public class ChangeQueryBuilder extends QueryBuilder { ChangeControl.GenericFactory changeControlGenericFactory, ChangeNotes.Factory notesFactory, ChangeData.Factory changeDataFactory, - FieldDef.FillArgs fillArgs, CommentsUtil commentsUtil, AccountResolver accountResolver, GroupBackend groupBackend, @@ -268,7 +265,6 @@ public class ChangeQueryBuilder extends QueryBuilder { changeControlGenericFactory, notesFactory, changeDataFactory, - fillArgs, commentsUtil, accountResolver, groupBackend, @@ -301,7 +297,6 @@ public class ChangeQueryBuilder extends QueryBuilder { ChangeControl.GenericFactory changeControlGenericFactory, ChangeNotes.Factory notesFactory, ChangeData.Factory changeDataFactory, - FieldDef.FillArgs fillArgs, CommentsUtil commentsUtil, AccountResolver accountResolver, GroupBackend groupBackend, @@ -330,7 +325,6 @@ public class ChangeQueryBuilder extends QueryBuilder { this.notesFactory = notesFactory; this.changeControlGenericFactory = changeControlGenericFactory; this.changeDataFactory = changeDataFactory; - this.fillArgs = fillArgs; this.commentsUtil = commentsUtil; this.accountResolver = accountResolver; this.groupBackend = groupBackend; @@ -365,7 +359,6 @@ public class ChangeQueryBuilder extends QueryBuilder { changeControlGenericFactory, notesFactory, changeDataFactory, - fillArgs, commentsUtil, accountResolver, groupBackend, @@ -573,7 +566,7 @@ public class ChangeQueryBuilder extends QueryBuilder { if ("reviewer".equalsIgnoreCase(value)) { if (args.getSchema().hasField(ChangeField.WIP)) { return Predicate.and( - Predicate.not(new BooleanPredicate(ChangeField.WIP, args.fillArgs)), + Predicate.not(new BooleanPredicate(ChangeField.WIP)), ReviewerPredicate.reviewer(args, self())); } return ReviewerPredicate.reviewer(args, self()); @@ -584,12 +577,12 @@ public class ChangeQueryBuilder extends QueryBuilder { } if ("mergeable".equalsIgnoreCase(value)) { - return new BooleanPredicate(ChangeField.MERGEABLE, args.fillArgs); + return new BooleanPredicate(ChangeField.MERGEABLE); } if ("private".equalsIgnoreCase(value)) { if (args.getSchema().hasField(ChangeField.PRIVATE)) { - return new BooleanPredicate(ChangeField.PRIVATE, args.fillArgs); + return new BooleanPredicate(ChangeField.PRIVATE); } throw new QueryParseException( "'is:private' operator is not supported by change index version"); @@ -613,7 +606,7 @@ public class ChangeQueryBuilder extends QueryBuilder { if ("started".equalsIgnoreCase(value)) { if (args.getSchema().hasField(ChangeField.STARTED)) { - return new BooleanPredicate(ChangeField.STARTED, args.fillArgs); + return new BooleanPredicate(ChangeField.STARTED); } throw new QueryParseException( "'is:started' operator is not supported by change index version"); @@ -621,7 +614,7 @@ public class ChangeQueryBuilder extends QueryBuilder { if ("wip".equalsIgnoreCase(value)) { if (args.getSchema().hasField(ChangeField.WIP)) { - return new BooleanPredicate(ChangeField.WIP, args.fillArgs); + return new BooleanPredicate(ChangeField.WIP); } throw new QueryParseException("'is:wip' operator is not supported by change index version"); } @@ -1023,8 +1016,7 @@ public class ChangeQueryBuilder extends QueryBuilder { return Predicate.any(); } if (args.getSchema().hasField(ChangeField.WIP)) { - return Predicate.and( - Predicate.not(new BooleanPredicate(ChangeField.WIP, args.fillArgs)), byState); + return Predicate.and(Predicate.not(new BooleanPredicate(ChangeField.WIP)), byState); } return byState; } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/DeletedPredicate.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/DeletedPredicate.java index 9c46da8026..24c37e341e 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/DeletedPredicate.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/DeletedPredicate.java @@ -25,6 +25,6 @@ public class DeletedPredicate extends IntegerRangeChangePredicate { @Override protected Integer getValueInt(ChangeData changeData) throws OrmException { - return ChangeField.DELETED.get(changeData, null); + return ChangeField.DELETED.get(changeData); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/DeltaPredicate.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/DeltaPredicate.java index 68a4b84c99..dac373089d 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/DeltaPredicate.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/DeltaPredicate.java @@ -25,6 +25,6 @@ public class DeltaPredicate extends IntegerRangeChangePredicate { @Override protected Integer getValueInt(ChangeData changeData) throws OrmException { - return ChangeField.DELTA.get(changeData, null); + return ChangeField.DELTA.get(changeData); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsUnresolvedPredicate.java b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsUnresolvedPredicate.java index e9b2899208..c3195466cb 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsUnresolvedPredicate.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/query/change/IsUnresolvedPredicate.java @@ -29,6 +29,6 @@ public class IsUnresolvedPredicate extends IntegerRangeChangePredicate { @Override protected Integer getValueInt(ChangeData changeData) throws OrmException { - return ChangeField.UNRESOLVED_COMMENT_COUNT.get(changeData, null); + return ChangeField.UNRESOLVED_COMMENT_COUNT.get(changeData); } } diff --git a/gerrit-server/src/test/java/com/google/gerrit/server/index/change/FakeQueryBuilder.java b/gerrit-server/src/test/java/com/google/gerrit/server/index/change/FakeQueryBuilder.java index 3652ec7d27..edc221ce8b 100644 --- a/gerrit-server/src/test/java/com/google/gerrit/server/index/change/FakeQueryBuilder.java +++ b/gerrit-server/src/test/java/com/google/gerrit/server/index/change/FakeQueryBuilder.java @@ -27,8 +27,8 @@ public class FakeQueryBuilder extends ChangeQueryBuilder { new FakeQueryBuilder.Definition<>(FakeQueryBuilder.class), new ChangeQueryBuilder.Arguments( null, null, null, null, null, null, null, null, null, null, null, null, null, null, - null, null, null, null, null, null, null, indexes, null, null, null, null, null, null, - null, null)); + null, null, null, null, null, null, indexes, null, null, null, null, null, null, null, + null)); } @Operator