From d45fa9c2df01286d35542665d65071deca0fbb07 Mon Sep 17 00:00:00 2001 From: MW Date: Fri, 27 Feb 2009 15:57:09 +0000 Subject: Added GridServerPlugin class (which implements IGridPlugin) to OpenSim.Grid.GridServer.Modules. This class handles all the initialising of the grid server. And made GridServer into basically a generic server that just loads plugins. So this is a step towards having a generic server that loads service modules. --- .../Grid/GridServer.Modules/GridServerPlugin.cs | 147 +++++++++++++++++++++ .../Resources/GridServer.Modules.addin.xml | 11 ++ OpenSim/Grid/GridServer/GridServerBase.cs | 101 ++------------ 3 files changed, 168 insertions(+), 91 deletions(-) create mode 100644 OpenSim/Grid/GridServer.Modules/GridServerPlugin.cs create mode 100644 OpenSim/Grid/GridServer.Modules/Resources/GridServer.Modules.addin.xml (limited to 'OpenSim') diff --git a/OpenSim/Grid/GridServer.Modules/GridServerPlugin.cs b/OpenSim/Grid/GridServer.Modules/GridServerPlugin.cs new file mode 100644 index 0000000..fd7f4c1 --- /dev/null +++ b/OpenSim/Grid/GridServer.Modules/GridServerPlugin.cs @@ -0,0 +1,147 @@ +using System; +using System.Collections.Generic; +using System.Reflection; +using System.Text; +using log4net; +using OpenSim.Framework; +using OpenSim.Framework.Console; +using OpenSim.Grid.Framework; +using OpenSim.Grid; + +namespace OpenSim.Grid.GridServer.Modules +{ + public class GridServerPlugin : IGridPlugin + { + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + + protected GridXmlRpcModule m_gridXmlRpcModule; + protected GridMessagingModule m_gridMessageModule; + protected GridRestModule m_gridRestModule; + + protected GridDBService m_gridDBService; + + protected string m_version; + + protected GridConfig m_config; + + protected IGridServiceCore m_core; + + protected ConsoleBase m_console; + + #region IGridPlugin Members + + public void Initialise(GridServerBase gridServer) + { + m_core = gridServer; + m_config = gridServer.Config; + m_version = gridServer.Version; + m_console = MainConsole.Instance; + + AddConsoleCommands(); + + SetupGridServices(); + } + + #endregion + + #region IPlugin Members + + public string Version + { + get { return "0.0"; } + } + + public string Name + { + get { return "GridServerPlugin"; } + } + + public void Initialise() + { + + } + + #endregion + + protected virtual void SetupGridServices() + { + // m_log.Info("[DATA]: Connecting to Storage Server"); + m_gridDBService = new GridDBService(); + m_gridDBService.AddPlugin(m_config.DatabaseProvider, m_config.DatabaseConnect); + + //Register the database access service so modules can fetch it + // RegisterInterface(m_gridDBService); + + m_gridMessageModule = new GridMessagingModule(); + m_gridMessageModule.Initialise(m_version, m_gridDBService, m_core, m_config); + + m_gridXmlRpcModule = new GridXmlRpcModule(); + m_gridXmlRpcModule.Initialise(m_version, m_gridDBService, m_core, m_config); + + m_gridRestModule = new GridRestModule(); + m_gridRestModule.Initialise(m_version, m_gridDBService, m_core, m_config); + + m_gridMessageModule.PostInitialise(); + m_gridXmlRpcModule.PostInitialise(); + m_gridRestModule.PostInitialise(); + } + + #region Console Command Handlers + + protected virtual void AddConsoleCommands() + { + m_console.Commands.AddCommand("gridserver", false, + "enable registration", + "enable registration", + "Enable new regions to register", HandleRegistration); + + m_console.Commands.AddCommand("gridserver", false, + "disable registration", + "disable registration", + "Disable registering new regions", HandleRegistration); + + m_console.Commands.AddCommand("gridserver", false, "show status", + "show status", + "Show registration status", HandleShowStatus); + } + + private void HandleRegistration(string module, string[] cmd) + { + switch (cmd[0]) + { + case "enable": + m_config.AllowRegionRegistration = true; + m_log.Info("Region registration enabled"); + break; + case "disable": + m_config.AllowRegionRegistration = false; + m_log.Info("Region registration disabled"); + break; + } + } + + private void HandleShowStatus(string module, string[] cmd) + { + if (m_config.AllowRegionRegistration) + { + m_log.Info("Region registration enabled."); + } + else + { + m_log.Info("Region registration disabled."); + } + } + + #endregion + + + + #region IDisposable Members + + public void Dispose() + { + } + + #endregion + } +} diff --git a/OpenSim/Grid/GridServer.Modules/Resources/GridServer.Modules.addin.xml b/OpenSim/Grid/GridServer.Modules/Resources/GridServer.Modules.addin.xml new file mode 100644 index 0000000..c2c5ac3 --- /dev/null +++ b/OpenSim/Grid/GridServer.Modules/Resources/GridServer.Modules.addin.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/OpenSim/Grid/GridServer/GridServerBase.cs b/OpenSim/Grid/GridServer/GridServerBase.cs index 1ee97f4..a1170f8 100644 --- a/OpenSim/Grid/GridServer/GridServerBase.cs +++ b/OpenSim/Grid/GridServer/GridServerBase.cs @@ -35,7 +35,6 @@ using OpenSim.Framework; using OpenSim.Framework.Console; using OpenSim.Framework.Servers; using OpenSim.Grid.Framework; -using OpenSim.Grid.GridServer.Modules; namespace OpenSim.Grid.GridServer { @@ -47,11 +46,15 @@ namespace OpenSim.Grid.GridServer protected GridConfig m_config; - protected GridXmlRpcModule m_gridXmlRpcModule; - protected GridMessagingModule m_gridMessageModule; - protected GridRestModule m_gridRestModule; + public GridConfig Config + { + get { return m_config; } + } - protected GridDBService m_gridDBService; + public string Version + { + get { return m_version; } + } protected List m_plugins = new List(); @@ -71,34 +74,6 @@ namespace OpenSim.Grid.GridServer MainConsole.Instance = m_console; } - private void HandleRegistration(string module, string[] cmd) - { - switch (cmd[0]) - { - case "enable": - m_config.AllowRegionRegistration = true; - m_log.Info("Region registration enabled"); - break; - case "disable": - m_config.AllowRegionRegistration = false; - m_log.Info("Region registration disabled"); - break; - } - } - - private void HandleShowStatus(string module, string[] cmd) - { - if (m_config.AllowRegionRegistration) - { - m_log.Info("Region registration enabled."); - } - else - { - m_log.Info("Region registration disabled."); - } - } - - protected override void StartupSpecific() { m_config = new GridConfig("GRID SERVER", (Path.Combine(Util.configDir(), "GridServer_Config.xml"))); @@ -106,43 +81,14 @@ namespace OpenSim.Grid.GridServer m_log.Info("[GRID]: Starting HTTP process"); m_httpServer = new BaseHttpServer(m_config.HttpPort); - SetupGridServices(); - - AddHttpHandlers(); - LoadPlugins(); m_httpServer.Start(); - // m_log.Info("[GRID]: Starting sim status checker"); - // - // Timer simCheckTimer = new Timer(3600000 * 3); // 3 Hours between updates. - // simCheckTimer.Elapsed += new ElapsedEventHandler(CheckSims); - // simCheckTimer.Enabled = true; - base.StartupSpecific(); - - m_console.Commands.AddCommand("gridserver", false, - "enable registration", - "enable registration", - "Enable new regions to register", HandleRegistration); - - m_console.Commands.AddCommand("gridserver", false, - "disable registration", - "disable registration", - "Disable registering new regions", HandleRegistration); - - m_console.Commands.AddCommand("gridserver", false, "show status", - "show status", - "Show registration status", HandleShowStatus); } - protected void AddHttpHandlers() - { - // Registering Handlers is now done in the components/modules - } - - protected void LoadPlugins() + protected virtual void LoadPlugins() { PluginLoader loader = new PluginLoader(new GridPluginInitialiser(this)); @@ -151,39 +97,12 @@ namespace OpenSim.Grid.GridServer m_plugins = loader.Plugins; } - protected virtual void SetupGridServices() - { - m_log.Info("[DATA]: Connecting to Storage Server"); - m_gridDBService = new GridDBService(); - m_gridDBService.AddPlugin(m_config.DatabaseProvider, m_config.DatabaseConnect); - - //Register the database access service so modules can fetch it - // RegisterInterface(m_gridDBService); - - m_gridMessageModule = new GridMessagingModule(); - m_gridMessageModule.Initialise(m_version, m_gridDBService, this, m_config); - - m_gridXmlRpcModule = new GridXmlRpcModule(); - m_gridXmlRpcModule.Initialise(m_version, m_gridDBService, this, m_config); - - m_gridRestModule = new GridRestModule(); - m_gridRestModule.Initialise(m_version, m_gridDBService, this, m_config); - - m_gridMessageModule.PostInitialise(); - m_gridXmlRpcModule.PostInitialise(); - m_gridRestModule.PostInitialise(); - } - - public void CheckSims(object sender, ElapsedEventArgs e) - { - } - public override void ShutdownSpecific() { foreach (IGridPlugin plugin in m_plugins) plugin.Dispose(); } - #region IUGAIMCore + #region IServiceCore protected Dictionary m_moduleInterfaces = new Dictionary(); /// -- cgit v1.1