diff --git a/OpenSim/Server/Handlers/Asset/AssetServerConnector.cs b/OpenSim/Server/Handlers/Asset/AssetServerConnector.cs index 8b9e749aa4..46b0c672e2 100644 --- a/OpenSim/Server/Handlers/Asset/AssetServerConnector.cs +++ b/OpenSim/Server/Handlers/Asset/AssetServerConnector.cs @@ -59,7 +59,7 @@ namespace OpenSim.Server.Handlers.Asset if (assetService == String.Empty) throw new Exception("No LocalServiceModule in config file"); - Object[] args = new Object[] { config }; + Object[] args = new Object[] { config, m_ConfigName }; m_AssetService = ServerUtils.LoadPlugin(assetService, args); diff --git a/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs b/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs index 9d6f964371..040c8405b3 100644 --- a/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs +++ b/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs @@ -67,7 +67,7 @@ namespace OpenSim.Server.Handlers.Asset if (inventoryService == String.Empty) throw new Exception("No InventoryService in config file"); - Object[] args = new Object[] { config }; + Object[] args = new Object[] { config, m_ConfigName }; m_InventoryService = ServerUtils.LoadPlugin(inventoryService, args); diff --git a/OpenSim/Services/AssetService/AssetService.cs b/OpenSim/Services/AssetService/AssetService.cs index 4f4cbf6077..137a9b0b18 100644 --- a/OpenSim/Services/AssetService/AssetService.cs +++ b/OpenSim/Services/AssetService/AssetService.cs @@ -46,7 +46,12 @@ namespace OpenSim.Services.AssetService protected static AssetService m_RootInstance; - public AssetService(IConfigSource config) : base(config) + public AssetService(IConfigSource config) + : this(config, "AssetService") + { + } + + public AssetService(IConfigSource config, string configName) : base(config, configName) { if (m_RootInstance == null) { @@ -54,9 +59,9 @@ namespace OpenSim.Services.AssetService if (m_AssetLoader != null) { - IConfig assetConfig = config.Configs["AssetService"]; + IConfig assetConfig = config.Configs[m_ConfigName]; if (assetConfig == null) - throw new Exception("No AssetService configuration"); + throw new Exception("No " + m_ConfigName + " configuration"); string loaderArgs = assetConfig.GetString("AssetLoaderArgs", String.Empty); diff --git a/OpenSim/Services/AssetService/AssetServiceBase.cs b/OpenSim/Services/AssetService/AssetServiceBase.cs index 86752f997f..177c56541c 100644 --- a/OpenSim/Services/AssetService/AssetServiceBase.cs +++ b/OpenSim/Services/AssetService/AssetServiceBase.cs @@ -39,16 +39,25 @@ namespace OpenSim.Services.AssetService { protected IAssetDataPlugin m_Database = null; protected IAssetLoader m_AssetLoader = null; + protected string m_ConfigName = "AssetService"; - public AssetServiceBase(IConfigSource config) : base(config) + public AssetServiceBase(IConfigSource config) + : this(config, "AssetService") { + } + + public AssetServiceBase(IConfigSource config, string configName) : base(config) + { + if (configName != string.Empty) + m_ConfigName = configName; + string dllName = String.Empty; string connString = String.Empty; // - // Try reading the [AssetService] section first, if it exists + // Try reading the [AssetService] section, if it exists // - IConfig assetConfig = config.Configs["AssetService"]; + IConfig assetConfig = config.Configs[m_ConfigName]; if (assetConfig != null) { dllName = assetConfig.GetString("StorageProvider", dllName); diff --git a/OpenSim/Services/HypergridService/HGAssetService.cs b/OpenSim/Services/HypergridService/HGAssetService.cs index 22e233a368..db9816639b 100644 --- a/OpenSim/Services/HypergridService/HGAssetService.cs +++ b/OpenSim/Services/HypergridService/HGAssetService.cs @@ -58,10 +58,10 @@ namespace OpenSim.Services.HypergridService private UserAccountCache m_Cache; - public HGAssetService(IConfigSource config) : base(config) + public HGAssetService(IConfigSource config, string configName) : base(config, configName) { m_log.Debug("[HGAsset Service]: Starting"); - IConfig assetConfig = config.Configs["HGAssetService"]; + IConfig assetConfig = config.Configs[configName]; if (assetConfig == null) throw new Exception("No HGAssetService configuration"); diff --git a/OpenSim/Services/HypergridService/HGInventoryService.cs b/OpenSim/Services/HypergridService/HGInventoryService.cs index 41d5a7aadc..a1287fda9b 100644 --- a/OpenSim/Services/HypergridService/HGInventoryService.cs +++ b/OpenSim/Services/HypergridService/HGInventoryService.cs @@ -60,36 +60,19 @@ namespace OpenSim.Services.HypergridService private UserAccountCache m_Cache; - public HGInventoryService(IConfigSource config) - : base(config) + public HGInventoryService(IConfigSource config, string configName) + : base(config, configName) { m_log.Debug("[HGInventory Service]: Starting"); - - string dllName = String.Empty; - string connString = String.Empty; - //string realm = "Inventory"; // OSG version doesn't use this - - // - // Try reading the [DatabaseService] section, if it exists - // - IConfig dbConfig = config.Configs["DatabaseService"]; - if (dbConfig != null) - { - if (dllName == String.Empty) - dllName = dbConfig.GetString("StorageProvider", String.Empty); - if (connString == String.Empty) - connString = dbConfig.GetString("ConnectionString", String.Empty); - } + if (configName != string.Empty) + m_ConfigName = configName; // // Try reading the [InventoryService] section, if it exists // - IConfig invConfig = config.Configs["HGInventoryService"]; + IConfig invConfig = config.Configs[m_ConfigName]; if (invConfig != null) - { - dllName = invConfig.GetString("StorageProvider", dllName); - connString = invConfig.GetString("ConnectionString", connString); - + { // realm = authConfig.GetString("Realm", realm); string userAccountsDll = invConfig.GetString("UserAccountsService", string.Empty); if (userAccountsDll == string.Empty) @@ -108,17 +91,6 @@ namespace OpenSim.Services.HypergridService m_Cache = UserAccountCache.CreateUserAccountCache(m_UserAccountService); } - // - // We tried, but this doesn't exist. We can't proceed. - // - if (dllName == String.Empty) - throw new Exception("No StorageProvider configured"); - - m_Database = LoadPlugin(dllName, - new Object[] {connString, String.Empty}); - if (m_Database == null) - throw new Exception("Could not find a storage interface in the given module"); - m_log.Debug("[HG INVENTORY SERVICE]: Starting..."); } diff --git a/OpenSim/Services/InventoryService/XInventoryService.cs b/OpenSim/Services/InventoryService/XInventoryService.cs index 1648b51bd8..8c57d1755a 100644 --- a/OpenSim/Services/InventoryService/XInventoryService.cs +++ b/OpenSim/Services/InventoryService/XInventoryService.cs @@ -46,9 +46,17 @@ namespace OpenSim.Services.InventoryService protected IXInventoryData m_Database; protected bool m_AllowDelete = true; + protected string m_ConfigName = "InventoryService"; - public XInventoryService(IConfigSource config) : base(config) + public XInventoryService(IConfigSource config) + : this(config, "InventoryService") { + } + public XInventoryService(IConfigSource config, string configName) : base(config) + { + if (configName != string.Empty) + m_ConfigName = configName; + string dllName = String.Empty; string connString = String.Empty; //string realm = "Inventory"; // OSG version doesn't use this @@ -56,7 +64,7 @@ namespace OpenSim.Services.InventoryService // // Try reading the [InventoryService] section first, if it exists // - IConfig authConfig = config.Configs["InventoryService"]; + IConfig authConfig = config.Configs[m_ConfigName]; if (authConfig != null) { dllName = authConfig.GetString("StorageProvider", dllName);