Merge branch 'stable-2.14'

* stable-2.14:
  HookArgs: Use IdentifiedUser.getNameEmail to format account name

Change-Id: Ibf42d2a6de21d8def960e7c57d66ca60d3dd9322
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookArgs.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookArgs.java
index f1b2915..cea53e5 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookArgs.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookArgs.java
@@ -21,6 +21,8 @@
 import com.google.gerrit.extensions.common.AccountInfo;
 import com.google.gerrit.extensions.common.ApprovalInfo;
 import com.google.gerrit.extensions.common.ChangeInfo;
+import com.google.gerrit.reviewdb.client.Account;
+import com.google.gerrit.server.IdentifiedUser;
 import com.google.gerrit.server.config.SitePaths;
 import com.google.gerrit.server.git.GitRepositoryManager;
 import com.google.inject.Provider;
@@ -29,7 +31,7 @@
 import java.util.Map;
 
 class HookArgs {
-  final String anonymousCowardName;
+  final IdentifiedUser.GenericFactory identifiedUserFactory;
   final Provider<String> urlProvider;
   final HookMetrics metrics;
   final GitRepositoryManager gitManager;
@@ -38,12 +40,12 @@
   private final List<String> args;
 
   HookArgs(
-      String anonymousCowardName,
+      IdentifiedUser.GenericFactory identifiedUserFactory,
       Provider<String> urlProvider,
       HookMetrics metrics,
       GitRepositoryManager gitManager,
       SitePaths sitePaths) {
-    this.anonymousCowardName = anonymousCowardName;
+    this.identifiedUserFactory = identifiedUserFactory;
     this.urlProvider = urlProvider;
     this.metrics = metrics;
     this.gitManager = gitManager;
@@ -113,10 +115,6 @@
   }
 
   private String format(AccountInfo account) {
-    StringBuilder who = new StringBuilder(firstNonNull(account.name, anonymousCowardName));
-    if (account.email != null) {
-      who.append(" (").append(account.email).append(")");
-    }
-    return who.toString();
+    return identifiedUserFactory.create(new Account.Id(account._accountId)).getNameEmail();
   }
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookFactory.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookFactory.java
index be08977..2969358 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookFactory.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookFactory.java
@@ -17,7 +17,7 @@
 import static com.google.common.base.MoreObjects.firstNonNull;
 
 import com.google.gerrit.common.Nullable;
-import com.google.gerrit.server.config.AnonymousCowardName;
+import com.google.gerrit.server.IdentifiedUser;
 import com.google.gerrit.server.config.CanonicalWebUrl;
 import com.google.gerrit.server.config.GerritServerConfig;
 import com.google.gerrit.server.config.SitePaths;
@@ -34,7 +34,7 @@
   private final HookQueue queue;
   private final HookExecutor syncHookExecutor;
   private final Config config;
-  private final String anonymousCowardName;
+  private final IdentifiedUser.GenericFactory identifiedUserFactory;
   private final HookMetrics metrics;
   private final Provider<String> urlProvider;
   private final Path hooksPath;
@@ -46,7 +46,7 @@
       HookQueue queue,
       HookExecutor syncHookExecutor,
       @GerritServerConfig Config config,
-      @AnonymousCowardName String anonymousCowardName,
+      IdentifiedUser.GenericFactory identifiedUserFactory,
       @CanonicalWebUrl @Nullable Provider<String> urlProvider,
       HookMetrics metrics,
       SitePaths sitePaths,
@@ -54,7 +54,7 @@
     this.queue = queue;
     this.syncHookExecutor = syncHookExecutor;
     this.config = config;
-    this.anonymousCowardName = anonymousCowardName;
+    this.identifiedUserFactory = identifiedUserFactory;
     this.metrics = metrics;
     this.urlProvider = urlProvider;
     this.gitManager = gitManager;
@@ -82,6 +82,6 @@
   }
 
   public HookArgs createArgs() {
-    return new HookArgs(anonymousCowardName, urlProvider, metrics, gitManager, sitePaths);
+    return new HookArgs(identifiedUserFactory, urlProvider, metrics, gitManager, sitePaths);
   }
 }