mirror of
https://github.com/opensim/opensim.git
synced 2026-08-10 19:36:07 +08:00
Create a generic way for passing constructor args to plugins
The old syntax didn't allow for any parameters except for services listed in the ServiceList. Now, services loaded by other services can also be made to use different ini sections or have additional paramters. Syntax is: [<ExtraParam>@]...<DllName>[:<ClassName>]
This commit is contained in:
@@ -63,6 +63,7 @@ namespace OpenSim.Services.Connectors
|
||||
/// In this case, -1 is default timeout (100 seconds), not infinite.
|
||||
/// </remarks>
|
||||
private int m_requestTimeoutSecs = -1;
|
||||
private string m_configName = "InventoryService";
|
||||
|
||||
private const double CACHE_EXPIRATION_SECONDS = 20.0;
|
||||
private static ExpiringCache<UUID, InventoryItemBase> m_ItemCache = new ExpiringCache<UUID,InventoryItemBase>();
|
||||
@@ -76,6 +77,13 @@ namespace OpenSim.Services.Connectors
|
||||
m_ServerURI = serverURI.TrimEnd('/');
|
||||
}
|
||||
|
||||
public XInventoryServicesConnector(IConfigSource source, string configName)
|
||||
: base(source, configName)
|
||||
{
|
||||
m_configName = configName;
|
||||
Initialise(source);
|
||||
}
|
||||
|
||||
public XInventoryServicesConnector(IConfigSource source)
|
||||
: base(source, "InventoryService")
|
||||
{
|
||||
@@ -84,10 +92,10 @@ namespace OpenSim.Services.Connectors
|
||||
|
||||
public virtual void Initialise(IConfigSource source)
|
||||
{
|
||||
IConfig config = source.Configs["InventoryService"];
|
||||
IConfig config = source.Configs[m_configName];
|
||||
if (config == null)
|
||||
{
|
||||
m_log.Error("[INVENTORY CONNECTOR]: InventoryService missing from OpenSim.ini");
|
||||
m_log.ErrorFormat("[INVENTORY CONNECTOR]: {0} missing from OpenSim.ini", m_configName);
|
||||
throw new Exception("Inventory connector init error");
|
||||
}
|
||||
|
||||
|
||||
@@ -180,9 +180,14 @@ namespace OpenSim.Services.LLLoginService
|
||||
string hgInvServicePlugin = m_LoginServerConfig.GetString("HGInventoryServicePlugin", String.Empty);
|
||||
if (hgInvServicePlugin != string.Empty)
|
||||
{
|
||||
// TODO: Remove HGInventoryServiceConstructorArg after 0.9 release
|
||||
string hgInvServiceArg = m_LoginServerConfig.GetString("HGInventoryServiceConstructorArg", String.Empty);
|
||||
Object[] args2 = new Object[] { config, hgInvServiceArg };
|
||||
m_HGInventoryService = ServerUtils.LoadPlugin<IInventoryService>(hgInvServicePlugin, args2);
|
||||
if (hgInvServiceArg != String.Empty)
|
||||
{
|
||||
m_log.Warn("[LLOGIN SERVICE]: You are using HGInventoryServiceConstructorArg, which is deprecated. See example file for correct syntax.");
|
||||
hgInvServicePlugin = hgInvServiceArg + "@" + hgInvServicePlugin;
|
||||
}
|
||||
m_HGInventoryService = ServerUtils.LoadPlugin<IInventoryService>(hgInvServicePlugin, args);
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user