Merge branch stable-2.16 * stable-2.16: Adapt to the JGit v4.5.x Change-Id: I9b420bd83a6ee77d3a70cf6e1504ea3a9920b8e0
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewnotes/CreateReviewNotes.java b/src/main/java/com/googlesource/gerrit/plugins/reviewnotes/CreateReviewNotes.java index d2a8c1d..da4aac5 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/reviewnotes/CreateReviewNotes.java +++ b/src/main/java/com/googlesource/gerrit/plugins/reviewnotes/CreateReviewNotes.java
@@ -18,18 +18,18 @@ import com.google.gerrit.common.data.LabelType; import com.google.gerrit.common.data.LabelTypes; import com.google.gerrit.extensions.registration.DynamicItem; +import com.google.gerrit.git.LockFailureException; import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.PatchSet; import com.google.gerrit.reviewdb.client.PatchSetApproval; import com.google.gerrit.reviewdb.client.Project; -import com.google.gerrit.reviewdb.server.ReviewDb; import com.google.gerrit.server.ApprovalsUtil; import com.google.gerrit.server.GerritPersonIdent; +import com.google.gerrit.server.PatchSetUtil; import com.google.gerrit.server.account.AccountCache; import com.google.gerrit.server.account.AccountState; import com.google.gerrit.server.config.AnonymousCowardName; import com.google.gerrit.server.config.UrlFormatter; -import com.google.gerrit.server.git.LockFailureException; import com.google.gerrit.server.git.NotesBranchUtil; import com.google.gerrit.server.notedb.ChangeNotes; import com.google.gerrit.server.project.NoSuchChangeException; @@ -62,7 +62,7 @@ private static final FluentLogger logger = FluentLogger.forEnclosingClass(); interface Factory { - CreateReviewNotes create(ReviewDb reviewDb, Project.NameKey project, Repository git); + CreateReviewNotes create(Project.NameKey project, Repository git); } private static final String REFS_NOTES_REVIEW = "refs/notes/review"; @@ -76,7 +76,7 @@ private final NotesBranchUtil.Factory notesBranchUtilFactory; private final Provider<InternalChangeQuery> queryProvider; private final DynamicItem<UrlFormatter> urlFormatter; - private final ReviewDb reviewDb; + private final PatchSetUtil psUtil; private final Project.NameKey project; private final Repository git; @@ -95,7 +95,7 @@ NotesBranchUtil.Factory notesBranchUtilFactory, Provider<InternalChangeQuery> queryProvider, DynamicItem<UrlFormatter> urlFormatter, - @Assisted ReviewDb reviewDb, + PatchSetUtil psUtil, @Assisted Project.NameKey project, @Assisted Repository git) { this.gerritServerIdent = gerritIdent; @@ -116,7 +116,7 @@ this.notesBranchUtilFactory = notesBranchUtilFactory; this.queryProvider = queryProvider; this.urlFormatter = urlFormatter; - this.reviewDb = reviewDb; + this.psUtil = psUtil; this.project = project; this.git = git; } @@ -149,7 +149,7 @@ for (RevCommit c : rw) { PatchSet ps = loadPatchSet(c, branch); if (ps != null) { - ChangeNotes notes = notesFactory.create(reviewDb, project, ps.getId().getParentKey()); + ChangeNotes notes = notesFactory.create(project, ps.getId().getParentKey()); ObjectId content = createNoteContent(notes, ps); if (content != null) { monitor.update(1); @@ -173,7 +173,7 @@ for (ChangeNotes cn : notes) { monitor.update(1); - PatchSet ps = reviewDb.patchSets().get(cn.getChange().currentPatchSetId()); + PatchSet ps = psUtil.current(cn); ObjectId commitId = ObjectId.fromString(ps.getRevision().get()); RevCommit commit = rw.parseCommit(commitId); getNotes().set(commitId, createNoteContent(cn, ps)); @@ -258,7 +258,7 @@ // commit time so we will be able to skip this normalization step. Change change = notes.getChange(); PatchSetApproval submit = null; - for (PatchSetApproval a : approvalsUtil.byPatchSet(reviewDb, notes, ps.getId(), null, null)) { + for (PatchSetApproval a : approvalsUtil.byPatchSet(notes, ps.getId(), null, null)) { if (a.getValue() == 0) { // Ignore 0 values. } else if (a.isLegacySubmit()) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewnotes/ExportReviewNotes.java b/src/main/java/com/googlesource/gerrit/plugins/reviewnotes/ExportReviewNotes.java index 4144381..ce159b4 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/reviewnotes/ExportReviewNotes.java +++ b/src/main/java/com/googlesource/gerrit/plugins/reviewnotes/ExportReviewNotes.java
@@ -23,14 +23,11 @@ import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.reviewdb.client.Project; -import com.google.gerrit.reviewdb.server.ReviewDb; import com.google.gerrit.server.git.GitRepositoryManager; import com.google.gerrit.server.notedb.ChangeNotes; import com.google.gerrit.server.update.RetryHelper; import com.google.gerrit.server.update.UpdateException; import com.google.gerrit.sshd.SshCommand; -import com.google.gwtorm.server.OrmException; -import com.google.gwtorm.server.SchemaFactory; import com.google.inject.Inject; import java.io.IOException; import java.util.List; @@ -48,8 +45,6 @@ @Inject private GitRepositoryManager gitManager; - @Inject private SchemaFactory<ReviewDb> database; - @Inject private CreateReviewNotes.Factory reviewNotesFactory; @Inject private ChangeNotes.Factory notesFactory; @@ -78,24 +73,23 @@ } private ListMultimap<Project.NameKey, ChangeNotes> mergedChanges() { - try (ReviewDb db = database.open()) { + try { return MultimapBuilder.hashKeys() .arrayListValues() .build( - notesFactory.create( - db, notes -> notes.getChange().getStatus() == Change.Status.MERGED)); - } catch (OrmException | IOException e) { + notesFactory.create(notes -> notes.getChange().getStatus() == Change.Status.MERGED)); + } catch (IOException e) { stderr.println("Cannot read changes from database " + e.getMessage()); return ImmutableListMultimap.of(); } } - private void export(ReviewDb db, Project.NameKey project, List<ChangeNotes> notes) + private void export(Project.NameKey project, List<ChangeNotes> notes) throws RestApiException, UpdateException { retryHelper.execute( updateFactory -> { try (Repository git = gitManager.openRepository(project)) { - CreateReviewNotes crn = reviewNotesFactory.create(db, project, git); + CreateReviewNotes crn = reviewNotesFactory.create(project, git); crn.createNotes(notes, monitor); crn.commitNotes(); } catch (RepositoryNotFoundException e) { @@ -128,12 +122,12 @@ private class Worker extends Thread { @Override public void run() { - try (ReviewDb db = database.open()) { + try { for (; ; ) { Map.Entry<Project.NameKey, List<ChangeNotes>> next = next(); if (next != null) { try { - export(db, next.getKey(), next.getValue()); + export(next.getKey(), next.getValue()); } catch (RestApiException | UpdateException e) { stderr.println(e.getMessage()); } @@ -141,8 +135,6 @@ break; } } - } catch (OrmException e) { - stderr.println(e.getMessage()); } finally { monitor.endWorker(); }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/reviewnotes/RefUpdateListener.java b/src/main/java/com/googlesource/gerrit/plugins/reviewnotes/RefUpdateListener.java index d8e0e83..198aa6c 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/reviewnotes/RefUpdateListener.java +++ b/src/main/java/com/googlesource/gerrit/plugins/reviewnotes/RefUpdateListener.java
@@ -19,14 +19,12 @@ import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.reviewdb.client.RefNames; -import com.google.gerrit.reviewdb.server.ReviewDb; import com.google.gerrit.server.config.GerritServerConfig; import com.google.gerrit.server.git.GitRepositoryManager; import com.google.gerrit.server.git.ProjectRunnable; import com.google.gerrit.server.git.WorkQueue; import com.google.gerrit.server.update.RetryHelper; import com.google.gerrit.server.update.UpdateException; -import com.google.gwtorm.server.SchemaFactory; import com.google.inject.Inject; import java.util.concurrent.Future; import org.eclipse.jgit.lib.Config; @@ -37,7 +35,6 @@ private static final FluentLogger logger = FluentLogger.forEnclosingClass(); private final CreateReviewNotes.Factory reviewNotesFactory; - private final SchemaFactory<ReviewDb> schema; private final GitRepositoryManager repoManager; private final WorkQueue workQueue; private final RetryHelper retryHelper; @@ -46,13 +43,11 @@ @Inject RefUpdateListener( CreateReviewNotes.Factory reviewNotesFactory, - SchemaFactory<ReviewDb> schema, GitRepositoryManager repoManager, WorkQueue workQueue, RetryHelper retryHelper, @GerritServerConfig Config config) { this.reviewNotesFactory = reviewNotesFactory; - this.schema = schema; this.repoManager = repoManager; this.workQueue = workQueue; this.retryHelper = retryHelper; @@ -104,9 +99,8 @@ retryHelper.execute( updateFactory -> { Project.NameKey projectName = new Project.NameKey(e.getProjectName()); - try (Repository git = repoManager.openRepository(projectName); - ReviewDb reviewDb = schema.open()) { - CreateReviewNotes crn = reviewNotesFactory.create(reviewDb, projectName, git); + try (Repository git = repoManager.openRepository(projectName)) { + CreateReviewNotes crn = reviewNotesFactory.create(projectName, git); crn.createNotes( e.getRefName(), ObjectId.fromString(e.getOldObjectId()),
diff --git a/src/main/resources/Documentation/cmd-export.md b/src/main/resources/Documentation/cmd-export.md index 011e51a..1472578 100644 --- a/src/main/resources/Documentation/cmd-export.md +++ b/src/main/resources/Documentation/cmd-export.md
@@ -19,8 +19,7 @@ each merged change. This task can take quite some time, but can run in the background -concurrently to the server if the database is MySQL or PostgreSQL. -If the database is H2, this task must be run by itself. +concurrently to the server. ACCESS ------