From 2270b252656146d9d74b84665a7ace6c3139db30 Mon Sep 17 00:00:00 2001 From: Mike Mazur Date: Thu, 31 Jul 2008 09:24:28 +0000 Subject: Thanks, sempuki, for a patch that moves all Grid Server's plugins to PluginLoader. Fix issue 1871. --- OpenSim/Grid/AssetServer/Main.cs | 37 +++++++++------------------------ OpenSim/Grid/AssetServer/RestService.cs | 8 +++---- OpenSim/Grid/GridServer/GridManager.cs | 7 ++----- 3 files changed, 16 insertions(+), 36 deletions(-) (limited to 'OpenSim/Grid') diff --git a/OpenSim/Grid/AssetServer/Main.cs b/OpenSim/Grid/AssetServer/Main.cs index 7053f72..7c7e39b 100644 --- a/OpenSim/Grid/AssetServer/Main.cs +++ b/OpenSim/Grid/AssetServer/Main.cs @@ -53,7 +53,7 @@ namespace OpenSim.Grid.AssetServer // Temporarily hardcoded - should be a plugin protected IAssetLoader assetLoader = new AssetLoaderFileSystem(); - private IAssetProvider m_assetProvider; + private IAssetProviderPlugin m_assetProvider; [STAThread] public static void Main(string[] args) @@ -116,36 +116,19 @@ namespace OpenSim.Grid.AssetServer return null; } - public IAssetProvider LoadDatabasePlugin(string FileName, string connect) + public IAssetProviderPlugin LoadDatabasePlugin(string provider, string connect) { - m_log.Info("[ASSET SERVER]: LoadDatabasePlugin: Attempting to load " + FileName); - Assembly pluginAssembly = Assembly.LoadFrom(FileName); - IAssetProvider assetPlugin = null; - foreach (Type pluginType in pluginAssembly.GetTypes()) - { - if (!pluginType.IsAbstract) - { - Type typeInterface = pluginType.GetInterface("IAssetProvider", true); + PluginLoader loader = + new PluginLoader (new AssetDataInitialiser (connect)); - if (typeInterface != null) - { - IAssetProvider plug = - (IAssetProvider) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); - assetPlugin = plug; - assetPlugin.Initialise(connect); + // loader will try to load all providers (MySQL, MSSQL, etc) + // unless it is constrainted to the correct "Provider" entry in the addin.xml + loader.Add ("/OpenSim/AssetData", new PluginProviderFilter (provider)); + loader.Load(); - m_log.Info("[ASSET SERVER]: Added " + assetPlugin.Name + " " + assetPlugin.Version); - break; - } - - typeInterface = null; - } - } - - pluginAssembly = null; - return assetPlugin; + return loader.Plugin; } - + public void setupDB(AssetConfig config) { try diff --git a/OpenSim/Grid/AssetServer/RestService.cs b/OpenSim/Grid/AssetServer/RestService.cs index 372f5f8..f63b78b 100644 --- a/OpenSim/Grid/AssetServer/RestService.cs +++ b/OpenSim/Grid/AssetServer/RestService.cs @@ -45,14 +45,14 @@ namespace OpenSim.Grid.AssetServer private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); // private OpenAsset_Main m_assetManager; - private IAssetProvider m_assetProvider; + private IAssetProviderPlugin m_assetProvider; /// /// Constructor. /// /// /// - public GetAssetStreamHandler(OpenAsset_Main assetManager, IAssetProvider assetProvider) + public GetAssetStreamHandler(OpenAsset_Main assetManager, IAssetProviderPlugin assetProvider) : base("GET", "/assets") { m_log.Info("[REST]: In Get Request"); @@ -121,7 +121,7 @@ namespace OpenSim.Grid.AssetServer private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); // private OpenAsset_Main m_assetManager; - private IAssetProvider m_assetProvider; + private IAssetProviderPlugin m_assetProvider; public override byte[] Handle(string path, Stream request, OSHttpRequest httpRequest, OSHttpResponse httpResponse) @@ -142,7 +142,7 @@ namespace OpenSim.Grid.AssetServer return new byte[] {}; } - public PostAssetStreamHandler(OpenAsset_Main assetManager, IAssetProvider assetProvider) + public PostAssetStreamHandler(OpenAsset_Main assetManager, IAssetProviderPlugin assetProvider) : base("POST", "/assets") { // m_assetManager = assetManager; diff --git a/OpenSim/Grid/GridServer/GridManager.cs b/OpenSim/Grid/GridServer/GridManager.cs index 98e670f..3101a38 100644 --- a/OpenSim/Grid/GridServer/GridManager.cs +++ b/OpenSim/Grid/GridServer/GridManager.cs @@ -67,13 +67,10 @@ namespace OpenSim.Grid.GridServer PluginLoader logloader = new PluginLoader (new LogDataInitialiser (connect)); - gridloader.AddExtensionPoint ("/OpenSim/GridData"); - logloader.AddExtensionPoint ("/OpenSim/LogData"); - // loader will try to load all providers (MySQL, MSSQL, etc) // unless it is constrainted to the correct "Provider" entry in the addin.xml - gridloader.AddFilter ("/OpenSim/GridData", new PluginProviderFilter (provider)); - logloader.AddFilter ("/OpenSim/LogData", new PluginProviderFilter (provider)); + gridloader.Add ("/OpenSim/GridData", new PluginProviderFilter (provider)); + logloader.Add ("/OpenSim/LogData", new PluginProviderFilter (provider)); gridloader.Load(); logloader.Load(); -- cgit v1.1