diff --git a/OpenSim/Services/IntegrationService/IntegrationServiceBase.cs b/OpenSim/Services/IntegrationService/IntegrationServiceBase.cs index 2bf66e67e4..7d08576202 100644 --- a/OpenSim/Services/IntegrationService/IntegrationServiceBase.cs +++ b/OpenSim/Services/IntegrationService/IntegrationServiceBase.cs @@ -5,10 +5,21 @@ using System.Reflection; using Nini.Config; using OpenSim.Framework; using GridRegion = OpenSim.Services.Interfaces.GridRegion; +using Mono.Addins; + + +[assembly:AddinRoot ("IntegrationService", "1.0")] namespace OpenSim.Services.IntegrationService { - public class IntegrationServiceBase : ServiceBase + [TypeExtensionPoint (Path="/OpenSim/IntegrationService", Name="IntegrationService")] + public interface IntegrationPlugin + { + void run(); + } + + + public class IntegrationServiceBase : ServiceBase { protected IPresenceService m_PresenceService; protected IGridService m_GridService; @@ -19,6 +30,11 @@ namespace OpenSim.Services.IntegrationService { Object[] args = new Object[] { config }; + AddinManager.Initialize ("."); + AddinManager.Registry.Update (); + foreach (IntegrationPlugin cmd in AddinManager.GetExtensionObjects("/OpenSim/IntegrationService")) + cmd.run (); + m_IntegrationServerConfig = config.Configs["IntegrationService"]; if (m_IntegrationServerConfig == null) { diff --git a/prebuild.xml b/prebuild.xml index 9a0c94d676..eca2083325 100644 --- a/prebuild.xml +++ b/prebuild.xml @@ -1179,6 +1179,7 @@ +