Add a development mode
Pluggin development needs the pluggin to be directly loaded so the running program may be stopped for inspection and modifications. This is controlled by a configuration switch in the Robust.iniintegration
parent
0a949a20ca
commit
a57ec18fb5
|
@ -84,39 +84,80 @@ namespace OpenSim.Services.IntegrationService
|
||||||
if (serverConfig == null)
|
if (serverConfig == null)
|
||||||
throw new Exception(String.Format("No section {0} in config file", m_ConfigName));
|
throw new Exception(String.Format("No section {0} in config file", m_ConfigName));
|
||||||
|
|
||||||
// defaults to the ./bin directory
|
|
||||||
string RegistryLocation = serverConfig.GetString("PluginRegistryLocation",
|
|
||||||
".");
|
|
||||||
|
|
||||||
AddinRegistry registry = new AddinRegistry(RegistryLocation, ".");
|
|
||||||
|
|
||||||
Ux.suppress_console_output_(true);
|
|
||||||
m_PluginManager = new PluginManager(registry);
|
|
||||||
Ux.suppress_console_output_(false);
|
|
||||||
|
|
||||||
// Deal with files only for now - will add url/environment later
|
|
||||||
m_IntegrationConfigLoc = serverConfig.GetString("IntegrationConfig", String.Empty);
|
m_IntegrationConfigLoc = serverConfig.GetString("IntegrationConfig", String.Empty);
|
||||||
if(String.IsNullOrEmpty(m_IntegrationConfigLoc))
|
AddinRegistry registry ;
|
||||||
m_log.Error("[INTEGRATION SERVICE]: No IntegrationConfig defined in the Robust.ini");
|
bool DEVELOPMENT = serverConfig.GetBoolean("DevelopmentMode", false);
|
||||||
|
|
||||||
|
// Are we developing plugins? We will load them now
|
||||||
m_IntegrationServerConfig = m_ConfigSource.Configs["IntegrationService"];
|
if (DEVELOPMENT == true)
|
||||||
if (m_IntegrationServerConfig == null)
|
|
||||||
{
|
{
|
||||||
throw new Exception("[INTEGRATION SERVICE]: Missing configuration");
|
AddinManager.Initialize (".");
|
||||||
return;
|
registry = new AddinRegistry(".", ".");
|
||||||
|
registry.Update ();
|
||||||
|
|
||||||
|
AddinManager.AddinLoaded += on_addinloaded_;
|
||||||
|
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);
|
||||||
|
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);
|
||||||
|
addin.Enabled = true;
|
||||||
|
registry.EnableAddin(addin.Id);
|
||||||
|
registry.Update();
|
||||||
|
AddinManager.AddinEngine.LoadAddin(null, addin.Id);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// defaults to the ./bin directory
|
||||||
|
string RegistryLocation = serverConfig.GetString("PluginRegistryLocation",
|
||||||
|
".");
|
||||||
|
|
||||||
AddinManager.Initialize (RegistryLocation);
|
registry = new AddinRegistry(RegistryLocation, ".");
|
||||||
AddinManager.Registry.Update ();
|
|
||||||
|
|
||||||
AddinManager.AddinLoaded += on_addinloaded_;
|
Ux.suppress_console_output_(true);
|
||||||
AddinManager.AddinLoadError += on_addinloaderror_;
|
m_PluginManager = new PluginManager(registry);
|
||||||
AddinManager.AddinUnloaded += HandleAddinManagerAddinUnloaded;
|
Ux.suppress_console_output_(false);
|
||||||
AddinManager.AddinEngine.ExtensionChanged += HandleAddinManagerAddinEngineExtensionChanged;
|
|
||||||
|
|
||||||
AddinManager.AddExtensionNodeHandler ("/OpenSim/IntegrationService", OnExtensionChanged);
|
// Deal with files only for now - will add url/environment later
|
||||||
|
m_IntegrationConfigLoc = serverConfig.GetString("IntegrationConfig", String.Empty);
|
||||||
|
if(String.IsNullOrEmpty(m_IntegrationConfigLoc))
|
||||||
|
m_log.Error("[INTEGRATION SERVICE]: No IntegrationConfig defined in the Robust.ini");
|
||||||
|
|
||||||
|
|
||||||
|
m_IntegrationServerConfig = m_ConfigSource.Configs["IntegrationService"];
|
||||||
|
if (m_IntegrationServerConfig == null)
|
||||||
|
{
|
||||||
|
throw new Exception("[INTEGRATION SERVICE]: Missing configuration");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void HandleAddinManagerAddinEngineExtensionChanged (object sender, ExtensionEventArgs args)
|
void HandleAddinManagerAddinEngineExtensionChanged (object sender, ExtensionEventArgs args)
|
||||||
|
|
Loading…
Reference in New Issue