From 0e63575f95dafe1cdb67fb1cc3814ac97e51596e Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Fri, 19 Sep 2014 15:36:37 +0000
Subject: [PATCH] OPENDJ-1388 CR-3446 Implement simple changelog db based on single log file

---
 opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServer.java |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServer.java b/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServer.java
index 61a993c..3ab3c9f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServer.java
@@ -40,6 +40,7 @@
 import org.forgerock.opendj.ldap.SearchScope;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.std.meta.VirtualAttributeCfgDefn.ConflictBehavior;
+import org.opends.server.admin.std.meta.ReplicationServerCfgDefn.ReplicationDBImplementation;
 import org.opends.server.admin.std.server.ReplicationServerCfg;
 import org.opends.server.admin.std.server.UserDefinedVirtualAttributeCfg;
 import org.opends.server.api.VirtualAttributeProvider;
@@ -53,6 +54,7 @@
 import org.opends.server.replication.server.changelog.api.ChangeNumberIndexRecord;
 import org.opends.server.replication.server.changelog.api.ChangelogDB;
 import org.opends.server.replication.server.changelog.api.ChangelogException;
+import org.opends.server.replication.server.changelog.file.FileChangelogDB;
 import org.opends.server.replication.server.changelog.je.JEChangelogDB;
 import org.opends.server.replication.service.DSRSShutdownSync;
 import org.opends.server.types.*;
@@ -89,7 +91,7 @@
   private final Map<DN, ReplicationServerDomain> baseDNs =
       new HashMap<DN, ReplicationServerDomain>();
 
-  private final ChangelogDB changelogDB;
+  private ChangelogDB changelogDB;
   private final AtomicBoolean shutdown = new AtomicBoolean();
   private boolean stopListen = false;
   private final ReplSessionSecurity replSessionSecurity;
@@ -145,6 +147,18 @@
     this.config = cfg;
     this.changelogDB = new JEChangelogDB(this, cfg);
     this.dsrsShutdownSync = dsrsShutdownSync;
+    this.config = cfg;
+    ReplicationDBImplementation dbImpl = cfg.getReplicationDBImplementation();
+    if (dbImpl == ReplicationDBImplementation.JE)
+    {
+      logger.trace("Using JE as DB implementation for changelog DB");
+      this.changelogDB = new JEChangelogDB(this, cfg);
+    }
+    else
+    {
+      logger.trace("Using LOG FILE as DB implementation for changelog DB");
+      this.changelogDB = new FileChangelogDB(this, cfg);
+    }
 
     replSessionSecurity = new ReplSessionSecurity();
     initialize();

--
Gitblit v1.10.0