Merge branch 'stable-3.2' into stable-3.3

* stable-3.2:
  Stop broadcasting accounts cache eviction
  CachePatternMatcher: Adapt the code to removal of account caches
  Upgrade bazlets to latest stable-2.16 to build with 2.16.23 API

Change-Id: I511663c5a48d444215200db58933a7f7b29aca21
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/Configuration.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/Configuration.java
index 9af312d..4ce15eb 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/Configuration.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/Configuration.java
@@ -88,7 +88,7 @@
   }
 
   @VisibleForTesting
-  Configuration(Config cfg, SitePaths site) {
+  public Configuration(Config cfg, SitePaths site) {
     main = new Main(site, cfg);
     autoReindex = new AutoReindex(cfg);
     peerInfo = new PeerInfo(cfg);
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcher.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcher.java
index 9a8adce..baf512f 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcher.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcher.java
@@ -26,7 +26,7 @@
 @Singleton
 class CachePatternMatcher {
   private static final List<String> DEFAULT_PATTERNS =
-      ImmutableList.of("^accounts.*", "^groups.*", "ldap_usernames", "projects", "sshkeys");
+      ImmutableList.of("^groups.*", "ldap_usernames", "projects", "sshkeys");
 
   private final Pattern pattern;
 
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/CacheEvictionHandlerTest.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/CacheEvictionHandlerTest.java
new file mode 100644
index 0000000..e6633d8
--- /dev/null
+++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/CacheEvictionHandlerTest.java
@@ -0,0 +1,60 @@
+// Copyright (C) 2020 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.ericsson.gerrit.plugins.highavailability.cache;
+
+import static org.mockito.Mockito.verifyZeroInteractions;
+
+import com.ericsson.gerrit.plugins.highavailability.Configuration;
+import com.ericsson.gerrit.plugins.highavailability.forwarder.Forwarder;
+import com.google.common.cache.RemovalCause;
+import com.google.common.cache.RemovalNotification;
+import com.google.gerrit.server.config.PluginConfigFactory;
+import com.google.gerrit.server.config.SitePaths;
+import java.io.IOException;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.concurrent.Executor;
+import org.eclipse.jgit.lib.Config;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+
+@RunWith(MockitoJUnitRunner.class)
+public class CacheEvictionHandlerTest {
+  @Mock private Executor executorMock;
+  @Mock private Forwarder forwarder;
+  @Mock private PluginConfigFactory pluginConfigFactoryMock;
+
+  private static final String PLUGIN_NAME = "high-availability";
+  private static final Path SITE_PATH = Paths.get("/site_path");
+  private CachePatternMatcher defaultCacheMatcher;
+
+  @Before
+  public void setUp() throws IOException {
+    defaultCacheMatcher =
+        new CachePatternMatcher(new Configuration(new Config(), new SitePaths(SITE_PATH)));
+  }
+
+  @Test
+  public void shouldNotPublishAccountsCacheEvictions() {
+    CacheEvictionHandler<String, String> handler =
+        new CacheEvictionHandler<>(forwarder, executorMock, PLUGIN_NAME, defaultCacheMatcher);
+    handler.onRemoval(
+        "test", "accounts", RemovalNotification.create("test", "accounts", RemovalCause.EXPLICIT));
+    verifyZeroInteractions(executorMock);
+  }
+}
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcherTest.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcherTest.java
index 0aac3e4..caf50b9 100644
--- a/src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcherTest.java
+++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcherTest.java
@@ -38,9 +38,6 @@
     CachePatternMatcher matcher = new CachePatternMatcher(configurationMock);
     for (String cache :
         ImmutableList.of(
-            "accounts",
-            "accounts_byemail",
-            "accounts_byname",
             "groups",
             "groups_byinclude",
             "groups_byname",
@@ -57,6 +54,7 @@
     }
     for (String cache :
         ImmutableList.of(
+            "accounts",
             "adv_bases",
             "change_kind",
             "change_notes",
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/CacheEntryTest.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/CacheEntryTest.java
index 5cdcf5a..a9bcfd7 100644
--- a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/CacheEntryTest.java
+++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/CacheEntryTest.java
@@ -16,19 +16,13 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import com.ericsson.gerrit.plugins.highavailability.cache.Constants;
 import org.junit.Test;
 
 public class CacheEntryTest {
 
   @Test
   public void cacheEntry() throws Exception {
-    CacheEntry entry = CacheEntry.from("accounts_by_name", "someKey");
-    assertThat(entry.getPluginName()).isEqualTo(Constants.GERRIT);
-    assertThat(entry.getCacheName()).isEqualTo("accounts_by_name");
-    assertThat(entry.getKey()).isEqualTo("someKey");
-
-    entry = CacheEntry.from("my_plugin.my_cache", "someOtherKey");
+    CacheEntry entry = CacheEntry.from("my_plugin.my_cache", "someOtherKey");
     assertThat(entry.getPluginName()).isEqualTo("my_plugin");
     assertThat(entry.getCacheName()).isEqualTo("my_cache");
     assertThat(entry.getKey()).isEqualTo("someOtherKey");