From a3dad177f76ca95ba2a01ba58e53fb3441ebe0ac Mon Sep 17 00:00:00 2001
From: mrossign <mrossign@localhost>
Date: Fri, 19 Dec 2008 11:59:56 +0000
Subject: [PATCH] - support for dynamic domain group id reconfiguration in replication server - unit test for group id reconfiguration in replication server as well as in directory server

---
 opends/src/server/org/opends/server/replication/server/ReplicationServer.java |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationServer.java b/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
index b0e043f..6d88711 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
+++ b/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
@@ -634,8 +634,9 @@
   public ConfigChangeResult applyConfigurationChange(
       ReplicationServerCfg configuration)
   {
-    // Changing those properties don't need specific code.
-    // They will be applied for next connections.
+    // Some of those properties change don't need specific code.
+    // They will be applied for next connections. Some others have immediate
+    // effect
 
     disconnectRemovedReplicationServers(configuration.getReplicationServer());
 
@@ -724,6 +725,18 @@
       }
     }
 
+    // Changed the group id ?
+    byte newGroupId = (byte)configuration.getGroupId();
+    if (newGroupId != groupId)
+    {
+      groupId = newGroupId;
+      // Have a new group id: Disconnect every servers.
+      for (ReplicationServerDomain replicationServerDomain : baseDNs.values())
+      {
+        replicationServerDomain.stopAllServers();
+      }
+    }
+
     if ((configuration.getReplicationDBDirectory() != null) &&
         (!dbDirname.equals(configuration.getReplicationDBDirectory())))
     {
@@ -1127,7 +1140,7 @@
 
     for (ReplicationServerDomain replicationServerDomain: baseDNs.values())
     {
-      replicationServerDomain.stopServers(serversToDisconnect);
+      replicationServerDomain.stopReplicationServers(serversToDisconnect);
     }
   }
 }

--
Gitblit v1.10.0