diff --git a/OpenSim/Services/IntegrationService/IntegrationService.cs b/OpenSim/Services/IntegrationService/IntegrationService.cs index 700530471b..4943b980b5 100644 --- a/OpenSim/Services/IntegrationService/IntegrationService.cs +++ b/OpenSim/Services/IntegrationService/IntegrationService.cs @@ -51,7 +51,7 @@ namespace OpenSim.Services.IntegrationService public IntegrationService(IConfigSource config, IHttpServer server) : base(config, server) { - m_log.InfoFormat("[INTEGRATION SERVICE]: Loaded"); + m_log.DebugFormat("[INTEGRATION SERVICE]: Loaded"); // Add commands to the console if (MainConsole.Instance != null) @@ -60,6 +60,7 @@ namespace OpenSim.Services.IntegrationService } } + // Our console commands private void AddConsoleCommands() { MainConsole.Instance.Commands.AddCommand("Integration", true, @@ -128,6 +129,7 @@ namespace OpenSim.Services.IntegrationService } #region console handlers + // Handle our console commands private void HandleConsoleInstallPlugin(string module, string[] cmd) { MainConsole.Instance.Output(m_PluginManager.InstallPlugin(cmd)); diff --git a/OpenSim/Services/IntegrationService/IntegrationServiceBase.cs b/OpenSim/Services/IntegrationService/IntegrationServiceBase.cs index ae7587dcd4..83a5f8960b 100644 --- a/OpenSim/Services/IntegrationService/IntegrationServiceBase.cs +++ b/OpenSim/Services/IntegrationService/IntegrationServiceBase.cs @@ -40,7 +40,6 @@ using log4net; using Ux = OpenSim.Services.IntegrationService.IUtils; [assembly:AddinRoot ("IntegrationService", "2.0")] - namespace OpenSim.Services.IntegrationService { [TypeExtensionPoint (Path="/OpenSim/IntegrationService", Name="IntegrationService")] @@ -99,22 +98,20 @@ namespace OpenSim.Services.IntegrationService AddinManager.AddinLoadError += on_addinloaderror_; AddinManager.AddinUnloaded += HandleAddinManagerAddinUnloaded; AddinManager.AddinEngine.ExtensionChanged += HandleAddinManagerAddinEngineExtensionChanged; - // AddinManager.GetExtensionObjects("/OpenSim/IntegrationService"); registry.Update (); foreach (IntegrationPlugin cmd in AddinManager.GetExtensionObjects("/OpenSim/IntegrationService")) { - m_log.InfoFormat("[INTEGRATION SERVICE]: Processing _Addin {0}", cmd.Name); + m_log.DebugFormat("[INTEGRATION SERVICE]: Processing _Addin {0}", cmd.Name); LoadingPlugin(cmd); } Addin[] addins = registry.GetAddins(); - foreach (Addin addin in addins) { if (addin.Description.Category == "IntegrationPlugin") { - m_log.InfoFormat("[INTEGRATION SERVICE]: Processing O Addin {0}", addin.Name); + m_log.DebugFormat("[INTEGRATION SERVICE]: Processing O Addin {0}", addin.Name); addin.Enabled = true; registry.EnableAddin(addin.Id); registry.Update(); @@ -125,11 +122,9 @@ namespace OpenSim.Services.IntegrationService else { // defaults to the ./bin directory - string RegistryLocation = serverConfig.GetString("PluginRegistryLocation", - "."); + string RegistryLocation = serverConfig.GetString("PluginRegistryLocation", "."); registry = new AddinRegistry(RegistryLocation, "."); - m_PluginManager = new PluginManager(registry); // Deal with files only for now - will add url/environment later @@ -147,12 +142,11 @@ namespace OpenSim.Services.IntegrationService AddinManager.Initialize (RegistryLocation); AddinManager.Registry.Update (); - + AddinManager.AddinLoaded += on_addinloaded_; AddinManager.AddinLoadError += on_addinloaderror_; AddinManager.AddinUnloaded += HandleAddinManagerAddinUnloaded; - // AddinManager.AddinEngine.ExtensionChanged += HandleAddinManagerAddinEngineExtensionChanged; - + AddinManager.AddExtensionNodeHandler ("/OpenSim/IntegrationService", OnExtensionChanged); } @@ -189,7 +183,6 @@ namespace OpenSim.Services.IntegrationService void OnExtensionChanged (object s, ExtensionNodeEventArgs args) { IntegrationPlugin ip = (IntegrationPlugin) args.ExtensionObject; - m_log.Info ("[INTEGRATION SERVICE]: Plugin Change"); switch (args.Change) @@ -197,14 +190,14 @@ namespace OpenSim.Services.IntegrationService // Build up case ExtensionChange.Add: - m_log.InfoFormat("[INTEGRATION SERVICE]: Plugin Added {0}", ip.Name); + m_log.DebugFormat("[INTEGRATION SERVICE]: Plugin Added {0}", ip.Name); LoadingPlugin(ip); return; // Tear down case ExtensionChange.Remove: - m_log.InfoFormat("[INTEGRATION SERVICE]: Plugin Remove {0}", ip.Name); + m_log.DebugFormat("[INTEGRATION SERVICE]: Plugin Remove {0}", ip.Name); UnLoadingPlugin(ip); return; } @@ -226,36 +219,39 @@ namespace OpenSim.Services.IntegrationService // Fetch the starter ini if (PlugConfig == null) { - m_log.InfoFormat("[INTEGRATION SERVICE]: Fetching starter config for {0} from {1}", plugin.Name, plugin.DefaultConfig); + m_log.DebugFormat("[INTEGRATION SERVICE]: Fetching starter config for {0} from {1}", plugin.Name, plugin.DefaultConfig); // Send the default data service IConfig DataService = m_ConfigSource.Configs["DatabaseService"]; - m_log.InfoFormat("[INTEGRATION SERVICE]: Writing initial config to {0}", plugin.ConfigName); + m_log.DebugFormat("[INTEGRATION SERVICE]: Writing initial config to {0}", plugin.ConfigName); IniConfigSource source = new IniConfigSource(); IConfig Init = source.AddConfig("DatabaseService"); Init.Set("StorageProvider",(string)DataService.GetString("StorageProvider")); Init.Set("ConnectionString", String.Format ("\"{0}\"",DataService.GetString("ConnectionString"))); - PlugConfig = Ux.LoadInitialConfig(plugin.DefaultConfig); - source.Merge(PlugConfig); - source.Save(Path.Combine(m_IntegrationConfigLoc, plugin.ConfigName)); - PlugConfig = Ux.GetConfigSource(m_IntegrationConfigLoc, plugin.ConfigName); - // PlugConfig = source; } - m_log.InfoFormat("[INTEGRATION SERVICE]: ****** In Loading Plugin {0}", plugin.Name); + m_log.DebugFormat("[INTEGRATION SERVICE]: ****** In Loading Plugin {0}", plugin.Name); plugin.Init(PlugConfig, m_Server, this); } private void UnLoadingPlugin(IntegrationPlugin plugin) { - MainConsole.Instance.Output(plugin.Name); - plugin.Unload(); + try + { + plugin.Unload(); + } + catch(Exception e) + { + // Getting some "Error Object reference not set to an instance of an object" + // when the plugins are unloaded. This keeps things quiet for now + // m_log.DebugFormat("[INTEGRATION SERVICE]: Error {0}", e.Message); + } } } }