Pass server up to IntegrationService to allow pluggins to register their handlers

integration
BlueWall 2012-04-01 15:58:26 -04:00
parent 445caca18b
commit 5c92aa262a
3 changed files with 14 additions and 5 deletions

View File

@ -28,7 +28,7 @@ namespace OpenSim.Server.Handlers.Integration
if (service == String.Empty) if (service == String.Empty)
throw new Exception("No LocalServiceModule in config file"); throw new Exception("No LocalServiceModule in config file");
Object[] args = new Object[] { config }; Object[] args = new Object[] { config, server };
m_IntegrationService = ServerUtils.LoadPlugin<IIntegrationService>(service, args); m_IntegrationService = ServerUtils.LoadPlugin<IIntegrationService>(service, args);
server.AddStreamHandler(new IntegrationServerHandler(m_IntegrationService)); server.AddStreamHandler(new IntegrationServerHandler(m_IntegrationService));

View File

@ -2,6 +2,7 @@
using OpenSim.Server.Base; using OpenSim.Server.Base;
using OpenSim.Services.Interfaces; using OpenSim.Services.Interfaces;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Servers.HttpServer;
using GridRegion = OpenSim.Services.Interfaces.GridRegion; using GridRegion = OpenSim.Services.Interfaces.GridRegion;
using OpenMetaverse; using OpenMetaverse;
using Nini.Config; using Nini.Config;
@ -13,8 +14,8 @@ namespace OpenSim.Services.IntegrationService
public class IntegrationService : IntegrationServiceBase, IIntegrationService public class IntegrationService : IntegrationServiceBase, IIntegrationService
{ {
public IntegrationService(IConfigSource config) public IntegrationService(IConfigSource config, IHttpServer server)
: base(config) : base(config, server)
{ {
} }

View File

@ -1,6 +1,7 @@
using System; using System;
using OpenSim.Services.Interfaces; using OpenSim.Services.Interfaces;
using OpenSim.Services.Base; using OpenSim.Services.Base;
using OpenSim.Framework.Servers.HttpServer;
using System.Reflection; using System.Reflection;
using Nini.Config; using Nini.Config;
using OpenSim.Framework; using OpenSim.Framework;
@ -23,17 +24,24 @@ namespace OpenSim.Services.IntegrationService
{ {
protected IPresenceService m_PresenceService; protected IPresenceService m_PresenceService;
protected IGridService m_GridService; protected IGridService m_GridService;
protected IHttpServer m_Server;
IConfig m_IntegrationServerConfig; IConfig m_IntegrationServerConfig;
public IntegrationServiceBase(IConfigSource config) public IntegrationServiceBase(IConfigSource config, IHttpServer server)
: base(config) : base(config)
{ {
Object[] args = new Object[] { config }; Object[] args = new Object[] { config };
m_Server = server;
AddinManager.Initialize ("."); AddinManager.Initialize (".");
AddinManager.Registry.Update (); AddinManager.Registry.Update ();
foreach (IntegrationPlugin cmd in AddinManager.GetExtensionObjects("/OpenSim/IntegrationService")) foreach (IntegrationPlugin cmd in AddinManager.GetExtensionObjects("/OpenSim/IntegrationService"))
{
cmd.run (); cmd.run ();
server.AddStreamHandler((IRequestHandler)cmd);
}
m_IntegrationServerConfig = config.Configs["IntegrationService"]; m_IntegrationServerConfig = config.Configs["IntegrationService"];
if (m_IntegrationServerConfig == null) if (m_IntegrationServerConfig == null)