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 @@
+