From e74ad2b555ee1ccd51d1c788c1da6f896f3a2380 Mon Sep 17 00:00:00 2001 From: Jon Chambers Date: Wed, 19 Aug 2020 14:29:38 -0400 Subject: [PATCH] Make RedisClusterMessagesCache a Managed class. --- .../textsecuregcm/WhisperServerService.java | 1 + .../storage/RedisClusterMessagesCache.java | 11 ++++++++++- .../storage/RedisClusterMessagesCacheTest.java | 6 +++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java index 90722f948..3fb675c95 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/WhisperServerService.java @@ -349,6 +349,7 @@ public class WhisperServerService extends Application implements UserMessagesCache { +public class RedisClusterMessagesCache extends RedisClusterPubSubAdapter implements UserMessagesCache, Managed { private final FaultTolerantRedisCluster redisCluster; private final FaultTolerantPubSubConnection pubSubConnection; @@ -90,7 +91,10 @@ public class RedisClusterMessagesCache extends RedisClusterPubSubAdapter { connection.addListener(this); connection.getResources().eventBus().get() @@ -102,6 +106,11 @@ public class RedisClusterMessagesCache extends RedisClusterPubSubAdapter connection.sync().masters().commands().unsubscribe()); + } + private void resubscribeAll() { final Set queueNames; diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/storage/RedisClusterMessagesCacheTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/storage/RedisClusterMessagesCacheTest.java index 4202fe521..0a7d1e4c3 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/storage/RedisClusterMessagesCacheTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/storage/RedisClusterMessagesCacheTest.java @@ -35,14 +35,18 @@ public class RedisClusterMessagesCacheTest extends AbstractMessagesCacheTest { notificationExecutorService = Executors.newSingleThreadExecutor(); messagesCache = new RedisClusterMessagesCache(getRedisCluster(), notificationExecutorService); + + messagesCache.start(); } @Override public void tearDown() throws Exception { - super.tearDown(); + messagesCache.stop(); notificationExecutorService.shutdown(); notificationExecutorService.awaitTermination(1, TimeUnit.SECONDS); + + super.tearDown(); } @Override