From 948306360ceaab057785e08444510b51310a5c5a Mon Sep 17 00:00:00 2001 From: M Sazzadul Hoque <7600764+sazzad16@users.noreply.github.com> Date: Wed, 9 Aug 2023 11:50:10 +0600 Subject: [PATCH 1/5] Support TOPK.LIST with WITHCOUNT option (#3495) --- .../redis/clients/jedis/BuilderFactory.java | 31 +++++++++++++++++++ .../redis/clients/jedis/CommandObjects.java | 5 +++ .../redis/clients/jedis/PipelineBase.java | 5 +++ .../redis/clients/jedis/TransactionBase.java | 5 +++ .../redis/clients/jedis/UnifiedJedis.java | 5 +++ .../jedis/bloom/RedisBloomProtocol.java | 2 +- .../bloom/commands/TopKFilterCommands.java | 21 +++++++++++++ .../commands/TopKFilterPipelineCommands.java | 2 ++ .../clients/jedis/modules/bloom/TopKTest.java | 21 +++++++++---- 9 files changed, 90 insertions(+), 7 deletions(-) diff --git a/src/main/java/redis/clients/jedis/BuilderFactory.java b/src/main/java/redis/clients/jedis/BuilderFactory.java index 46ce255c35..5e5d03a830 100644 --- a/src/main/java/redis/clients/jedis/BuilderFactory.java +++ b/src/main/java/redis/clients/jedis/BuilderFactory.java @@ -415,6 +415,37 @@ public String toString() { } }; + public static final Builder> STRING_LONG_MAP = new Builder>() { + @Override + @SuppressWarnings("unchecked") + public Map build(Object data) { + final List list = (List) data; + if (list.isEmpty()) return Collections.emptyMap(); + + if (list.get(0) instanceof KeyValue) { + final Map map = new LinkedHashMap<>(list.size(), 1f); + final Iterator iterator = list.iterator(); + while (iterator.hasNext()) { + KeyValue kv = (KeyValue) iterator.next(); + map.put(STRING.build(kv.getKey()), LONG.build(kv.getValue())); + } + return map; + } else { + final Map map = new LinkedHashMap<>(list.size() / 2, 1f); + final Iterator iterator = list.iterator(); + while (iterator.hasNext()) { + map.put(STRING.build(iterator.next()), LONG.build(iterator.next())); + } + return map; + } + } + + @Override + public String toString() { + return "Map"; + } + }; + public static final Builder> KEYED_ELEMENT = new Builder>() { @Override @SuppressWarnings("unchecked") diff --git a/src/main/java/redis/clients/jedis/CommandObjects.java b/src/main/java/redis/clients/jedis/CommandObjects.java index d3d77db3b4..60031520a2 100644 --- a/src/main/java/redis/clients/jedis/CommandObjects.java +++ b/src/main/java/redis/clients/jedis/CommandObjects.java @@ -4056,6 +4056,11 @@ public final CommandObject> topkList(String key) { return new CommandObject<>(commandArguments(TopKCommand.LIST).key(key), BuilderFactory.STRING_LIST); } + public final CommandObject> topkListWithCount(String key) { + return new CommandObject<>(commandArguments(TopKCommand.LIST).key(key) + .add(RedisBloomKeyword.WITHCOUNT), BuilderFactory.STRING_LONG_MAP); + } + public final CommandObject> topkInfo(String key) { return new CommandObject<>(commandArguments(TopKCommand.INFO).key(key), BuilderFactory.ENCODED_OBJECT_MAP); } diff --git a/src/main/java/redis/clients/jedis/PipelineBase.java b/src/main/java/redis/clients/jedis/PipelineBase.java index f7ebe3eb50..4511bfa8a5 100644 --- a/src/main/java/redis/clients/jedis/PipelineBase.java +++ b/src/main/java/redis/clients/jedis/PipelineBase.java @@ -4059,6 +4059,11 @@ public Response> topkList(String key) { return appendCommand(commandObjects.topkList(key)); } + @Override + public Response> topkListWithCount(String key) { + return appendCommand(commandObjects.topkListWithCount(key)); + } + @Override public Response> topkInfo(String key) { return appendCommand(commandObjects.topkInfo(key)); diff --git a/src/main/java/redis/clients/jedis/TransactionBase.java b/src/main/java/redis/clients/jedis/TransactionBase.java index f6a21560ee..2baf02f5c1 100644 --- a/src/main/java/redis/clients/jedis/TransactionBase.java +++ b/src/main/java/redis/clients/jedis/TransactionBase.java @@ -4227,6 +4227,11 @@ public Response> topkList(String key) { return appendCommand(commandObjects.topkList(key)); } + @Override + public Response> topkListWithCount(String key) { + return appendCommand(commandObjects.topkListWithCount(key)); + } + @Override public Response> topkInfo(String key) { return appendCommand(commandObjects.topkInfo(key)); diff --git a/src/main/java/redis/clients/jedis/UnifiedJedis.java b/src/main/java/redis/clients/jedis/UnifiedJedis.java index acf6ad7dfd..bf2481f712 100644 --- a/src/main/java/redis/clients/jedis/UnifiedJedis.java +++ b/src/main/java/redis/clients/jedis/UnifiedJedis.java @@ -4583,6 +4583,11 @@ public List topkList(String key) { return executeCommand(commandObjects.topkList(key)); } + @Override + public Map topkListWithCount(String key) { + return executeCommand(commandObjects.topkListWithCount(key)); + } + @Override public Map topkInfo(String key) { return executeCommand(commandObjects.topkInfo(key)); diff --git a/src/main/java/redis/clients/jedis/bloom/RedisBloomProtocol.java b/src/main/java/redis/clients/jedis/bloom/RedisBloomProtocol.java index 7e7bb810f2..c60b9fcc4a 100644 --- a/src/main/java/redis/clients/jedis/bloom/RedisBloomProtocol.java +++ b/src/main/java/redis/clients/jedis/bloom/RedisBloomProtocol.java @@ -120,7 +120,7 @@ public byte[] getRaw() { public enum RedisBloomKeyword implements Rawable { CAPACITY, ERROR, NOCREATE, EXPANSION, NONSCALING, BUCKETSIZE, MAXITERATIONS, ITEMS, WEIGHTS, - COMPRESSION, OVERRIDE; + COMPRESSION, OVERRIDE, WITHCOUNT; private final byte[] raw; diff --git a/src/main/java/redis/clients/jedis/bloom/commands/TopKFilterCommands.java b/src/main/java/redis/clients/jedis/bloom/commands/TopKFilterCommands.java index 6cc2f47b43..d16e31a72f 100644 --- a/src/main/java/redis/clients/jedis/bloom/commands/TopKFilterCommands.java +++ b/src/main/java/redis/clients/jedis/bloom/commands/TopKFilterCommands.java @@ -1,5 +1,6 @@ package redis.clients.jedis.bloom.commands; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -35,6 +36,18 @@ public interface TopKFilterCommands { */ List topkAdd(String key, String... items); + /** + * {@code TOPK.INCRBY {key} {item} {increment}} + * + * @param key + * @param item + * @param increment + * @return item dropped from list + */ + default String topkIncrBy(String key, String item, long increment) { + return topkIncrBy(key, Collections.singletonMap(item, increment)).get(0); + } + /** * {@code TOPK.INCRBY {key} {item} {increment} [{item} {increment} ...]} * @@ -61,6 +74,14 @@ public interface TopKFilterCommands { */ List topkList(String key); + /** + * {@code TOPK.LIST {key} WITHCOUNT} + * + * @param key + * @return k (or less) items in Top K list + */ + Map topkListWithCount(String key); + /** * {@code TOPK.INFO {key}} * diff --git a/src/main/java/redis/clients/jedis/bloom/commands/TopKFilterPipelineCommands.java b/src/main/java/redis/clients/jedis/bloom/commands/TopKFilterPipelineCommands.java index 692e02d3c9..d75b3d7447 100644 --- a/src/main/java/redis/clients/jedis/bloom/commands/TopKFilterPipelineCommands.java +++ b/src/main/java/redis/clients/jedis/bloom/commands/TopKFilterPipelineCommands.java @@ -18,5 +18,7 @@ public interface TopKFilterPipelineCommands { Response> topkList(String key); + Response> topkListWithCount(String key); + Response> topkInfo(String key); } diff --git a/src/test/java/redis/clients/jedis/modules/bloom/TopKTest.java b/src/test/java/redis/clients/jedis/modules/bloom/TopKTest.java index 1e6a38ed43..706d57ef82 100644 --- a/src/test/java/redis/clients/jedis/modules/bloom/TopKTest.java +++ b/src/test/java/redis/clients/jedis/modules/bloom/TopKTest.java @@ -1,10 +1,11 @@ package redis.clients.jedis.modules.bloom; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import java.util.Arrays; import java.util.Collections; -import java.util.TreeSet; +import java.util.Map; import org.junit.BeforeClass; import org.junit.Test; @@ -30,12 +31,20 @@ public void createTopKFilter() { assertEquals(Arrays.asList(true, false, true), client.topkQuery("aaa", "bb", "gg", "cc")); - assertEquals(new TreeSet<>(Arrays.asList("bb", "cc")), new TreeSet<>(client.topkList("aaa"))); + assertEquals(Arrays.asList("bb", "cc"), client.topkList("aaa")); -// assertEquals(null, client.topkIncrBy("aaa", "ff", 10)); - assertEquals(Collections.singletonList(null), - client.topkIncrBy("aaa", Collections.singletonMap("ff", 10L))); + Map listWithCount = client.topkListWithCount("aaa"); + assertEquals(2, listWithCount.size()); + listWithCount.forEach((item, count) -> { + assertTrue(Arrays.asList("bb", "cc").contains(item)); + assertEquals(Long.valueOf(1), count); + }); + + assertEquals(null, client.topkIncrBy("aaa", "ff", 5)); + assertEquals(Arrays.asList("ff", "bb", "cc"), client.topkList("aaa")); - assertEquals(new TreeSet<>(Arrays.asList("bb", "cc", "ff")), new TreeSet<>(client.topkList("aaa"))); + assertEquals(Collections.singletonList(null), + client.topkIncrBy("aaa", Collections.singletonMap("ff", 8L))); + assertEquals(Long.valueOf(13), client.topkListWithCount("aaa").get("ff")); } } From b7f4703f4d8992b81eea6514a5bf72f85bf2fdd4 Mon Sep 17 00:00:00 2001 From: Sergii Dotsenko <33420754+sdotsenko@users.noreply.github.com> Date: Wed, 9 Aug 2023 07:36:46 +0100 Subject: [PATCH 2/5] Fixed some typos and formatting issues across the project (#3486) Signed-off-by: Sergii Dotsenko --- README.md | 10 +++++----- src/main/java/redis/clients/jedis/StreamEntryID.java | 4 ++-- .../redis/clients/jedis/commands/ServerCommands.java | 2 +- .../redis/clients/jedis/params/MigrateParams.java | 12 ++++++------ .../java/redis/clients/jedis/params/ZAddParams.java | 12 ++++++------ .../clients/jedis/resps/AccessControlLogEntry.java | 2 +- .../clients/jedis/resps/StreamConsumerFullInfo.java | 2 +- .../clients/jedis/resps/StreamConsumerInfo.java | 2 +- .../clients/jedis/resps/StreamConsumersInfo.java | 2 +- .../redis/clients/jedis/resps/StreamFullInfo.java | 2 +- .../clients/jedis/resps/StreamGroupFullInfo.java | 2 +- .../redis/clients/jedis/resps/StreamGroupInfo.java | 2 +- .../java/redis/clients/jedis/resps/StreamInfo.java | 2 +- .../redis/clients/jedis/util/RedisInputStream.java | 4 ++-- .../java/redis/clients/jedis/ConnectionTest.java | 2 +- 15 files changed, 31 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index a1f3132641..b379424023 100644 --- a/README.md +++ b/README.md @@ -29,10 +29,10 @@ The most recent version of this library supports redis version [5.0](https://git The table below highlights version compatibility of the most-recent library versions and Redis versions. Compatibility means communication features, and Redis command capabilities. -| Library version | Supported redis versions | -|-----------------|-------------------| -| 3.9+ | 5.0 and 6.2 Family of releases | -| >= 4.0 | Version 5.0 to current | +| Library version | Supported redis versions | +|-----------------|--------------------------------| +| 3.9+ | 5.0 and 6.2 Family of releases | +| >= 4.0 | Version 5.0 to current | ## Getting started @@ -78,7 +78,7 @@ for the complete list of supported commands. ### Easier way of using connection pool -Using a *try-with-resources* block for each command may be cumbursome, so you may consider using JedisPooled. +Using a *try-with-resources* block for each command may be cumbersome, so you may consider using JedisPooled. ```java JedisPooled jedis = new JedisPooled("localhost", 6379); diff --git a/src/main/java/redis/clients/jedis/StreamEntryID.java b/src/main/java/redis/clients/jedis/StreamEntryID.java index 66683d9038..9644010d7c 100644 --- a/src/main/java/redis/clients/jedis/StreamEntryID.java +++ b/src/main/java/redis/clients/jedis/StreamEntryID.java @@ -55,8 +55,8 @@ public int hashCode() { @Override public int compareTo(StreamEntryID other) { - int timeComapre = Long.compare(this.time, other.time); - return timeComapre != 0 ? timeComapre : Long.compare(this.sequence, other.sequence); + int timeCompare = Long.compare(this.time, other.time); + return timeCompare != 0 ? timeCompare : Long.compare(this.sequence, other.sequence); } public long getTime() { diff --git a/src/main/java/redis/clients/jedis/commands/ServerCommands.java b/src/main/java/redis/clients/jedis/commands/ServerCommands.java index d96074379b..46f1220407 100644 --- a/src/main/java/redis/clients/jedis/commands/ServerCommands.java +++ b/src/main/java/redis/clients/jedis/commands/ServerCommands.java @@ -70,7 +70,7 @@ public interface ServerCommands { * The SAVE commands performs a synchronous save of the dataset producing a point in time snapshot * of all the data inside the Redis instance, in the form of an RDB file. You almost never want to * call SAVE in production environments where it will block all the other clients. Instead usually - * BGSAVE is used. However in case of issues preventing Redis to create the background saving + * BGSAVE is used. However, in case of issues preventing Redis to create the background saving * child (for instance errors in the fork(2) system call), the SAVE command can be a good last * resort to perform the dump of the latest dataset. * @return result of the save diff --git a/src/main/java/redis/clients/jedis/params/MigrateParams.java b/src/main/java/redis/clients/jedis/params/MigrateParams.java index 3b9815e7c3..a75251e0e4 100644 --- a/src/main/java/redis/clients/jedis/params/MigrateParams.java +++ b/src/main/java/redis/clients/jedis/params/MigrateParams.java @@ -8,7 +8,7 @@ public class MigrateParams implements IParams { private boolean copy = false; private boolean replace = false; private String username = null; - private String passowrd = null; + private String password = null; public MigrateParams() { } @@ -28,13 +28,13 @@ public MigrateParams replace() { } public MigrateParams auth(String password) { - this.passowrd = password; + this.password = password; return this; } public MigrateParams auth2(String username, String password) { this.username = username; - this.passowrd = password; + this.password = password; return this; } @@ -47,9 +47,9 @@ public void addParams(CommandArguments args) { args.add(Keyword.REPLACE); } if (username != null) { - args.add(Keyword.AUTH2).add(username).add(passowrd); - } else if (passowrd != null) { - args.add(Keyword.AUTH).add(passowrd); + args.add(Keyword.AUTH2).add(username).add(password); + } else if (password != null) { + args.add(Keyword.AUTH).add(password); } } } diff --git a/src/main/java/redis/clients/jedis/params/ZAddParams.java b/src/main/java/redis/clients/jedis/params/ZAddParams.java index d00b05c23d..8194c041a6 100644 --- a/src/main/java/redis/clients/jedis/params/ZAddParams.java +++ b/src/main/java/redis/clients/jedis/params/ZAddParams.java @@ -5,7 +5,7 @@ public class ZAddParams implements IParams { - private Keyword existance; + private Keyword existence; private Keyword comparison; private boolean change; @@ -21,16 +21,16 @@ public static ZAddParams zAddParams() { * @return ZAddParams */ public ZAddParams nx() { - this.existance = Keyword.NX; + this.existence = Keyword.NX; return this; } /** - * Only set the key if it already exist. + * Only set the key if it already exists. * @return ZAddParams */ public ZAddParams xx() { - this.existance = Keyword.XX; + this.existence = Keyword.XX; return this; } @@ -64,8 +64,8 @@ public ZAddParams ch() { @Override public void addParams(CommandArguments args) { - if (existance != null) { - args.add(existance); + if (existence != null) { + args.add(existence); } if (comparison != null) { args.add(comparison); diff --git a/src/main/java/redis/clients/jedis/resps/AccessControlLogEntry.java b/src/main/java/redis/clients/jedis/resps/AccessControlLogEntry.java index 09ef3a43bb..930c9b064d 100644 --- a/src/main/java/redis/clients/jedis/resps/AccessControlLogEntry.java +++ b/src/main/java/redis/clients/jedis/resps/AccessControlLogEntry.java @@ -6,7 +6,7 @@ /** * This class holds information about an Access Control Log entry (returned by ACL LOG command) They - * can be access via getters. For future purpose there is also {@link #getlogEntry} method that + * can be accessed via getters. For future purpose there is also {@link #getlogEntry} method that * returns a generic {@code Map} - in case where more info is returned from a server */ // TODO: remove diff --git a/src/main/java/redis/clients/jedis/resps/StreamConsumerFullInfo.java b/src/main/java/redis/clients/jedis/resps/StreamConsumerFullInfo.java index 6279640888..2f57329415 100644 --- a/src/main/java/redis/clients/jedis/resps/StreamConsumerFullInfo.java +++ b/src/main/java/redis/clients/jedis/resps/StreamConsumerFullInfo.java @@ -7,7 +7,7 @@ /** * This class holds information about a stream consumer with command - * {@code xinfo stream mystream full}. They can be access via getters. There is also + * {@code xinfo stream mystream full}. They can be accessed via getters. There is also * {@link StreamConsumerFullInfo#getConsumerInfo()} method that returns a generic {@link Map} in * case more info are returned from the server. */ diff --git a/src/main/java/redis/clients/jedis/resps/StreamConsumerInfo.java b/src/main/java/redis/clients/jedis/resps/StreamConsumerInfo.java index 63b417780e..0bf5a46250 100644 --- a/src/main/java/redis/clients/jedis/resps/StreamConsumerInfo.java +++ b/src/main/java/redis/clients/jedis/resps/StreamConsumerInfo.java @@ -3,7 +3,7 @@ import java.util.Map; /** - * This class holds information about a consumer. They can be access via getters. There is also + * This class holds information about a consumer. They can be accessed via getters. There is also * {@link StreamConsumersInfo#getConsumerInfo()}} method that returns a generic {@code Map} in case * more info are returned from the server. */ diff --git a/src/main/java/redis/clients/jedis/resps/StreamConsumersInfo.java b/src/main/java/redis/clients/jedis/resps/StreamConsumersInfo.java index ad12f0353b..4b12a95006 100644 --- a/src/main/java/redis/clients/jedis/resps/StreamConsumersInfo.java +++ b/src/main/java/redis/clients/jedis/resps/StreamConsumersInfo.java @@ -3,7 +3,7 @@ import java.util.Map; /** - * This class holds information about a consumer. They can be access via getters. There is also + * This class holds information about a consumer. They can be accessed via getters. There is also * {@link StreamConsumersInfo#getConsumerInfo()}} method that returns a generic {@code Map} in case * more info are returned from the server. * @deprecated Use {@link StreamConsumerInfo}. diff --git a/src/main/java/redis/clients/jedis/resps/StreamFullInfo.java b/src/main/java/redis/clients/jedis/resps/StreamFullInfo.java index 336bf9c9c2..e768b536b8 100644 --- a/src/main/java/redis/clients/jedis/resps/StreamFullInfo.java +++ b/src/main/java/redis/clients/jedis/resps/StreamFullInfo.java @@ -8,7 +8,7 @@ /** * This class holds information about a stream info with command {@code xinfo stream mystream full}. - * They can be access via getters. There is also {@link StreamFullInfo#getStreamFullInfo()} method + * They can be accessed via getters. There is also {@link StreamFullInfo#getStreamFullInfo()} method * that returns a generic {@link Map} in case where more info are returned from the server. */ public class StreamFullInfo implements Serializable { diff --git a/src/main/java/redis/clients/jedis/resps/StreamGroupFullInfo.java b/src/main/java/redis/clients/jedis/resps/StreamGroupFullInfo.java index 8472c6b7b6..8354c86815 100644 --- a/src/main/java/redis/clients/jedis/resps/StreamGroupFullInfo.java +++ b/src/main/java/redis/clients/jedis/resps/StreamGroupFullInfo.java @@ -8,7 +8,7 @@ /** * This class holds information about a stream group with command {@code xinfo stream mystream full}. - * They can be access via getters. There is also {@link StreamGroupFullInfo#getGroupFullInfo()} + * They can be accessed via getters. There is also {@link StreamGroupFullInfo#getGroupFullInfo()} * method that returns a generic {@link Map} in case more info are returned from the server. */ public class StreamGroupFullInfo implements Serializable { diff --git a/src/main/java/redis/clients/jedis/resps/StreamGroupInfo.java b/src/main/java/redis/clients/jedis/resps/StreamGroupInfo.java index d017701142..0531bb8fb5 100644 --- a/src/main/java/redis/clients/jedis/resps/StreamGroupInfo.java +++ b/src/main/java/redis/clients/jedis/resps/StreamGroupInfo.java @@ -5,7 +5,7 @@ import redis.clients.jedis.StreamEntryID; /** - * This class holds information about a stream group. They can be access via getters. There is also + * This class holds information about a stream group. They can be accessed via getters. There is also * {@link StreamGroupInfo#getGroupInfo()} method that returns a generic {@code Map} in case more * info are returned from the server. */ diff --git a/src/main/java/redis/clients/jedis/resps/StreamInfo.java b/src/main/java/redis/clients/jedis/resps/StreamInfo.java index 39e65b1202..a866f41e4c 100644 --- a/src/main/java/redis/clients/jedis/resps/StreamInfo.java +++ b/src/main/java/redis/clients/jedis/resps/StreamInfo.java @@ -5,7 +5,7 @@ import redis.clients.jedis.StreamEntryID; /** - * This class holds information about stream. They can be access via getters. There is also + * This class holds information about stream. They can be accessed via getters. There is also * {@link StreamInfo#getStreamInfo} method that returns a generic {@code Map} in case more info are * returned from the server. */ diff --git a/src/main/java/redis/clients/jedis/util/RedisInputStream.java b/src/main/java/redis/clients/jedis/util/RedisInputStream.java index 57734cffdb..a0dad9d437 100644 --- a/src/main/java/redis/clients/jedis/util/RedisInputStream.java +++ b/src/main/java/redis/clients/jedis/util/RedisInputStream.java @@ -128,7 +128,7 @@ public byte[] readLineBytes() { /** * Slow path in case a line of bytes cannot be read in one #fill() operation. This is still faster - * than creating the StrinbBuilder, String, then encoding as byte[] in Protocol, then decoding + * than creating the StringBuilder, String, then encoding as byte[] in Protocol, then decoding * back into a String. */ private byte[] readLineBytesSlowly() { @@ -236,7 +236,7 @@ public int read(byte[] b, int off, int len) throws JedisConnectionException { } /** - * This methods assumes there are required bytes to be read. If we cannot read anymore bytes an + * This method assumes there are required bytes to be read. If we cannot read anymore bytes an * exception is thrown to quickly ascertain that the stream was smaller than expected. */ private void ensureFill() throws JedisConnectionException { diff --git a/src/test/java/redis/clients/jedis/ConnectionTest.java b/src/test/java/redis/clients/jedis/ConnectionTest.java index ee9a0a9742..28eba8100c 100644 --- a/src/test/java/redis/clients/jedis/ConnectionTest.java +++ b/src/test/java/redis/clients/jedis/ConnectionTest.java @@ -17,7 +17,7 @@ public void tearDown() throws Exception { } @Test(expected = JedisConnectionException.class) - public void checkUnkownHost() { + public void checkUnknownHost() { client = new Connection("someunknownhost", Protocol.DEFAULT_PORT); client.connect(); } From 73023c575124408f45df244bbc0caae00ca42f69 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 12:41:52 +0600 Subject: [PATCH 3/5] Bump json from 20230227 to 20230618 (#3472) Bumps [json](https://github.com/douglascrockford/JSON-java) from 20230227 to 20230618. - [Release notes](https://github.com/douglascrockford/JSON-java/releases) - [Changelog](https://github.com/stleary/JSON-java/blob/master/docs/RELEASES.md) - [Commits](https://github.com/douglascrockford/JSON-java/commits) --- updated-dependencies: - dependency-name: org.json:json dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f2995791da..ecd22f14d5 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ org.json json - 20230227 + 20230618 com.google.code.gson From 80b880a3c0fb6ec28472b4829df2d2e326933d76 Mon Sep 17 00:00:00 2001 From: Oscar Besga Arcauz Date: Wed, 9 Aug 2023 10:03:48 +0200 Subject: [PATCH 4/5] Compatible JDK for JEDIS libraries in README (minor) (#3478) Co-authored-by: Chayim --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index b379424023..21abd49869 100644 --- a/README.md +++ b/README.md @@ -29,10 +29,11 @@ The most recent version of this library supports redis version [5.0](https://git The table below highlights version compatibility of the most-recent library versions and Redis versions. Compatibility means communication features, and Redis command capabilities. -| Library version | Supported redis versions | -|-----------------|--------------------------------| -| 3.9+ | 5.0 and 6.2 Family of releases | -| >= 4.0 | Version 5.0 to current | + +| Library version | Supported redis versions | JDK Compatibility | +|-----------------|-------------------|-------------------| +| 3.9+ | 5.0 and 6.2 Family of releases | 8, 11 | +| >= 4.0 | Version 5.0 to current | 8, 11, 17 | ## Getting started From ba63cf22649383ed6685789f0b9336b49cdc4b93 Mon Sep 17 00:00:00 2001 From: Chayim Date: Thu, 10 Aug 2023 14:24:02 +0300 Subject: [PATCH 5/5] Updating client license to clear, MIT (#3496) * Updating all client licenses to clearly be MIT * Update LICENSE Co-authored-by: M Sazzadul Hoque <7600764+sazzad16@users.noreply.github.com> --- LICENSE | 21 +++++++++++++++++++++ LICENSE.txt | 22 ---------------------- 2 files changed, 21 insertions(+), 22 deletions(-) create mode 100644 LICENSE delete mode 100644 LICENSE.txt diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000..15c4dd523a --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021-2023, Redis, inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/LICENSE.txt b/LICENSE.txt deleted file mode 100644 index 7b8b1cee63..0000000000 --- a/LICENSE.txt +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) 2010 Jonathan Leibiusky - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file