Fix compilation against latest master version of Gerrit

- AccountLoader interface has changed
- AccountInfo class package and members have changed
- Remove catch of exception that is no longer thrown

Also fix compilation warnings:

- Remove declaration of unthrown exceptions
- Remove redundant declaration of types
- Add missing @Override annotations

Change-Id: I98a7ea5c76ecf073ead1a8934c200f234609b9fc
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUser.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUser.java
index 5284fa9..c1684d8 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUser.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUser.java
@@ -20,6 +20,7 @@
 import com.google.gerrit.common.TimeUtil;
 import com.google.gerrit.extensions.annotations.PluginName;
 import com.google.gerrit.extensions.annotations.RequiresCapability;
+import com.google.gerrit.extensions.common.AccountInfo;
 import com.google.gerrit.extensions.restapi.AuthException;
 import com.google.gerrit.extensions.restapi.BadRequestException;
 import com.google.gerrit.extensions.restapi.ResourceConflictException;
@@ -37,7 +38,7 @@
 import com.google.gerrit.server.GerritPersonIdent;
 import com.google.gerrit.server.IdentifiedUser;
 import com.google.gerrit.server.account.AccountCache;
-import com.google.gerrit.server.account.AccountInfo;
+import com.google.gerrit.server.account.AccountLoader;
 import com.google.gerrit.server.account.CreateAccount;
 import com.google.gerrit.server.account.GroupCache;
 import com.google.gerrit.server.config.ConfigResource;
@@ -104,7 +105,7 @@
   private final ProjectLevelConfig storage;
   private final DateFormat rfc2822DateFormatter;
   private final Provider<GetConfig> getConfig;
-  private final AccountInfo.Loader.Factory accountLoader;
+  private final AccountLoader.Factory accountLoader;
 
   @Inject
   CreateServiceUser(PluginConfigFactory cfgFactory,
@@ -120,7 +121,7 @@
       ProjectCache projectCache,
       @Assisted String username,
       Provider<GetConfig> getConfig,
-      AccountInfo.Loader.Factory accountLoader) {
+      AccountLoader.Factory accountLoader) {
     this.cfg = cfgFactory.getFromGerritConfig(pluginName);
     this.createAccountFactory = createAccountFactory;
     this.groupCache = groupCache;
@@ -184,7 +185,9 @@
         new ServiceUserInput(username, input.email, input.sshKey);
     Response<AccountInfo> response =
         createAccountFactory.create(username).apply(TopLevelResource.INSTANCE, in);
-    addToGroups(response.value()._id, cfg.getStringList("group"));
+
+    addToGroups(new Account.Id(response.value()._accountId),
+        cfg.getStringList("group"));
 
     String creator = user.getUserName();
     Account.Id creatorId = ((IdentifiedUser)user).getAccountId();
@@ -202,7 +205,7 @@
     storage.commit(md);
 
     ServiceUserInfo info = new ServiceUserInfo(response.value());
-    AccountInfo.Loader al = accountLoader.create(true);
+    AccountLoader al = accountLoader.create(true);
     info.createdBy = al.get(creatorId);
     al.fill();
     info.createdAt = creationDate;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUserNotes.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUserNotes.java
index 86d53a4..006e2b6 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUserNotes.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/CreateServiceUserNotes.java
@@ -17,9 +17,9 @@
 import static com.googlesource.gerrit.plugins.serviceuser.CreateServiceUser.KEY_CREATED_BY;
 import static com.googlesource.gerrit.plugins.serviceuser.CreateServiceUser.KEY_OWNER;
 
+import com.google.gerrit.extensions.common.AccountInfo;
 import com.google.gerrit.reviewdb.client.Project;
 import com.google.gerrit.server.GerritPersonIdent;
-import com.google.gerrit.server.account.AccountInfo;
 import com.google.gerrit.server.config.AnonymousCowardName;
 import com.google.gerrit.server.git.NotesBranchUtil;
 import com.google.gwtorm.server.OrmException;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetServiceUser.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetServiceUser.java
index 497bc47..1b0f065 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetServiceUser.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/GetServiceUser.java
@@ -23,8 +23,9 @@
 import com.google.gerrit.extensions.restapi.ResourceNotFoundException;
 import com.google.gerrit.extensions.restapi.Response;
 import com.google.gerrit.extensions.restapi.RestReadView;
+import com.google.gerrit.extensions.common.AccountInfo;
 import com.google.gerrit.reviewdb.client.Account;
-import com.google.gerrit.server.account.AccountInfo;
+import com.google.gerrit.server.account.AccountLoader;
 import com.google.gerrit.server.account.GetAccount;
 import com.google.gerrit.server.git.ProjectLevelConfig;
 import com.google.gerrit.server.group.GroupJson.GroupInfo;
@@ -42,12 +43,12 @@
   private final String pluginName;
   private final ProjectCache projectCache;
   private final GetOwner getOwner;
-  private final AccountInfo.Loader.Factory accountLoader;
+  private final AccountLoader.Factory accountLoader;
 
   @Inject
   GetServiceUser(Provider<GetAccount> getAccount,
       @PluginName String pluginName, ProjectCache projectCache,
-      GetOwner getOwner, AccountInfo.Loader.Factory accountLoader) {
+      GetOwner getOwner, AccountLoader.Factory accountLoader) {
     this.getAccount = getAccount;
     this.pluginName = pluginName;
     this.projectCache = projectCache;
@@ -66,7 +67,7 @@
     }
 
     ServiceUserInfo info = new ServiceUserInfo(getAccount.get().apply(rsrc));
-    AccountInfo.Loader al = accountLoader.create(true);
+    AccountLoader al = accountLoader.create(true);
     info.createdBy =
         al.get(new Account.Id(db.getInt(USER, username, KEY_CREATOR_ID, -1)));
     al.fill();
@@ -88,7 +89,7 @@
     public GroupInfo owner;
 
     public ServiceUserInfo(AccountInfo info) {
-      super(info._id);
+      super(info._accountId);
       _accountId = info._accountId;
       name = info.name;
       email = info.email;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/HeaderFormatter.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/HeaderFormatter.java
index 157d7d7..44bc973 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/HeaderFormatter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/HeaderFormatter.java
@@ -15,7 +15,7 @@
 package com.googlesource.gerrit.plugins.serviceuser;
 
 import com.google.common.base.Strings;
-import com.google.gerrit.server.account.AccountInfo;
+import com.google.gerrit.extensions.common.AccountInfo;
 
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
@@ -71,7 +71,7 @@
     }
 
     if (!wroteData) {
-      sb.append(anonymousCowardName).append(" #").append(user._id.get());
+      sb.append(anonymousCowardName).append(" #").append(user._accountId);
     }
   }
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/Module.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/Module.java
index f1c2618..66dd394 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/Module.java
@@ -16,7 +16,7 @@
 
 import static com.google.gerrit.server.config.ConfigResource.CONFIG_KIND;
 import static com.googlesource.gerrit.plugins.serviceuser.ServiceUserResource.SERVICE_USER_KIND;
-import static com.googlesource.gerrit.plugins.serviceuser.ServiceUserResource.SSH_KEY_KIND;
+import static com.googlesource.gerrit.plugins.serviceuser.ServiceUserResource.SERVICE_USER_SSH_KEY_KIND;
 
 import com.google.gerrit.extensions.annotations.Exports;
 import com.google.gerrit.extensions.config.CapabilityDefinition;
@@ -46,7 +46,7 @@
       @Override
       protected void configure() {
         DynamicMap.mapOf(binder(), SERVICE_USER_KIND);
-        DynamicMap.mapOf(binder(), SSH_KEY_KIND);
+        DynamicMap.mapOf(binder(), SERVICE_USER_SSH_KEY_KIND);
         bind(ServiceUserCollection.class);
         child(CONFIG_KIND, "serviceusers").to(ServiceUserCollection.class);
         get(SERVICE_USER_KIND).to(GetServiceUser.class);
@@ -54,9 +54,9 @@
         get(CONFIG_KIND, "config").to(GetConfig.class);
         put(CONFIG_KIND, "config").to(PutConfig.class);
         child(SERVICE_USER_KIND, "sshkeys").to(SshKeys.class);
-        get(SSH_KEY_KIND).to(GetSshKey.class);
+        get(SERVICE_USER_SSH_KEY_KIND).to(GetSshKey.class);
         post(SERVICE_USER_KIND, "sshkeys").to(AddSshKey.class);
-        delete(SSH_KEY_KIND).to(DeleteSshKey.class);
+        delete(SERVICE_USER_SSH_KEY_KIND).to(DeleteSshKey.class);
         get(SERVICE_USER_KIND, "name").to(GetName.class);
         put(SERVICE_USER_KIND, "name").to(PutName.class);
         delete(SERVICE_USER_KIND, "name").to(PutName.class);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutConfig.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutConfig.java
index 7a8ee84..4986cec 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutConfig.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/PutConfig.java
@@ -60,8 +60,7 @@
 
   @Inject
   PutConfig(PluginConfigFactory cfgFactory, SitePaths sitePaths,
-      @PluginName String pluginName, GroupCache groupCache) throws IOException,
-      ConfigInvalidException {
+      @PluginName String pluginName, GroupCache groupCache) {
     this.cfgFactory = cfgFactory;
     this.sitePaths = sitePaths;
     this.pluginName = pluginName;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserResolver.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserResolver.java
index 7f60c4a..fea4548 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserResolver.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserResolver.java
@@ -14,7 +14,7 @@
 
 package com.googlesource.gerrit.plugins.serviceuser;
 
-import com.google.gerrit.extensions.restapi.MethodNotAllowedException;
+import com.google.gerrit.extensions.common.AccountInfo;
 import com.google.gerrit.extensions.restapi.ResourceNotFoundException;
 import com.google.gerrit.reviewdb.client.Account;
 import com.google.gerrit.reviewdb.client.AccountGroup;
@@ -24,7 +24,6 @@
 import com.google.gerrit.server.CurrentUser;
 import com.google.gerrit.server.IdentifiedUser;
 import com.google.gerrit.server.account.AccountCache;
-import com.google.gerrit.server.account.AccountInfo;
 import com.google.gerrit.server.account.AccountResolver;
 import com.google.gerrit.server.account.AccountState;
 import com.google.gerrit.server.account.GroupMembership;
@@ -40,8 +39,6 @@
 import com.googlesource.gerrit.plugins.serviceuser.GetServiceUser.ServiceUserInfo;
 
 import org.eclipse.jgit.lib.PersonIdent;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -51,9 +48,6 @@
 
 @Singleton
 class ServiceUserResolver {
-  private static final Logger log =
-      LoggerFactory.getLogger(ServiceUserResolver.class);
-
   private final AccountResolver resolver;
   private final IdentifiedUser.GenericFactory genericUserFactory;
   private final Provider<GetServiceUser> getServiceUser;
@@ -164,10 +158,6 @@
           owners.add(a);
         }
         return owners;
-      } catch (MethodNotAllowedException e) {
-        log.error(String.format("Failed to list members of owner group %s for service user %s.",
-            serviceUser.owner.name, serviceUser.username));
-        return Collections.emptyList();
       } finally {
         tl.setContext(old);
       }
@@ -180,7 +170,7 @@
       throws OrmException {
     List<AccountInfo> activeOwners = new ArrayList<>();
     for (AccountInfo owner : listOwners(serviceUser)) {
-      AccountState accountState = accountCache.get(owner._id);
+      AccountState accountState = accountCache.get(new Account.Id(owner._accountId));
       if (accountState != null && accountState.getAccount().isActive()) {
         activeOwners.add(owner);
       }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserResource.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserResource.java
index 6d9d4ec..2a37815 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserResource.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ServiceUserResource.java
@@ -24,7 +24,7 @@
   static final TypeLiteral<RestView<ServiceUserResource>> SERVICE_USER_KIND =
       new TypeLiteral<RestView<ServiceUserResource>>() {};
 
-  static final TypeLiteral<RestView<SshKey>> SSH_KEY_KIND =
+  static final TypeLiteral<RestView<SshKey>> SERVICE_USER_SSH_KEY_KIND =
       new TypeLiteral<RestView<SshKey>>() {};
 
   ServiceUserResource(IdentifiedUser user) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ValidateServiceUserCommits.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ValidateServiceUserCommits.java
index 44c2d15..c0684e7 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ValidateServiceUserCommits.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/ValidateServiceUserCommits.java
@@ -14,6 +14,7 @@
 
 package com.googlesource.gerrit.plugins.serviceuser;
 
+import com.google.gerrit.reviewdb.client.Account;
 import com.google.gerrit.server.account.AccountCache;
 import com.google.gerrit.server.account.AccountState;
 import com.google.gerrit.server.events.CommitReceivedEvent;
@@ -59,7 +60,8 @@
               receiveEvent.commit.getId().getName(), committer.getName(),
               committer.getEmailAddress()));
         } else {
-          AccountState creator = accountCache.get(serviceUser.createdBy._id);
+          AccountState creator = accountCache.get(
+              new Account.Id(serviceUser.createdBy._accountId));
           if (creator == null || !creator.getAccount().isActive()) {
             throw new CommitValidationException(String.format(
                 "Commit %s of service user %s (%s) is rejected because "
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/client/CreateServiceUserScreen.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/client/CreateServiceUserScreen.java
index ae600e7..65ce461 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/client/CreateServiceUserScreen.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/client/CreateServiceUserScreen.java
@@ -195,6 +195,7 @@
         p.add(new Label("The service user '" + username + "' was created."));
         Button okButton = new Button("OK");
         okButton.addClickHandler(new ClickHandler() {
+          @Override
           public void onClick(ClickEvent event) {
             successDialog.hide();
           }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/client/OnEditEnabler.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/client/OnEditEnabler.java
index ecfee9f..233ca30 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/client/OnEditEnabler.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/client/OnEditEnabler.java
@@ -46,11 +46,11 @@
    MouseUpHandler, ChangeHandler, ValueChangeHandler<Object> {
 
   private final FocusWidget widget;
-  private Map<TextBoxBase, String> strings = new HashMap<TextBoxBase, String>();
+  private Map<TextBoxBase, String> strings = new HashMap<>();
   private String originalValue;
 
 
-  // The first parameter to the contructors must be the FocusWidget to enable,
+  // The first parameter to the constructors must be the FocusWidget to enable,
   // subsequent parameters are widgets to listenTo.
 
   public OnEditEnabler(final FocusWidget w, final TextBoxBase tb) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/client/SshPanel.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/client/SshPanel.java
index 53db9e9..7764554 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/client/SshPanel.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/client/SshPanel.java
@@ -156,6 +156,7 @@
       new RestApi("config").id("server")
           .view(Plugin.get().getPluginName(), "serviceusers").id(serviceUser)
           .view("sshkeys").post(txt, new AsyncCallback<SshKeyInfo>() {
+        @Override
         public void onSuccess(SshKeyInfo k) {
           addTxt.setText("");
           keys.addOneKey(k);
@@ -215,7 +216,7 @@
     private ValueChangeHandler<Boolean> updateDeleteHandler;
 
     SshKeyTable() {
-      this.sshKeyInfos = new HashMap<Integer, SshKeyInfo>();
+      this.sshKeyInfos = new HashMap<>();
       setStyleName("serviceuser-sshKeyTable");
       setWidth("");
       setText(0, 2, "Status");
@@ -245,7 +246,7 @@
     }
 
     void deleteChecked() {
-      final HashSet<Integer> sequenceNumbers = new HashSet<Integer>();
+      final HashSet<Integer> sequenceNumbers = new HashSet<>();
       for (int row = 1; row < getRowCount(); row++) {
         SshKeyInfo k = getRowItem(row);
         if (k != null && ((CheckBox) getWidget(row, 1)).getValue()) {
@@ -259,6 +260,7 @@
           new RestApi("config").id("server")
               .view(Plugin.get().getPluginName(), "serviceusers").id(serviceUser)
               .view("sshkeys").id(seq).delete(new AsyncCallback<NoContent>() {
+                @Override
                 public void onSuccess(NoContent result) {
                   for (int row = 1; row < getRowCount();) {
                     SshKeyInfo k = getRowItem(row);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/client/StringListPanel.java b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/client/StringListPanel.java
index 2a2f970..a809a6d 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/serviceuser/client/StringListPanel.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/serviceuser/client/StringListPanel.java
@@ -140,7 +140,7 @@
     }
 
     List<String> getValues() {
-      List<String> values = new ArrayList<String>();
+      List<String> values = new ArrayList<>();
       for (int row = 1; row < getRowCount(); row++) {
         values.add(getText(row, 1));
       }