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);
                 }

Reply via email to