ConfigureProjectStep: Use Provider for MetaDataUpdate.User
ConfigureProjectStep is annotated as @Singleton which means it's
MetaDataUpdate.User gets injected at server startup. If we don't
user a Provider, the commit time on any commits made by this
MetaDataUpdate will be the time that the server started.
Change-Id: I634053ecb28422191a940c24fd6fdd97641b2eb5
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ConfigureProjectStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ConfigureProjectStep.java
index 6aefa97..9497262 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ConfigureProjectStep.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ConfigureProjectStep.java
@@ -22,6 +22,7 @@
import com.google.gerrit.server.git.ProjectConfig;
import com.google.gerrit.server.project.ProjectCache;
import com.google.inject.Inject;
+import com.google.inject.Provider;
import com.google.inject.Singleton;
import org.eclipse.jgit.lib.ProgressMonitor;
@@ -31,13 +32,13 @@
@Singleton
class ConfigureProjectStep {
private final ProjectCache projectCache;
- private final MetaDataUpdate.User metaDataUpdateFactory;
+ private final Provider<MetaDataUpdate.User> metaDataUpdateFactory;
private final AllProjectsName allProjectsName;
@Inject
ConfigureProjectStep(
ProjectCache projectCache,
- MetaDataUpdate.User metaDataUpdateFactory,
+ Provider<MetaDataUpdate.User> metaDataUpdateFactory,
AllProjectsName allProjectsName) {
this.projectCache = projectCache;
this.metaDataUpdateFactory = metaDataUpdateFactory;
@@ -51,7 +52,7 @@
Project p = projectConfig.getProject();
if (!p.getParent(allProjectsName).equals(parentName)) {
p.setParentName(parentName);
- MetaDataUpdate md = metaDataUpdateFactory.create(name);
+ MetaDataUpdate md = metaDataUpdateFactory.get().create(name);
md.setMessage("Set Parent\n");
projectConfig.commit(md);
projectCache.evict(p);