From 8131a24cde3f3877b3b8dd850871c57c17b2b216 Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Tue, 27 Mar 2012 10:08:13 -0700
Subject: Send the config section name up to the service classes themselves
 (XInventory and Assets).

---
 OpenSim/Services/AssetService/AssetService.cs      | 11 ++++--
 OpenSim/Services/AssetService/AssetServiceBase.cs  | 15 ++++++--
 .../Services/HypergridService/HGAssetService.cs    |  4 +--
 .../HypergridService/HGInventoryService.cs         | 40 ++++------------------
 .../Services/InventoryService/XInventoryService.cs | 12 +++++--
 5 files changed, 38 insertions(+), 44 deletions(-)

(limited to 'OpenSim/Services')

diff --git a/OpenSim/Services/AssetService/AssetService.cs b/OpenSim/Services/AssetService/AssetService.cs
index 4f4cbf6..137a9b0 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 86752f9..177c565 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 22e233a..db98166 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 41d5a7a..a1287fd 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<IXInventoryData>(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 1648b51..8c57d17 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);
-- 
cgit v1.1