From 02bbeacbfb05101989dac510cbef7815fdf28a2e Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Mon, 01 Sep 2014 12:51:46 +0000
Subject: [PATCH] OPENDJ-1206 (CR-4393) Create a new ReplicationBackend/ChangelogBackend to support cn=changelog
---
opends/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java | 30 +++++++++++++++++++++++++++---
1 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/opends/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java b/opends/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java
index a15c25d..b9a32b6 100644
--- a/opends/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java
@@ -31,6 +31,7 @@
import org.opends.messages.Message;
import org.opends.server.api.DirectoryThread;
+import org.opends.server.backends.ChangelogBackend;
import org.opends.server.loggers.debug.DebugTracer;
import org.opends.server.replication.common.CSN;
import org.opends.server.replication.common.MultiDomainServerState;
@@ -491,9 +492,9 @@
// OK, the oldest change is older than the medium consistency point
// let's publish it to the CNIndexDB.
final String previousCookie = mediumConsistencyRUV.toString();
- final ChangeNumberIndexRecord record =
- new ChangeNumberIndexRecord(previousCookie, baseDN, csn);
- changelogDB.getChangeNumberIndexDB().addRecord(record);
+ final long changeNumber = changelogDB.getChangeNumberIndexDB().addRecord(
+ new ChangeNumberIndexRecord(previousCookie, baseDN, csn));
+ notifyEntryAddedToChangelog(baseDN, changeNumber, previousCookie, msg);
moveForwardMediumConsistencyPoint(csn, baseDN);
}
catch (InterruptedException ignored)
@@ -523,6 +524,29 @@
}
/**
+ * Notifies the {@link ChangelogBackend} that a new entry has been added.
+ *
+ * @param baseDN
+ * the baseDN of the newly added entry.
+ * @param changeNumber
+ * the change number of the newly added entry. It will be greater
+ * than zero for entries added to the change number index and less
+ * than or equal to zero for entries added to any replica DB
+ * @param cookieString
+ * a string representing the cookie of the newly added entry. This is
+ * only meaningful for entries added to the change number index
+ * @param msg
+ * the update message of the newly added entry
+ * @throws ChangelogException
+ * If a problem occurs while notifying of the newly added entry.
+ */
+ protected void notifyEntryAddedToChangelog(DN baseDN, long changeNumber,
+ String cookieString, UpdateMsg msg) throws ChangelogException
+ {
+ ChangelogBackend.getInstance().notifyEntryAdded(baseDN, changeNumber, cookieString, msg);
+ }
+
+ /**
* Nothing can be done about it.
* <p>
* Rely on the DirectoryThread uncaught exceptions handler for logging error +
--
Gitblit v1.10.0