From 039f2c46c057569463ba970f4b3f33990debf7e2 Mon Sep 17 00:00:00 2001 From: MW Date: Sun, 4 Nov 2007 13:48:15 +0000 Subject: Added support for OpenSim application plugins (as requested by Adam), which use Mono.addins for loading/management. (which is a pure .net solution so works on both Mono and MS .net, and is under the MIT license, will add the source code for the library later). I also suggest we look into switching to using Mono.addins for our Region module loading management. A little bit more refactoring of Scene. --- OpenSim/Region/Application/OpenSimMain.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Application/OpenSimMain.cs') diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs index b8a8f42..666e0d2 100644 --- a/OpenSim/Region/Application/OpenSimMain.cs +++ b/OpenSim/Region/Application/OpenSimMain.cs @@ -44,7 +44,8 @@ using OpenSim.Region.Environment; using OpenSim.Region.Environment.Interfaces; using OpenSim.Region.Environment.Scenes; using OpenSim.Region.Physics.Manager; - +using Mono.Addins; +using Mono.Addins.Description; namespace OpenSim { @@ -93,6 +94,8 @@ namespace OpenSim : base() { IConfig startupConfig = configSource.Configs["Startup"]; + + AddinManager.Initialize("."); string iniFilePath = startupConfig.GetString("inifile", "OpenSim.ini"); @@ -275,6 +278,13 @@ namespace OpenSim m_httpServer.AddStreamHandler(new SimStatusHandler()); } + MainLog.Instance.Verbose("Plugins", "Loading OpenSim application plugins"); + foreach (TypeExtensionNode node in AddinManager.GetExtensionNodes("/OpenSim/Startup")) + { + IApplicationPlugin plugin = (IApplicationPlugin)node.CreateInstance(); + plugin.Initialise(this); + } + IRegionLoader regionLoader; if (m_config.Configs["Startup"].GetString("region_info_source", "filesystem") == "filesystem") { -- cgit v1.1