diff --git a/src/main/java/com/googlesource/gerrit/plugins/automerger/AutomergeChangeAction.java b/src/main/java/com/googlesource/gerrit/plugins/automerger/AutomergeChangeAction.java
index 15ae823..09a5b7d 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/automerger/AutomergeChangeAction.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/automerger/AutomergeChangeAction.java
@@ -27,7 +27,6 @@
 import com.google.inject.Inject;
 import com.google.inject.Provider;
 import java.io.IOException;
-import java.util.HashMap;
 import java.util.Map;
 import org.eclipse.jgit.errors.ConfigInvalidException;
 import org.slf4j.Logger;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/automerger/ConfigLoader.java b/src/main/java/com/googlesource/gerrit/plugins/automerger/ConfigLoader.java
index 5ddf308..26d26b3 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/automerger/ConfigLoader.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/automerger/ConfigLoader.java
@@ -123,7 +123,7 @@
 
   public Map<String, String> getFromCrossHostMap(String fromBranch, Set<String> branches)
       throws ConfigInvalidException {
-    Map<String, String> fromCrossHostMap = new HashMap<String, String>();
+    Map<String, String> fromCrossHostMap = new HashMap<>();
     for (String branch : branches) {
       String fromCrossHost = getFromCrossHost(fromBranch, branch);
       if (fromCrossHost != null) {
@@ -141,7 +141,7 @@
 
   public Map<String, String> getToCrossHostMap(String toBranch, Set<String> branches)
       throws ConfigInvalidException {
-    Map<String, String> toCrossHostMap = new HashMap<String, String>();
+    Map<String, String> toCrossHostMap = new HashMap<>();
     for (String branch : branches) {
       String toCrossHost = getToCrossHost(branch, toBranch);
       if (toCrossHost != null) {
