diff options
Diffstat (limited to 'OpenSim/Grid/AssetInventoryServer/AssetInventoryServer.cs')
-rw-r--r-- | OpenSim/Grid/AssetInventoryServer/AssetInventoryServer.cs | 21 |
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 |