Пример #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);
        }
Пример #2
0
        private static IgniteConfiguration ReadConfigurationSection(
            Tuple <string, string>[] args)
        {
            string fileName    = Configurator.FindValue((IEnumerable <Tuple <string, string> >)args, "ConfigFileName");
            string sectionName = Configurator.FindValue((IEnumerable <Tuple <string, string> >)args, "ConfigSectionName");

            if (string.IsNullOrEmpty(fileName) && string.IsNullOrEmpty(sectionName))
            {
                return((IgniteConfiguration)null);
            }
            System.Configuration.Configuration configuration        = string.IsNullOrEmpty(fileName) ? ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None) : ConfigurationManager.OpenMappedExeConfiguration(Configurator.GetConfigMap(fileName), ConfigurationUserLevel.None);
            IgniteConfigurationSection         configurationSection = string.IsNullOrEmpty(sectionName) ? configuration.Sections.OfType <IgniteConfigurationSection>().FirstOrDefault <IgniteConfigurationSection>() : (IgniteConfigurationSection)configuration.GetSection(sectionName);

            if (configurationSection == null)
            {
                throw new ConfigurationErrorsException(string.Format("Could not find {0} in current application configuration", (object)typeof(IgniteConfigurationSection).Name));
            }
            return(configurationSection.IgniteConfiguration);
        }