From f95eca255b79a070abb510da157a37969c81fed2 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 01 Oct 2013 07:38:46 +0000
Subject: [PATCH] OPENDJ-1116 Introduce abstraction for the changelog DB
---
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ProtocolWindowTest.java | 2
opends/src/server/org/opends/server/replication/server/ReplicationServer.java | 13 ------
opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java | 13 +++++-
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ReplicationTestCase.java | 10 ++++-
opends/src/server/org/opends/server/replication/server/changelog/api/ChangelogDB.java | 5 --
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java | 2
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/HistoricalCsnOrderingTest.java | 2
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java | 20 +++++-----
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java | 5 +-
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ReplicationServerLoadBalancingTest.java | 2
10 files changed, 34 insertions(+), 40 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 ead8133..462d4c2 100644
--- a/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
+++ b/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
@@ -1210,19 +1210,6 @@
}
/**
- * Clears the Db associated with that server.
- */
- public void clearDb()
- {
- for (ReplicationServerDomain rsd : getReplicationServerDomains())
- {
- rsd.clearDbs();
- }
-
- this.changelogDB.clearCNIndexDB();
- }
-
- /**
* Get the assured mode timeout.
* @return The assured mode timeout.
*/
diff --git a/opends/src/server/org/opends/server/replication/server/changelog/api/ChangelogDB.java b/opends/src/server/org/opends/server/replication/server/changelog/api/ChangelogDB.java
index b96492a..a775ebc 100644
--- a/opends/src/server/org/opends/server/replication/server/changelog/api/ChangelogDB.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/api/ChangelogDB.java
@@ -84,11 +84,6 @@
void shutdownDB();
/**
- * Temporary method added here until I (JNR) can find a way to get rid of it.
- */
- void clearCNIndexDB();
-
- /**
* Removes the changelog database directory.
*/
void removeDB();
diff --git a/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java b/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java
index 82c846e..d13cd7a 100644
--- a/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java
@@ -297,10 +297,17 @@
}
}
- /** {@inheritDoc} */
- @Override
- public void clearCNIndexDB()
+ /**
+ * Clears all content from the changelog database, but leaves its directory on
+ * the filesystem.
+ */
+ public void clearDB()
{
+ for (DN baseDN : this.sourceDbHandlers.keySet())
+ {
+ removeDomain(baseDN);
+ }
+
synchronized (cnIndexDBLock)
{
if (cnIndexDB != null)
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java
index a3c710e..4d39a5d 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java
@@ -1160,7 +1160,7 @@
TestCaseUtils.initializeTestBackend(false);
replServer1 = createReplicationServer(changelog1ID, false, testCase);
- replServer1.clearDb();
+ clearChangelogDB(replServer1);
ReplicationBroker broker = null;
try
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ProtocolWindowTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ProtocolWindowTest.java
index 3b0b6db..5d91b05 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ProtocolWindowTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ProtocolWindowTest.java
@@ -202,7 +202,7 @@
logError(Message.raw(Category.SYNC, Severity.NOTICE,
"saturateQueueAndRestart: error cleaning config entry: " + dn));
}
- replicationServer.clearDb();
+ clearChangelogDB(replicationServer);
}
}
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ReplicationTestCase.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ReplicationTestCase.java
index 83b9c03..793773b 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ReplicationTestCase.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ReplicationTestCase.java
@@ -58,6 +58,7 @@
import org.opends.server.replication.protocol.ReplicationMsg;
import org.opends.server.replication.protocol.Session;
import org.opends.server.replication.server.ReplicationServer;
+import org.opends.server.replication.server.changelog.je.JEChangelogDB;
import org.opends.server.replication.service.ReplicationBroker;
import org.opends.server.replication.service.ReplicationDomain;
import org.opends.server.schema.DirectoryStringSyntax;
@@ -463,14 +464,18 @@
assertEquals(DirectoryServer.getBackend("replicationChanges"), null, "Replication changes backend object has been left");
}
+ protected void clearChangelogDB(ReplicationServer rs)
+ {
+ ((JEChangelogDB) rs.getChangelogDB()).clearDB();
+ }
+
/**
* Cleanup databases of the currently instantiated replication servers in the
* VM
*/
protected void cleanUpReplicationServersDB() {
-
for (ReplicationServer rs : ReplicationServer.getAllInstances()) {
- rs.clearDb();
+ clearChangelogDB(rs);
}
}
@@ -480,6 +485,7 @@
*/
protected void removeReplicationServerDB() {
for (ReplicationServer rs : ReplicationServer.getAllInstances()) {
+ clearChangelogDB(rs);
rs.removeDb();
}
}
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/HistoricalCsnOrderingTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/HistoricalCsnOrderingTest.java
index 13b00ac..3ae5b3a 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/HistoricalCsnOrderingTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/HistoricalCsnOrderingTest.java
@@ -332,7 +332,7 @@
new ReplServerFakeConfiguration(rsPort, "HistoricalCsnOrdering", 0, 1,
0, 100, replServers, 1, 1000, 5000);
ReplicationServer replicationServer = new ReplicationServer(conf);
- replicationServer.clearDb();
+ clearChangelogDB(replicationServer);
return replicationServer;
}
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ReplicationServerLoadBalancingTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ReplicationServerLoadBalancingTest.java
index c975942..d4a8434 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ReplicationServerLoadBalancingTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/ReplicationServerLoadBalancingTest.java
@@ -772,7 +772,7 @@
{
if (rs[rsIndex] != null)
{
- rs[rsIndex].clearDb();
+ clearChangelogDB(rs[rsIndex]);
rs[rsIndex].remove();
}
}
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 0c125b9..e12dc75 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
@@ -2071,7 +2071,7 @@
@AfterMethod
public void clearReplicationDb()
{
- replicationServer.clearDb();
+ clearChangelogDB(replicationServer);
}
/**
@@ -2614,8 +2614,7 @@
assertEquals(draftdb.count(), 8);
draftdb.setPurgeDelay(1000);
- // Now clear the changelog db
- this.replicationServer.clearDb();
+ clearChangelogDB(replicationServer);
// Expect changes purged from the changelog db to be sometimes
// also purged from the DraftCNDb.
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java
index 1cff9ac..60853ae 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java
@@ -168,7 +168,7 @@
@Test(enabled=true, dependsOnMethods = { "searchBackend"})
public void replicationServerTest() throws Exception
{
- replicationServer.clearDb();
+ clearChangelogDB(replicationServer);
changelogBasic();
newClientLateServer1();
newClient();
@@ -192,7 +192,7 @@
@Test(enabled=false, dependsOnMethods = { "searchBackend"})
public void replicationServerTestLoop() throws Exception
{
- replicationServer.clearDb();
+ clearChangelogDB(replicationServer);
changelogBasic();
while (true)
{
@@ -210,7 +210,7 @@
*/
private void changelogBasic() throws Exception
{
- replicationServer.clearDb();
+ clearChangelogDB(replicationServer);
debugInfo("Starting changelogBasic");
ReplicationBroker server1 = null;
ReplicationBroker server2 = null;
@@ -460,7 +460,7 @@
{
debugInfo("Starting oneWriterMultipleReader");
- replicationServer.clearDb();
+ clearChangelogDB(replicationServer);
TestCaseUtils.initializeTestBackend(true);
ReplicationBroker server = null;
@@ -551,7 +551,7 @@
BrokerReader reader[] = new BrokerReader[THREADS];
ReplicationBroker broker[] = new ReplicationBroker[THREADS];
- replicationServer.clearDb();
+ clearChangelogDB(replicationServer);
TestCaseUtils.initializeTestBackend(true);
try
@@ -629,7 +629,7 @@
{
final String tn = "changelogChaining0";
debugInfo("Starting " + tn);
- replicationServer.clearDb();
+ clearChangelogDB(replicationServer);
TestCaseUtils.initializeTestBackend(true);
{
@@ -732,7 +732,7 @@
{
final String tn = "changelogChaining1";
debugInfo("Starting " + tn);
- replicationServer.clearDb();
+ clearChangelogDB(replicationServer);
TestCaseUtils.initializeTestBackend(true);
{
@@ -860,7 +860,7 @@
debugInfo("Starting windowProbeTest");
final int WINDOW = 10;
- replicationServer.clearDb();
+ clearChangelogDB(replicationServer);
TestCaseUtils.initializeTestBackend(true);
/*
@@ -1296,7 +1296,7 @@
connection.processSearch("cn=monitor", WHOLE_SUBTREE, "(objectclass=*)");
assertEquals(op.getResultCode(), SUCCESS, op.getErrorMessage().toString());
- replicationServer.clearDb();
+ clearChangelogDB(replicationServer);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
LDIFExportConfig exportConfig = new LDIFExportConfig(stream);
@@ -1530,7 +1530,7 @@
@Test(enabled=true, dependsOnMethods = { "searchBackend"}, groups = "opendj-256")
public void replicationServerConnected() throws Exception
{
- replicationServer.clearDb();
+ clearChangelogDB(replicationServer);
TestCaseUtils.initializeTestBackend(true);
debugInfo("Starting replicationServerConnected");
--
Gitblit v1.10.0