RebuildNoteDb: Inject members instead of using getInstance
Change-Id: I9dccdd8220f8ee8ffff583e8c1aca5f7e378b539
This commit is contained in:
@@ -37,6 +37,7 @@ import com.google.gerrit.reviewdb.client.Project;
|
|||||||
import com.google.gerrit.reviewdb.client.RefNames;
|
import com.google.gerrit.reviewdb.client.RefNames;
|
||||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||||
import com.google.gerrit.server.config.AllUsersName;
|
import com.google.gerrit.server.config.AllUsersName;
|
||||||
|
import com.google.gerrit.server.config.GerritServerConfig;
|
||||||
import com.google.gerrit.server.git.GitRepositoryManager;
|
import com.google.gerrit.server.git.GitRepositoryManager;
|
||||||
import com.google.gerrit.server.git.MultiProgressMonitor;
|
import com.google.gerrit.server.git.MultiProgressMonitor;
|
||||||
import com.google.gerrit.server.git.MultiProgressMonitor.Task;
|
import com.google.gerrit.server.git.MultiProgressMonitor.Task;
|
||||||
@@ -51,11 +52,11 @@ import com.google.gerrit.server.schema.DisabledChangesReviewDbWrapper;
|
|||||||
import com.google.gwtorm.server.OrmException;
|
import com.google.gwtorm.server.OrmException;
|
||||||
import com.google.gwtorm.server.SchemaFactory;
|
import com.google.gwtorm.server.SchemaFactory;
|
||||||
import com.google.inject.AbstractModule;
|
import com.google.inject.AbstractModule;
|
||||||
|
import com.google.inject.Inject;
|
||||||
import com.google.inject.Injector;
|
import com.google.inject.Injector;
|
||||||
import com.google.inject.Key;
|
|
||||||
import com.google.inject.TypeLiteral;
|
|
||||||
|
|
||||||
import org.eclipse.jgit.lib.BatchRefUpdate;
|
import org.eclipse.jgit.lib.BatchRefUpdate;
|
||||||
|
import org.eclipse.jgit.lib.Config;
|
||||||
import org.eclipse.jgit.lib.NullProgressMonitor;
|
import org.eclipse.jgit.lib.NullProgressMonitor;
|
||||||
import org.eclipse.jgit.lib.ObjectId;
|
import org.eclipse.jgit.lib.ObjectId;
|
||||||
import org.eclipse.jgit.lib.Ref;
|
import org.eclipse.jgit.lib.Ref;
|
||||||
@@ -85,6 +86,28 @@ public class RebuildNotedb extends SiteProgram {
|
|||||||
private Injector dbInjector;
|
private Injector dbInjector;
|
||||||
private Injector sysInjector;
|
private Injector sysInjector;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private AllUsersName allUsersName;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private ChangeRebuilder rebuilder;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
@GerritServerConfig
|
||||||
|
private Config cfg;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private GitRepositoryManager repoManager;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private NotesMigration notesMigration;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private SchemaFactory<ReviewDb> schemaFactory;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private WorkQueue workQueue;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int run() throws Exception {
|
public int run() throws Exception {
|
||||||
mustHaveValidSite();
|
mustHaveValidSite();
|
||||||
@@ -96,8 +119,7 @@ public class RebuildNotedb extends SiteProgram {
|
|||||||
dbManager.start();
|
dbManager.start();
|
||||||
|
|
||||||
sysInjector = createSysInjector();
|
sysInjector = createSysInjector();
|
||||||
NotesMigration notesMigration = sysInjector.getInstance(
|
sysInjector.injectMembers(this);
|
||||||
NotesMigration.class);
|
|
||||||
if (!notesMigration.enabled()) {
|
if (!notesMigration.enabled()) {
|
||||||
die("Notedb is not enabled.");
|
die("Notedb is not enabled.");
|
||||||
}
|
}
|
||||||
@@ -107,16 +129,11 @@ public class RebuildNotedb extends SiteProgram {
|
|||||||
|
|
||||||
ListeningExecutorService executor = newExecutor();
|
ListeningExecutorService executor = newExecutor();
|
||||||
System.out.println("Rebuilding the notedb");
|
System.out.println("Rebuilding the notedb");
|
||||||
ChangeRebuilder rebuilder = sysInjector.getInstance(ChangeRebuilder.class);
|
|
||||||
|
|
||||||
Multimap<Project.NameKey, Change.Id> changesByProject =
|
Multimap<Project.NameKey, Change.Id> changesByProject =
|
||||||
getChangesByProject();
|
getChangesByProject();
|
||||||
AtomicBoolean ok = new AtomicBoolean(true);
|
AtomicBoolean ok = new AtomicBoolean(true);
|
||||||
Stopwatch sw = Stopwatch.createStarted();
|
Stopwatch sw = Stopwatch.createStarted();
|
||||||
GitRepositoryManager repoManager =
|
|
||||||
sysInjector.getInstance(GitRepositoryManager.class);
|
|
||||||
Project.NameKey allUsersName =
|
|
||||||
sysInjector.getInstance(AllUsersName.class);
|
|
||||||
try (Repository allUsersRepo =
|
try (Repository allUsersRepo =
|
||||||
repoManager.openMetadataRepository(allUsersName)) {
|
repoManager.openMetadataRepository(allUsersName)) {
|
||||||
deleteRefs(RefNames.REFS_DRAFT_COMMENTS, allUsersRepo);
|
deleteRefs(RefNames.REFS_DRAFT_COMMENTS, allUsersRepo);
|
||||||
@@ -206,8 +223,7 @@ public class RebuildNotedb extends SiteProgram {
|
|||||||
private ListeningExecutorService newExecutor() {
|
private ListeningExecutorService newExecutor() {
|
||||||
if (threads > 0) {
|
if (threads > 0) {
|
||||||
return MoreExecutors.listeningDecorator(
|
return MoreExecutors.listeningDecorator(
|
||||||
dbInjector.getInstance(WorkQueue.class)
|
workQueue.createQueue(threads, "RebuildChange"));
|
||||||
.createQueue(threads, "RebuildChange"));
|
|
||||||
} else {
|
} else {
|
||||||
return MoreExecutors.newDirectExecutorService();
|
return MoreExecutors.newDirectExecutorService();
|
||||||
}
|
}
|
||||||
@@ -217,8 +233,6 @@ public class RebuildNotedb extends SiteProgram {
|
|||||||
throws OrmException {
|
throws OrmException {
|
||||||
// Memorize all changes so we can close the db connection and allow
|
// Memorize all changes so we can close the db connection and allow
|
||||||
// rebuilder threads to use the full connection pool.
|
// rebuilder threads to use the full connection pool.
|
||||||
SchemaFactory<ReviewDb> schemaFactory = sysInjector.getInstance(Key.get(
|
|
||||||
new TypeLiteral<SchemaFactory<ReviewDb>>() {}));
|
|
||||||
Multimap<Project.NameKey, Change.Id> changesByProject =
|
Multimap<Project.NameKey, Change.Id> changesByProject =
|
||||||
ArrayListMultimap.create();
|
ArrayListMultimap.create();
|
||||||
try (ReviewDb db = schemaFactory.open()) {
|
try (ReviewDb db = schemaFactory.open()) {
|
||||||
|
Reference in New Issue
Block a user