From 8ed297692b7674b67b8d05a26fa9b04c20930e37 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 06 Sep 2013 21:41:58 +0000
Subject: [PATCH] OPENDJ-1116 Introduce abstraction for the changelog DB

---
 opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java |   19 +++++++++++++------
 1 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java b/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java
index d4965c6..4f1f166 100644
--- a/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java
@@ -34,6 +34,7 @@
 import org.opends.messages.Message;
 import org.opends.messages.MessageBuilder;
 import org.opends.server.loggers.debug.DebugTracer;
+import org.opends.server.replication.server.ChangelogState;
 import org.opends.server.replication.server.ReplicationServer;
 import org.opends.server.replication.server.changelog.api.ChangelogException;
 
@@ -166,12 +167,14 @@
   }
 
   /**
-   * Read the list of known servers from the database and start dbHandler
-   * for each of them.
+   * Read the list of known servers from the database and start dbHandler for
+   * each of them.
    *
-   * @throws ChangelogException in case of underlying Exception
+   * @return the {@link ChangelogState} read from the changelogState DB
+   * @throws ChangelogException
+   *           if a database problem occurs
    */
-  public void initializeFromChangelogStateDB() throws ChangelogException
+  public ChangelogState readChangelogState() throws ChangelogException
   {
     DatabaseEntry key = new DatabaseEntry();
     DatabaseEntry data = new DatabaseEntry();
@@ -179,6 +182,8 @@
 
     try
     {
+      final ChangelogState result = new ChangelogState();
+
       OperationStatus status = cursor.getFirst(key, data, LockMode.DEFAULT);
       while (status == OperationStatus.SUCCESS)
       {
@@ -197,7 +202,7 @@
           if (debugEnabled())
             debug("has read baseDn=" + baseDn + " generationId=" +generationId);
 
-          replicationServer.initDomainGenerationID(baseDn, generationId);
+          result.setDomainGenerationId(baseDn, generationId);
         }
         else
         {
@@ -207,11 +212,13 @@
           if (debugEnabled())
             debug("has read: baseDn=" + baseDn + " serverId=" + serverId);
 
-          replicationServer.addServerIdToDomain(serverId, baseDn);
+          result.addServerIdToDomain(serverId, baseDn);
         }
 
         status = cursor.getNext(key, data, LockMode.DEFAULT);
       }
+
+      return result;
     }
     catch (RuntimeException e)
     {

--
Gitblit v1.10.0