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