From b5837fd55d8fa13aedff0a1c3d10e546b4f546a6 Mon Sep 17 00:00:00 2001 From: knonomura Date: Tue, 3 Mar 2026 19:55:00 +0900 Subject: [PATCH 1/3] Update for V5.9 --- .../gs/tools/shell/GridStoreScriptEngine.java | 38 ++++++++++++++++++- .../shell/commands/ClusterCommandClass.java | 6 ++- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/src/com/toshiba/mwcloud/gs/tools/shell/GridStoreScriptEngine.java b/src/com/toshiba/mwcloud/gs/tools/shell/GridStoreScriptEngine.java index cead112..0494501 100644 --- a/src/com/toshiba/mwcloud/gs/tools/shell/GridStoreScriptEngine.java +++ b/src/com/toshiba/mwcloud/gs/tools/shell/GridStoreScriptEngine.java @@ -25,6 +25,7 @@ import java.nio.file.Paths; import java.text.MessageFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; @@ -53,6 +54,8 @@ import org.jline.reader.impl.completer.ArgumentCompleter; import org.jline.reader.impl.completer.StringsCompleter; import org.jline.reader.impl.history.DefaultHistory; +import org.jline.reader.EOFError; +import org.jline.reader.ParsedLine; import org.jline.terminal.Size; import org.jline.terminal.Terminal; import org.jline.terminal.TerminalBuilder; @@ -186,7 +189,7 @@ public Object eval(Reader reader, ScriptContext context) throws ScriptException .terminal(terminal) .option(Option.BRACKETED_PASTE, false) .option(Option.HISTORY_IGNORE_SPACE, false) - .parser(new DefaultParser()) + .parser(new CustomParser()) .history(new DefaultHistory()) .completer(new ArgumentCompleter(completors)) .build(); @@ -297,6 +300,39 @@ public Object eval(Reader reader, ScriptContext context) throws ScriptException } } + // multi input support + private class CustomParser extends DefaultParser { + + @Override + public ParsedLine parse(String line, int cursor, ParseContext context) { + String[] needEndList = { + "tql", + "sql", + "select", + "insert", + "update", + "delete", + "create", + "alter", + "set password", + "drop", + "grant", + "revoke", + "tqlexplain", + "tqlanlyze" + }; + if (context == ParseContext.ACCEPT_LINE) { + String[] checkCommand = line.trim().split(" "); + if (Arrays.asList(needEndList).contains(checkCommand[0].toLowerCase())) { + if (!line.trim().endsWith(";")) { + throw new EOFError(-1, -1, "not end of statement"); + } + } + } + return super.parse(line, cursor, context); + } + } + private String readAdditionalLines(BufferedReader bufferedReader, String firstLine) throws IOException { StringBuilder builder = new StringBuilder(firstLine); diff --git a/src/com/toshiba/mwcloud/gs/tools/shell/commands/ClusterCommandClass.java b/src/com/toshiba/mwcloud/gs/tools/shell/commands/ClusterCommandClass.java index 67c0549..cf40a89 100644 --- a/src/com/toshiba/mwcloud/gs/tools/shell/commands/ClusterCommandClass.java +++ b/src/com/toshiba/mwcloud/gs/tools/shell/commands/ClusterCommandClass.java @@ -383,7 +383,11 @@ private void stopNodeImpl(ShellNode[] nodes, Integer waitSeconds, boolean force) throw new ShellException( getMessage("error.someNodesNotStopped", errorCount, watchers.size())); } else { - println(getMessage("message.allNodesStopped")); + if (nodes.length == 1) { + println(getMessage("message.nodeStopped", nodes[0].getName())); + } else { + println(getMessage("message.allNodesStopped")); + } } } else { println(getMessage("error.timeout")); From 6c1e8069bc47741e4f1ff0974b07570a3b07375f Mon Sep 17 00:00:00 2001 From: knonomura Date: Tue, 3 Mar 2026 19:59:33 +0900 Subject: [PATCH 2/3] Change version --- build.gradle | 4 ++-- common/build.gradle | 4 ++-- .../mwcloud/gs/tools/shell/GridStoreShellMessages.properties | 2 +- .../gs/tools/shell/GridStoreShellMessages_ja.properties | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/build.gradle b/build.gradle index 11bd6cf..7614f8f 100644 --- a/build.gradle +++ b/build.gradle @@ -15,8 +15,8 @@ sourceSets { } } -def gridstoreVersion = '5.8.0' -def gridstoreJdbcVersion = '5.8.0' +def gridstoreVersion = '5.9.0' +def gridstoreJdbcVersion = '5.9.0' repositories { mavenCentral() diff --git a/common/build.gradle b/common/build.gradle index 9518ff6..09267e1 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -14,8 +14,8 @@ sourceSets { } } -def gridstoreVersion = '5.8.0' -def gridstoreJdbcVersion = '5.8.0' +def gridstoreVersion = '5.9.0' +def gridstoreJdbcVersion = '5.9.0' dependencies { implementation 'commons-io:commons-io:2.15.1' diff --git a/src/com/toshiba/mwcloud/gs/tools/shell/GridStoreShellMessages.properties b/src/com/toshiba/mwcloud/gs/tools/shell/GridStoreShellMessages.properties index 342e1f2..a1302db 100644 --- a/src/com/toshiba/mwcloud/gs/tools/shell/GridStoreShellMessages.properties +++ b/src/com/toshiba/mwcloud/gs/tools/shell/GridStoreShellMessages.properties @@ -1,4 +1,4 @@ -version=gs_sh version 5.8.0 +version=gs_sh version 5.9.0 help.version=Show version help.help=Show this help diff --git a/src/com/toshiba/mwcloud/gs/tools/shell/GridStoreShellMessages_ja.properties b/src/com/toshiba/mwcloud/gs/tools/shell/GridStoreShellMessages_ja.properties index bfe7e54..5d8d544 100644 --- a/src/com/toshiba/mwcloud/gs/tools/shell/GridStoreShellMessages_ja.properties +++ b/src/com/toshiba/mwcloud/gs/tools/shell/GridStoreShellMessages_ja.properties @@ -1,4 +1,4 @@ -version=gs_sh version 5.8.0 +version=gs_sh version 5.9.0 help.version=Show version help.help=Show this help From 2716a06c0eff2267eadfb89ba85dad7e63da3103 Mon Sep 17 00:00:00 2001 From: knonomura Date: Tue, 3 Mar 2026 20:00:58 +0900 Subject: [PATCH 3/3] Update for V5.9 --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3e548b8..8747284 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ The GridDB CLI provides command line interface tool to manage GridDB cluster ope Building and program execution are checked in the environment below. OS: Ubuntu 22.04 (x64) - GridDB Server: V5.8 CE(Community Edition) + GridDB Server: V5.9 CE(Community Edition) Java: OpenJDK 1.8.0 ## Quick start from CLI Source Code @@ -47,7 +47,7 @@ and the following file is created under `release/` folder. $ CP=$CP:common/lib/commons-io-2.15.1.jar:release/griddb-cli.jar:common/lib/gridstore.jar:common/lib/gridstore-jdbc.jar:common/lib/jackson-annotations-2.16.1.jar:common/lib/jackson-core-2.16.1.jar:common/lib/jackson-databind-2.16.1.jar:common/lib/javax.json-1.0.jar:common/lib/jersey-client-1.17.1.jar:common/lib/jersey-core-1.17.1.jar:common/lib/orion-ssh2-214.jar:lib/commons-beanutils-1.9.4.jar:lib/commons-cli-1.6.0.jar:lib/commons-collections-3.2.2.jar:lib/commons-lang3-3.14.0.jar:lib/commons-logging-1.3.0.jar:lib/jline-3.21.0.jar:lib/logback-classic-1.2.13.jar:lib/logback-core-1.0.13.jar:lib/opencsv-3.9.jar:lib/slf4j-api-1.7.36.jar $ java -Xmx1024m -Dlogback.configurationFile=gs_sh_logback.xml -classpath "$CP:$CLASSPATH" com.toshiba.mwcloud.gs.tools.shell.GridStoreShell $* gs> version - gs_sh-ce version 5.8.0 + gs_sh-ce version 5.9.0 Run GridDB CLI after build with gradle: @@ -55,7 +55,7 @@ and the following file is created under `release/` folder. $ CP=$CP:release/griddb-cli.jar $ java -Xmx1024m -Dlogback.configurationFile=gs_sh_logback.xml -classpath "$CP:$CLASSPATH" com.toshiba.mwcloud.gs.tools.shell.GridStoreShell $* gs> version - gs_sh-ce version 5.8.0 + gs_sh-ce version 5.9.0 ## Quick start from CLI Package