Migrate last ProjectIndex FieldDef to IndexField
This change finalize the migration started in the change 356169.
And makes it possible to finally clean-up references to FieldDef
Change-Id: Ie9e3a1acac27061774ea1f79038dd63f886927c9
Release-Notes:skip
diff --git a/java/com/google/gerrit/index/project/ProjectField.java b/java/com/google/gerrit/index/project/ProjectField.java
index e050f53..ff55546 100644
--- a/java/com/google/gerrit/index/project/ProjectField.java
+++ b/java/com/google/gerrit/index/project/ProjectField.java
@@ -15,11 +15,9 @@
package com.google.gerrit.index.project;
import static com.google.common.collect.ImmutableList.toImmutableList;
-import static com.google.gerrit.index.FieldDef.storedOnly;
import com.google.gerrit.entities.Project;
import com.google.gerrit.entities.RefNames;
-import com.google.gerrit.index.FieldDef;
import com.google.gerrit.index.IndexedField;
import com.google.gerrit.index.RefState;
import com.google.gerrit.index.SchemaUtil;
@@ -90,12 +88,17 @@
*
* <p>Emitted as UTF-8 encoded strings of the form {@code project:ref/name:[hex sha]}.
*/
- public static final FieldDef<ProjectData, Iterable<byte[]>> REF_STATE =
- storedOnly("ref_state")
- .buildRepeatable(
+ public static final IndexedField<ProjectData, Iterable<byte[]>> REF_STATE_FIELD =
+ IndexedField.<ProjectData>iterableByteArrayBuilder("RefState")
+ .stored()
+ .required()
+ .build(
projectData ->
projectData.tree().stream()
.filter(p -> p.getProject().getConfigRefState() != null)
.map(p -> toRefState(p.getProject()))
.collect(toImmutableList()));
+
+ public static final IndexedField<ProjectData, Iterable<byte[]>>.SearchSpec REF_STATE_SPEC =
+ REF_STATE_FIELD.storedOnly("ref_state");
}
diff --git a/java/com/google/gerrit/index/project/ProjectSchemaDefinitions.java b/java/com/google/gerrit/index/project/ProjectSchemaDefinitions.java
index 05c23e1..a9e7edc 100644
--- a/java/com/google/gerrit/index/project/ProjectSchemaDefinitions.java
+++ b/java/com/google/gerrit/index/project/ProjectSchemaDefinitions.java
@@ -50,9 +50,11 @@
static final Schema<ProjectData> V2 =
schema(
V1,
- ImmutableList.of(ProjectField.REF_STATE),
- ImmutableList.<IndexedField<ProjectData, ?>>of(ProjectField.STATE_FIELD),
- ImmutableList.<IndexedField<ProjectData, ?>.SearchSpec>of(ProjectField.STATE_SPEC));
+ ImmutableList.of(),
+ ImmutableList.<IndexedField<ProjectData, ?>>of(
+ ProjectField.STATE_FIELD, ProjectField.REF_STATE_FIELD),
+ ImmutableList.<IndexedField<ProjectData, ?>.SearchSpec>of(
+ ProjectField.STATE_SPEC, ProjectField.REF_STATE_SPEC));
// Bump Lucene version requires reindexing
@Deprecated static final Schema<ProjectData> V3 = schema(V2);
diff --git a/java/com/google/gerrit/server/index/project/StalenessChecker.java b/java/com/google/gerrit/server/index/project/StalenessChecker.java
index 9f6bb31..b2e24e4 100644
--- a/java/com/google/gerrit/server/index/project/StalenessChecker.java
+++ b/java/com/google/gerrit/server/index/project/StalenessChecker.java
@@ -40,7 +40,7 @@
*/
public class StalenessChecker {
private static final ImmutableSet<String> FIELDS =
- ImmutableSet.of(ProjectField.NAME_SPEC.getName(), ProjectField.REF_STATE.getName());
+ ImmutableSet.of(ProjectField.NAME_SPEC.getName(), ProjectField.REF_STATE_SPEC.getName());
private final ProjectCache projectCache;
private final ProjectIndexCollection indexes;
@@ -74,7 +74,7 @@
}
SetMultimap<Project.NameKey, RefState> indexedRefStates =
- RefState.parseStates(result.get().getValue(ProjectField.REF_STATE));
+ RefState.parseStates(result.get().getValue(ProjectField.REF_STATE_SPEC));
SetMultimap<Project.NameKey, RefState> currentRefStates =
MultimapBuilder.hashKeys().hashSetValues().build();
diff --git a/javatests/com/google/gerrit/acceptance/api/project/ProjectIndexerIT.java b/javatests/com/google/gerrit/acceptance/api/project/ProjectIndexerIT.java
index 93f91dd..4302b50 100644
--- a/javatests/com/google/gerrit/acceptance/api/project/ProjectIndexerIT.java
+++ b/javatests/com/google/gerrit/acceptance/api/project/ProjectIndexerIT.java
@@ -54,19 +54,19 @@
@Inject private IndexOperations.Project projectIndexOperations;
private static final ImmutableSet<String> FIELDS =
- ImmutableSet.of(ProjectField.NAME_SPEC.getName(), ProjectField.REF_STATE.getName());
+ ImmutableSet.of(ProjectField.NAME_SPEC.getName(), ProjectField.REF_STATE_SPEC.getName());
@Test
public void indexProject_indexesRefStateOfProjectAndParents() throws Exception {
projectIndexer.index(project);
ProjectIndex i = indexes.getSearchIndex();
- assertThat(i.getSchema().hasField(ProjectField.REF_STATE)).isTrue();
+ assertThat(i.getSchema().hasField(ProjectField.REF_STATE_SPEC)).isTrue();
Optional<FieldBundle> result =
i.getRaw(project, QueryOptions.create(indexConfig, 0, 1, FIELDS));
assertThat(result).isPresent();
- Iterable<byte[]> refState = result.get().getValue(ProjectField.REF_STATE);
+ Iterable<byte[]> refState = result.get().getValue(ProjectField.REF_STATE_SPEC);
assertThat(refState).isNotEmpty();
Map<Project.NameKey, Collection<RefState>> states = RefState.parseStates(refState).asMap();