Start migration to notedb implementation of PatchSetApprovals

Encapsulate the current state of the migration in a NotesMigration
class. For each database table (or broader group of functionality)
that we migrate to notedb, configure a boolean indicating whether that
data should be read from notes, defaulting to false.

Unlike reads, NotesMigration contains just a single boolean
indicating that data should be written. We don't attempt to write
just some types of data; as the migration continues we will just
rewrite history.

Since most existing reads of the PatchSetApprovals table have been
migrated to ApprovalsUtil, most implementation changes happen there.
There are a few other implementations scattered around, and some that
will require a bit more work (e.g. stamping normalized approvals at
submit time).

Change-Id: I5676267d4de607c385e8c9917a89333863b9c9e7
This commit is contained in:
Dave Borowitz
2013-12-09 11:58:38 -08:00
parent 498b19f419
commit d064abea4f
45 changed files with 616 additions and 245 deletions

View File

@@ -21,6 +21,7 @@ import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.notedb.ChangeNotes;
import com.google.gerrit.server.project.ChangeControl;
import com.google.inject.TypeLiteral;
@@ -53,6 +54,10 @@ public class RevisionResource implements RestResource, HasETag {
return getControl().getChange();
}
public ChangeNotes getNotes() {
return getChangeResource().getNotes();
}
public PatchSet getPatchSet() {
return ps;
}