Esempio n. 1
0
        public static void Main(string[] args)
        {
            // Inizialize the kernel
            // prompt the shell and execute the action request
            //
            // trovare un meccanismo per caricare la classe in modo dinamico per il momento
            // carico l'implementazione di default
            // Deinisce la versione di default del kernel in base
            // ai parametri
            MonoBossKernel.setInstance(new DefaultMonoBossKernel());

            // Fa partire ed inizializzare il logger, per questa prima versione
            // usiamo solamente ed unicamente  NLog, per come è stato implementato
            // possiamo usare un nuovo logger
            LoggerServiceFactory.setInstance(new NLoggerServiceFactory());


            // Fa partire la shell
            MonoBossShell shell = new MonoBossShell();

            // processa la linea di comando
            shell.processCommandLine(args);

            // fa partire l'ambiente
            // in questa fase vengono letti i parametri di instanza
            // del server
            shell.startEnviroment();
        }
Esempio n. 2
0
        /// <summary>
        /// Fa+-* partire l'ambiente, carica
        /// le configurazioni ed il primo modulo
        /// </summary>
        public void startEnviroment()
        {
            try {
                /// leggo il file di configurazione in input per la shell
                string standalone = "standalone.xml";
                string domain     = "domain.xml";

                ConfigurationManager cm      = new DefaultConfigurationManager();
                AppConfiguration     aConfig = cm.load();

                /// Inizilizza un primo module lodaer
                MonoBossKernel kernel = MonoBossKernel.getInstance();

                /// recupera il module loader
                ModuleLoader mloader = kernel.getModuleLoader();

                /// recupera l'instanza del server in base ai parametri
                ServerConfigurationReader sr = new ServerConfigurationReader();

                if (mode == null)
                {
                    // se non specifico la modalia di esecuzionea allora
                    // faccio partire il tutto in modalità standalone.
                    mode = "standalone";
                    // FIX: in linux the  path is case sensitive
                    sr.filePath = aConfig.configurationDir + "Standalone\\Configuration\\" + standalone;
                }
                else if (mode == "standalone")
                {
                    sr.filePath = aConfig.configurationDir + "Standalone\\Configuration\\" + standalone;
                }
                else
                {
                    if (mode == "domain")
                    {
                        sr.filePath = aConfig.configurationDir + "Domain\\Configuration\\" + domain;
                    }
                    else
                    {
                        throw new ShellException("Mode not recognized");
                    }
                }

                sr.configSchemaPath = aConfig.configurationDir + "\\Docs\\Schema\\";


                // carica il file e valida se è tutto correttamente
                // definito in base allo x-schema, in questa
                sr.load(true, mode);

                // Recupero un oggetto che mantiene le configurazioni
                // che sono definite all'interno del file .xml ( standalone o domain)
                // 17/05/2015 - TODO, continuare ad implementare in questo punto
                ServerInstance serverInstance = sr.getServerInstance();

                mloader.bootLoader(serverInstance);

                // mmloader.start();
            } catch (Exception ex) {
                throw new ShellException(ex.ToString());
            }
        }