Esempio n. 1
0
        /// <summary>
        /// Application entry point.
        /// </summary>
        internal static void Main(string[] args)
        {
            IgniteConfiguration cfg;

            bool svc     = false;
            bool install = false;

            try
            {
                // Check for special cases.
                if (args.Length > 0)
                {
                    string first = args[0].ToLower();

                    if (Help.Contains(first))
                    {
                        PrintHelp();

                        return;
                    }

                    if (Svc.Equals(first))
                    {
                        args = RemoveFirstArg(args);

                        svc = true;
                    }

                    else if (SvcInstall.Equals(first))
                    {
                        args = RemoveFirstArg(args);

                        install = true;
                    }
                    else if (SvcUninstall.Equals(first))
                    {
                        IgniteService.Uninstall();

                        return;
                    }
                }

                if (!svc)
                {
                    // Pick application configuration.
                    cfg = new IgniteConfiguration();

                    new AppSettingsConfigurator().Configure(cfg, ConfigurationManager.AppSettings);

                    // Pick command line arguments.
                    new ArgsConfigurator().Configure(cfg, args);

                    if (install)
                    {
                        IgniteService.DoInstall(cfg);
                    }
                    else
                    {
                        Ignition.Start(cfg);

                        IgniteManager.DestroyJvm();
                    }

                    return;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("ERROR: " + e.Message);

                Environment.Exit(-1);
            }

            // If we are here, then this is a service call.
            cfg = new IgniteConfiguration();

            // Use only arguments, not app.config.
            new ArgsConfigurator().Configure(cfg, args);

            ServiceBase.Run(new IgniteService(cfg));
        }