From 6ae5e391ca71a78a94dd24a17fe800cc7c35386a Mon Sep 17 00:00:00 2001 From: Andrew Carbonetto Date: Sun, 7 Jan 2024 22:54:25 -0800 Subject: [PATCH] Update examples with more examples Signed-off-by: Andrew Carbonetto --- .../src/main/java/glide/api/RedisClient.java | 4 ++-- .../java/glide/api/commands/BaseCommands.java | 1 + .../java/glide/api/commands/VoidCommands.java | 11 ++++++++--- .../glide/api/{commands => models}/Command.java | 2 +- .../client/src/main/java/glide/api/models/Ok.java | 15 +++++++++++++++ .../api/{commands => models}/Transaction.java | 2 +- .../main/java/glide/managers/CommandManager.java | 2 +- .../src/test/java/glide/api/RedisClientTest.java | 2 +- .../java/glide/managers/CommandManagerTest.java | 2 +- .../src/main/java/glide/examples/ExamplesApp.java | 10 ++++++++++ 10 files changed, 41 insertions(+), 10 deletions(-) rename java/client/src/main/java/glide/api/{commands => models}/Command.java (97%) create mode 100644 java/client/src/main/java/glide/api/models/Ok.java rename java/client/src/main/java/glide/api/{commands => models}/Transaction.java (77%) diff --git a/java/client/src/main/java/glide/api/RedisClient.java b/java/client/src/main/java/glide/api/RedisClient.java index 624c46d9e9..d7508831e5 100644 --- a/java/client/src/main/java/glide/api/RedisClient.java +++ b/java/client/src/main/java/glide/api/RedisClient.java @@ -3,10 +3,10 @@ import static glide.ffi.resolvers.SocketListenerResolver.getSocket; import glide.api.commands.BaseCommands; -import glide.api.commands.Command; +import glide.api.models.Command; import glide.api.commands.RedisExceptionCheckedFunction; import glide.api.commands.StringCommands; -import glide.api.commands.Transaction; +import glide.api.models.Transaction; import glide.api.commands.VoidCommands; import glide.api.models.commands.InfoOptions; import glide.api.models.commands.SetOptions; diff --git a/java/client/src/main/java/glide/api/commands/BaseCommands.java b/java/client/src/main/java/glide/api/commands/BaseCommands.java index f6dbf2a697..acd4308ad1 100644 --- a/java/client/src/main/java/glide/api/commands/BaseCommands.java +++ b/java/client/src/main/java/glide/api/commands/BaseCommands.java @@ -1,5 +1,6 @@ package glide.api.commands; +import glide.api.models.Transaction; import glide.ffi.resolvers.RedisValueResolver; import java.util.List; import java.util.concurrent.CompletableFuture; diff --git a/java/client/src/main/java/glide/api/commands/VoidCommands.java b/java/client/src/main/java/glide/api/commands/VoidCommands.java index fdee64996b..22eb181f54 100644 --- a/java/client/src/main/java/glide/api/commands/VoidCommands.java +++ b/java/client/src/main/java/glide/api/commands/VoidCommands.java @@ -1,5 +1,6 @@ package glide.api.commands; +import glide.api.models.Ok; import glide.api.models.exceptions.RedisException; import java.util.concurrent.CompletableFuture; import response.ResponseOuterClass.Response; @@ -7,18 +8,22 @@ /** Void Commands interface to handle commands that have no payload. */ public interface VoidCommands { + public static Ok OK = new Ok(); + /** * Check for errors in the Response and return null Throws an error if an unexpected value is * returned * - * @return null if the response is empty + * TODO: confirm that we want to return Ok - instead of null + * @return Ok if the response is empty */ - static Void handleVoidResponse(Response response) { + static Ok handleVoidResponse(Response response) { // return function to convert protobuf.Response into the response object by // calling valueFromPointer Object value = BaseCommands.applyBaseCommandResponseResolver().apply(response); if (value == null) { - return null; + // TODO: confirm that we want to return Ok - instead of null + return OK; } throw new RedisException( "Unexpected return type from Redis: got " + value.getClass() + " expected null"); diff --git a/java/client/src/main/java/glide/api/commands/Command.java b/java/client/src/main/java/glide/api/models/Command.java similarity index 97% rename from java/client/src/main/java/glide/api/commands/Command.java rename to java/client/src/main/java/glide/api/models/Command.java index 3ef9eb081b..821defa68f 100644 --- a/java/client/src/main/java/glide/api/commands/Command.java +++ b/java/client/src/main/java/glide/api/models/Command.java @@ -1,4 +1,4 @@ -package glide.api.commands; +package glide.api.models; import lombok.Builder; import lombok.EqualsAndHashCode; diff --git a/java/client/src/main/java/glide/api/models/Ok.java b/java/client/src/main/java/glide/api/models/Ok.java new file mode 100644 index 0000000000..53e4f7b175 --- /dev/null +++ b/java/client/src/main/java/glide/api/models/Ok.java @@ -0,0 +1,15 @@ +package glide.api.models; + +public class Ok { + + public static final String OK = "OK"; + + public boolean isEqual(Object object) { + return object instanceof Ok; + } + + public String toString() { + return OK; + } + +} diff --git a/java/client/src/main/java/glide/api/commands/Transaction.java b/java/client/src/main/java/glide/api/models/Transaction.java similarity index 77% rename from java/client/src/main/java/glide/api/commands/Transaction.java rename to java/client/src/main/java/glide/api/models/Transaction.java index 6eead551fa..6b61b53a9e 100644 --- a/java/client/src/main/java/glide/api/commands/Transaction.java +++ b/java/client/src/main/java/glide/api/models/Transaction.java @@ -1,4 +1,4 @@ -package glide.api.commands; +package glide.api.models; /** Class for encapsulating multi-request Transactions to Redis. */ public class Transaction {} diff --git a/java/client/src/main/java/glide/managers/CommandManager.java b/java/client/src/main/java/glide/managers/CommandManager.java index 4f209b335d..42b161dd39 100644 --- a/java/client/src/main/java/glide/managers/CommandManager.java +++ b/java/client/src/main/java/glide/managers/CommandManager.java @@ -1,6 +1,6 @@ package glide.managers; -import glide.api.commands.Command; +import glide.api.models.Command; import glide.api.commands.RedisExceptionCheckedFunction; import glide.connectors.handlers.ChannelHandler; import java.util.concurrent.CompletableFuture; diff --git a/java/client/src/test/java/glide/api/RedisClientTest.java b/java/client/src/test/java/glide/api/RedisClientTest.java index bcd680095a..af21eb40bc 100644 --- a/java/client/src/test/java/glide/api/RedisClientTest.java +++ b/java/client/src/test/java/glide/api/RedisClientTest.java @@ -14,7 +14,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -import glide.api.commands.Command; +import glide.api.models.Command; import glide.api.models.commands.SetOptions; import glide.managers.CommandManager; import glide.managers.ConnectionManager; diff --git a/java/client/src/test/java/glide/managers/CommandManagerTest.java b/java/client/src/test/java/glide/managers/CommandManagerTest.java index 12a3a9fe69..78fb636ef5 100644 --- a/java/client/src/test/java/glide/managers/CommandManagerTest.java +++ b/java/client/src/test/java/glide/managers/CommandManagerTest.java @@ -10,7 +10,7 @@ import static org.mockito.Mockito.when; import glide.api.commands.BaseCommandResponseResolver; -import glide.api.commands.Command; +import glide.api.models.Command; import glide.api.models.exceptions.ClosingException; import glide.api.models.exceptions.ConnectionException; import glide.api.models.exceptions.ExecAbortException; diff --git a/java/examples/src/main/java/glide/examples/ExamplesApp.java b/java/examples/src/main/java/glide/examples/ExamplesApp.java index bb6547e61f..f58dfc8191 100644 --- a/java/examples/src/main/java/glide/examples/ExamplesApp.java +++ b/java/examples/src/main/java/glide/examples/ExamplesApp.java @@ -56,6 +56,10 @@ private static void runGlideExamples() { RedisClient client = GlideClient.connectToGlide(settings); System.out.println("Glide PING: " + client.ping().get()); + System.out.println("Glide PING(custom): " + client.ping("found you!").get()); + + // panic + // System.out.println("Glide INFO(): " + client.info().get()); System.out.println("Glide SET(myKey, myValue): " + client.set("myKey", "myValue").get()); System.out.println("Glide GET(myKey): " + client.get("myKey").get()); @@ -63,6 +67,12 @@ private static void runGlideExamples() { System.out.println("Glide GET(myKey): " + client.get("myKey").get()); System.out.println("Glide GET(invalid): " + client.get("invalid").get()); + Object customGetMyKey = client.customCommand(new String[]{"get", "myKey"}).get(); + System.out.println("Glide CUSTOM_COMMAND(get, myKey): " + customGetMyKey); + + Object customGetInvalid = client.customCommand(new String[]{"get", "invalid"}).get(); + System.out.println("Glide CUSTOM_COMMAND(get, invalid): " + customGetInvalid); + } catch (ExecutionException | InterruptedException e) { System.out.println("Glide example failed with an exception: "); e.printStackTrace();