aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Grid/AssetInventoryServer/AssetInventoryServer.cs
diff options
context:
space:
mode:
authorMike Mazur2009-02-16 02:26:36 +0000
committerMike Mazur2009-02-16 02:26:36 +0000
commitaf64c1ee9e38da931b49f83277aedd6399010de2 (patch)
tree119be8afb1161096cac0ac4df4c8b00d74a31439 /OpenSim/Grid/AssetInventoryServer/AssetInventoryServer.cs
parentAdd OpenSim & Simple inventory storage plugins and Null metrics plugin. (diff)
downloadopensim-SC-af64c1ee9e38da931b49f83277aedd6399010de2.zip
opensim-SC-af64c1ee9e38da931b49f83277aedd6399010de2.tar.gz
opensim-SC-af64c1ee9e38da931b49f83277aedd6399010de2.tar.bz2
opensim-SC-af64c1ee9e38da931b49f83277aedd6399010de2.tar.xz
Migrate OpenSim inventory frontend to load with Mono.Addins. Everything
should compile and it seems even creating users works somehow.
Diffstat (limited to 'OpenSim/Grid/AssetInventoryServer/AssetInventoryServer.cs')
-rw-r--r--OpenSim/Grid/AssetInventoryServer/AssetInventoryServer.cs21
1 files changed, 18 insertions, 3 deletions
diff --git a/OpenSim/Grid/AssetInventoryServer/AssetInventoryServer.cs b/OpenSim/Grid/AssetInventoryServer/AssetInventoryServer.cs
index e100377..012c4ea 100644
--- a/OpenSim/Grid/AssetInventoryServer/AssetInventoryServer.cs
+++ b/OpenSim/Grid/AssetInventoryServer/AssetInventoryServer.cs
@@ -55,7 +55,7 @@ namespace OpenSim.Grid.AssetInventoryServer
55 public IAuthorizationProvider AuthorizationProvider; 55 public IAuthorizationProvider AuthorizationProvider;
56 public IMetricsProvider MetricsProvider; 56 public IMetricsProvider MetricsProvider;
57 57
58 private IAssetInventoryServerPlugin frontend; 58 private List<IAssetInventoryServerPlugin> frontends = new List<IAssetInventoryServerPlugin>();
59 59
60 public AssetInventoryServer() 60 public AssetInventoryServer()
61 { 61 {
@@ -107,7 +107,7 @@ namespace OpenSim.Grid.AssetInventoryServer
107 } 107 }
108 108
109 StorageProvider = LoadAssetInventoryServerPlugin("/OpenSim/AssetInventoryServer/StorageProvider", "OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim.dll") as IAssetStorageProvider; 109 StorageProvider = LoadAssetInventoryServerPlugin("/OpenSim/AssetInventoryServer/StorageProvider", "OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim.dll") as IAssetStorageProvider;
110 InventoryProvider = LoadAssetInventoryServerPlugin("/OpenSim/AssetInventoryServer/InventoryProvider", "OpenSim.Grid.AssetInventoryServer.Plugins.Simple.dll") as IInventoryStorageProvider; 110 InventoryProvider = LoadAssetInventoryServerPlugin("/OpenSim/AssetInventoryServer/InventoryProvider", "OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim.dll") as IInventoryStorageProvider;
111 MetricsProvider = LoadAssetInventoryServerPlugin("/OpenSim/AssetInventoryServer/MetricsProvider", String.Empty) as IMetricsProvider; 111 MetricsProvider = LoadAssetInventoryServerPlugin("/OpenSim/AssetInventoryServer/MetricsProvider", String.Empty) as IMetricsProvider;
112 112
113 try 113 try
@@ -121,7 +121,7 @@ namespace OpenSim.Grid.AssetInventoryServer
121 return false; 121 return false;
122 } 122 }
123 123
124 frontend = LoadAssetInventoryServerPlugin("/OpenSim/AssetInventoryServer/Frontend", String.Empty); 124 frontends.AddRange(LoadAssetInventoryServerPlugins("/OpenSim/AssetInventoryServer/Frontend", String.Empty));
125 125
126 return true; 126 return true;
127 } 127 }
@@ -194,6 +194,21 @@ namespace OpenSim.Grid.AssetInventoryServer
194 194
195 return loader.Plugin; 195 return loader.Plugin;
196 } 196 }
197
198 private List<IAssetInventoryServerPlugin> LoadAssetInventoryServerPlugins(string addinPath, string provider)
199 {
200 PluginLoader<IAssetInventoryServerPlugin> loader = new PluginLoader<IAssetInventoryServerPlugin>(new AssetInventoryServerPluginInitialiser(this));
201
202 if (provider == String.Empty)
203 loader.Add(addinPath);
204 else
205 loader.Add(addinPath, new PluginProviderFilter(provider));
206 //loader.Add(addinPath, new PluginCountConstraint(1));
207
208 loader.Load();
209
210 return loader.Plugins;
211 }
197 } 212 }
198 213
199 public class log4netLogWriter : ILogWriter 214 public class log4netLogWriter : ILogWriter