aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs27
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs13
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs22
3 files changed, 41 insertions, 21 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs
index d9d7318..0d121ed 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker.cs
@@ -148,8 +148,29 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
148 148
149 scene.RegisterModuleInterface<IInventoryService>(this); 149 scene.RegisterModuleInterface<IInventoryService>(this);
150 150
151 scene.EventManager.OnClientClosed += OnClientClosed; 151 if (m_Scenes.Count == 1)
152 {
153 // FIXME: The local connector needs the scene to extract the UserManager. However, it's not enabled so
154 // we can't just add the region. But this approach is super-messy.
155 if (m_LocalGridInventoryService is RemoteXInventoryServicesConnector)
156 {
157 m_log.DebugFormat(
158 "[HG INVENTORY BROKER]: Manually setting scene in RemoteXInventoryServicesConnector to {0}",
159 scene.RegionInfo.RegionName);
160
161 ((RemoteXInventoryServicesConnector)m_LocalGridInventoryService).Scene = scene;
162 }
163 else if (m_LocalGridInventoryService is LocalInventoryServicesConnector)
164 {
165 m_log.DebugFormat(
166 "[HG INVENTORY BROKER]: Manually setting scene in LocalInventoryServicesConnector to {0}",
167 scene.RegionInfo.RegionName);
168
169 ((LocalInventoryServicesConnector)m_LocalGridInventoryService).Scene = scene;
170 }
152 171
172 scene.EventManager.OnClientClosed += OnClientClosed;
173 }
153 } 174 }
154 175
155 public void RemoveRegion(Scene scene) 176 public void RemoveRegion(Scene scene)
@@ -586,7 +607,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
586 else 607 else
587 { 608 {
588 RemoteXInventoryServicesConnector rxisc = new RemoteXInventoryServicesConnector(url); 609 RemoteXInventoryServicesConnector rxisc = new RemoteXInventoryServicesConnector(url);
589 rxisc.UserManager = UserManagementModule; 610 rxisc.Scene = m_Scenes[0];
590 connector = rxisc; 611 connector = rxisc;
591 } 612 }
592 613
@@ -597,4 +618,4 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
597 return connector; 618 return connector;
598 } 619 }
599 } 620 }
600} 621} \ No newline at end of file
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs
index 65e39c0..d3ef08d 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/LocalInventoryServiceConnector.cs
@@ -47,9 +47,12 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
47 LogManager.GetLogger( 47 LogManager.GetLogger(
48 MethodBase.GetCurrentMethod().DeclaringType); 48 MethodBase.GetCurrentMethod().DeclaringType);
49 49
50 private IInventoryService m_InventoryService; 50 /// <summary>
51 /// Scene used by this module. This currently needs to be publicly settable for HGInventoryBroker.
52 /// </summary>
53 public Scene Scene { get; set; }
51 54
52 private Scene m_Scene; 55 private IInventoryService m_InventoryService;
53 56
54 private IUserManagement m_UserManager; 57 private IUserManagement m_UserManager;
55 private IUserManagement UserManager 58 private IUserManagement UserManager
@@ -58,7 +61,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
58 { 61 {
59 if (m_UserManager == null) 62 if (m_UserManager == null)
60 { 63 {
61 m_UserManager = m_Scene.RequestModuleInterface<IUserManagement>(); 64 m_UserManager = Scene.RequestModuleInterface<IUserManagement>();
62 } 65 }
63 return m_UserManager; 66 return m_UserManager;
64 } 67 }
@@ -131,8 +134,8 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
131 134
132 scene.RegisterModuleInterface<IInventoryService>(this); 135 scene.RegisterModuleInterface<IInventoryService>(this);
133 136
134 if (m_Scene == null) 137 if (Scene == null)
135 m_Scene = scene; 138 Scene = scene;
136 } 139 }
137 140
138 public void RemoveRegion(Scene scene) 141 public void RemoveRegion(Scene scene)
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs
index 97fdd4e..eb90774 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs
@@ -45,6 +45,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
45 private static readonly ILog m_log = 45 private static readonly ILog m_log =
46 LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 46 LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
47 47
48 /// <summary>
49 /// Scene used by this module. This currently needs to be publicly settable for HGInventoryBroker.
50 /// </summary>
51 public Scene Scene { get; set; }
52
48 private bool m_Enabled = false; 53 private bool m_Enabled = false;
49 private Scene m_Scene; 54 private Scene m_Scene;
50 private XInventoryServicesConnector m_RemoteConnector; 55 private XInventoryServicesConnector m_RemoteConnector;
@@ -56,24 +61,16 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
56 { 61 {
57 if (m_UserManager == null) 62 if (m_UserManager == null)
58 { 63 {
59 m_UserManager = m_Scene.RequestModuleInterface<IUserManagement>(); 64 m_UserManager = Scene.RequestModuleInterface<IUserManagement>();
60 65
61 if (m_UserManager == null) 66 if (m_UserManager == null)
62 m_log.ErrorFormat( 67 m_log.ErrorFormat(
63 "[XINVENTORY CONNECTOR]: Could not retrieve IUserManagement module from {0}", 68 "[XINVENTORY CONNECTOR]: Could not retrieve IUserManagement module from {0}",
64 m_Scene.RegionInfo.RegionName); 69 Scene.RegionInfo.RegionName);
65 } 70 }
66 71
67 return m_UserManager; 72 return m_UserManager;
68 } 73 }
69
70 set
71 {
72 m_log.WarnFormat(
73 "[XINVENTORY CONNECTOR]: Manually setting UserManager {0} (scene {1})", value, m_Scene);
74
75 m_UserManager = value;
76 }
77 } 74 }
78 75
79 public Type ReplaceableInterface 76 public Type ReplaceableInterface
@@ -141,15 +138,14 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
141 138
142 scene.RegisterModuleInterface<IInventoryService>(this); 139 scene.RegisterModuleInterface<IInventoryService>(this);
143 140
144 if (m_Scene == null) 141 if (Scene == null)
145 m_Scene = scene; 142 Scene = scene;
146 } 143 }
147 144
148 public void RemoveRegion(Scene scene) 145 public void RemoveRegion(Scene scene)
149 { 146 {
150 if (!m_Enabled) 147 if (!m_Enabled)
151 return; 148 return;
152
153 } 149 }
154 150
155 public void RegionLoaded(Scene scene) 151 public void RegionLoaded(Scene scene)