From aea0892feca2fd3d56c9c810debed6d22389454e Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 11 Jul 2014 09:54:43 +0000
Subject: [PATCH] OPENDJ-1453 (CR-3938) Replica offline messages should be synced with updates
---
opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServer.java | 37 +++++++++++++++++++++++++++++++------
1 files changed, 31 insertions(+), 6 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 2c6d9a8..61a993c 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
@@ -54,6 +54,7 @@
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.je.JEChangelogDB;
+import org.opends.server.replication.service.DSRSShutdownSync;
import org.opends.server.types.*;
import org.opends.server.util.ServerConstants;
import org.opends.server.workflowelement.externalchangelog.ECLWorkflowElement;
@@ -79,6 +80,7 @@
/** The current configuration of this replication server. */
private ReplicationServerCfg config;
+ private final DSRSShutdownSync dsrsShutdownSync;
/**
* This table is used to store the list of dn for which we are currently
@@ -122,18 +124,31 @@
/**
* Creates a new Replication server using the provided configuration entry.
*
- * @param configuration The configuration of this replication server.
+ * @param cfg The configuration of this replication server.
* @throws ConfigException When Configuration is invalid.
*/
- public ReplicationServer(ReplicationServerCfg configuration)
- throws ConfigException
+ public ReplicationServer(ReplicationServerCfg cfg) throws ConfigException
{
- this.config = configuration;
- this.changelogDB = new JEChangelogDB(this, configuration);
+ this(cfg, new DSRSShutdownSync());
+ }
+
+ /**
+ * Creates a new Replication server using the provided configuration entry.
+ *
+ * @param cfg The configuration of this replication server.
+ * @param dsrsShutdownSync Synchronization object for shutdown of combined DS/RS instances.
+ * @throws ConfigException When Configuration is invalid.
+ */
+ public ReplicationServer(ReplicationServerCfg cfg,
+ DSRSShutdownSync dsrsShutdownSync) throws ConfigException
+ {
+ this.config = cfg;
+ this.changelogDB = new JEChangelogDB(this, cfg);
+ this.dsrsShutdownSync = dsrsShutdownSync;
replSessionSecurity = new ReplSessionSecurity();
initialize();
- configuration.addChangeListener(this);
+ cfg.addChangeListener(this);
localPorts.add(getReplicationPort());
@@ -1183,6 +1198,16 @@
return this.changelogDB;
}
+ /**
+ * Returns the synchronization object for shutdown of combined DS/RS instances.
+ *
+ * @return the synchronization object for shutdown of combined DS/RS instances.
+ */
+ DSRSShutdownSync getDSRSShutdownSync()
+ {
+ return dsrsShutdownSync;
+ }
+
/** {@inheritDoc} */
@Override
public String toString()
--
Gitblit v1.10.0