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);