Partially revert making GerritRemoteReader injectable

For a cross-host implementation, it is enough to wrap
GitRepositoryManager, no need to expose GerritRemoteReader.

Making GerritRemoteReader static still make sense and will help later to
plug a different repository manager.

Change-Id: I63417c12c8e8d8043f52dbaa4661c5028f43925d
diff --git a/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestModule.java b/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestModule.java
index b1666ac..33aa1dd 100644
--- a/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestModule.java
+++ b/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestModule.java
@@ -33,8 +33,6 @@
     DynamicSet.bind(binder(), LifecycleListener.class)
         .to(SuperManifestRefUpdatedListener.class)
         .in(SINGLETON);
-    bind(SuperManifestRefUpdatedListener.GerritRemoteReader.class)
-        .to(SuperManifestRefUpdatedListener.GerritRemoteReaderImpl.class);
     post(BRANCH_KIND, "update_manifest").to(SuperManifestRefUpdatedListener.class).in(SINGLETON);
   }
 }
diff --git a/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestRefUpdatedListener.java b/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestRefUpdatedListener.java
index 8134e14..c8f7895 100644
--- a/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestRefUpdatedListener.java
+++ b/java/com/googlesource/gerrit/plugins/supermanifest/SuperManifestRefUpdatedListener.java
@@ -43,7 +43,6 @@
 import com.google.inject.Inject;
 import com.google.inject.Provider;
 import com.google.inject.Singleton;
-import java.io.Closeable;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.io.StringWriter;
@@ -82,7 +81,7 @@
         RestModifyView<BranchResource, BranchInput> {
   private static final FluentLogger logger = FluentLogger.forEnclosingClass();
 
-  private final Provider<GerritRemoteReader> remoteReaderProvider;
+  private final GitRepositoryManager repoManager;
   private final URI canonicalWebUrl;
   private final PluginConfigFactory cfgFactory;
   private final String pluginName;
@@ -105,14 +104,14 @@
       PluginConfigFactory cfgFactory,
       ProjectCache projectCache,
       @GerritPersonIdent Provider<PersonIdent> serverIdent,
-      Provider<GerritRemoteReader> remoteReaderProvider,
+      GitRepositoryManager repoManager,
       Provider<IdentifiedUser> identifiedUser,
       PermissionBackend permissionBackend) {
 
     this.pluginName = pluginName;
     this.serverIdent = serverIdent;
     this.allProjectsName = allProjectsName;
-    this.remoteReaderProvider = remoteReaderProvider;
+    this.repoManager = repoManager;
     try {
       this.canonicalWebUrl = new URI(canonicalWebUrl);
     } catch (URISyntaxException e) {
@@ -331,7 +330,8 @@
         throw new ConfigInvalidException(
             String.format("invalid toolType: %s", c.getToolType().name()));
     }
-    try (GerritRemoteReader reader = remoteReaderProvider.get()) {
+    try (GerritRemoteReader reader =
+        new GerritRemoteReader(repoManager, canonicalWebUrl.toString())) {
       subModuleUpdater.update(reader, c, refName);
     }
   }
@@ -354,26 +354,14 @@
     return trimmed.toArray(new StackTraceElement[trimmed.size()]);
   }
 
-  interface GerritRemoteReader extends RepoCommand.RemoteReader, Closeable {
-    /**
-     * @param name repository name relative to current host (e.g. "submodule" for
-     *     "gerrit.googlesource.com/submodule")
-     * @return the open repository. The reader keeps it cached, so the caller MUST not close it.
-     * @throws IOException error opening the repo.
-     */
-    Repository openRepository(String name) throws IOException;
-  }
-
   // GerritRemoteReader is for injecting Gerrit's Git implementation into JGit.
-  static class GerritRemoteReaderImpl implements GerritRemoteReader {
+  static class GerritRemoteReader implements RepoCommand.RemoteReader, AutoCloseable {
     private static final FluentLogger logger = FluentLogger.forEnclosingClass();
     private final Map<String, Repository> repos;
     private final GitRepositoryManager repoManager;
     private final URI canonicalWebUrl;
 
-    @Inject
-    GerritRemoteReaderImpl(
-        GitRepositoryManager repoManager, @CanonicalWebUrl String canonicalWebUrl) {
+    GerritRemoteReader(GitRepositoryManager repoManager, @CanonicalWebUrl String canonicalWebUrl) {
       this.repos = new HashMap<>();
       this.repoManager = repoManager;
       try {
@@ -445,7 +433,6 @@
           tw.getFileMode(0));
     }
 
-    @Override
     public Repository openRepository(String name) throws IOException {
       name = urlToRepoKey(canonicalWebUrl, name);
       if (repos.containsKey(name)) {