From 0838c5288f23eee2a8b443fa29e8757cc5784468 Mon Sep 17 00:00:00 2001 From: BlueWall Date: Mon, 9 Apr 2012 21:59:21 -0400 Subject: [PATCH] Add method for plugin teardown/unloading --- .../IntegrationServiceBase.cs | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/OpenSim/Services/IntegrationService/IntegrationServiceBase.cs b/OpenSim/Services/IntegrationService/IntegrationServiceBase.cs index 55d8c5446c..e3915da654 100644 --- a/OpenSim/Services/IntegrationService/IntegrationServiceBase.cs +++ b/OpenSim/Services/IntegrationService/IntegrationServiceBase.cs @@ -39,7 +39,7 @@ using log4net; using Ux = OpenSim.Services.IntegrationService.IUtils; -[assembly:AddinRoot ("IntegrationService", "1.0")] +[assembly:AddinRoot ("IntegrationService", "1.1")] namespace OpenSim.Services.IntegrationService { @@ -47,6 +47,7 @@ namespace OpenSim.Services.IntegrationService public interface IntegrationPlugin { void Init(IConfigSource PluginConfig); + void Unload(); string Name{ get; } string ConfigName { get; } string DefaultConfig { get; } @@ -95,10 +96,6 @@ namespace OpenSim.Services.IntegrationService if(String.IsNullOrEmpty(m_IntegrationConfigLoc)) m_log.Error("[INTEGRATION SERVICE]: No IntegrationConfig defined in the Robust.ini"); - AddinManager.AddinLoaded += on_addinloaded_; - AddinManager.AddinLoadError += on_addinloaderror_; - AddinManager.AddinUnloaded += HandleAddinManagerAddinUnloaded; - AddinManager.AddinEngine.ExtensionChanged += HandleAddinManagerAddinEngineExtensionChanged; m_Server = server; m_IntegrationServerConfig = config.Configs["IntegrationService"]; @@ -108,12 +105,23 @@ namespace OpenSim.Services.IntegrationService return; } - suppress_console_output_(true); + AddinManager.Initialize (RegistryLocation); + + suppress_console_output_(true); + + + AddinManager.AddinLoaded += on_addinloaded_; + AddinManager.AddinLoadError += on_addinloaderror_; + AddinManager.AddinUnloaded += HandleAddinManagerAddinUnloaded; + AddinManager.AddinEngine.ExtensionChanged += HandleAddinManagerAddinEngineExtensionChanged; + AddinManager.Registry.Update (); + suppress_console_output_(false); + AddinManager.AddExtensionNodeHandler ("/OpenSim/IntegrationService", OnExtensionChanged);