From 94a2523a11159ec2f2fe9f0c5a4cfb1a81e46ce8 Mon Sep 17 00:00:00 2001 From: M Sazzadul Hoque <7600764+sazzad16@users.noreply.github.com> Date: Mon, 15 Jul 2024 17:42:30 +0600 Subject: [PATCH] Remove client side cache support through uri/url (#3892) This partially reverts #3703 and #3835 --- .../redis/clients/jedis/UnifiedJedis.java | 5 +- .../clients/jedis/util/JedisURIHelper.java | 82 ------------------- .../csc/CaffeineClientSideCacheTest.java | 21 ----- .../csc/ClientSideCacheFunctionalityTest.java | 30 ------- .../jedis/csc/GuavaClientSideCacheTest.java | 21 ----- 5 files changed, 2 insertions(+), 157 deletions(-) diff --git a/src/main/java/redis/clients/jedis/UnifiedJedis.java b/src/main/java/redis/clients/jedis/UnifiedJedis.java index dd551b60d4..3a2dd9ab3e 100644 --- a/src/main/java/redis/clients/jedis/UnifiedJedis.java +++ b/src/main/java/redis/clients/jedis/UnifiedJedis.java @@ -75,7 +75,7 @@ public UnifiedJedis(final URI uri) { this(JedisURIHelper.getHostAndPort(uri), DefaultJedisClientConfig.builder() .user(JedisURIHelper.getUser(uri)).password(JedisURIHelper.getPassword(uri)) .database(JedisURIHelper.getDBIndex(uri)).protocol(JedisURIHelper.getRedisProtocol(uri)) - .ssl(JedisURIHelper.isRedisSSLScheme(uri)).build(), JedisURIHelper.getClientSideCache(uri)); + .ssl(JedisURIHelper.isRedisSSLScheme(uri)).build()); } public UnifiedJedis(final URI uri, JedisClientConfig config) { @@ -87,8 +87,7 @@ public UnifiedJedis(final URI uri, JedisClientConfig config) { .database(JedisURIHelper.getDBIndex(uri)).clientName(config.getClientName()) .protocol(JedisURIHelper.getRedisProtocol(uri)) .ssl(JedisURIHelper.isRedisSSLScheme(uri)).sslSocketFactory(config.getSslSocketFactory()) - .sslParameters(config.getSslParameters()).hostnameVerifier(config.getHostnameVerifier()) - .build(), JedisURIHelper.getClientSideCache(uri)); + .sslParameters(config.getSslParameters()).hostnameVerifier(config.getHostnameVerifier()).build()); } public UnifiedJedis(HostAndPort hostAndPort, JedisClientConfig clientConfig) { diff --git a/src/main/java/redis/clients/jedis/util/JedisURIHelper.java b/src/main/java/redis/clients/jedis/util/JedisURIHelper.java index 4e4f96fee4..a565d38048 100644 --- a/src/main/java/redis/clients/jedis/util/JedisURIHelper.java +++ b/src/main/java/redis/clients/jedis/util/JedisURIHelper.java @@ -4,10 +4,6 @@ import redis.clients.jedis.HostAndPort; import redis.clients.jedis.Protocol; import redis.clients.jedis.RedisProtocol; -import redis.clients.jedis.annots.Experimental; -import redis.clients.jedis.csc.CaffeineClientSideCache; -import redis.clients.jedis.csc.ClientSideCache; -import redis.clients.jedis.csc.GuavaClientSideCache; public final class JedisURIHelper { @@ -75,84 +71,6 @@ public static RedisProtocol getRedisProtocol(URI uri) { return null; // null (default) when not defined } - private static final Integer ZERO_INTEGER = 0; - - @Experimental - public static ClientSideCache getClientSideCache(URI uri) { - if (uri.getQuery() == null) return null; - - boolean guava = false, caffeine = false; // cache_lib - Integer maxSize = null; // cache_max_size --> 0 = disbale - Integer ttl = null; // cache_ttl --> 0 = no ttl - // cache-max-idle - - String[] params = uri.getQuery().split("&"); - for (String param : params) { - int idx = param.indexOf("="); - if (idx < 0) continue; - - String key = param.substring(0, idx); - String val = param.substring(idx + 1); - - switch (key) { - - case "cache_lib": - switch (val) { - case "guava": - guava = true; - break; - case "caffeine": - caffeine = true; - break; - default: - throw new IllegalArgumentException("Unsupported library " + val); - } - break; - - case "cache_max_size": - try { - maxSize = Integer.parseInt(val); - } catch (NumberFormatException nfe) { - throw new IllegalArgumentException("Value of cache_max_size must be an integer (no of commands).", nfe); - } - break; - - case "cache_ttl": - try { - ttl = Integer.parseInt(val); - } catch (NumberFormatException nfe) { - throw new IllegalArgumentException("Value of cache_ttl must be an integer (in seconds).", nfe); - } - break; - } - } - - // special cases - if (ZERO_INTEGER.equals(maxSize)) { - return null; - } - if (!guava && !caffeine && (maxSize != null || ttl != null)) { - throw new IllegalArgumentException("A supported caching library (guava OR caffeine) must be selected."); - } - if (ZERO_INTEGER.equals(ttl)) { - ttl = null; // below, only null will be checked - } - - if (guava) { - GuavaClientSideCache.Builder guavaBuilder = GuavaClientSideCache.builder(); - if (maxSize != null) guavaBuilder.maximumSize(maxSize); - if (ttl != null) guavaBuilder.ttl(ttl); - return guavaBuilder.build(); - } else if (caffeine) { - CaffeineClientSideCache.Builder caffeineBuilder = CaffeineClientSideCache.builder(); - if (maxSize != null) caffeineBuilder.maximumSize(maxSize); - if (ttl != null) caffeineBuilder.ttl(ttl); - return caffeineBuilder.build(); - } - - return null; // null (default) when not defined - } - public static boolean isValid(URI uri) { if (isEmpty(uri.getScheme()) || isEmpty(uri.getHost()) || uri.getPort() == -1) { return false; diff --git a/src/test/java/redis/clients/jedis/csc/CaffeineClientSideCacheTest.java b/src/test/java/redis/clients/jedis/csc/CaffeineClientSideCacheTest.java index a884f85195..8308233603 100644 --- a/src/test/java/redis/clients/jedis/csc/CaffeineClientSideCacheTest.java +++ b/src/test/java/redis/clients/jedis/csc/CaffeineClientSideCacheTest.java @@ -95,25 +95,4 @@ public void timeToLive() throws InterruptedException { assertThat(caffeine.stats().evictionCount(), Matchers.equalTo((long) count)); } - @Test - public void uriSimple() { - URI uri = URI.create(baseUrl + "?cache_lib=caffeine"); - ClientSideCache cache = JedisURIHelper.getClientSideCache(uri); - assertThat(cache, Matchers.instanceOf(CaffeineClientSideCache.class)); - } - - @Test - public void uriAllParams() { - URI uri = URI.create(baseUrl + "?cache_lib=caffeine&cache_max_size=1000&cache_ttl=10"); - ClientSideCache cache = JedisURIHelper.getClientSideCache(uri); - assertThat(cache, Matchers.instanceOf(CaffeineClientSideCache.class)); - } - - @Test - public void uriMaxSizeZeroMeansNull() { - URI uri = URI.create(baseUrl + "?cache_lib=caffeine&cache_max_size=0"); - ClientSideCache cache = JedisURIHelper.getClientSideCache(uri); - assertThat(cache, Matchers.nullValue()); - } - } diff --git a/src/test/java/redis/clients/jedis/csc/ClientSideCacheFunctionalityTest.java b/src/test/java/redis/clients/jedis/csc/ClientSideCacheFunctionalityTest.java index a44f026fc5..3c53d61e21 100644 --- a/src/test/java/redis/clients/jedis/csc/ClientSideCacheFunctionalityTest.java +++ b/src/test/java/redis/clients/jedis/csc/ClientSideCacheFunctionalityTest.java @@ -78,34 +78,4 @@ public void multiKeyOperation() { } } - @Test - public void uriNoParam() { - URI uri = URI.create(baseUrl + "?"); - assertNull(JedisURIHelper.getClientSideCache(uri)); - } - - @Test - public void uriUnknownLib() { - URI uri = URI.create(baseUrl + "?cache_lib=unknown"); - IllegalArgumentException iae = assertThrows(IllegalArgumentException.class, - () -> JedisURIHelper.getClientSideCache(uri)); - assertEquals("Unsupported library unknown", iae.getMessage()); - } - - @Test - public void uriNoLib() { - String[] otherParams - = new String[]{ - "?cache_max_size=1000", - "?cache_ttl=10", - "?cache_max_size=1000&cache_ttl=10" - }; - Arrays.stream(otherParams).forEach(urlParams -> { - URI uri = URI.create(baseUrl + urlParams); - IllegalArgumentException iae = assertThrows(IllegalArgumentException.class, - () -> JedisURIHelper.getClientSideCache(uri)); - assertEquals("A supported caching library (guava OR caffeine) must be selected.", iae.getMessage()); - }); - } - } diff --git a/src/test/java/redis/clients/jedis/csc/GuavaClientSideCacheTest.java b/src/test/java/redis/clients/jedis/csc/GuavaClientSideCacheTest.java index 2bc1ab766f..4c7362e63b 100644 --- a/src/test/java/redis/clients/jedis/csc/GuavaClientSideCacheTest.java +++ b/src/test/java/redis/clients/jedis/csc/GuavaClientSideCacheTest.java @@ -112,25 +112,4 @@ public void timeToLive() throws InterruptedException { assertThat(guava.stats().evictionCount(), Matchers.equalTo((long) count)); } - @Test - public void uriSimple() { - URI uri = URI.create(baseUrl + "?cache_lib=guava"); - ClientSideCache cache = JedisURIHelper.getClientSideCache(uri); - assertThat(cache, Matchers.instanceOf(GuavaClientSideCache.class)); - } - - @Test - public void uriAllParams() { - URI uri = URI.create(baseUrl + "?cache_lib=guava&cache_max_size=1000&cache_ttl=10"); - ClientSideCache cache = JedisURIHelper.getClientSideCache(uri); - assertThat(cache, Matchers.instanceOf(GuavaClientSideCache.class)); - } - - @Test - public void uriMaxSizeZeroMeansNull() { - URI uri = URI.create(baseUrl + "?cache_lib=guava&cache_max_size=0"); - ClientSideCache cache = JedisURIHelper.getClientSideCache(uri); - assertThat(cache, Matchers.nullValue()); - } - }