Merge branch 'stable-3.4' into stable-3.5

* stable-3.4:
  Bump project and Gerrit version to v3.4.8
  Use a simpler named binding for the LocalDiskRepositoryManager
  Associated GitRepositoryManager indirectly through a Named binding

Change-Id: I3665602e82b01d559646302bf61a7f336e6ed816
diff --git a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbGitRepositoryManager.java b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbGitRepositoryManager.java
index 9d942ce..aa56889 100644
--- a/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbGitRepositoryManager.java
+++ b/src/main/java/com/gerritforge/gerrit/globalrefdb/validation/SharedRefDbGitRepositoryManager.java
@@ -14,6 +14,7 @@
 
 package com.gerritforge.gerrit.globalrefdb.validation;
 
+import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableSet;
 import com.google.gerrit.entities.Project;
 import com.google.gerrit.entities.Project.NameKey;
@@ -50,7 +51,11 @@
    */
   public static final String IGNORED_REFS = "ignored_refs";
 
-  private final GitRepositoryManager gitRepositoryManager;
+  @Inject(optional = true)
+  @Named("LocalDiskRepositoryManager")
+  private GitRepositoryManager gitRepositoryManager;
+
+  private final LocalDiskRepositoryManager localDiskRepositoryManager;
   private final SharedRefDbRepository.Factory sharedRefDbRepoFactory;
 
   @Inject(optional = true)
@@ -71,7 +76,7 @@
       SharedRefDbRepository.Factory sharedRefDbRepoFactory,
       LocalDiskRepositoryManager localDiskRepositoryManager) {
     this.sharedRefDbRepoFactory = sharedRefDbRepoFactory;
-    this.gitRepositoryManager = localDiskRepositoryManager;
+    this.localDiskRepositoryManager = localDiskRepositoryManager;
   }
 
   /**
@@ -85,7 +90,7 @@
   @Override
   public Repository openRepository(Project.NameKey name)
       throws RepositoryNotFoundException, IOException {
-    return wrap(name, gitRepositoryManager.openRepository(name));
+    return wrap(name, repositoryManager().openRepository(name));
   }
 
   /**
@@ -101,12 +106,12 @@
   @Override
   public Repository createRepository(Project.NameKey name)
       throws RepositoryCaseMismatchException, RepositoryNotFoundException, IOException {
-    return wrap(name, gitRepositoryManager.createRepository(name));
+    return wrap(name, repositoryManager().createRepository(name));
   }
 
   @Override
   public SortedSet<Project.NameKey> list() {
-    return gitRepositoryManager.list();
+    return repositoryManager().list();
   }
 
   @Override
@@ -122,4 +127,8 @@
   private Repository wrap(Project.NameKey projectName, Repository projectRepo) {
     return sharedRefDbRepoFactory.create(projectName.get(), projectRepo, ignoredRefs);
   }
+
+  private GitRepositoryManager repositoryManager() {
+    return MoreObjects.firstNonNull(gitRepositoryManager, localDiskRepositoryManager);
+  }
 }