From bc0bedf75d219e1ceda337cade1d47a5c7b18712 Mon Sep 17 00:00:00 2001 From: MW Date: Tue, 24 Feb 2009 19:00:36 +0000 Subject: More work on modulising the User Server. --- OpenSim/Grid/UserServer/Main.cs | 64 ++++++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 29 deletions(-) (limited to 'OpenSim/Grid/UserServer/Main.cs') diff --git a/OpenSim/Grid/UserServer/Main.cs b/OpenSim/Grid/UserServer/Main.cs index 10235ab..e174b2d 100644 --- a/OpenSim/Grid/UserServer/Main.cs +++ b/OpenSim/Grid/UserServer/Main.cs @@ -97,24 +97,40 @@ namespace OpenSim.Grid.UserServer protected override void StartupSpecific() { - Cfg = new UserConfig("USER SERVER", (Path.Combine(Util.configDir(), "UserServer_Config.xml"))); + IInterServiceInventoryServices inventoryService = SetupRegisterCoreComponents(); m_stats = StatsManager.StartCollectingUserStats(); m_log.Info("[STARTUP]: Establishing data connection"); - - IInterServiceInventoryServices inventoryService = new OGS1InterServiceInventoryService(Cfg.InventoryUrl); - //setup database access service - m_userDataBaseService = new UserDataBaseService(inventoryService); - m_userDataBaseService.AddPlugin(Cfg.DatabaseProvider, Cfg.DatabaseConnect); - - //Register the database access service so modules can fetch it - // RegisterInterface(m_userDataBaseService); + m_userDataBaseService = new UserDataBaseService(); + m_userDataBaseService.Initialise(this); //setup services/modules StartupUserServerModules(); + StartOtherComponents(inventoryService); + + m_consoleCommandModule = new UserServerCommandModule(m_loginService); + m_consoleCommandModule.Initialise(this); + + //register event handlers + RegisterEventHandlers(); + + //PostInitialise the modules + m_consoleCommandModule.PostInitialise(); //it will register its Console command handlers in here + m_userDataBaseService.PostInitialise(); + + //register http handlers and start http server + m_log.Info("[STARTUP]: Starting HTTP process"); + RegisterHttpHandlers(); + m_httpServer.Start(); + + base.StartupSpecific(); + } + + private void StartOtherComponents(IInterServiceInventoryServices inventoryService) + { m_gridInfoService = new GridInfoService(); StartupLoginService(inventoryService); @@ -124,26 +140,21 @@ namespace OpenSim.Grid.UserServer m_loginService.setloginlevel((int)Cfg.DefaultUserLevel); m_messagesService = new MessageServersConnector(); + } - m_consoleCommandModule = new UserServerCommandModule(Cfg, m_userDataBaseService, m_loginService); - m_consoleCommandModule.Initialise(this); - - //PostInitialise the modules - m_consoleCommandModule.PostInitialise(); + private IInterServiceInventoryServices SetupRegisterCoreComponents() + { + Cfg = new UserConfig("USER SERVER", (Path.Combine(Util.configDir(), "UserServer_Config.xml"))); - //register event handlers - RegisterEventHandlers(); + IInterServiceInventoryServices inventoryService = new OGS1InterServiceInventoryService(Cfg.InventoryUrl); - //register http handlers and start http server - m_log.Info("[STARTUP]: Starting HTTP process"); m_httpServer = new BaseHttpServer(Cfg.HttpPort); - RegisterHttpHandlers(); - m_httpServer.Start(); - - base.StartupSpecific(); - //register Console command handlers - RegisterConsoleCommands(); + RegisterInterface(m_console); + RegisterInterface(Cfg); + RegisterInterface(inventoryService); + + return inventoryService; } /// @@ -178,11 +189,6 @@ namespace OpenSim.Grid.UserServer m_messagesService.OnRegionShutdown += HandleRegionShutdown; } - protected virtual void RegisterConsoleCommands() - { - m_consoleCommandModule.RegisterConsoleCommands(m_console); - } - protected virtual void RegisterHttpHandlers() { m_loginService.RegisterHandlers(m_httpServer, Cfg.EnableLLSDLogin, true); -- cgit v1.1