Merge "Refine protocol assignment in scenarios using multiple protocols" into stable-3.0
diff --git a/.bazelversion b/.bazelversion
index 47b322c..1545d96 100644
--- a/.bazelversion
+++ b/.bazelversion
@@ -1 +1 @@
-3.4.1
+3.5.0
diff --git a/external_plugin_deps.bzl b/external_plugin_deps.bzl
index 6387df2..0f8b43b 100644
--- a/external_plugin_deps.bzl
+++ b/external_plugin_deps.bzl
@@ -3,8 +3,8 @@
def external_plugin_deps():
maven_jar(
name = "wiremock",
- artifact = "com.github.tomakehurst:wiremock-standalone:2.27.1",
- sha1 = "b7ecbb8f92b0f5ecd54176227845f1e0357b4ce5",
+ artifact = "com.github.tomakehurst:wiremock-standalone:2.27.2",
+ sha1 = "327647a19b2319af2526b9c33a5733a2241723e0",
)
maven_jar(
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 cab8f58..9a8adce 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,14 +26,18 @@
@Singleton
class CachePatternMatcher {
private static final List<String> DEFAULT_PATTERNS =
- ImmutableList.of(
- "^accounts.*", "^groups.*", "ldap_usernames", "projects", "sshkeys", "web_sessions");
+ ImmutableList.of("^accounts.*", "^groups.*", "ldap_usernames", "projects", "sshkeys");
private final Pattern pattern;
@Inject
CachePatternMatcher(Configuration cfg) {
List<String> patterns = new ArrayList<>(DEFAULT_PATTERNS);
+
+ if (cfg.websession().synchronize()) {
+ patterns.add("web_sessions");
+ }
+
patterns.addAll(cfg.cache().patterns());
this.pattern = Pattern.compile(Joiner.on("|").join(patterns));
}
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 9093238..0aac3e4 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
@@ -20,6 +20,7 @@
import com.ericsson.gerrit.plugins.highavailability.Configuration;
import com.google.common.collect.ImmutableList;
+import java.util.Collections;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -78,4 +79,28 @@
assertWithMessage(cache + " should not match").that(matcher.matches(cache)).isFalse();
}
}
+
+ @Test
+ public void testShouldNotMatchWebSessionsWhenNotSynchronized() {
+ String cache = "web_sessions";
+ when(configurationMock.cache().patterns()).thenReturn(Collections.emptyList());
+ when(configurationMock.websession().synchronize()).thenReturn(false);
+ CachePatternMatcher matcher = new CachePatternMatcher(configurationMock);
+
+ assertWithMessage(cache + " should NOT match when websession.synchronize is false")
+ .that(matcher.matches(cache))
+ .isFalse();
+ }
+
+ @Test
+ public void testShouldMatchWebSessionsWhenSynchronized() {
+ String cache = "web_sessions";
+ when(configurationMock.cache().patterns()).thenReturn(Collections.emptyList());
+ when(configurationMock.websession().synchronize()).thenReturn(true);
+ CachePatternMatcher matcher = new CachePatternMatcher(configurationMock);
+
+ assertWithMessage(cache + " should match when websession.synchronize is true")
+ .that(matcher.matches(cache))
+ .isTrue();
+ }
}