From 9c8493a28711aff83940445f42f923c587eea4f8 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Mon, 02 Sep 2013 14:57:25 +0000
Subject: [PATCH] OPENDJ-1116 Introduce abstraction for the changelog DB
---
opends/src/server/org/opends/server/replication/server/MessageHandler.java | 8
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DbHandlerTest.java | 4
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/service/ReplicationDomainTest.java | 3
opends/src/server/org/opends/server/replication/plugin/MultimasterReplication.java | 48 ++---
opends/tests/unit-tests-testng/src/server/org/opends/server/controls/ExternalChangelogControlTest.java | 18 -
opends/src/server/org/opends/server/replication/common/package-info.java | 4
opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/DelayPreOpPlugin.java | 28 ++-
opends/src/server/org/opends/server/replication/plugin/FakeOperationComparator.java | 2
opends/src/server/org/opends/server/replication/plugin/PendingChange.java | 35 ++--
opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandler.java | 2
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/protocol/SynchronizationMsgTest.java | 12
opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/ShortCircuitPlugin.java | 53 +++---
opends/tests/unit-tests-testng/src/server/org/opends/server/controls/PersistentSearchControlTest.java | 205 +++++++++++--------------
opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/DisconnectClientPlugin.java | 24 +-
14 files changed, 210 insertions(+), 236 deletions(-)
diff --git a/opends/src/server/org/opends/server/replication/common/package-info.java b/opends/src/server/org/opends/server/replication/common/package-info.java
index dba7ae5..593790f 100644
--- a/opends/src/server/org/opends/server/replication/common/package-info.java
+++ b/opends/src/server/org/opends/server/replication/common/package-info.java
@@ -34,8 +34,8 @@
* The main classes of this core are :
* <ul>
* <li>
- * <A HREF="ChangeNumber.html"><B>ChangeNumber</B></A>
- * Define Change Numbers used to identify and to order the LDAP changes
+ * <A HREF="CSN.html"><B>CSN</B></A>
+ * Define CSNs used to identify and to order the LDAP changes
* </li>
* <li>
* <A HREF="ServerState.html"><B>ServerState</B></A>
diff --git a/opends/src/server/org/opends/server/replication/plugin/FakeOperationComparator.java b/opends/src/server/org/opends/server/replication/plugin/FakeOperationComparator.java
index 4fac72e..a900ce6 100644
--- a/opends/src/server/org/opends/server/replication/plugin/FakeOperationComparator.java
+++ b/opends/src/server/org/opends/server/replication/plugin/FakeOperationComparator.java
@@ -31,7 +31,7 @@
/**
* This Class implements a Comparator that can be used to build TreeSet
- * containing FakeOperations sorted by the ChangeNumber order.
+ * containing FakeOperations sorted by the CSN order.
*/
public class FakeOperationComparator implements Comparator<FakeOperation>
{
diff --git a/opends/src/server/org/opends/server/replication/plugin/MultimasterReplication.java b/opends/src/server/org/opends/server/replication/plugin/MultimasterReplication.java
index 65f7e84..158ca25 100644
--- a/opends/src/server/org/opends/server/replication/plugin/MultimasterReplication.java
+++ b/opends/src/server/org/opends/server/replication/plugin/MultimasterReplication.java
@@ -27,12 +27,6 @@
*/
package org.opends.server.replication.plugin;
-import static org.opends.messages.ReplicationMessages.*;
-import static org.opends.server.loggers.ErrorLogger.*;
-import static org.opends.server.replication.plugin.
-ReplicationRepairRequestControl.*;
-import static org.opends.server.util.StaticUtils.*;
-
import java.util.*;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ConcurrentHashMap;
@@ -50,6 +44,12 @@
import org.opends.server.types.*;
import org.opends.server.types.operation.*;
+import static org.opends.messages.ReplicationMessages.*;
+import static org.opends.server.loggers.ErrorLogger.*;
+import static org.opends.server.replication.plugin.
+ReplicationRepairRequestControl.*;
+import static org.opends.server.util.StaticUtils.*;
+
/**
* This class is used to load the Replication code inside the JVM
* and to trigger initialization of the replication.
@@ -119,14 +119,14 @@
return null;
/*
- * Check if the provided operation is a repair operation and set
- * the synchronization flags if necessary.
- * The repair operations are tagged as synchronization operations
- * so that the core server let the operation modify the entryuuid
- * and ds-sync-hist attributes.
- * They are also tagged as dontSynchronize so that the replication
- * code running later do not generate ChangeNumber, solve conflicts
- * and forward the operation to the replication server.
+ * Check if the provided operation is a repair operation and set the
+ * synchronization flags if necessary.
+ * The repair operations are tagged as synchronization operations so
+ * that the core server let the operation modify the entryuuid and
+ * ds-sync-hist attributes.
+ * They are also tagged as dontSynchronize so that the replication code
+ * running later do not generate CSN, solve conflicts and forward the
+ * operation to the replication server.
*/
for (Control c : op.getRequestControls())
{
@@ -135,10 +135,9 @@
op.setSynchronizationOperation(true);
op.setDontSynchronize(true);
/*
- remove this control from the list of controls since
- it has now been processed and the local backend will
- fail if it finds a control that it does not know about and
- that is marked as critical.
+ remove this control from the list of controls since it has now been
+ processed and the local backend will fail if it finds a control that
+ it does not know about and that is marked as critical.
*/
List<Control> controls = op.getRequestControls();
controls.remove(c);
@@ -175,19 +174,18 @@
ReplicationDomainCfg configuration)
throws ConfigException
{
- LDAPReplicationDomain domain = null;
try
{
- domain = new LDAPReplicationDomain(configuration, updateToReplayQueue);
+ LDAPReplicationDomain domain =
+ new LDAPReplicationDomain(configuration, updateToReplayQueue);
if (domains.size() == 0)
{
- /*
- * Create the threads that will process incoming update messages
- */
+ // Create the threads that will process incoming update messages
createReplayThreads();
}
domains.put(domain.getBaseDN(), domain);
+ return domain;
}
catch (ConfigException e)
{
@@ -195,7 +193,7 @@
configuration.dn().toString(), e.getLocalizedMessage()
+ " " + stackTraceToSingleLineString(e)));
}
- return domain;
+ return null;
}
/**
@@ -564,7 +562,7 @@
if (domain == null)
return new SynchronizationProviderResult.ContinueProcessing();
- // For LOCAL op only, generate ChangeNumber and attach Context
+ // For LOCAL op only, generate CSN and attach Context
if (!addOperation.isSynchronizationOperation())
domain.doPreOperation(addOperation);
diff --git a/opends/src/server/org/opends/server/replication/plugin/PendingChange.java b/opends/src/server/org/opends/server/replication/plugin/PendingChange.java
index b6e3e37..b261419 100644
--- a/opends/src/server/org/opends/server/replication/plugin/PendingChange.java
+++ b/opends/src/server/org/opends/server/replication/plugin/PendingChange.java
@@ -40,7 +40,7 @@
*/
public class PendingChange implements Comparable<PendingChange>
{
- private CSN changeNumber;
+ private CSN csn;
private boolean committed;
private LDAPUpdateMsg msg;
private PluginOperation op;
@@ -49,15 +49,13 @@
/**
* Construct a new PendingChange.
- * @param changeNumber the ChangeNumber of use
+ * @param csn the CSN of use
* @param op the operation to use
* @param msg the message to use (can be null for local operations)
*/
- public PendingChange(CSN changeNumber,
- PluginOperation op,
- LDAPUpdateMsg msg)
+ public PendingChange(CSN csn, PluginOperation op, LDAPUpdateMsg msg)
{
- this.changeNumber = changeNumber;
+ this.csn = csn;
this.committed = false;
this.op = op;
this.msg = msg;
@@ -82,12 +80,12 @@
}
/**
- * Get the ChangeNumber associated to this PendingChange.
- * @return the ChangeNumber
+ * Get the CSN associated to this PendingChange.
+ * @return the CSN
*/
public CSN getCSN()
{
- return changeNumber;
+ return csn;
}
/**
@@ -167,16 +165,15 @@
synchronized (this)
{
if (targetDN != null)
- return targetDN;
- else
{
- try
- {
- targetDN = DN.decode(msg.getDn());
- }
- catch (DirectoryException e)
- {
- }
+ return targetDN;
+ }
+ try
+ {
+ targetDN = DN.decode(msg.getDn());
+ }
+ catch (DirectoryException e)
+ {
}
return targetDN;
}
@@ -188,6 +185,6 @@
@Override
public int compareTo(PendingChange o)
{
- return this.getCSN().compareTo(o.getCSN());
+ return getCSN().compareTo(o.getCSN());
}
}
diff --git a/opends/src/server/org/opends/server/replication/server/MessageHandler.java b/opends/src/server/org/opends/server/replication/server/MessageHandler.java
index f47769c..c1aa9e0 100644
--- a/opends/src/server/org/opends/server/replication/server/MessageHandler.java
+++ b/opends/src/server/org/opends/server/replication/server/MessageHandler.java
@@ -428,9 +428,9 @@
}
/**
- * Get the older Change Number for that server.
+ * Get the older CSN for that server.
* Returns null when the queue is empty.
- * @return The older change number.
+ * @return The older CSN.
*/
public CSN getOlderUpdateCSN()
{
@@ -461,14 +461,14 @@
the lateQueue when it will send the next update but we are not yet
there. So let's take the last change not sent directly from the db.
*/
- result = findOldestChangeNumberFromReplicaDBs();
+ result = findOldestCSNFromReplicaDBs();
}
}
}
return result;
}
- private CSN findOldestChangeNumberFromReplicaDBs()
+ private CSN findOldestCSNFromReplicaDBs()
{
SortedSet<ReplicaDBCursor> sortedCursors = null;
try
diff --git a/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandler.java b/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandler.java
index 31ce2d8..e240a3e 100644
--- a/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandler.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandler.java
@@ -549,7 +549,7 @@
}
catch(Exception e)
{
- debugException("getChangeNumber", draftCN, e);
+ debugException("getCSN", draftCN, e);
return null;
}
finally
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/controls/ExternalChangelogControlTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/controls/ExternalChangelogControlTest.java
index dfbad33..4f554cb 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/controls/ExternalChangelogControlTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/controls/ExternalChangelogControlTest.java
@@ -26,11 +26,6 @@
*/
package org.opends.server.controls;
-import static org.opends.server.util.ServerConstants.OID_ECL_COOKIE_EXCHANGE_CONTROL;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
import org.opends.server.protocols.asn1.ASN1;
import org.opends.server.protocols.asn1.ASN1Writer;
import org.opends.server.protocols.ldap.LDAPControl;
@@ -40,11 +35,11 @@
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
-/**
- * Test ChangeNumber and ChangeNumberGenerator
- */
-public class ExternalChangelogControlTest
- extends ControlsTestCase
+import static org.opends.server.util.ServerConstants.*;
+import static org.testng.Assert.*;
+
+@SuppressWarnings("javadoc")
+public class ExternalChangelogControlTest extends ControlsTestCase
{
/**
@@ -53,7 +48,6 @@
@DataProvider(name = "eclRequestControl")
public Object[][] createECLRequestControlTest()
{
-
return new Object[][]
{
{true, "" },
@@ -73,7 +67,7 @@
{
// Test contructor
MultiDomainServerState mdss = new MultiDomainServerState(value);
- ExternalChangelogRequestControl eclrc
+ ExternalChangelogRequestControl eclrc
= new ExternalChangelogRequestControl(critical, mdss);
assertNotNull(eclrc);
assertEquals(critical, eclrc.isCritical());
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/controls/PersistentSearchControlTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/controls/PersistentSearchControlTest.java
index 11e7374..d618083 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/controls/PersistentSearchControlTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/controls/PersistentSearchControlTest.java
@@ -26,64 +26,60 @@
*/
package org.opends.server.controls;
-import java.util.ArrayList;
-import static org.opends.server.util.ServerConstants.*;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
+
import org.opends.messages.Message;
import org.opends.server.TestCaseUtils;
import org.opends.server.core.ModifyOperation;
-
-import org.testng.annotations.DataProvider;
-import org.testng.annotations.Test;
-
-import static org.testng.Assert.*;
-
-import org.opends.server.types.*;
import org.opends.server.protocols.asn1.ASN1;
import org.opends.server.protocols.asn1.ASN1Writer;
import org.opends.server.protocols.internal.InternalClientConnection;
import org.opends.server.protocols.internal.InternalSearchOperation;
import org.opends.server.protocols.ldap.LDAPAttribute;
-import org.opends.server.protocols.ldap.LDAPReader;
import org.opends.server.protocols.ldap.LDAPControl;
import org.opends.server.protocols.ldap.LDAPModification;
+import org.opends.server.protocols.ldap.LDAPReader;
import org.opends.server.tools.LDAPSearch;
+import org.opends.server.types.*;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
-/**
- * Test ChangeNumber and ChangeNumberGenerator
- */
-public class PersistentSearchControlTest
- extends ControlsTestCase
+import static org.assertj.core.api.Assertions.*;
+import static org.opends.server.controls.PersistentSearchChangeType.*;
+import static org.opends.server.util.ServerConstants.*;
+import static org.testng.Assert.*;
+
+@SuppressWarnings("javadoc")
+public class PersistentSearchControlTest extends ControlsTestCase
{
+ private static final String CANNOT_DECODE_CHANGE_NOTIF_CONTROL_NO_VALUE =
+ "Cannot decode the provided entry change notification control because it "
+ + "does not have a value";
+
+ private static final String CANNOT_DECODE_PERSISTENT_SEARCH_CONTROL_NO_VALUE =
+ "Cannot decode the provided persistent search control because it does not have a value";
+
/**
* Create correct values
*/
@DataProvider(name = "persistentSearchChangeTypeData")
public Object[][] createPersistentSearchChangeTypeData()
{
-
- HashMap<Integer, String> values = new HashMap<Integer, String>();
+ Map<Integer, String> values = new HashMap<Integer, String>();
values.put(1, "add");
values.put(2, "delete");
values.put(4, "modify");
values.put(8, "modDN");
- return new Object[][]
- {
- { values } };
+ return new Object[][] { { values } };
}
/**
* Test if int value are ok
*/
@Test(dataProvider = "persistentSearchChangeTypeData")
- public void checkIntValueTest(
- HashMap<Integer, String> expectedValues) throws Exception
+ public void checkIntValueTest(Map<Integer, String> expectedValues)
+ throws Exception
{
for (Integer i : expectedValues.keySet())
{
@@ -98,13 +94,13 @@
* Test If we have only the required values
*/
@Test(dataProvider = "persistentSearchChangeTypeData")
- public void checkRequiredValuesTest(
- HashMap<Integer, String> exceptedValues) throws Exception
+ public void checkRequiredValuesTest(Map<Integer, String> exceptedValues)
+ throws Exception
{
// Retrieve the values
PersistentSearchChangeType[] vals = PersistentSearchChangeType.values();
- // Check if we have the correct munber
+ // Check if we have the correct number
assertEquals(vals.length, exceptedValues.size());
// Check if we have the correct int value
@@ -118,8 +114,8 @@
* Test invalid int values
*/
@Test(dataProvider = "persistentSearchChangeTypeData")
- public void checkInvalidIntTest(
- HashMap<Integer, String> exceptedValues) throws Exception
+ public void checkInvalidIntTest(Map<Integer, String> exceptedValues)
+ throws Exception
{
Set<Integer> keys = exceptedValues.keySet() ;
for (int i=-10 ; i< 10 ; i++)
@@ -128,11 +124,13 @@
try
{
PersistentSearchChangeType.valueOf(i);
- assertTrue(false,"the int '" + i + "' is not a set of type - exception expected");
+ fail();
}
catch (LDAPException e)
{
- assertTrue(true,"the int '" + i + "' is not a set of type - exception expected");
+ assertThat(e.getMessage()).contains(
+ "The provided integer value " + i
+ + " does not correspond to any persistent search change type");
}
}
}
@@ -141,13 +139,13 @@
* Test int to type
*/
@Test(dataProvider = "persistentSearchChangeTypeData")
- public void checkIntToTypeTest(
- HashMap<Integer, String> exceptedValues) throws Exception
+ public void checkIntToTypeTest(Map<Integer, String> exceptedValues)
+ throws Exception
{
Set<Integer> keys = exceptedValues.keySet() ;
Set<PersistentSearchChangeType> returnTypes;
- HashSet<PersistentSearchChangeType> expectedTypes =
+ Set<PersistentSearchChangeType> expectedTypes =
new HashSet<PersistentSearchChangeType>(4);
for (int i = 1; i <= 15; i++)
@@ -168,27 +166,32 @@
}
}
- // We should have and exception
+ // We should have an exception
try
{
PersistentSearchChangeType.intToTypes(0);
- assertTrue(false,"the int '" + 0 + "' is not a set of type - exception expected");
+ fail();
}
- catch (LDAPException e)
+ catch (LDAPException expected)
{
- assertTrue(true,"the int is not a set of type - exception expected");
+ assertEquals(
+ expected.getMessage(),
+ "The provided integer value indicated that there were no persistent search change types, which is not allowed");
}
- // We should have and exception
+ // We should have an exception
+ int i = 16;
try
{
- int i = 16 ;
PersistentSearchChangeType.intToTypes(i);
- assertTrue(false,"the int '" + i + "' is not a set of type - exception expected");
+ fail();
}
- catch (LDAPException e)
+ catch (LDAPException expected)
{
- assertTrue(true,"the int is not a set of type - exception expected");
+ assertEquals(
+ expected.getMessage(),
+ "The provided integer value " + i
+ + " was outside the range of acceptable values for an encoded change type set");
}
}
@@ -196,8 +199,8 @@
* Test type to int
*/
@Test(dataProvider = "persistentSearchChangeTypeData", dependsOnMethods= {"checkIntToTypeTest"})
- public void checkTypesToIntTest(
- HashMap<Integer, String> exceptedValues) throws Exception
+ public void checkTypesToIntTest(Map<Integer, String> exceptedValues)
+ throws Exception
{
Set<PersistentSearchChangeType> returnTypes;
for (int i = 1; i <= 15; i++)
@@ -209,8 +212,8 @@
}
@Test(dataProvider = "persistentSearchChangeTypeData", dependsOnMethods= {"checkIntToTypeTest"})
- public void checkChangeTypesToStringTest(
- HashMap<Integer, String> exceptedValues) throws Exception
+ public void checkChangeTypesToStringTest(Map<Integer, String> exceptedValues)
+ throws Exception
{
Set<PersistentSearchChangeType> returnTypes;
for (int i = 1; i <= 15; i++)
@@ -254,7 +257,7 @@
boolean isCritical, boolean changesOnly, boolean returnECs)
throws Exception
{
- // Test contructor
+ // Test constructor
// CheclPersistentSearchControlTest(Set<PersistentSearchChangeType>
// changeTypes,
// boolean changesOnly, boolean returnECs
@@ -271,7 +274,7 @@
assertEquals(OID_PERSISTENT_SEARCH, psc.getOID());
}
- // Test contructor
+ // Test constructor
// CString oid, boolean isCritical,
// Set<PersistentSearchChangeType> changeTypes,
// boolean changesOnly, boolean returnECs
@@ -309,10 +312,12 @@
assertEquals(returnTypes.size(), psc.getChangeTypes().size());
// Check the toString
- String toString = "PersistentSearchControl(changeTypes=\"" +
- PersistentSearchChangeType.changeTypesToString(psc.getChangeTypes()) +
- "\",changesOnly=" + psc.getChangesOnly() +
- ",returnECs=" +psc.getReturnECs() +")" ;
+ String changeTypes =
+ PersistentSearchChangeType.changeTypesToString(psc.getChangeTypes());
+ String toString =
+ "PersistentSearchControl(changeTypes=\"" + changeTypes
+ + "\",changesOnly=" + psc.getChangesOnly() + ",returnECs="
+ + psc.getReturnECs() + ")";
assertEquals(psc.toString(), toString);
@@ -321,12 +326,12 @@
{
control = new LDAPControl(OID_PERSISTENT_SEARCH, isCritical);
psc = PersistentSearchControl.DECODER.decode(control.isCritical(), control.getValue());
- assertTrue(false,"the control should have a value");
+ fail();
}
- catch (DirectoryException e)
+ catch (DirectoryException expected)
{
- // normal case
- assertTrue(true,"the control should have a value");
+ assertEquals(expected.getMessage(),
+ CANNOT_DECODE_PERSISTENT_SEARCH_CONTROL_NO_VALUE);
}
// check invalid value for the control
@@ -335,14 +340,13 @@
control = new LDAPControl(OID_PERSISTENT_SEARCH, isCritical,
ByteString.valueOf("invalid value"));
psc = PersistentSearchControl.DECODER.decode(control.isCritical(), control.getValue());
- assertTrue(false, "the control should have a value");
+ fail();
}
- catch (DirectoryException e)
+ catch (DirectoryException expected)
{
- // normal case
- assertTrue(true, "the control should have a value");
+ assertThat(expected.getMessage()).contains(
+ "Cannot decode the provided persistent search control");
}
-
}
}
@@ -368,7 +372,7 @@
boolean isCritical, long changeNumber, String dnString)
throws Exception
{
- // Test contructor EntryChangeNotificationControl
+ // Test constructor EntryChangeNotificationControl
// (PersistentSearchChangeType changeType,long changeNumber)
PersistentSearchChangeType[] types = PersistentSearchChangeType.values();
EntryChangeNotificationControl ecnc = null ;
@@ -402,20 +406,11 @@
}
catch (DirectoryException e)
{
- if (type.compareTo(PersistentSearchChangeType.MODIFY_DN) == 0)
- {
- assertTrue(true,"could decode a control with previousDN=null " +
- "and type=modDN");
- }
- else
- {
- assertTrue(false,"could decode a control with previousDN=null " +
- "and type=modDN");
- }
+ fail();
}
}
- // Test contructor EntryChangeNotificationControl
+ // Test constructor EntryChangeNotificationControl
// (PersistentSearchChangeType changeType, DN previousDN, long
// changeNumber)
DN dn = DN.decode(dnString);
@@ -446,21 +441,14 @@
}
catch (DirectoryException e)
{
- if (type.compareTo(PersistentSearchChangeType.MODIFY_DN) == 0)
- {
- assertTrue(false,"couldn't decode a control with previousDN " +
- "not null and type=modDN");
- }
- else
- {
- assertTrue(true,"couldn't decode a control with previousDN " +
- "not null and type=modDN");
- }
+ assertFalse(type.compareTo(MODIFY_DN) == 0,
+ "couldn't decode a control with previousDN "
+ + "not null and type=modDN");
}
}
- // Test contructor EntryChangeNotificationControl(boolean
+ // Test constructor EntryChangeNotificationControl(boolean
// isCritical, PersistentSearchChangeType changeType,
// DN previousDN, long changeNumber)
for (PersistentSearchChangeType type : types)
@@ -491,16 +479,9 @@
}
catch (DirectoryException e)
{
- if (type.compareTo(PersistentSearchChangeType.MODIFY_DN) == 0)
- {
- assertTrue(false,"couldn't decode a control with previousDN " +
- "not null and type=modDN");
- }
- else
- {
- assertTrue(true,"couldn't decode a control with previousDN " +
- "not null and type=modDN");
- }
+ assertFalse(type.compareTo(PersistentSearchChangeType.MODIFY_DN) == 0,
+ "couldn't decode a control with previousDN "
+ + "not null and type=modDN");
}
}
@@ -510,24 +491,23 @@
LDAPControl control =
new LDAPControl(OID_ENTRY_CHANGE_NOTIFICATION, isCritical);
newEcnc = EntryChangeNotificationControl.DECODER.decode(control.isCritical(), control.getValue());
- assertTrue(false,"couldn't decode a control with null");
+ fail();
}
- catch (DirectoryException e)
+ catch (DirectoryException expected)
{
- assertTrue(true,"couldn't decode a control with null");
+ assertEquals(expected.getMessage(),
+ CANNOT_DECODE_CHANGE_NOTIF_CONTROL_NO_VALUE);
}
}
private void checkEntryChangeNotificationControlToString(EntryChangeNotificationControl ecnc)
{
- String toString ="EntryChangeNotificationControl(changeType=";
- toString = toString + ecnc.getChangeType();
-
+ String toString =
+ "EntryChangeNotificationControl(changeType=" + ecnc.getChangeType();
if (ecnc.getPreviousDN() != null)
{
toString = toString + ",previousDN=\"" + ecnc.getPreviousDN() + "\"" ;
}
-
if (ecnc.getChangeNumber() > 0)
{
toString = toString + ",changeNumber=" + ecnc.getChangeNumber() ;
@@ -560,16 +540,12 @@
assertEquals(modifyOperation.getResultCode(), ResultCode.SUCCESS);
//Create a persistent search request.
- LinkedHashSet<String> attributes = new LinkedHashSet<String>();
+ Set<String> attributes = new LinkedHashSet<String>();
attributes.add("cn");
List<Control> controls = new LinkedList<Control>();
// Creates psearch control
- HashSet<PersistentSearchChangeType> changeTypes =
- new HashSet<PersistentSearchChangeType>();
- changeTypes.add(PersistentSearchChangeType.ADD);
- changeTypes.add(PersistentSearchChangeType.DELETE);
- changeTypes.add(PersistentSearchChangeType.MODIFY);
- changeTypes.add(PersistentSearchChangeType.MODIFY_DN);
+ Set<PersistentSearchChangeType> changeTypes =
+ EnumSet.of(ADD, DELETE, MODIFY, MODIFY_DN);
PersistentSearchControl persSearchControl = new PersistentSearchControl(
changeTypes, true, true);
controls.add(persSearchControl);
@@ -579,8 +555,9 @@
0, // Time limit
true, // Types only
"(objectClass=*)", attributes, controls, null);
-
+
Thread t = new Thread(new Runnable() {
+ @Override
public void run() {
try {
search.run();
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/DelayPreOpPlugin.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/DelayPreOpPlugin.java
index 57da85e..231f2c0 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/DelayPreOpPlugin.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/DelayPreOpPlugin.java
@@ -28,25 +28,25 @@
-import java.util.Set;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import java.io.IOException;
+import java.util.Set;
+import org.opends.messages.Message;
import org.opends.server.admin.std.server.PluginCfg;
import org.opends.server.api.plugin.DirectoryServerPlugin;
-import org.opends.server.api.plugin.PluginType;
import org.opends.server.api.plugin.PluginResult;
+import org.opends.server.api.plugin.PluginType;
import org.opends.server.config.ConfigException;
-import org.opends.server.protocols.asn1.ASN1Writer;
-import org.opends.server.protocols.asn1.ASN1Reader;
+import org.opends.server.controls.ControlDecoder;
import org.opends.server.protocols.asn1.ASN1;
-import static org.opends.server.protocols.asn1.ASN1Constants.UNIVERSAL_OCTET_STRING_TYPE;
+import org.opends.server.protocols.asn1.ASN1Reader;
+import org.opends.server.protocols.asn1.ASN1Writer;
import org.opends.server.types.*;
import org.opends.server.types.operation.*;
-import org.opends.server.controls.ControlDecoder;
-import org.opends.messages.Message;
+import static org.opends.server.protocols.asn1.ASN1Constants.*;
/**
* This class defines a very simple pre-operation plugin that sleeps for up to
@@ -80,6 +80,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public DelayRequestControl decode(boolean isCritical, ByteString value)
throws DirectoryException
{
@@ -98,6 +99,7 @@
}
}
+ @Override
public String getOID()
{
return OID_DELAY_REQUEST;
@@ -115,11 +117,13 @@
private long delayDuration;
/**
- * Constructs a new change number control.
+ * Constructs a new control of this class.
*
- * @param isCritical Indicates whether support for this control should be
- * considered a critical part of the server processing.
- * @param delayDuration The requested delay duration.
+ * @param isCritical
+ * Indicates whether support for this control should be considered
+ * a critical part of the server processing.
+ * @param delayDuration
+ * The requested delay duration.
*/
public DelayRequestControl(boolean isCritical, long delayDuration)
{
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/DisconnectClientPlugin.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/DisconnectClientPlugin.java
index 1884c6c..72f6787 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/DisconnectClientPlugin.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/DisconnectClientPlugin.java
@@ -28,20 +28,22 @@
+import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
-import java.io.IOException;
+import org.opends.messages.Message;
import org.opends.server.admin.std.server.PluginCfg;
-import org.opends.server.api.plugin.*;
+import org.opends.server.api.plugin.DirectoryServerPlugin;
+import org.opends.server.api.plugin.PluginResult;
+import org.opends.server.api.plugin.PluginType;
import org.opends.server.config.ConfigException;
+import org.opends.server.controls.ControlDecoder;
+import org.opends.server.loggers.ErrorLogger;
import org.opends.server.protocols.asn1.ASN1Writer;
import org.opends.server.types.*;
import org.opends.server.types.operation.*;
-import org.opends.server.controls.ControlDecoder;
-import org.opends.server.loggers.ErrorLogger;
-import org.opends.messages.Message;
/**
@@ -84,6 +86,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public DisconnectClientControl decode(boolean isCritical,
ByteString value)
throws DirectoryException
@@ -91,6 +94,7 @@
return new DisconnectClientControl(isCritical, value.toString());
}
+ @Override
public String getOID()
{
return OID_DISCONNECT_REQUEST;
@@ -108,11 +112,13 @@
private String section;
/**
- * Constructs a new change number control.
+ * Constructs a new control of this class.
*
- * @param isCritical Indicates whether support for this control should be
- * considered a critical part of the server processing.
- * @param section The section to use for the disconnect.
+ * @param isCritical
+ * Indicates whether support for this control should be considered
+ * a critical part of the server processing.
+ * @param section
+ * The section to use for the disconnect.
*/
public DisconnectClientControl(boolean isCritical, String section)
{
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/ShortCircuitPlugin.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/ShortCircuitPlugin.java
index 016d9db..c6276e5 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/ShortCircuitPlugin.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/ShortCircuitPlugin.java
@@ -28,30 +28,27 @@
-import java.util.Set;
-import java.util.Map;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.concurrent.ConcurrentHashMap;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
-import org.opends.server.admin.std.server.PluginCfg;
-import org.opends.server.api.plugin.*;
-import org.opends.server.config.ConfigException;
-import org.opends.server.protocols.asn1.ASN1;
-import org.opends.server.protocols.asn1.ASN1Writer;
-import org.opends.server.protocols.asn1.ASN1Reader;
-import org.opends.server.types.ByteString;
-import org.opends.server.types.Control;
-import org.opends.server.types.DirectoryException;
-import org.opends.server.types.ResultCode;
-import org.opends.server.types.OperationType;
-import org.opends.server.types.operation.*;
-import org.opends.server.controls.ControlDecoder;
import org.opends.messages.Message;
+import org.opends.server.admin.std.server.PluginCfg;
+import org.opends.server.api.plugin.DirectoryServerPlugin;
+import org.opends.server.api.plugin.PluginResult;
+import org.opends.server.api.plugin.PluginType;
+import org.opends.server.config.ConfigException;
+import org.opends.server.controls.ControlDecoder;
+import org.opends.server.protocols.asn1.ASN1;
+import org.opends.server.protocols.asn1.ASN1Reader;
+import org.opends.server.protocols.asn1.ASN1Writer;
+import org.opends.server.types.*;
+import org.opends.server.types.operation.*;
-import static org.opends.server.protocols.asn1.ASN1Constants.
- UNIVERSAL_OCTET_STRING_TYPE;
+import static org.opends.server.protocols.asn1.ASN1Constants.*;
/**
@@ -85,6 +82,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public ShortCircuitRequestControl decode(boolean isCritical,
ByteString value)
throws DirectoryException
@@ -108,6 +106,7 @@
}
}
+ @Override
public String getOID()
{
return OID_SHORT_CIRCUIT_REQUEST;
@@ -126,12 +125,15 @@
private String section;
/**
- * Constructs a new change number control.
+ * Constructs a new control of this class.
*
- * @param isCritical Indicates whether support for this control should be
- * considered a critical part of the server processing.
- * @param resultCode The result code to return to the client.
- * @param section The section to use to determine when to short circuit.
+ * @param isCritical
+ * Indicates whether support for this control should be considered
+ * a critical part of the server processing.
+ * @param resultCode
+ * The result code to return to the client.
+ * @param section
+ * The section to use to determine when to short circuit.
*/
public ShortCircuitRequestControl(boolean isCritical, int resultCode,
String section)
@@ -647,7 +649,6 @@
{
ShortCircuitRequestControl control =
operation.getRequestControl(ShortCircuitRequestControl.DECODER);
-
if (control != null && section.equalsIgnoreCase(control.getSection()))
{
return control.resultCode;
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/protocol/SynchronizationMsgTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/protocol/SynchronizationMsgTest.java
index 995659c..b2a52dc 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/protocol/SynchronizationMsgTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/protocol/SynchronizationMsgTest.java
@@ -607,8 +607,8 @@
{
AckMsg msg1, msg2 ;
- // Constructor test (with ChangeNumber)
- // Check that retrieved CN is OK
+ // Constructor test (with CSN)
+ // Check that retrieved CSN is OK
msg1 = new AckMsg(csn);
assertEquals(msg1.getCSN().compareTo(csn), 0);
@@ -666,7 +666,7 @@
CSN csn = new CSN(TimeThread.getTime(), 123, 45);
op.setAttachment(SYNCHROCONTEXT, new DeleteContext(csn, "uniqueid"));
DeleteMsg delmsg = new DeleteMsg(op);
- int draftcn = 21;
+ int draftCN = 21;
String baseDN = "dc=example,dc=com";
@@ -677,10 +677,10 @@
"o=test2:000001210b6f21e904b100000002 000001210b6f21e904b200000002;");
// Constructor test
- ECLUpdateMsg msg1 = new ECLUpdateMsg(delmsg, cookie, baseDN, draftcn);
+ ECLUpdateMsg msg1 = new ECLUpdateMsg(delmsg, cookie, baseDN, draftCN);
assertTrue(msg1.getCookie().equalsTo(cookie));
assertTrue(msg1.getBaseDN().equalsIgnoreCase(baseDN));
- assertEquals(msg1.getDraftChangeNumber(), draftcn);
+ assertEquals(msg1.getDraftChangeNumber(), draftCN);
DeleteMsg delmsg2 = (DeleteMsg)msg1.getUpdateMsg();
assertEquals(delmsg.compareTo(delmsg2), 0);
@@ -691,7 +691,7 @@
assertTrue(msg2.getBaseDN().equalsIgnoreCase(msg1.getBaseDN()));
assertTrue(msg2.getBaseDN().equalsIgnoreCase(baseDN));
assertEquals(msg2.getDraftChangeNumber(), msg1.getDraftChangeNumber());
- assertEquals(msg2.getDraftChangeNumber(), draftcn);
+ assertEquals(msg2.getDraftChangeNumber(), draftCN);
DeleteMsg delmsg1 = (DeleteMsg)msg1.getUpdateMsg();
delmsg2 = (DeleteMsg)msg2.getUpdateMsg();
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DbHandlerTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DbHandlerTest.java
index 32f09af..6c02c78 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DbHandlerTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DbHandlerTest.java
@@ -204,8 +204,8 @@
assertEquals(csn, csns[i]);
}
assertFalse(cursor.next());
- assertNull(cursor.getChange(), "Actual change number="
- + cursor.getChange() + ", Expected null");
+ assertNull(cursor.getChange(), "Actual change=" + cursor.getChange()
+ + ", Expected null");
}
finally
{
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/service/ReplicationDomainTest.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/service/ReplicationDomainTest.java
index 73e3835..9adaa20 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/service/ReplicationDomainTest.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/service/ReplicationDomainTest.java
@@ -55,9 +55,6 @@
@SuppressWarnings("javadoc")
public class ReplicationDomainTest extends ReplicationTestCase
{
- /**
- * Create ChangeNumber Data
- */
@DataProvider(name = "publishAndReceiveData")
public Object[][] createpublishAndReceiveData()
{
--
Gitblit v1.10.0