Пример #1
0
        public static IgniteConfiguration GetConfiguration(Tuple <string, string>[] args)
        {
            List <string>       stringList1 = new List <string>();
            List <string>       stringList2 = new List <string>();
            IgniteConfiguration cfg         = Configurator.ReadConfigurationSection(args) ?? new IgniteConfiguration();

            foreach (Tuple <string, string> tuple in args)
            {
                if (string.IsNullOrWhiteSpace(tuple.Item2))
                {
                    throw new IgniteException(string.Format("Missing argument value: '{0}'. See 'Apache.Ignite.exe /help'", (object)tuple.Item1));
                }
                Tuple <string, string> arg0 = tuple;
                Func <string, bool>    func = (Func <string, bool>)(x => arg0.Item1.Equals(x, StringComparison.OrdinalIgnoreCase));
                if (func("IgniteHome"))
                {
                    cfg.IgniteHome = tuple.Item2;
                }
                else if (func("SpringConfigUrl"))
                {
                    cfg.SpringConfigUrl = tuple.Item2;
                }
                else if (func("JvmDll"))
                {
                    cfg.JvmDllPath = tuple.Item2;
                }
                else if (func("JvmClasspath"))
                {
                    cfg.JvmClasspath = tuple.Item2;
                }
                else if (func("SuppressWarnings"))
                {
                    cfg.SuppressWarnings = bool.TrueString.Equals(tuple.Item2, StringComparison.OrdinalIgnoreCase);
                }
                else if (func("JvmInitialMemoryMB"))
                {
                    cfg.JvmInitialMemoryMb = ConfigValueParser.ParseInt(tuple.Item2, "JvmInitialMemoryMB");
                }
                else if (func("JvmMaxMemoryMB"))
                {
                    cfg.JvmMaxMemoryMb = ConfigValueParser.ParseInt(tuple.Item2, "JvmMaxMemoryMB");
                }
                else if (func("J"))
                {
                    stringList1.Add(tuple.Item2);
                }
                else if (func("Assembly"))
                {
                    stringList2.Add(tuple.Item2);
                }
                else if (func("ForceTestClasspath") && tuple.Item2 == "true")
                {
                    Environment.SetEnvironmentVariable("IGNITE_NATIVE_TEST_CLASSPATH", "true");
                }
                else if (!func("ConfigFileName") && !func("ConfigSectionName"))
                {
                    throw new IgniteException(string.Format("Unknown argument: '{0}'. See 'Apache.Ignite.exe /help'", (object)tuple.Item1));
                }
            }
            if (stringList1.Count > 0)
            {
                if (cfg.JvmOptions == null)
                {
                    cfg.JvmOptions = (ICollection <string>)stringList1;
                }
                else
                {
                    stringList1.ForEach((Action <string>)(val => cfg.JvmOptions.Add(val)));
                }
            }
            if (stringList2.Count > 0)
            {
                if (cfg.Assemblies == null)
                {
                    cfg.Assemblies = (ICollection <string>)stringList2;
                }
                else
                {
                    stringList2.ForEach((Action <string>)(val => cfg.Assemblies.Add(val)));
                }
            }
            return(cfg);
        }