diff options
Diffstat (limited to '')
6 files changed, 32 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs index 783d606..e32dbb3 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs | |||
@@ -166,6 +166,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation | |||
166 | return m_sceneList[0]; | 166 | return m_sceneList[0]; |
167 | } | 167 | } |
168 | 168 | ||
169 | public ISimulationService GetInnerService() | ||
170 | { | ||
171 | return this; | ||
172 | } | ||
173 | |||
169 | /** | 174 | /** |
170 | * Agent-related communications | 175 | * Agent-related communications |
171 | */ | 176 | */ |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs index 4d82a05..9e8454f 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs | |||
@@ -156,6 +156,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation | |||
156 | return m_localBackend.GetScene(handle); | 156 | return m_localBackend.GetScene(handle); |
157 | } | 157 | } |
158 | 158 | ||
159 | public ISimulationService GetInnerService() | ||
160 | { | ||
161 | return m_localBackend; | ||
162 | } | ||
163 | |||
159 | /** | 164 | /** |
160 | * Agent-related communications | 165 | * Agent-related communications |
161 | */ | 166 | */ |
diff --git a/OpenSim/Server/Base/ServerUtils.cs b/OpenSim/Server/Base/ServerUtils.cs index a399672..e7a8294 100644 --- a/OpenSim/Server/Base/ServerUtils.cs +++ b/OpenSim/Server/Base/ServerUtils.cs | |||
@@ -101,10 +101,23 @@ namespace OpenSim.Server.Base | |||
101 | continue; | 101 | continue; |
102 | 102 | ||
103 | Type typeInterface = pluginType.GetInterface(interfaceName, true); | 103 | Type typeInterface = pluginType.GetInterface(interfaceName, true); |
104 | 104 | ||
105 | if (typeInterface != null) | 105 | if (typeInterface != null) |
106 | { | 106 | { |
107 | return (T)Activator.CreateInstance(pluginType, args); | 107 | T plug = null; |
108 | try | ||
109 | { | ||
110 | plug = (T)Activator.CreateInstance(pluginType, | ||
111 | args); | ||
112 | } | ||
113 | catch (Exception e) | ||
114 | { | ||
115 | if (!(e is System.MissingMethodException)) | ||
116 | m_log.ErrorFormat("Error loading plugin from {0}, exception {1}", dllName, e.InnerException); | ||
117 | return null; | ||
118 | } | ||
119 | |||
120 | return plug; | ||
108 | } | 121 | } |
109 | } | 122 | } |
110 | } | 123 | } |
diff --git a/OpenSim/Server/Handlers/Simulation/SimulationServiceInConnector.cs b/OpenSim/Server/Handlers/Simulation/SimulationServiceInConnector.cs index 55a575c..50d6fb2 100644 --- a/OpenSim/Server/Handlers/Simulation/SimulationServiceInConnector.cs +++ b/OpenSim/Server/Handlers/Simulation/SimulationServiceInConnector.cs | |||
@@ -55,6 +55,7 @@ namespace OpenSim.Server.Handlers.Simulation | |||
55 | 55 | ||
56 | //Object[] args = new Object[] { config }; | 56 | //Object[] args = new Object[] { config }; |
57 | m_LocalSimulationService = scene.RequestModuleInterface<ISimulationService>(); | 57 | m_LocalSimulationService = scene.RequestModuleInterface<ISimulationService>(); |
58 | m_LocalSimulationService = m_LocalSimulationService.GetInnerService(); | ||
58 | //ServerUtils.LoadPlugin<ISimulationService>(simService, args); | 59 | //ServerUtils.LoadPlugin<ISimulationService>(simService, args); |
59 | 60 | ||
60 | //System.Console.WriteLine("XXXXXXXXXXXXXXXXXXX m_AssetSetvice == null? " + ((m_AssetService == null) ? "yes" : "no")); | 61 | //System.Console.WriteLine("XXXXXXXXXXXXXXXXXXX m_AssetSetvice == null? " + ((m_AssetService == null) ? "yes" : "no")); |
diff --git a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs index d3be1a8..ff0dd7e 100644 --- a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs +++ b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs | |||
@@ -63,6 +63,11 @@ namespace OpenSim.Services.Connectors.Simulation | |||
63 | return null; | 63 | return null; |
64 | } | 64 | } |
65 | 65 | ||
66 | public ISimulationService GetInnerService() | ||
67 | { | ||
68 | return null; | ||
69 | } | ||
70 | |||
66 | #region Agents | 71 | #region Agents |
67 | 72 | ||
68 | protected virtual string AgentPath() | 73 | protected virtual string AgentPath() |
diff --git a/OpenSim/Services/Interfaces/ISimulationService.cs b/OpenSim/Services/Interfaces/ISimulationService.cs index ec24d90..67d7cbe 100644 --- a/OpenSim/Services/Interfaces/ISimulationService.cs +++ b/OpenSim/Services/Interfaces/ISimulationService.cs | |||
@@ -36,6 +36,7 @@ namespace OpenSim.Services.Interfaces | |||
36 | public interface ISimulationService | 36 | public interface ISimulationService |
37 | { | 37 | { |
38 | IScene GetScene(ulong regionHandle); | 38 | IScene GetScene(ulong regionHandle); |
39 | ISimulationService GetInnerService(); | ||
39 | 40 | ||
40 | #region Agents | 41 | #region Agents |
41 | 42 | ||