From af64c1ee9e38da931b49f83277aedd6399010de2 Mon Sep 17 00:00:00 2001 From: Mike Mazur Date: Mon, 16 Feb 2009 02:26:36 +0000 Subject: Migrate OpenSim inventory frontend to load with Mono.Addins. Everything should compile and it seems even creating users works somehow. --- .../AssetInventoryServer/AssetInventoryServer.cs | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'OpenSim/Grid/AssetInventoryServer/AssetInventoryServer.cs') 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 public IAuthorizationProvider AuthorizationProvider; public IMetricsProvider MetricsProvider; - private IAssetInventoryServerPlugin frontend; + private List frontends = new List(); public AssetInventoryServer() { @@ -107,7 +107,7 @@ namespace OpenSim.Grid.AssetInventoryServer } StorageProvider = LoadAssetInventoryServerPlugin("/OpenSim/AssetInventoryServer/StorageProvider", "OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim.dll") as IAssetStorageProvider; - InventoryProvider = LoadAssetInventoryServerPlugin("/OpenSim/AssetInventoryServer/InventoryProvider", "OpenSim.Grid.AssetInventoryServer.Plugins.Simple.dll") as IInventoryStorageProvider; + InventoryProvider = LoadAssetInventoryServerPlugin("/OpenSim/AssetInventoryServer/InventoryProvider", "OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim.dll") as IInventoryStorageProvider; MetricsProvider = LoadAssetInventoryServerPlugin("/OpenSim/AssetInventoryServer/MetricsProvider", String.Empty) as IMetricsProvider; try @@ -121,7 +121,7 @@ namespace OpenSim.Grid.AssetInventoryServer return false; } - frontend = LoadAssetInventoryServerPlugin("/OpenSim/AssetInventoryServer/Frontend", String.Empty); + frontends.AddRange(LoadAssetInventoryServerPlugins("/OpenSim/AssetInventoryServer/Frontend", String.Empty)); return true; } @@ -194,6 +194,21 @@ namespace OpenSim.Grid.AssetInventoryServer return loader.Plugin; } + + private List LoadAssetInventoryServerPlugins(string addinPath, string provider) + { + PluginLoader loader = new PluginLoader(new AssetInventoryServerPluginInitialiser(this)); + + if (provider == String.Empty) + loader.Add(addinPath); + else + loader.Add(addinPath, new PluginProviderFilter(provider)); + //loader.Add(addinPath, new PluginCountConstraint(1)); + + loader.Load(); + + return loader.Plugins; + } } public class log4netLogWriter : ILogWriter -- cgit v1.1