diff options
author | Charles Krinke | 2008-06-27 02:15:57 +0000 |
---|---|---|
committer | Charles Krinke | 2008-06-27 02:15:57 +0000 |
commit | ca8d1d57e1bbf49cb52abe81b3a7246dacbe9b03 (patch) | |
tree | 97f8cce96ea2e98b96b36e523c59361bf00f63b8 /OpenSim/Grid/GridServer/GridServerBase.cs | |
parent | Mantis#1610. Thank you, Melanie for a patch that: (diff) | |
download | opensim-SC-ca8d1d57e1bbf49cb52abe81b3a7246dacbe9b03.zip opensim-SC-ca8d1d57e1bbf49cb52abe81b3a7246dacbe9b03.tar.gz opensim-SC-ca8d1d57e1bbf49cb52abe81b3a7246dacbe9b03.tar.bz2 opensim-SC-ca8d1d57e1bbf49cb52abe81b3a7246dacbe9b03.tar.xz |
Mantis#1591. Thank you graciously, Sempuki for a patch that:
Currently module loading is done ad-hoc. I propose creating a simple
loader class that leverages Mono.Addins (and perhaps the new .NET
addins when they become available in mono). Attached is a basic
patch for review that compiles into HEAD, but doesn't yet replace
any existing ad-hoc loaders.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Grid/GridServer/GridServerBase.cs | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/OpenSim/Grid/GridServer/GridServerBase.cs b/OpenSim/Grid/GridServer/GridServerBase.cs index 7891c29..010c250 100644 --- a/OpenSim/Grid/GridServer/GridServerBase.cs +++ b/OpenSim/Grid/GridServer/GridServerBase.cs | |||
@@ -116,26 +116,17 @@ namespace OpenSim.Grid.GridServer | |||
116 | m_httpServer.AddStreamHandler(new RestStreamHandler("POST", "/regions/", m_gridManager.RestSetRegionMethod)); | 116 | m_httpServer.AddStreamHandler(new RestStreamHandler("POST", "/regions/", m_gridManager.RestSetRegionMethod)); |
117 | } | 117 | } |
118 | 118 | ||
119 | protected void LoadGridPlugins() | 119 | protected void grid_plugin_initialiser_ (IPlugin plugin) |
120 | { | 120 | { |
121 | // Temporary hack to stop mono-addins scanning warnings from coming out on the console | 121 | IGridPlugin p = plugin as IGridPlugin; |
122 | TextWriter oldOutput = Console.Out; | 122 | p.Initialise (this); |
123 | Console.SetOut(new StreamWriter(Stream.Null)); | 123 | } |
124 | |||
125 | AddinManager.Initialize("."); | ||
126 | AddinManager.Registry.Update(null); | ||
127 | |||
128 | // Returns the console.writelines back to the console's stream | ||
129 | Console.SetOut(oldOutput); | ||
130 | 124 | ||
131 | ExtensionNodeList nodes = AddinManager.GetExtensionNodes("/OpenSim/GridServer"); | 125 | protected void LoadGridPlugins() |
132 | foreach (TypeExtensionNode node in nodes) | 126 | { |
133 | { | 127 | PluginLoader<IGridPlugin> loader = new PluginLoader<IGridPlugin> ("."); |
134 | m_log.Info("[GRID PLUGINS]: Loading OpenSim plugin " + node.Path); | 128 | loader.Load ("/OpenSim/GridServer", grid_plugin_initialiser_); |
135 | IGridPlugin plugin = (IGridPlugin)node.CreateInstance(); | 129 | m_plugins = loader.Plugins; |
136 | plugin.Initialise(this); | ||
137 | m_plugins.Add(plugin); | ||
138 | } | ||
139 | } | 130 | } |
140 | 131 | ||
141 | protected virtual void SetupGridManager() | 132 | protected virtual void SetupGridManager() |