From e77b5d990d275f3a900d844e955bb92f6dba08aa Mon Sep 17 00:00:00 2001 From: MW Date: Sat, 21 Feb 2009 18:41:28 +0000 Subject: More Grid server refactoring --- OpenSim/Grid/GridServer/GridDBService.cs | 2 +- OpenSim/Grid/GridServer/GridMessagingModule.cs | 16 ++++++++++++--- OpenSim/Grid/GridServer/GridRestModule.cs | 15 ++++++++++++-- OpenSim/Grid/GridServer/GridServerBase.cs | 22 ++++++++++++--------- OpenSim/Grid/GridServer/GridXmlRpcModule.cs | 27 +++++++++++++++++++------- OpenSim/Grid/GridServer/IGridCore.cs | 13 ------------- OpenSim/Grid/GridServer/IUGAIMCore.cs | 13 +++++++++++++ 7 files changed, 73 insertions(+), 35 deletions(-) delete mode 100644 OpenSim/Grid/GridServer/IGridCore.cs create mode 100644 OpenSim/Grid/GridServer/IUGAIMCore.cs diff --git a/OpenSim/Grid/GridServer/GridDBService.cs b/OpenSim/Grid/GridServer/GridDBService.cs index 94c8dcd..cc244a9 100644 --- a/OpenSim/Grid/GridServer/GridDBService.cs +++ b/OpenSim/Grid/GridServer/GridDBService.cs @@ -197,7 +197,7 @@ namespace OpenSim.Grid.GridServer return regions; } - public DataResponse LoginRegion(RegionProfileData sim, RegionProfileData existingSim) + public DataResponse AddUpdateRegion(RegionProfileData sim, RegionProfileData existingSim) { DataResponse insertResponse = DataResponse.RESPONSE_ERROR; foreach (IGridDataPlugin plugin in _plugins) diff --git a/OpenSim/Grid/GridServer/GridMessagingModule.cs b/OpenSim/Grid/GridServer/GridMessagingModule.cs index 040f4e0..6d9a723 100644 --- a/OpenSim/Grid/GridServer/GridMessagingModule.cs +++ b/OpenSim/Grid/GridServer/GridMessagingModule.cs @@ -42,7 +42,7 @@ namespace OpenSim.Grid.GridServer private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); protected GridDBService m_gridDBService; - protected IGridCore m_gridCore; + protected IUGAIMCore m_gridCore; protected GridConfig m_config; @@ -65,19 +65,29 @@ namespace OpenSim.Grid.GridServer { } - public void Initialise(string opensimVersion, GridDBService gridDBService, IGridCore gridCore, GridConfig config) + public void Initialise(string opensimVersion, GridDBService gridDBService, IUGAIMCore gridCore, GridConfig config) { m_opensimVersion = opensimVersion; m_gridDBService = gridDBService; m_gridCore = gridCore; m_config = config; + RegisterHandlers(); + } + + public void PostInitialise() + { + + } + + public void RegisterHandlers() + { + //have these in separate method as some servers restart the http server and reregister all the handlers. m_httpServer = m_gridCore.GetHttpServer(); m_gridCore.RegisterInterface(this); // Message Server ---> Grid Server m_httpServer.AddXmlRPCHandler("register_messageserver", XmlRPCRegisterMessageServer); m_httpServer.AddXmlRPCHandler("deregister_messageserver", XmlRPCDeRegisterMessageServer); - } public XmlRpcResponse XmlRPCRegisterMessageServer(XmlRpcRequest request) diff --git a/OpenSim/Grid/GridServer/GridRestModule.cs b/OpenSim/Grid/GridServer/GridRestModule.cs index d0bcbe8..5894c4b 100644 --- a/OpenSim/Grid/GridServer/GridRestModule.cs +++ b/OpenSim/Grid/GridServer/GridRestModule.cs @@ -45,7 +45,7 @@ namespace OpenSim.Grid.GridServer private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private GridDBService m_gridDBService; - private IGridCore m_gridCore; + private IUGAIMCore m_gridCore; protected GridConfig m_config; @@ -66,12 +66,23 @@ namespace OpenSim.Grid.GridServer { } - public void Initialise(string opensimVersion, GridDBService gridDBService, IGridCore gridCore, GridConfig config) + public void Initialise(string opensimVersion, GridDBService gridDBService, IUGAIMCore gridCore, GridConfig config) { m_opensimVersion = opensimVersion; m_gridDBService = gridDBService; m_gridCore = gridCore; m_config = config; + RegisterHandlers(); + } + + public void PostInitialise() + { + + } + + public void RegisterHandlers() + { + //have these in separate method as some servers restart the http server and reregister all the handlers. m_httpServer = m_gridCore.GetHttpServer(); m_httpServer.AddStreamHandler(new RestStreamHandler("GET", "/sims/", RestGetSimMethod)); diff --git a/OpenSim/Grid/GridServer/GridServerBase.cs b/OpenSim/Grid/GridServer/GridServerBase.cs index 6c3584d..f118c90 100644 --- a/OpenSim/Grid/GridServer/GridServerBase.cs +++ b/OpenSim/Grid/GridServer/GridServerBase.cs @@ -39,7 +39,7 @@ namespace OpenSim.Grid.GridServer { /// /// - public class GridServerBase : BaseOpenSimServer, IGridCore + public class GridServerBase : BaseOpenSimServer, IUGAIMCore { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); @@ -163,6 +163,10 @@ namespace OpenSim.Grid.GridServer 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) @@ -207,8 +211,8 @@ namespace OpenSim.Grid.GridServer foreach (IGridPlugin plugin in m_plugins) plugin.Dispose(); } - #region IGridCore - private readonly Dictionary m_gridInterfaces = new Dictionary(); + #region IUGAIMCore + private readonly Dictionary m_moduleInterfaces = new Dictionary(); /// /// Register an Module interface. @@ -217,20 +221,20 @@ namespace OpenSim.Grid.GridServer /// public void RegisterInterface(T iface) { - lock (m_gridInterfaces) + lock (m_moduleInterfaces) { - if (!m_gridInterfaces.ContainsKey(typeof(T))) + if (!m_moduleInterfaces.ContainsKey(typeof(T))) { - m_gridInterfaces.Add(typeof(T), iface); + m_moduleInterfaces.Add(typeof(T), iface); } } } public bool TryGet(out T iface) { - if (m_gridInterfaces.ContainsKey(typeof(T))) + if (m_moduleInterfaces.ContainsKey(typeof(T))) { - iface = (T)m_gridInterfaces[typeof(T)]; + iface = (T)m_moduleInterfaces[typeof(T)]; return true; } iface = default(T); @@ -239,7 +243,7 @@ namespace OpenSim.Grid.GridServer public T Get() { - return (T)m_gridInterfaces[typeof(T)]; + return (T)m_moduleInterfaces[typeof(T)]; } public BaseHttpServer GetHttpServer() diff --git a/OpenSim/Grid/GridServer/GridXmlRpcModule.cs b/OpenSim/Grid/GridServer/GridXmlRpcModule.cs index c2cd1d6..86df81c 100644 --- a/OpenSim/Grid/GridServer/GridXmlRpcModule.cs +++ b/OpenSim/Grid/GridServer/GridXmlRpcModule.cs @@ -46,7 +46,7 @@ namespace OpenSim.Grid.GridServer private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private GridDBService m_gridDBService; - private IGridCore m_gridCore; + private IUGAIMCore m_gridCore; protected GridConfig m_config; @@ -67,12 +67,23 @@ namespace OpenSim.Grid.GridServer { } - public void Initialise(string opensimVersion, GridDBService gridDBService, IGridCore gridCore, GridConfig config) + public void Initialise(string opensimVersion, GridDBService gridDBService, IUGAIMCore gridCore, GridConfig config) { m_opensimVersion = opensimVersion; m_gridDBService = gridDBService; m_gridCore = gridCore; m_config = config; + RegisterHandlers(); + } + + public void PostInitialise() + { + + } + + public void RegisterHandlers() + { + //have these in separate method as some servers restart the http server and reregister all the handlers. m_httpServer = m_gridCore.GetHttpServer(); m_httpServer.AddXmlRPCHandler("simulator_login", XmlRpcSimulatorLoginMethod); @@ -81,7 +92,7 @@ namespace OpenSim.Grid.GridServer m_httpServer.AddXmlRPCHandler("map_block", XmlRpcMapBlockMethod); m_httpServer.AddXmlRPCHandler("search_for_region_by_name", XmlRpcSearchForRegionMethod); } - + /// /// Returns a XML String containing a list of the neighbouring regions /// @@ -305,7 +316,7 @@ namespace OpenSim.Grid.GridServer return e.XmlRpcErrorResponse; } - DataResponse insertResponse = m_gridDBService.LoginRegion(sim, existingSim); + DataResponse insertResponse = m_gridDBService.AddUpdateRegion(sim, existingSim); switch (insertResponse) { @@ -557,7 +568,7 @@ namespace OpenSim.Grid.GridServer //TheSim = GetRegion(new UUID((string) requestData["UUID"])); uuid = requestData["UUID"].ToString(); m_log.InfoFormat("[LOGOUT]: Logging out region: {0}", uuid); -// logToDB((new LLUUID((string)requestData["UUID"])).ToString(),"XmlRpcDeleteRegionMethod","", 5,"Attempting delete with UUID."); + // logToDB((new LLUUID((string)requestData["UUID"])).ToString(),"XmlRpcDeleteRegionMethod","", 5,"Attempting delete with UUID."); } else { @@ -849,13 +860,15 @@ namespace OpenSim.Grid.GridServer } private XmlRpcResponse m_xmlRpcErrorResponse; - public LoginException(string message, string xmlRpcMessage) : base(message) + public LoginException(string message, string xmlRpcMessage) + : base(message) { // FIXME: Might be neater to refactor and put the method inside here m_xmlRpcErrorResponse = GridXmlRpcModule.ErrorResponse(xmlRpcMessage); } - public LoginException(string message, string xmlRpcMessage, Exception e) : base(message, e) + public LoginException(string message, string xmlRpcMessage, Exception e) + : base(message, e) { // FIXME: Might be neater to refactor and put the method inside here m_xmlRpcErrorResponse = GridXmlRpcModule.ErrorResponse(xmlRpcMessage); diff --git a/OpenSim/Grid/GridServer/IGridCore.cs b/OpenSim/Grid/GridServer/IGridCore.cs deleted file mode 100644 index dd0d140..0000000 --- a/OpenSim/Grid/GridServer/IGridCore.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using OpenSim.Framework.Servers; - -namespace OpenSim.Grid.GridServer -{ - public interface IGridCore - { - T Get(); - void RegisterInterface(T iface); - bool TryGet(out T iface); - BaseHttpServer GetHttpServer(); - } -} diff --git a/OpenSim/Grid/GridServer/IUGAIMCore.cs b/OpenSim/Grid/GridServer/IUGAIMCore.cs new file mode 100644 index 0000000..12cd19b --- /dev/null +++ b/OpenSim/Grid/GridServer/IUGAIMCore.cs @@ -0,0 +1,13 @@ +using System; +using OpenSim.Framework.Servers; + +namespace OpenSim.Grid.GridServer +{ + public interface IUGAIMCore + { + T Get(); + void RegisterInterface(T iface); + bool TryGet(out T iface); + BaseHttpServer GetHttpServer(); + } +} -- cgit v1.1