This is an automated email from the ASF dual-hosted git repository.
apkhmv pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/main by this push:
new 35fbde0e70 IGNITE-22777 Improve CLI usability (#4280)
35fbde0e70 is described below
commit 35fbde0e70b8a715774aee1f33c032dfd304317d
Author: Aleksandr Pakhomov <[email protected]>
AuthorDate: Thu Aug 29 16:38:30 2024 +0300
IGNITE-22777 Improve CLI usability (#4280)
Not the usage text is more user-friendly
---
.../ignite/internal/cli/commands/BaseCommand.java | 29 +++++++++++++--
.../internal/cli/commands/CommandConstants.java | 41 ++++++++++++++++++++++
.../ignite/internal/cli/commands/ProfileMixin.java | 3 +-
.../internal/cli/commands/TopLevelCliCommand.java | 3 +-
.../cli/commands/TopLevelCliReplCommand.java | 29 +++++++++++++--
.../cli/commands/cluster/ClusterUrlMixin.java | 8 ++++-
.../commands/cluster/init/ClusterInitCommand.java | 6 ++--
.../commands/cluster/init/ClusterInitOptions.java | 13 ++++---
.../commands/sql/SqlReplTopLevelCliCommand.java | 24 ++++++++++++-
.../cli/commands/sql/help/SqlHelpCommand.java | 26 ++++++++++++--
.../internal/cli/commands/sql/SqlCommandTest.java | 2 +-
11 files changed, 165 insertions(+), 19 deletions(-)
diff --git
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/BaseCommand.java
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/BaseCommand.java
index 8d1ed5a7ae..1280f28ec6 100644
---
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/BaseCommand.java
+++
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/BaseCommand.java
@@ -17,6 +17,18 @@
package org.apache.ignite.internal.cli.commands;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.ABBREVIATE_SYNOPSIS;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.COMMAND_LIST_HEADING;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.DESCRIPTION_HEADING;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.HELP_OPTION_ORDER;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.OPTION_LIST_HEADING;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.PARAMETER_LIST_HEADING;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.REQUIRED_OPTION_MARKER;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.SORT_OPTIONS;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.SORT_SYNOPSIS;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.SYNOPSIS_HEADING;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.USAGE_HELP_AUTO_WIDTH;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.VERBOSE_OPTION_ORDER;
import static
org.apache.ignite.internal.cli.commands.Options.Constants.HELP_OPTION;
import static
org.apache.ignite.internal.cli.commands.Options.Constants.HELP_OPTION_DESC;
import static
org.apache.ignite.internal.cli.commands.Options.Constants.HELP_OPTION_SHORT;
@@ -24,6 +36,7 @@ import static
org.apache.ignite.internal.cli.commands.Options.Constants.VERBOSE_
import static
org.apache.ignite.internal.cli.commands.Options.Constants.VERBOSE_OPTION_DESC;
import static
org.apache.ignite.internal.cli.commands.Options.Constants.VERBOSE_OPTION_SHORT;
+import picocli.CommandLine.Command;
import picocli.CommandLine.Model.CommandSpec;
import picocli.CommandLine.Option;
import picocli.CommandLine.Spec;
@@ -31,13 +44,25 @@ import picocli.CommandLine.Spec;
/**
* Base class for commands.
*/
+@Command(
+ descriptionHeading = DESCRIPTION_HEADING,
+ optionListHeading = OPTION_LIST_HEADING,
+ synopsisHeading = SYNOPSIS_HEADING,
+ requiredOptionMarker = REQUIRED_OPTION_MARKER,
+ usageHelpAutoWidth = USAGE_HELP_AUTO_WIDTH,
+ sortOptions = SORT_OPTIONS,
+ sortSynopsis = SORT_SYNOPSIS,
+ abbreviateSynopsis = ABBREVIATE_SYNOPSIS,
+ commandListHeading = COMMAND_LIST_HEADING,
+ parameterListHeading = PARAMETER_LIST_HEADING
+)
public abstract class BaseCommand {
/** Help option specification. */
- @Option(names = {HELP_OPTION, HELP_OPTION_SHORT}, usageHelp = true,
description = HELP_OPTION_DESC)
+ @Option(names = {HELP_OPTION, HELP_OPTION_SHORT}, description =
HELP_OPTION_DESC, usageHelp = true, order = HELP_OPTION_ORDER)
protected boolean usageHelpRequested;
/** Verbose option specification. */
- @Option(names = {VERBOSE_OPTION, VERBOSE_OPTION_SHORT}, description =
VERBOSE_OPTION_DESC)
+ @Option(names = {VERBOSE_OPTION, VERBOSE_OPTION_SHORT}, description =
VERBOSE_OPTION_DESC, order = VERBOSE_OPTION_ORDER)
protected boolean verbose;
/** Instance of picocli command specification. */
diff --git
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/CommandConstants.java
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/CommandConstants.java
new file mode 100644
index 0000000000..b38da58b2f
--- /dev/null
+++
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/CommandConstants.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.cli.commands;
+
+/**
+ * Constants for @Command annotation.
+ */
+public class CommandConstants {
+ public static final String DESCRIPTION_HEADING = "%nDESCRIPTION%n";
+ public static final String OPTION_LIST_HEADING = "%nOPTIONS @|fg(246) * -
required option|@ %n";
+ public static final String SYNOPSIS_HEADING = "%nUSAGE%n";
+ public static final String COMMAND_LIST_HEADING = "%nCOMMANDS%n";
+ public static final String PARAMETER_LIST_HEADING = "%nPARAMETERS
@|fg(246) * - required parameter|@ %n";
+ public static final char REQUIRED_OPTION_MARKER = '*';
+ public static final boolean USAGE_HELP_AUTO_WIDTH = true;
+ public static final boolean SORT_OPTIONS = false;
+ public static final boolean SORT_SYNOPSIS = false;
+ public static final boolean ABBREVIATE_SYNOPSIS = true;
+
+
+ public static final int CLUSTER_URL_OPTION_ORDER = 10;
+ public static final int PROFILE_OPTION_ORDER = 11;
+ public static final int HELP_OPTION_ORDER = 100;
+ public static final int VERBOSE_OPTION_ORDER = 101;
+ public static final int VERSION_OPTION_ORDER = 102;
+}
diff --git
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/ProfileMixin.java
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/ProfileMixin.java
index d73e0ffe15..d3581ece8e 100644
---
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/ProfileMixin.java
+++
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/ProfileMixin.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.cli.commands;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.PROFILE_OPTION_ORDER;
import static
org.apache.ignite.internal.cli.commands.Options.Constants.PROFILE_OPTION;
import static
org.apache.ignite.internal.cli.commands.Options.Constants.PROFILE_OPTION_DESC;
@@ -26,7 +27,7 @@ import picocli.CommandLine.Option;
* Mixin for profile option.
*/
public class ProfileMixin {
- @Option(names = PROFILE_OPTION, description = PROFILE_OPTION_DESC)
+ @Option(names = PROFILE_OPTION, description = PROFILE_OPTION_DESC, order =
PROFILE_OPTION_ORDER)
private String profileName;
/**
diff --git
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/TopLevelCliCommand.java
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/TopLevelCliCommand.java
index 610e13a724..764eae83cf 100644
---
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/TopLevelCliCommand.java
+++
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/TopLevelCliCommand.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.cli.commands;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.VERSION_OPTION_ORDER;
import static
org.apache.ignite.internal.cli.commands.Options.Constants.VERSION_OPTION;
import static
org.apache.ignite.internal.cli.commands.Options.Constants.VERSION_OPTION_DESC;
@@ -51,6 +52,6 @@ import picocli.CommandLine.Option;
})
public class TopLevelCliCommand extends BaseCommand {
@SuppressWarnings("PMD.UnusedPrivateField")
- @Option(names = VERSION_OPTION, versionHelp = true, description =
VERSION_OPTION_DESC)
+ @Option(names = VERSION_OPTION, versionHelp = true, description =
VERSION_OPTION_DESC, order = VERSION_OPTION_ORDER)
private boolean versionRequested;
}
diff --git
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/TopLevelCliReplCommand.java
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/TopLevelCliReplCommand.java
index df93c017b3..0f52531fb0 100644
---
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/TopLevelCliReplCommand.java
+++
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/TopLevelCliReplCommand.java
@@ -17,6 +17,17 @@
package org.apache.ignite.internal.cli.commands;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.ABBREVIATE_SYNOPSIS;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.COMMAND_LIST_HEADING;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.DESCRIPTION_HEADING;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.OPTION_LIST_HEADING;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.PARAMETER_LIST_HEADING;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.REQUIRED_OPTION_MARKER;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.SORT_OPTIONS;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.SORT_SYNOPSIS;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.SYNOPSIS_HEADING;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.USAGE_HELP_AUTO_WIDTH;
+
import org.apache.ignite.internal.cli.commands.cliconfig.CliReplCommand;
import org.apache.ignite.internal.cli.commands.cluster.ClusterReplCommand;
import org.apache.ignite.internal.cli.commands.connect.ConnectReplCommand;
@@ -26,12 +37,13 @@ import
org.apache.ignite.internal.cli.commands.recovery.RecoveryReplCommand;
import org.apache.ignite.internal.cli.commands.sql.SqlReplCommand;
import org.apache.ignite.internal.cli.commands.version.VersionCommand;
import picocli.CommandLine;
+import picocli.CommandLine.Command;
import picocli.shell.jline3.PicocliCommands;
/**
* Top-level command that just prints help.
*/
[email protected](name = "",
+@Command(name = "",
footer = {"", "Press Ctrl-D to exit."},
subcommands = {
SqlReplCommand.class,
@@ -45,6 +57,19 @@ import picocli.shell.jline3.PicocliCommands;
NodeReplCommand.class,
ClusterReplCommand.class,
RecoveryReplCommand.class
- })
+ },
+
+ descriptionHeading = DESCRIPTION_HEADING,
+ optionListHeading = OPTION_LIST_HEADING,
+ synopsisHeading = SYNOPSIS_HEADING,
+ requiredOptionMarker = REQUIRED_OPTION_MARKER,
+ usageHelpAutoWidth = USAGE_HELP_AUTO_WIDTH,
+ sortOptions = SORT_OPTIONS,
+ sortSynopsis = SORT_SYNOPSIS,
+ abbreviateSynopsis = ABBREVIATE_SYNOPSIS,
+ commandListHeading = COMMAND_LIST_HEADING,
+ parameterListHeading = PARAMETER_LIST_HEADING
+
+)
public class TopLevelCliReplCommand {
}
diff --git
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/cluster/ClusterUrlMixin.java
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/cluster/ClusterUrlMixin.java
index 6fa62c6460..39ea5fdd50 100644
---
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/cluster/ClusterUrlMixin.java
+++
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/cluster/ClusterUrlMixin.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.cli.commands.cluster;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.CLUSTER_URL_OPTION_ORDER;
import static
org.apache.ignite.internal.cli.commands.Options.Constants.CLUSTER_URL_OPTION;
import static
org.apache.ignite.internal.cli.commands.Options.Constants.CLUSTER_URL_OPTION_DESC;
@@ -29,7 +30,12 @@ import picocli.CommandLine.Option;
*/
public class ClusterUrlMixin {
/** Cluster endpoint URL option. */
- @Option(names = CLUSTER_URL_OPTION, description = CLUSTER_URL_OPTION_DESC,
converter = UrlConverter.class)
+ @Option(
+ names = CLUSTER_URL_OPTION,
+ description = CLUSTER_URL_OPTION_DESC,
+ converter = UrlConverter.class,
+ order = CLUSTER_URL_OPTION_ORDER
+ )
private URL clusterUrl;
public String getClusterUrl() {
diff --git
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/cluster/init/ClusterInitCommand.java
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/cluster/init/ClusterInitCommand.java
index 045a69ec46..b41390fb11 100644
---
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/cluster/init/ClusterInitCommand.java
+++
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/cluster/init/ClusterInitCommand.java
@@ -32,12 +32,12 @@ import picocli.CommandLine.Mixin;
*/
@Command(name = "init", description = "Initializes an Ignite cluster")
public class ClusterInitCommand extends BaseCommand implements
Callable<Integer> {
- /** Cluster endpoint URL option. */
@Mixin
- private ClusterUrlProfileMixin clusterUrl;
+ private ClusterInitOptions clusterInitOptions;
+ /** Cluster endpoint URL option. */
@Mixin
- private ClusterInitOptions clusterInitOptions;
+ private ClusterUrlProfileMixin clusterUrl;
@Inject
private ClusterInitCall call;
diff --git
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/cluster/init/ClusterInitOptions.java
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/cluster/init/ClusterInitOptions.java
index 21fd207f53..e4f60f220b 100644
---
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/cluster/init/ClusterInitOptions.java
+++
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/cluster/init/ClusterInitOptions.java
@@ -53,6 +53,10 @@ import picocli.CommandLine.Option;
* Mixin class for cluster init command options.
*/
public class ClusterInitOptions {
+ /** Name of the cluster. */
+ @Option(names = CLUSTER_NAME_OPTION, required = true, description =
CLUSTER_NAME_OPTION_DESC, order = 0)
+ private String clusterName;
+
/**
* List of names of the nodes (each represented by a separate command line
argument) that will host the Meta Storage. If the
* "--cluster-management-group" parameter is omitted, the same nodes will
also host the Cluster Management Group.
@@ -62,6 +66,7 @@ public class ClusterInitOptions {
description = META_STORAGE_NODE_NAME_OPTION_DESC,
split = ",",
paramLabel = META_STORAGE_NODE_NAME_PARAM_LABEL,
+ order = 1,
preprocessor = SingleOccurrenceMetastorageConsumer.class
)
private List<String> metaStorageNodes;
@@ -73,24 +78,22 @@ public class ClusterInitOptions {
description = CMG_NODE_NAME_OPTION_DESC,
split = ",",
paramLabel = CMG_NODE_NAME_PARAM_LABEL,
+ order = 2,
preprocessor = SingleOccurrenceClusterManagementConsumer.class
)
private List<String> cmgNodes = new ArrayList<>();
- /** Name of the cluster. */
- @Option(names = CLUSTER_NAME_OPTION, required = true, description =
CLUSTER_NAME_OPTION_DESC)
- private String clusterName;
-
@ArgGroup
private ClusterConfigOptions clusterConfigOptions;
private static class ClusterConfigOptions {
- @Option(names = CLUSTER_CONFIG_OPTION, description =
CLUSTER_CONFIG_OPTION_DESC)
+ @Option(names = CLUSTER_CONFIG_OPTION, order = 3, description =
CLUSTER_CONFIG_OPTION_DESC)
private String config;
@Option(names = CLUSTER_CONFIG_FILE_OPTION,
description = CLUSTER_CONFIG_FILE_OPTION_DESC,
split = ",",
+ order = 4,
paramLabel = CLUSTER_CONFIG_FILE_PARAM_LABEL
)
private List<File> files;
diff --git
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/sql/SqlReplTopLevelCliCommand.java
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/sql/SqlReplTopLevelCliCommand.java
index 46bb48a4cf..6357af8c46 100644
---
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/sql/SqlReplTopLevelCliCommand.java
+++
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/sql/SqlReplTopLevelCliCommand.java
@@ -17,6 +17,17 @@
package org.apache.ignite.internal.cli.commands.sql;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.ABBREVIATE_SYNOPSIS;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.COMMAND_LIST_HEADING;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.DESCRIPTION_HEADING;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.OPTION_LIST_HEADING;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.PARAMETER_LIST_HEADING;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.REQUIRED_OPTION_MARKER;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.SORT_OPTIONS;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.SORT_SYNOPSIS;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.SYNOPSIS_HEADING;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.USAGE_HELP_AUTO_WIDTH;
+
import org.apache.ignite.internal.cli.commands.ExitCommand;
import org.apache.ignite.internal.cli.commands.sql.help.SqlHelpCommand;
import picocli.CommandLine.Command;
@@ -31,7 +42,18 @@ import picocli.shell.jline3.PicocliCommands.ClearScreen;
ClearScreen.class,
ExitCommand.class,
SqlHelpCommand.class
- }
+ },
+
+ descriptionHeading = DESCRIPTION_HEADING,
+ optionListHeading = OPTION_LIST_HEADING,
+ synopsisHeading = SYNOPSIS_HEADING,
+ requiredOptionMarker = REQUIRED_OPTION_MARKER,
+ usageHelpAutoWidth = USAGE_HELP_AUTO_WIDTH,
+ sortOptions = SORT_OPTIONS,
+ sortSynopsis = SORT_SYNOPSIS,
+ abbreviateSynopsis = ABBREVIATE_SYNOPSIS,
+ commandListHeading = COMMAND_LIST_HEADING,
+ parameterListHeading = PARAMETER_LIST_HEADING
)
public class SqlReplTopLevelCliCommand {
}
diff --git
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/sql/help/SqlHelpCommand.java
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/sql/help/SqlHelpCommand.java
index a62be2b8fc..157392b8d3 100644
---
a/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/sql/help/SqlHelpCommand.java
+++
b/modules/cli/src/main/java/org/apache/ignite/internal/cli/commands/sql/help/SqlHelpCommand.java
@@ -17,6 +17,17 @@
package org.apache.ignite.internal.cli.commands.sql.help;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.ABBREVIATE_SYNOPSIS;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.COMMAND_LIST_HEADING;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.DESCRIPTION_HEADING;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.OPTION_LIST_HEADING;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.PARAMETER_LIST_HEADING;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.REQUIRED_OPTION_MARKER;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.SORT_OPTIONS;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.SORT_SYNOPSIS;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.SYNOPSIS_HEADING;
+import static
org.apache.ignite.internal.cli.commands.CommandConstants.USAGE_HELP_AUTO_WIDTH;
+
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Objects;
@@ -32,11 +43,22 @@ import picocli.CommandLine.Parameters;
/** Help command in SQL repl mode. */
@Command(name = "help",
header = "Display help information about the specified SQL command.",
- synopsisHeading = "%nUsage: ",
helpCommand = true,
description = {
"%nWhen no SQL command is given, the usage help for the main
command is displayed.",
- "If a SQL command is specified, the help for that command is
shown.%n"}
+ "If a SQL command is specified, the help for that command is
shown.%n"
+ },
+
+ descriptionHeading = DESCRIPTION_HEADING,
+ optionListHeading = OPTION_LIST_HEADING,
+ synopsisHeading = SYNOPSIS_HEADING,
+ requiredOptionMarker = REQUIRED_OPTION_MARKER,
+ usageHelpAutoWidth = USAGE_HELP_AUTO_WIDTH,
+ sortOptions = SORT_OPTIONS,
+ sortSynopsis = SORT_SYNOPSIS,
+ abbreviateSynopsis = ABBREVIATE_SYNOPSIS,
+ commandListHeading = COMMAND_LIST_HEADING,
+ parameterListHeading = PARAMETER_LIST_HEADING
)
public final class SqlHelpCommand implements IHelpCommandInitializable2,
Runnable {
diff --git
a/modules/cli/src/test/java/org/apache/ignite/internal/cli/commands/sql/SqlCommandTest.java
b/modules/cli/src/test/java/org/apache/ignite/internal/cli/commands/sql/SqlCommandTest.java
index 8cbd62d91b..30a82bfc6c 100644
---
a/modules/cli/src/test/java/org/apache/ignite/internal/cli/commands/sql/SqlCommandTest.java
+++
b/modules/cli/src/test/java/org/apache/ignite/internal/cli/commands/sql/SqlCommandTest.java
@@ -38,7 +38,7 @@ class SqlCommandTest extends CliCommandTestBase {
assertAll(
() -> assertExitCodeIs(2),
this::assertOutputIsEmpty,
- () -> assertErrOutputContains("Missing required argument
(specify one of these): (<command> | --file=<file>)")
+ () -> assertErrOutputContains("Missing required argument
(specify one of these): (--file=<file> | <command>)")
);
}