From 87b6a9294f437fd6312c2fbe2292ee64babd8d7e Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 10 Oct 2013 14:45:51 +0000
Subject: [PATCH] OPENDJ-1116 Introduce abstraction for the changelog DB
---
opends/src/server/org/opends/server/replication/server/ECLServerHandler.java | 33 +++++++++++++++++----------------
1 files changed, 17 insertions(+), 16 deletions(-)
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 c9c2a07..9ebbcd3 100644
--- a/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
+++ b/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
@@ -40,10 +40,7 @@
import org.opends.server.replication.common.ServerState;
import org.opends.server.replication.common.ServerStatus;
import org.opends.server.replication.protocol.*;
-import org.opends.server.replication.server.changelog.api.CNIndexRecord;
-import org.opends.server.replication.server.changelog.api.ChangeNumberIndexDB;
-import org.opends.server.replication.server.changelog.api.ChangelogException;
-import org.opends.server.replication.server.changelog.api.DBCursor;
+import org.opends.server.replication.server.changelog.api.*;
import org.opends.server.types.*;
import org.opends.server.util.ServerConstants;
@@ -77,7 +74,7 @@
private String operationId;
/** Cursor on the {@link ChangeNumberIndexDB}. */
- private DBCursor<CNIndexRecord> cnIndexDBCursor;
+ private DBCursor<ChangeNumberIndexRecord> cnIndexDBCursor;
private boolean draftCompat = false;
/**
@@ -591,7 +588,7 @@
{
// Request filter DOES NOT contain any start change number
// So we'll generate from the oldest change number in the CNIndexDB
- final CNIndexRecord oldestRecord = cnIndexDB.getOldestRecord();
+ final ChangeNumberIndexRecord oldestRecord = cnIndexDB.getOldestRecord();
if (oldestRecord == null)
{ // DB is empty or closed
isEndOfCNIndexDBReached = true;
@@ -606,8 +603,9 @@
// Request filter DOES contain a startChangeNumber
// Read the CNIndexDB to see whether it contains startChangeNumber
- DBCursor<CNIndexRecord> cursor = cnIndexDB.getCursorFrom(startChangeNumber);
- final CNIndexRecord startRecord = cursor.getRecord();
+ DBCursor<ChangeNumberIndexRecord> cursor =
+ cnIndexDB.getCursorFrom(startChangeNumber);
+ final ChangeNumberIndexRecord startRecord = cursor.getRecord();
if (startRecord != null)
{
// found the provided startChangeNumber, let's return it
@@ -632,7 +630,7 @@
if (startChangeNumber < oldestChangeNumber)
{
cursor = cnIndexDB.getCursorFrom(oldestChangeNumber);
- final CNIndexRecord oldestRecord = cursor.getRecord();
+ final ChangeNumberIndexRecord oldestRecord = cursor.getRecord();
if (oldestRecord == null)
{
// This should not happen
@@ -648,7 +646,7 @@
{
// startChangeNumber is between oldest and potential newest and has never
// been returned yet
- final CNIndexRecord newestRecord = cnIndexDB.getNewestRecord();
+ final ChangeNumberIndexRecord newestRecord = cnIndexDB.getNewestRecord();
if (newestRecord == null)
{
isEndOfCNIndexDBReached = true;
@@ -667,10 +665,12 @@
throw new DirectoryException(ResultCode.SUCCESS, Message.raw(""));
}
- private DBCursor<CNIndexRecord> getCursorFrom(ChangeNumberIndexDB cnIndexDB,
- long startChangeNumber) throws ChangelogException
+ private DBCursor<ChangeNumberIndexRecord> getCursorFrom(
+ ChangeNumberIndexDB cnIndexDB, long startChangeNumber)
+ throws ChangelogException
{
- DBCursor<CNIndexRecord> cursor = cnIndexDB.getCursorFrom(startChangeNumber);
+ DBCursor<ChangeNumberIndexRecord> cursor =
+ cnIndexDB.getCursorFrom(startChangeNumber);
if (cursor.getRecord() == null)
{
close(cursor);
@@ -1320,7 +1320,7 @@
return true;
}
- final CNIndexRecord currentRecord = cnIndexDBCursor.getRecord();
+ final ChangeNumberIndexRecord currentRecord = cnIndexDBCursor.getRecord();
final CSN csnFromCNIndexDB = currentRecord.getCSN();
final DN dnFromCNIndexDB = currentRecord.getBaseDN();
@@ -1401,8 +1401,9 @@
private void assignNewChangeNumberAndStore(ECLUpdateMsg change)
throws ChangelogException
{
- final CNIndexRecord record = new CNIndexRecord(previousCookie.toString(),
- change.getBaseDN(), change.getUpdateMsg().getCSN());
+ final ChangeNumberIndexRecord record =
+ new ChangeNumberIndexRecord(previousCookie.toString(),
+ change.getBaseDN(), change.getUpdateMsg().getCSN());
// store in CNIndexDB the pair
// (change number of the current change, state before this change)
change.setChangeNumber(
--
Gitblit v1.10.0