*** CHANGED CONFIG BEHAVIOUR ***

* Changed really strange LocalSettings behaviour with enforcing hard-coded plugin names if none supplied
* UserServices and InventoryPlugin will only load if supplied with filename
afrisby
lbsa71 2007-09-24 02:41:13 +00:00
parent a9a126063f
commit 5818958a9a
4 changed files with 47 additions and 56 deletions

View File

@ -22,6 +22,8 @@ namespace OpenSim.Framework.InventoryServiceBase
/// </summary>
/// <param name="FileName">The filename to the user server plugin DLL</param>
public void AddPlugin(string FileName)
{
if (!String.IsNullOrEmpty(FileName))
{
MainLog.Instance.Verbose("Inventory", "Inventorystorage: Attempting to load " + FileName);
Assembly pluginAssembly = Assembly.LoadFrom(FileName);
@ -34,17 +36,15 @@ namespace OpenSim.Framework.InventoryServiceBase
if (typeInterface != null)
{
IInventoryData plug = (IInventoryData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
IInventoryData plug =
(IInventoryData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
plug.Initialise();
this.m_plugins.Add(plug.getName(), plug);
MainLog.Instance.Verbose("Inventorystorage: Added IInventoryData Interface");
}
typeInterface = null;
}
}
pluginAssembly = null;
}
}
/// <summary>

View File

@ -25,6 +25,7 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
using System;
using System.Collections;
using System.Collections.Generic;
@ -32,15 +33,11 @@ using System.Reflection;
using System.Security.Cryptography;
using libsecondlife;
using Nwc.XmlRpc;
using OpenSim.Framework.Configuration;
using OpenSim.Framework.Console;
using OpenSim.Framework.Data;
using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Inventory;
using OpenSim.Framework.Utilities;
using OpenSim.Framework.Configuration;
using InventoryFolder = OpenSim.Framework.Inventory.InventoryFolder;
namespace OpenSim.Framework.UserManagement
{
public abstract class UserManagerBase
@ -54,10 +51,12 @@ namespace OpenSim.Framework.UserManagement
/// <param name="FileName">The filename to the user server plugin DLL</param>
public void AddPlugin(string FileName)
{
MainLog.Instance.Verbose( "Userstorage: Attempting to load " + FileName);
if (!String.IsNullOrEmpty(FileName))
{
MainLog.Instance.Verbose("Userstorage: Attempting to load " + FileName);
Assembly pluginAssembly = Assembly.LoadFrom(FileName);
MainLog.Instance.Verbose( "Userstorage: Found " + pluginAssembly.GetTypes().Length + " interfaces.");
MainLog.Instance.Verbose("Userstorage: Found " + pluginAssembly.GetTypes().Length + " interfaces.");
foreach (Type pluginType in pluginAssembly.GetTypes())
{
if (!pluginType.IsAbstract)
@ -66,20 +65,18 @@ namespace OpenSim.Framework.UserManagement
if (typeInterface != null)
{
IUserData plug = (IUserData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
plug.Initialise();
IUserData plug =
(IUserData) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
AddPlugin(plug);
}
typeInterface = null;
}
}
}
}
pluginAssembly = null;
}
private void AddPlugin(IUserData plug)
public void AddPlugin(IUserData plug)
{
plug.Initialise();
this._plugins.Add(plug.getName(), plug);
MainLog.Instance.Verbose( "Userstorage: Added IUserData Interface");
}

View File

@ -79,8 +79,8 @@ namespace OpenSim
private bool standaloneAuthenticate = false;
private string standaloneWelcomeMessage = null;
private string standaloneInventoryPlugin = "";
private string standaloneUserPlugin = "";
private string standaloneInventoryPlugin = "OpenSim.Framework.Data.SQLite.dll";
private string standaloneUserPlugin = "OpenSim.Framework.Data.DB4o.dll";
private string m_assetStorage = "db4o";

View File

@ -47,7 +47,7 @@ namespace OpenSim.Region.Communications.Local
protected LocalSettings m_settings;
protected CommunicationsLocal(NetworkServersInfo serversInfo, BaseHttpServer httpServer, AssetCache assetCache )
protected CommunicationsLocal(NetworkServersInfo serversInfo, BaseHttpServer httpServer, AssetCache assetCache)
: base(serversInfo, httpServer, assetCache)
{
@ -136,25 +136,19 @@ namespace OpenSim.Region.Communications.Local
public class LocalSettings
{
public string WelcomeMessage = "";
public string WelcomeMessage;
public bool AccountAuthentication = false;
public string InventoryPlugin = "OpenSim.Framework.Data.SQLite.dll";
public string UserDatabasePlugin = "OpenSim.Framework.Data.DB4o.dll";
public string InventoryPlugin;
public string UserDatabasePlugin;
public LocalSettings(string welcomeMessage, bool accountsAuthenticate, string inventoryPlugin, string userPlugin)
{
WelcomeMessage = welcomeMessage;
AccountAuthentication = accountsAuthenticate;
if (inventoryPlugin != "")
{
InventoryPlugin = inventoryPlugin;
}
if (userPlugin != "")
{
UserDatabasePlugin = userPlugin;
}
}
}
}
}