From f62797edd0e611bc0d91b3b6f1817edac996b95e Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 25 Sep 2013 09:19:53 +0000
Subject: [PATCH] ReplicationServerDomain.java: Extracted toServerState() method. Renamed getDbServerState() to getLatestServerState().

---
 opends/src/server/org/opends/server/replication/server/DataServerHandler.java                             |    2 
 opends/src/server/org/opends/server/replication/server/ReplicationDomainMonitor.java                      |    2 
 opends/src/server/org/opends/server/replication/server/MessageHandler.java                                |    4 +-
 opends/src/server/org/opends/server/replication/server/ReplicationServer.java                             |    2 
 opends/src/server/org/opends/server/replication/server/ECLServerHandler.java                              |    2 
 opends/src/server/org/opends/server/replication/server/ReplicationBackend.java                            |    2 
 opends/src/server/org/opends/server/replication/server/ServerHandler.java                                 |    2 
 opends/src/admin/messages/ReplicationDomainCfgDefn_fr.properties                                          |    2 
 opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java |    8 ++--
 opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java                       |   42 +++++++++++----------
 10 files changed, 35 insertions(+), 33 deletions(-)

diff --git a/opends/src/admin/messages/ReplicationDomainCfgDefn_fr.properties b/opends/src/admin/messages/ReplicationDomainCfgDefn_fr.properties
index a81297d..5af817a 100644
--- a/opends/src/admin/messages/ReplicationDomainCfgDefn_fr.properties
+++ b/opends/src/admin/messages/ReplicationDomainCfgDefn_fr.properties
@@ -33,7 +33,7 @@
 property.referrals-url.description=Les URL utilis\u00e9es par des serveurs pairs de la topologie doivent renvoyer vers le serveur local via des r\u00e9f\u00e9rences LDAP. Si cet attribut n'est pas d\u00e9fini, chaque URL disponible pour acc\u00e9der \u00e0 ce serveur sera utilis\u00e9e. Si elles sont d\u00e9finies, seules les URL sp\u00e9cifi\u00e9es sont utilis\u00e9es.
 property.referrals-url.syntax.string.pattern.synopsis=Une URL LDAP conforme \u00e0 RFC 2255.
 property.replication-server.synopsis=Sp\u00e9cifie les adresses des serveurs de r\u00e9plication dans le domaine de r\u00e9plication auquel Directory Server doit essayer de se connecter \u00e0 l'heure du d\u00e9marrage.
-property.replication-server.description=Les adresses doivent \u00eatre sp\u00e9cifi\u00e9es en utilisant la syntaxe\u00a0: hostname:port
+property.replication-server.description=Les adresses doivent \u00eatre sp\u00e9cifi\u00e9es en utilisant la syntaxe\u00a0: "hostname:port". Si des adresses IPv6 sont utilis\u00e9es pour le hostname, elles doivent \u00eatre sp\u00e9cifi\u00e9es en utilisant la syntaxe "[IPv6Address]:port".
 property.replication-server.syntax.string.pattern.synopsis=Un nom d'h\u00f4te suivi d'un ":" et un num\u00e9ro de port.
 property.server-id.synopsis=Sp\u00e9cifie un identifiant unique pour Directory Server dans le domaine de r\u00e9plication.
 property.server-id.description=Chaque Directory Server dans le m\u00eame domaine de r\u00e9plication doit avoir un ID de serveur diff\u00e9rent. Un Directory Server qui est membre de plusieurs domaines de r\u00e9plication peut utiliser le m\u00eame ID de serveur pour chacune des configurations de son domaine de r\u00e9plication.
diff --git a/opends/src/server/org/opends/server/replication/server/DataServerHandler.java b/opends/src/server/org/opends/server/replication/server/DataServerHandler.java
index ffaa1f4..c9f4b7d 100644
--- a/opends/src/server/org/opends/server/replication/server/DataServerHandler.java
+++ b/opends/src/server/org/opends/server/replication/server/DataServerHandler.java
@@ -520,7 +520,7 @@
       // Peer DS uses protocol V4 : send it a ReplServerStartDSMsg
       startMsg = new ReplServerStartDSMsg(getReplicationServerId(),
           getReplicationServerURL(), getBaseDN(), maxRcvWindow,
-          replicationServerDomain.getDbServerState(),
+          replicationServerDomain.getLatestServerState(),
           localGenerationId, sslEncryption, getLocalGroupId(),
           replicationServer.getDegradedStatusThreshold(),
           replicationServer.getWeight(),
diff --git a/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java b/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
index 99a4e8b..6f0943d 100644
--- a/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
+++ b/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
@@ -701,7 +701,7 @@
         }
 
         // skip unused domains
-        if (rsd.getDbServerState().isEmpty())
+        if (rsd.getLatestServerState().isEmpty())
           continue;
 
         // Creates the new domain context
diff --git a/opends/src/server/org/opends/server/replication/server/MessageHandler.java b/opends/src/server/org/opends/server/replication/server/MessageHandler.java
index a4c73a8..45ba05f 100644
--- a/opends/src/server/org/opends/server/replication/server/MessageHandler.java
+++ b/opends/src/server/org/opends/server/replication/server/MessageHandler.java
@@ -541,8 +541,8 @@
        * The total size of the receive queue is calculated by doing the sum of
        * the number of missing changes for every dbHandler.
        */
-      ServerState dbState = replicationServerDomain.getDbServerState();
-      return ServerState.diffChanges(dbState, serverState);
+      ServerState latestState = replicationServerDomain.getLatestServerState();
+      return ServerState.diffChanges(latestState, serverState);
     }
   }
 
diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationBackend.java b/opends/src/server/org/opends/server/replication/server/ReplicationBackend.java
index ff8c99f..13487a9 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationBackend.java
+++ b/opends/src/server/org/opends/server/replication/server/ReplicationBackend.java
@@ -587,7 +587,7 @@
         break;
       }
 
-      final ServerState serverState = exportContainer.getDbServerState();
+      final ServerState serverState = exportContainer.getLatestServerState();
       TRACER.debugInfo("State=" + serverState);
       Attribute stateAttr = Attributes.create("state", serverState.toString());
       Attribute genidAttr = Attributes.create("generation-id",
diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationDomainMonitor.java b/opends/src/server/org/opends/server/replication/server/ReplicationDomainMonitor.java
index 9b599d1..bd1ada6 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationDomainMonitor.java
+++ b/opends/src/server/org/opends/server/replication/server/ReplicationDomainMonitor.java
@@ -288,7 +288,7 @@
     // Then initialize the max CSN for the LS that produced something
     // - from our own local db state
     // - whatever they are directly or indirectly connected
-    final ServerState dbServerState = domain.getDbServerState();
+    final ServerState dbServerState = domain.getLatestServerState();
     pendingMonitorData.setRSState(domain.getLocalRSServerId(), dbServerState);
     for (int serverId : dbServerState)
     {
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 6eb08a6..044ba50 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
+++ b/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
@@ -1697,7 +1697,7 @@
     for (ReplicationServerDomain rsd : getReplicationServerDomains())
     {
       if (contains(excludedBaseDNs, rsd.getBaseDN().toNormalizedString())
-          || rsd.getDbServerState().isEmpty())
+          || rsd.getLatestServerState().isEmpty())
         continue;
 
       final CSN eligibleCSN = getEligibleCSN(excludedBaseDNs);
diff --git a/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java b/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
index 50d67db..22303e4 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
+++ b/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
@@ -1620,7 +1620,7 @@
       int destination, ReplicationDomainMonitorData monitorData)
   {
     final MonitorMsg returnMsg = new MonitorMsg(sender, destination);
-    returnMsg.setReplServerDbState(getDbServerState());
+    returnMsg.setReplServerDbState(getLatestServerState());
 
     // Add the server state for each DS and RS currently in the topology.
     for (int replicaId : toIterable(monitorData.ldapIterator()))
@@ -1669,7 +1669,7 @@
     try
     {
       final MonitorMsg monitorMsg = new MonitorMsg(sender, destination);
-      monitorMsg.setReplServerDbState(getDbServerState());
+      monitorMsg.setReplServerDbState(getLatestServerState());
 
       // Add the server state for each connected DS and RS.
       for (DataServerHandler dsHandler : this.connectedDSs.values())
@@ -1708,16 +1708,23 @@
   }
 
   /**
-   * Returns the ServerState describing the newest CSNs from this domain.
+   * Returns the latest most current ServerState describing the newest CSNs for
+   * each server in this domain.
    *
-   * @return The ServerState describing the newest CSNs from this domain.
+   * @return The ServerState describing the newest CSNs for each server in in
+   *         this domain.
    */
-  public ServerState getDbServerState()
+  public ServerState getLatestServerState()
+  {
+    return toServerState(changelogDB.getDomainNewestCSNs(baseDN).values());
+  }
+
+  private ServerState toServerState(Collection<CSN> csns)
   {
     ServerState serverState = new ServerState();
-    for (CSN newestCSN : changelogDB.getDomainNewestCSNs(baseDN).values())
+    for (CSN csn : csns)
     {
-      serverState.update(newestCSN);
+      serverState.update(csn);
     }
     return serverState;
   }
@@ -2556,7 +2563,7 @@
   {
     if (ctHeartbeatState == null)
     {
-      ctHeartbeatState = getDbServerState().duplicate();
+      ctHeartbeatState = getLatestServerState().duplicate();
     }
     return ctHeartbeatState;
   }
@@ -2584,17 +2591,17 @@
    */
   public ServerState getEligibleState(CSN eligibleCSN)
   {
-    ServerState dbState = getDbServerState();
+    ServerState latestState = getLatestServerState();
 
     // The result is initialized from the dbState.
     // From it, we don't want to keep the changes newer than eligibleCSN.
-    ServerState result = dbState.duplicate();
+    ServerState result = latestState.duplicate();
 
     if (eligibleCSN != null)
     {
-      for (int serverId : dbState)
+      for (int serverId : latestState)
       {
-        CSN mostRecentDbCSN = dbState.getCSN(serverId);
+        CSN mostRecentDbCSN = latestState.getCSN(serverId);
         try {
           // Is the most recent change in the Db newer than eligible CSN ?
           // if yes (like csn15 in the example above, then we have to go back
@@ -2635,12 +2642,7 @@
    */
   public ServerState getStartState()
   {
-    ServerState domainStartState = new ServerState();
-    for (CSN oldestCSN : changelogDB.getDomainOldestCSNs(baseDN).values())
-    {
-      domainStartState.update(oldestCSN);
-    }
-    return domainStartState;
+    return toServerState(changelogDB.getDomainOldestCSNs(baseDN).values());
   }
 
   /**
@@ -2809,7 +2811,7 @@
   {
     long res = 0;
 
-    for (int serverId : getDbServerState())
+    for (int serverId : getLatestServerState())
     {
       CSN startCSN = startState.getCSN(serverId);
       long serverIdRes = getCount(serverId, startCSN, endCSN);
@@ -2836,7 +2838,7 @@
   public long getEligibleCount(CSN startCSN, CSN endCSN)
   {
     long res = 0;
-    for (int serverId : getDbServerState()) {
+    for (int serverId : getLatestServerState()) {
       CSN lStartCSN =
           new CSN(startCSN.getTime(), startCSN.getSeqnum(), serverId);
       res += getCount(serverId, lStartCSN, endCSN);
diff --git a/opends/src/server/org/opends/server/replication/server/ServerHandler.java b/opends/src/server/org/opends/server/replication/server/ServerHandler.java
index 5234bcd..55279ab 100644
--- a/opends/src/server/org/opends/server/replication/server/ServerHandler.java
+++ b/opends/src/server/org/opends/server/replication/server/ServerHandler.java
@@ -1237,7 +1237,7 @@
   {
     return new ReplServerStartMsg(getReplicationServerId(),
         getReplicationServerURL(), getBaseDN(), maxRcvWindow,
-        replicationServerDomain.getDbServerState(), localGenerationId,
+        replicationServerDomain.getLatestServerState(), localGenerationId,
         sslEncryption, getLocalGroupId(),
         replicationServer.getDegradedStatusThreshold());
   }
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java
index feeb14b..3968de9 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java
@@ -2213,20 +2213,20 @@
       sleep(500);
 
       ReplicationServerDomain rsd1 = replicationServer.getReplicationServerDomain(TEST_ROOT_DN);
-      rsd1.getDbServerState();
+      rsd1.getLatestServerState();
       rsd1.getChangeTimeHeartbeatState();
       debugInfo(tn, rsd1.getBaseDN()
-          + " DbServerState=" + rsd1.getDbServerState()
+          + " LatestServerState=" + rsd1.getLatestServerState()
           + " ChangeTimeHeartBeatState=" + rsd1.getChangeTimeHeartbeatState()
           + " eligibleCSN=" + rsd1.getEligibleCSN()
           + " rs eligibleCSN=" + replicationServer.getEligibleCSN(null));
       // FIXME:ECL Enable this test by adding an assert on the right value
 
       ReplicationServerDomain rsd2 = replicationServer.getReplicationServerDomain(TEST_ROOT_DN2);
-      rsd2.getDbServerState();
+      rsd2.getLatestServerState();
       rsd2.getChangeTimeHeartbeatState();
       debugInfo(tn, rsd2.getBaseDN()
-          + " DbServerState=" + rsd2.getDbServerState()
+          + " LatestServerState=" + rsd2.getLatestServerState()
           + " ChangeTimeHeartBeatState=" + rsd2.getChangeTimeHeartbeatState()
           + " eligibleCSN=" + rsd2.getEligibleCSN()
           + " rs eligibleCSN=" + replicationServer.getEligibleCSN(null));

--
Gitblit v1.10.0