From e26f8c815fd96beab297c7a58c90d7ae338eaa87 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 20 Dec 2013 13:17:57 +0000
Subject: [PATCH] In ReplicationBroker, removed null checks on the replication domain. Had to change integrated unit tests to pass a dummy replication domain.

---
 opendj-sdk/opends/src/server/org/opends/server/replication/service/ReplicationBroker.java                                |   51 +++---------
 opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ReplicationTestCase.java              |   26 +-----
 opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/StateMachineTest.java          |    8 +
 opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/DummyReplicationDomain.java    |  102 +++++++++++++++++++++++++
 opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java     |    7 +
 opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/HistoricalCsnOrderingTest.java |    3 
 opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java     |    4 
 7 files changed, 137 insertions(+), 64 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/service/ReplicationBroker.java b/opendj-sdk/opends/src/server/org/opends/server/replication/service/ReplicationBroker.java
index 87f63fe..b22e8f5 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/service/ReplicationBroker.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/service/ReplicationBroker.java
@@ -359,11 +359,7 @@
    */
   private long getGenerationID()
   {
-    if (domain != null)
-    {
-      // Update the generation id
-      generationID = domain.getGenerationID();
-    }
+    generationID = domain.getGenerationID();
     return generationID;
   }
 
@@ -842,15 +838,12 @@
    */
   private void connectAsDataServer()
   {
-    if (domain != null)
-    {
-      /*
-      If a first connect or a connection failure occur, we go through here.
-      force status machine to NOT_CONNECTED_STATUS so that monitoring can
-      see that we are not connected.
-      */
-      domain.toNotConnectedStatus();
-    }
+    /*
+     * If a first connect or a connection failure occur, we go through here.
+     * force status machine to NOT_CONNECTED_STATUS so that monitoring can see
+     * that we are not connected.
+     */
+    domain.toNotConnectedStatus();
 
     /*
     Stop any existing heartbeat monitor and changeTime publisher
@@ -1019,10 +1012,7 @@
       sendWindow = new Semaphore(maxSendWindow);
       rcvWindow = getMaxRcvWindow();
 
-      if (domain != null)
-      {
-        domain.sessionInitiated(initStatus, rsInfo.getServerState());
-      }
+      domain.sessionInitiated(initStatus, rsInfo.getServerState());
 
       final byte groupId = getGroupId();
       if (rs.getGroupId() != groupId)
@@ -1318,23 +1308,15 @@
     {
       // Send our StartSessionMsg.
       final StartSessionMsg startSessionMsg;
-      if (domain != null)
-      {
-        startSessionMsg = new StartSessionMsg(
+      startSessionMsg = new StartSessionMsg(
           initStatus,
           domain.getRefUrls(),
           domain.isAssured(),
           domain.getAssuredMode(),
           domain.getAssuredSdLevel());
-        startSessionMsg.setEclIncludes(
-            domain.getEclIncludes(domain.getServerId()),
-            domain.getEclIncludesForDeletes(domain.getServerId()));
-      }
-      else
-      {
-        startSessionMsg =
-          new StartSessionMsg(initStatus, new ArrayList<String>());
-      }
+      startSessionMsg.setEclIncludes(
+          domain.getEclIncludes(domain.getServerId()),
+          domain.getEclIncludesForDeletes(domain.getServerId()));
       final Session session = electedRS.session;
       session.publish(startSessionMsg);
 
@@ -3094,13 +3076,10 @@
     // Remove any replication server that may have disappeared from the topology
     replicationServerInfos.keySet().retainAll(rssToKeep);
 
-    if (domain != null)
+    for (DSInfo info : dsList)
     {
-      for (DSInfo info : dsList)
-      {
-        domain.setEclIncludes(info.getDsId(), info.getEclIncludes(),
-            info.getEclIncludesForDeletes());
-      }
+      domain.setEclIncludes(info.getDsId(), info.getEclIncludes(),
+          info.getEclIncludesForDeletes());
     }
   }
 
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ReplicationTestCase.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ReplicationTestCase.java
index d9e81e4..10b857d 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ReplicationTestCase.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ReplicationTestCase.java
@@ -52,7 +52,6 @@
 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.IntegerSyntax;
 import org.opends.server.types.*;
 import org.testng.annotations.AfterClass;
@@ -196,7 +195,7 @@
       boolean emptyOldChanges) throws Exception
   {
     return openReplicationSession(baseDN, serverId, windowSize,
-        port, timeout, emptyOldChanges, getGenerationId(baseDN), null);
+        port, timeout, emptyOldChanges, getGenerationId(baseDN));
   }
 
   /**
@@ -207,36 +206,21 @@
       int serverId, int windowSize, int port, int timeout,
       boolean emptyOldChanges, long generationId) throws Exception
   {
-    return openReplicationSession(baseDN, serverId, windowSize,
-        port, timeout, emptyOldChanges, generationId, null);
-  }
-
-  /**
-   * Open a replicationServer session to the local ReplicationServer
-   * providing the generationId.
-   */
-  protected ReplicationBroker openReplicationSession(final DN baseDN,
-      int serverId, int windowSize, int port, int timeout,
-      boolean emptyOldChanges, long generationId,
-      ReplicationDomain replicationDomain) throws Exception
-  {
     DomainFakeCfg config = newFakeCfg(baseDN, serverId, port);
     config.setWindowSize(windowSize);
-    return openReplicationSession(config, port, timeout, emptyOldChanges,
-        generationId, replicationDomain);
+    return openReplicationSession(config, port, timeout, emptyOldChanges, generationId);
   }
 
   protected ReplicationBroker openReplicationSession(ReplicationDomainCfg config,
-      int port, int timeout, boolean emptyOldChanges, long generationId,
-      ReplicationDomain replicationDomain) throws Exception
+      int port, int timeout, boolean emptyOldChanges, long generationId) throws Exception
   {
     ServerState state = new ServerState();
 
     if (emptyOldChanges)
       new PersistentServerState(config.getBaseDN(), config.getServerId(), new ServerState());
 
-    ReplicationBroker broker = new ReplicationBroker(replicationDomain, state,
-        config, generationId, getReplSessionSecurity());
+    final ReplicationBroker broker = new ReplicationBroker(
+        new DummyReplicationDomain(generationId), state, config, generationId, getReplSessionSecurity());
     connect(broker, port, timeout);
     return broker;
   }
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/DummyReplicationDomain.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/DummyReplicationDomain.java
new file mode 100644
index 0000000..68db0b8
--- /dev/null
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/DummyReplicationDomain.java
@@ -0,0 +1,102 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
+ * or http://forgerock.org/license/CDDLv1.0.html.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at legal-notices/CDDLv1_0.txt.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information:
+ *      Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *      Copyright 2013 ForgeRock AS
+ */
+package org.opends.server.replication.plugin;
+
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import org.opends.server.replication.common.ServerState;
+import org.opends.server.replication.common.ServerStatus;
+import org.opends.server.replication.common.StatusMachineEvent;
+import org.opends.server.replication.protocol.UpdateMsg;
+import org.opends.server.replication.service.ReplicationDomain;
+import org.opends.server.types.DirectoryException;
+
+@SuppressWarnings("javadoc")
+public class DummyReplicationDomain extends ReplicationDomain
+{
+
+  private final long generationId;
+
+  public DummyReplicationDomain(long generationId)
+  {
+    super(null, -1, 0);
+    this.generationId = generationId;
+  }
+
+  @Override
+  public String getBaseDNString()
+  {
+    return "DummyReplicationDomain";
+  }
+
+  @Override
+  protected void setNewStatus(StatusMachineEvent event)
+  {
+  }
+
+  @Override
+  public void sessionInitiated(ServerStatus initStatus, ServerState rsState)
+  {
+  }
+
+  @Override
+  public boolean setEclIncludes(int serverId, Set<String> includeAttributes,
+      Set<String> includeAttributesForDeletes)
+  {
+    return false;
+  }
+
+  @Override
+  protected void exportBackend(OutputStream output) throws DirectoryException
+  {
+  }
+
+  @Override
+  protected void importBackend(InputStream input) throws DirectoryException
+  {
+  }
+
+  @Override
+  public long countEntries() throws DirectoryException
+  {
+    return 0;
+  }
+
+  @Override
+  public boolean processUpdate(UpdateMsg updateMsg, AtomicBoolean shutdown)
+  {
+    return false;
+  }
+
+  @Override
+  public long getGenerationID()
+  {
+    return this.generationId;
+  }
+
+}
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/HistoricalCsnOrderingTest.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/HistoricalCsnOrderingTest.java
index 8c75676..1ab8e64 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/HistoricalCsnOrderingTest.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/HistoricalCsnOrderingTest.java
@@ -70,7 +70,8 @@
 
     public TestBroker(List<ReplicationMsg> list)
     {
-      super(null, null, new DomainFakeCfg(null, 0, TestCaseUtils.<String> newSortedSet()), 0, null);
+      super(new DummyReplicationDomain(0), null,
+          new DomainFakeCfg(null, 0, TestCaseUtils.<String> newSortedSet()), 0, null);
       this.list = list;
     }
 
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/StateMachineTest.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/StateMachineTest.java
index 09fe005..13ae2f5 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/StateMachineTest.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/StateMachineTest.java
@@ -28,7 +28,10 @@
 
 import java.io.IOException;
 import java.net.SocketTimeoutException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.SortedSet;
+import java.util.TreeSet;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.opends.messages.Category;
@@ -228,7 +231,8 @@
     fakeCfg.setHeartbeatInterval(0);
     fakeCfg.setChangetimeHeartbeatInterval(500);
     ReplSessionSecurity security = new ReplSessionSecurity(null, null, null, true);
-    ReplicationBroker broker = new ReplicationBroker(null, state, fakeCfg, generationId, security);
+    ReplicationBroker broker = new ReplicationBroker(
+        new DummyReplicationDomain(generationId), state, fakeCfg, generationId, security);
     broker.start();
     checkConnection(30, broker, rs1Port);
     return broker;
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java
index 87030bb..428ff66 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java
@@ -1540,13 +1540,13 @@
       DomainFakeCfg config1 = newFakeCfg(TEST_ROOT_DN, SERVER_ID_1, replicationServerPort);
       config1.setChangetimeHeartbeatInterval(100); // ms
       server01 = openReplicationSession(config1, replicationServerPort,
-          brokerSessionTimeout, true, getGenerationId(TEST_ROOT_DN), null);
+              brokerSessionTimeout, true, getGenerationId(TEST_ROOT_DN));
 
       // Create broker on o=test2
       DomainFakeCfg config2 = newFakeCfg(TEST_ROOT_DN2, SERVER_ID_2, replicationServerPort);
       config2.setChangetimeHeartbeatInterval(100); //ms
       server02 = openReplicationSession(config2, replicationServerPort,
-          brokerSessionTimeout, true, EMPTY_DN_GENID, null);
+              brokerSessionTimeout, true, EMPTY_DN_GENID);
 
       int ts = 1;
       // Produce update 1
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java
index cb9f76f..cfac077 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java
@@ -46,6 +46,7 @@
 import org.opends.server.replication.common.CSNGenerator;
 import org.opends.server.replication.common.ServerState;
 import org.opends.server.replication.common.ServerStatus;
+import org.opends.server.replication.plugin.DummyReplicationDomain;
 import org.opends.server.replication.plugin.MultimasterReplication;
 import org.opends.server.replication.plugin.ReplicationServerListener;
 import org.opends.server.replication.protocol.*;
@@ -355,8 +356,10 @@
 
     // Connect to the replicationServer using the state created above.
     try {
-      broker = new ReplicationBroker(null, state, newFakeCfg(TEST_ROOT_DN, 3, replicationServerPort),
-          getGenerationId(TEST_ROOT_DN), getReplSessionSecurity());
+      final long generationId = getGenerationId(TEST_ROOT_DN);
+      broker = new ReplicationBroker(new DummyReplicationDomain(generationId),
+          state, newFakeCfg(TEST_ROOT_DN, 3, replicationServerPort),
+          generationId, getReplSessionSecurity());
       connect(broker, replicationServerPort, 5000);
 
       ReplicationMsg receivedMsg = broker.receive();

--
Gitblit v1.10.0