This is an automated email from the ASF dual-hosted git repository. nizhikov pushed a commit to branch IGNITE-13422 in repository https://gitbox.apache.org/repos/asf/ignite.git
commit 54efa3887ee034244c7080ba726c26b123985f39 Author: Nikolay Izhikov <[email protected]> AuthorDate: Thu Sep 10 00:49:49 2020 +0300 IGNITE-13422 --enable-experimental option for control.sh introduced --- .../internal/commandline/CommandHandler.java | 30 +++++++++++++++++++++- .../internal/commandline/CommonArgParser.java | 9 +++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/CommandHandler.java b/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/CommandHandler.java index 32875b7..54b6433 100644 --- a/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/CommandHandler.java +++ b/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/CommandHandler.java @@ -57,6 +57,7 @@ import org.jetbrains.annotations.Nullable; import static java.lang.System.lineSeparator; import static java.util.Objects.nonNull; +import static org.apache.ignite.IgniteSystemProperties.IGNITE_ENABLE_EXPERIMENTAL_COMMAND; import static org.apache.ignite.internal.IgniteVersionUtils.ACK_VER_STR; import static org.apache.ignite.internal.IgniteVersionUtils.COPYRIGHT; import static org.apache.ignite.internal.commandline.CommandLogger.DOUBLE_INDENT; @@ -64,6 +65,7 @@ import static org.apache.ignite.internal.commandline.CommandLogger.INDENT; import static org.apache.ignite.internal.commandline.CommandLogger.errorMessage; import static org.apache.ignite.internal.commandline.CommandLogger.optional; import static org.apache.ignite.internal.commandline.CommonArgParser.CMD_AUTO_CONFIRMATION; +import static org.apache.ignite.internal.commandline.CommonArgParser.CMD_ENABLE_EXPERIMENTAL; import static org.apache.ignite.internal.commandline.CommonArgParser.CMD_VERBOSE; import static org.apache.ignite.internal.commandline.CommonArgParser.getCommonOptions; import static org.apache.ignite.internal.commandline.TaskExecutor.DFLT_HOST; @@ -229,7 +231,7 @@ public class CommandHandler { boolean verbose = false; try { - if (F.isEmpty(rawArgs) || (rawArgs.size() == 1 && CMD_HELP.equalsIgnoreCase(rawArgs.get(0)))) { + if (isHelp(rawArgs)) { printHelp(); return EXIT_CODE_OK; @@ -381,6 +383,32 @@ public class CommandHandler { } } + /** @return {@code True} if arguments metans "print help" command. */ + private boolean isHelp(List<String> rawArgs) { + if(F.isEmpty(rawArgs)) + return true; + + if (rawArgs.size() < 3) { + boolean help = false; + boolean experimental = false; + + for (String arg : rawArgs) { + if (CMD_HELP.equalsIgnoreCase(arg)) + help = true; + else if (CMD_ENABLE_EXPERIMENTAL.equalsIgnoreCase(arg)) { + System.setProperty(IGNITE_ENABLE_EXPERIMENTAL_COMMAND, "true"); + + experimental = true; + } + } + + return (help && experimental) || + ((help || experimental) && rawArgs.size() == 1); + } + + return false; + } + /** * Analyses passed exception to find out whether it is related to SSL misconfiguration issues. * diff --git a/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/CommonArgParser.java b/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/CommonArgParser.java index 5d3568f..fa99b92 100644 --- a/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/CommonArgParser.java +++ b/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/CommonArgParser.java @@ -26,6 +26,7 @@ import java.util.Set; import java.util.logging.Logger; import org.apache.ignite.ssl.SslContextFactory; +import static org.apache.ignite.IgniteSystemProperties.IGNITE_ENABLE_EXPERIMENTAL_COMMAND; import static org.apache.ignite.internal.client.GridClientConfiguration.DFLT_PING_INTERVAL; import static org.apache.ignite.internal.client.GridClientConfiguration.DFLT_PING_TIMEOUT; import static org.apache.ignite.internal.commandline.CommandLogger.optional; @@ -94,6 +95,9 @@ public class CommonArgParser { /** */ static final String CMD_TRUSTSTORE_TYPE = "--truststore-type"; + /** */ + static final String CMD_ENABLE_EXPERIMENTAL = "--enable-experimental"; + /** List of optional auxiliary commands. */ private static final Set<String> AUX_COMMANDS = new HashSet<>(); @@ -154,6 +158,7 @@ public class CommonArgParser { list.add(optional(CMD_TRUSTSTORE_TYPE, "TRUSTSTORE_TYPE")); list.add(optional(CMD_TRUSTSTORE, "TRUSTSTORE_PATH")); list.add(optional(CMD_TRUSTSTORE_PASSWORD, "TRUSTSTORE_PASSWORD")); + list.add(optional(CMD_ENABLE_EXPERIMENTAL)); return list.toArray(new String[0]); } @@ -321,6 +326,10 @@ public class CommonArgParser { verbose = true; break; + case CMD_ENABLE_EXPERIMENTAL: + System.setProperty(IGNITE_ENABLE_EXPERIMENTAL_COMMAND, "true"); + break; + default: throw new IllegalArgumentException("Unexpected argument: " + str); }
