opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/ProtocolWindowTest.java
@@ -30,17 +30,13 @@ import static org.opends.server.loggers.Error.logError; import static org.testng.Assert.*; import java.net.SocketException; import java.net.SocketTimeoutException; import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; import org.opends.server.TestCaseUtils; import org.opends.server.config.ConfigEntry; import org.opends.server.config.ConfigException; import org.opends.server.core.AddOperation; import org.opends.server.core.DeleteOperation; import org.opends.server.core.DirectoryServer; import org.opends.server.core.ModifyOperation; import org.opends.server.core.Operation; @@ -50,8 +46,6 @@ import org.opends.server.protocols.ldap.LDAPException; import org.opends.server.protocols.ldap.LDAPFilter; import org.opends.server.synchronization.plugin.ChangelogBroker; import org.opends.server.synchronization.plugin.MultimasterSynchronization; import org.opends.server.synchronization.plugin.PersistentServerState; import org.opends.server.synchronization.protocol.AddMsg; import org.opends.server.synchronization.protocol.SynchronizationMessage; import org.opends.server.types.Attribute; @@ -66,7 +60,6 @@ import org.opends.server.types.OperationType; import org.opends.server.types.ResultCode; import org.opends.server.types.SearchScope; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -83,58 +76,9 @@ "Synchronization Stress Test"; /** * The internal connection used for operation */ private InternalClientConnection connection; /** * Created entries that need to be deleted for cleanup */ private ArrayList<Entry> entryList = new ArrayList<Entry>(); /** * The Synchronization config manager entry */ private String synchroStringDN; /** * The synchronization plugin entry */ private String synchroPluginStringDN; private Entry synchroPluginEntry; /** * The Server synchro entry */ private String synchroServerStringDN; private Entry synchroServerEntry; /** * The Change log entry */ private String changeLogStringDN; private Entry changeLogEntry; /** * A "person" entry */ private Entry personEntry; /** * schema check flag */ private boolean schemaCheck; // WORKAROUND FOR BUG #639 - BEGIN - /** * */ MultimasterSynchronization mms; // WORKAROUND FOR BUG #639 - END - protected Entry personEntry; /** * Test the window mechanism by : @@ -153,9 +97,9 @@ "Starting synchronization ProtocolWindowTest : saturateAndRestart" , 1); final DN baseDn = DN.decode("ou=People,dc=example,dc=com"); cleanEntries(); ChangelogBroker broker = openChangelogSession(baseDn, (short) 13); ChangelogBroker broker = openChangelogSession(baseDn, (short) 13, WINDOW_SIZE); try { @@ -176,7 +120,7 @@ tmp.getObjectClasses(), tmp.getUserAttributes(), tmp.getOperationalAttributes()); addOp.run(); entryList.add(personEntry); entryList.addLast(personEntry.getDN()); assertTrue(DirectoryServer.entryExists(personEntry.getDN()), "The Add Entry operation failed"); @@ -320,11 +264,12 @@ entry.getUserAttributes(), entry.getOperationalAttributes()); addOp.setInternalOperation(true); addOp.run(); entryList.add(entry); System.out.println("adding " + entry.getDN()); entryList.addLast(entry.getDN()); } // top level synchro provider synchroStringDN = "cn=Synchronization Providers,cn=config"; String synchroStringDN = "cn=Synchronization Providers,cn=config"; // Multimaster Synchro plugin synchroPluginStringDN = "cn=Multimaster Synchronization, " @@ -339,7 +284,7 @@ synchroPluginEntry = TestCaseUtils.entryFromLdifString(synchroPluginLdif); // Change log changeLogStringDN = "cn=Changelog Server, " + synchroPluginStringDN; String changeLogStringDN = "cn=Changelog Server, " + synchroPluginStringDN; String changeLogLdif = "dn: " + changeLogStringDN + "\n" + "objectClass: top\n" + "objectClass: ds-cfg-synchronization-changelog-server-config\n" @@ -350,7 +295,7 @@ changeLogEntry = TestCaseUtils.entryFromLdifString(changeLogLdif); // suffix synchronized synchroServerStringDN = "cn=example, " + synchroPluginStringDN; String synchroServerStringDN = "cn=example, " + synchroPluginStringDN; String synchroServerLdif = "dn: " + synchroServerStringDN + "\n" + "objectClass: top\n" + "objectClass: ds-cfg-synchronization-provider-config\n" @@ -382,47 +327,6 @@ } /** * Clean up the environment. return null; * * @throws Exception * If the environment could not be set up. */ @AfterClass public void classCleanUp() throws Exception { DirectoryServer.setCheckSchema(schemaCheck); // WORKAROUND FOR BUG #639 - BEGIN - DirectoryServer.deregisterSynchronizationProvider(mms); mms.finalizeSynchronizationProvider(); // WORKAROUND FOR BUG #639 - END - cleanEntries(); } /** * suppress all the entries created by the tests in this class */ private void cleanEntries() { DeleteOperation op; // Delete entries Entry entries[] = entryList.toArray(new Entry[0]); for (int i = entries.length - 1; i != 0; i--) { try { op = new DeleteOperation(connection, InternalClientConnection .nextOperationID(), InternalClientConnection.nextMessageID(), null, entries[i].getDN()); op.run(); } catch (Exception e) { } } } /** * @return */ private List<Modification> generatemods(String attrName, String attrValue) @@ -438,81 +342,6 @@ return mods; } /** * Open a changelog session to the local Changelog server. * */ private ChangelogBroker openChangelogSession(final DN baseDn, short serverId) throws Exception, SocketException { PersistentServerState state = new PersistentServerState(baseDn); state.loadState(); ChangelogBroker broker = new ChangelogBroker(state, baseDn, serverId, 0, 0, 0, 0, WINDOW_SIZE); ArrayList<String> servers = new ArrayList<String>(1); servers.add("localhost:8989"); broker.start(servers); broker.setSoTimeout(5000); /* * loop receiving update until there is nothing left * to make sure that message from previous tests have been consumed. */ try { while (true) { broker.receive(); } } catch (Exception e) { } return broker; } /** * Configure the Synchronization for this test. */ private void configureSynchronization() throws Exception { // // Add the Multimaster synchronization plugin DirectoryServer.getConfigHandler().addEntry(synchroPluginEntry, null); entryList.add(synchroPluginEntry); assertNotNull(DirectoryServer.getConfigEntry(DN .decode(synchroPluginStringDN)), "Unable to add the Multimaster synchronization plugin"); // WORKAROUND FOR BUG #639 - BEGIN - DN dn = DN.decode(synchroPluginStringDN); ConfigEntry mmsConfigEntry = DirectoryServer.getConfigEntry(dn); mms = new MultimasterSynchronization(); try { mms.initializeSynchronizationProvider(mmsConfigEntry); } catch (ConfigException e) { assertTrue(false, "Unable to initialize the Multimaster synchronization plugin"); } DirectoryServer.registerSynchronizationProvider(mms); // WORKAROUND FOR BUG #639 - END - // // Add the changelog server DirectoryServer.getConfigHandler().addEntry(changeLogEntry, null); assertNotNull(DirectoryServer.getConfigEntry(changeLogEntry.getDN()), "Unable to add the changeLog server"); entryList.add(changeLogEntry); // // We also have a replicated suffix (synchronization domain) DirectoryServer.getConfigHandler().addEntry(synchroServerEntry, null); assertNotNull(DirectoryServer.getConfigEntry(synchroServerEntry.getDN()), "Unable to add the syncrhonized server"); entryList.add(synchroServerEntry); } private void processModify(int count) { while (count>0) opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/StressTest.java
@@ -29,11 +29,9 @@ import static org.opends.server.loggers.Error.logError; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; import static org.testng.Assert.fail; import java.net.SocketException; import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.LinkedList; @@ -44,14 +42,11 @@ import org.opends.server.config.ConfigEntry; import org.opends.server.config.ConfigException; import org.opends.server.core.AddOperation; import org.opends.server.core.DeleteOperation; import org.opends.server.core.DirectoryServer; import org.opends.server.core.ModifyOperation; import org.opends.server.core.Operation; import org.opends.server.protocols.internal.InternalClientConnection; import org.opends.server.synchronization.plugin.ChangelogBroker; import org.opends.server.synchronization.plugin.MultimasterSynchronization; import org.opends.server.synchronization.plugin.PersistentServerState; import org.opends.server.synchronization.protocol.AddMsg; import org.opends.server.synchronization.protocol.SynchronizationMessage; import org.opends.server.types.Attribute; @@ -66,8 +61,6 @@ import org.opends.server.types.ModificationType; import org.opends.server.types.OperationType; import org.opends.server.types.ResultCode; import org.opends.server.util.TimeThread; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -81,58 +74,26 @@ "Synchronization Stress Test"; /** * The internal connection used for operation */ private InternalClientConnection connection; /** * Created entries that need to be deleted for cleanup */ private ArrayList<Entry> entryList = new ArrayList<Entry>(); /** * The Synchronization config manager entry */ private String synchroStringDN; /** * The synchronization plugin entry */ private String synchroPluginStringDN; private Entry synchroPluginEntry; /** * The Server synchro entry */ private String synchroServerStringDN; private Entry synchroServerEntry; /** * The Change log entry */ private String changeLogStringDN; private Entry changeLogEntry; private BrokerReader reader = null; /** * A "person" entry */ private Entry personEntry; /** * schema check flag */ private boolean schemaCheck; // WORKAROUND FOR BUG #639 - BEGIN - /** * */ MultimasterSynchronization mms; private BrokerReader reader = null; protected Entry personEntry; // WORKAROUND FOR BUG #639 - END - @@ -150,7 +111,7 @@ final int TOTAL_MESSAGES = 1000; cleanEntries(); ChangelogBroker broker = openChangelogSession(baseDn, (short) 18); ChangelogBroker broker = openChangelogSession(baseDn, (short) 18, 100); Monitor monitor = new Monitor("stress test monitor"); DirectoryServer.registerMonitorProvider(monitor); @@ -181,7 +142,7 @@ tmp.getObjectClasses(), tmp.getUserAttributes(), tmp.getOperationalAttributes()); addOp.run(); entryList.add(personEntry); entryList.add(personEntry.getDN()); assertTrue(DirectoryServer.entryExists(personEntry.getDN()), "The Add Entry operation failed"); @@ -201,7 +162,6 @@ reader = new BrokerReader(broker); reader.start(); long startTime = TimeThread.getTime(); int count = TOTAL_MESSAGES; // Create a number of writer thread that will loop modifying the entry @@ -221,11 +181,7 @@ thread.join(); } long afterSendTime = TimeThread.getTime(); int rcvCount = reader.getCount(); long afterReceiveTime = TimeThread.getTime(); if (rcvCount != TOTAL_MESSAGES) { @@ -253,13 +209,13 @@ // This test suite depends on having the schema available. TestCaseUtils.startServer(); // Create an internal connection connection = new InternalClientConnection(); // Disable schema check schemaCheck = DirectoryServer.checkSchema(); DirectoryServer.setCheckSchema(false); // Create an internal connection connection = new InternalClientConnection(); // Create backend top level entries String[] topEntries = new String[2]; topEntries[0] = "dn: dc=example,dc=com\n" + "objectClass: top\n" @@ -277,7 +233,7 @@ entry.getUserAttributes(), entry.getOperationalAttributes()); addOp.setInternalOperation(true); addOp.run(); entryList.add(entry); entryList.add(entry.getDN()); } // top level synchro provider @@ -335,47 +291,6 @@ } /** * Clean up the environment. return null; * * @throws Exception * If the environment could not be set up. */ @AfterClass public void classCleanUp() throws Exception { DirectoryServer.setCheckSchema(schemaCheck); // WORKAROUND FOR BUG #639 - BEGIN - DirectoryServer.deregisterSynchronizationProvider(mms); mms.finalizeSynchronizationProvider(); // WORKAROUND FOR BUG #639 - END - cleanEntries(); } /** * suppress all the entries created by the tests in this class */ private void cleanEntries() { DeleteOperation op; // Delete entries Entry entries[] = entryList.toArray(new Entry[0]); for (int i = entries.length - 1; i != 0; i--) { try { op = new DeleteOperation(connection, InternalClientConnection .nextOperationID(), InternalClientConnection.nextMessageID(), null, entries[i].getDN()); op.run(); } catch (Exception e) { } } } /** * @return */ private List<Modification> generatemods(String attrName, String attrValue) @@ -391,68 +306,6 @@ return mods; } /** * Open a changelog session to the local Changelog server. * */ private ChangelogBroker openChangelogSession(final DN baseDn, short serverId) throws Exception, SocketException { PersistentServerState state = new PersistentServerState(baseDn); state.loadState(); ChangelogBroker broker = new ChangelogBroker(state, baseDn, serverId, 0, 0, 0, 0, 100); ArrayList<String> servers = new ArrayList<String>(1); servers.add("localhost:8989"); broker.start(servers); broker.setSoTimeout(5000); return broker; } /** * Configure the Synchronization for this test. */ private void configureSynchronization() throws Exception { // // Add the Multimaster synchronization plugin DirectoryServer.getConfigHandler().addEntry(synchroPluginEntry, null); entryList.add(synchroPluginEntry); assertNotNull(DirectoryServer.getConfigEntry(DN .decode(synchroPluginStringDN)), "Unable to add the Multimaster synchronization plugin"); // WORKAROUND FOR BUG #639 - BEGIN - DN dn = DN.decode(synchroPluginStringDN); ConfigEntry mmsConfigEntry = DirectoryServer.getConfigEntry(dn); mms = new MultimasterSynchronization(); try { mms.initializeSynchronizationProvider(mmsConfigEntry); } catch (ConfigException e) { assertTrue(false, "Unable to initialize the Multimaster synchronization plugin"); } DirectoryServer.registerSynchronizationProvider(mms); // WORKAROUND FOR BUG #639 - END - // // Add the changelog server DirectoryServer.getConfigHandler().addEntry(changeLogEntry, null); assertNotNull(DirectoryServer.getConfigEntry(changeLogEntry.getDN()), "Unable to add the changeLog server"); entryList.add(changeLogEntry); // // We also have a replicated suffix (synchronization domain) DirectoryServer.getConfigHandler().addEntry(synchroServerEntry, null); assertNotNull(DirectoryServer.getConfigEntry(synchroServerEntry.getDN()), "Unable to add the synchronized server"); entryList.add(synchroServerEntry); } private class BrokerWriter extends Thread { int count; opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/SynchronizationTestCase.java
@@ -26,8 +26,27 @@ */ package org.opends.server.synchronization; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; import java.net.SocketException; import java.util.ArrayList; import java.util.LinkedList; import java.util.NoSuchElementException; import org.opends.server.DirectoryServerTestCase; import org.opends.server.TestCaseUtils; import org.opends.server.config.ConfigEntry; import org.opends.server.config.ConfigException; import org.opends.server.core.DeleteOperation; import org.opends.server.core.DirectoryServer; import org.opends.server.protocols.internal.InternalClientConnection; import org.opends.server.synchronization.plugin.ChangelogBroker; import org.opends.server.synchronization.plugin.MultimasterSynchronization; import org.opends.server.synchronization.plugin.PersistentServerState; import org.opends.server.types.DN; import org.opends.server.types.Entry; import org.testng.annotations.AfterClass; import org.testng.annotations.Test; import org.testng.annotations.BeforeClass; @@ -40,6 +59,37 @@ { /** * The internal connection used for operation */ protected InternalClientConnection connection; /** * Created entries that need to be deleted for cleanup */ protected LinkedList<DN> entryList = new LinkedList<DN>(); protected Entry synchroPluginEntry; protected Entry synchroServerEntry; protected Entry changeLogEntry; /** * schema check flag */ protected boolean schemaCheck; /** * */ MultimasterSynchronization mms = null; /** * The synchronization plugin entry */ protected String synchroPluginStringDN; /** * Set up the environment for performing the tests in this suite. * * @throws Exception @@ -50,6 +100,134 @@ { // This test suite depends on having the schema available. TestCaseUtils.startServer(); // Create an internal connection connection = new InternalClientConnection(); } /** * Open a changelog session to the local Changelog server. * @param window_size * */ protected ChangelogBroker openChangelogSession( final DN baseDn, short serverId, int window_size) throws Exception, SocketException { PersistentServerState state = new PersistentServerState(baseDn); state.loadState(); ChangelogBroker broker = new ChangelogBroker( state, baseDn, serverId, 0, 0, 0, 0, window_size); ArrayList<String> servers = new ArrayList<String>(1); servers.add("localhost:8989"); broker.start(servers); broker.setSoTimeout(1000); /* * loop receiving update until there is nothing left * to make sure that message from previous tests have been consumed. */ try { while (true) { broker.receive(); } } catch (Exception e) { } return broker; } /** * suppress all the entries created by the tests in this class */ protected void cleanEntries() { DeleteOperation op; // Delete entries try { while (true) { DN dn = entryList.removeLast(); System.out.println("removing : " + dn); op = new DeleteOperation(connection, InternalClientConnection .nextOperationID(), InternalClientConnection.nextMessageID(), null, dn); op.run(); System.out.println("removed : " + dn + " " + op.getResultCode()); } } catch (NoSuchElementException e) { // done } } /** * Clean up the environment. return null; * * @throws Exception * If the environment could not be set up. */ @AfterClass public void classCleanUp() throws Exception { DirectoryServer.setCheckSchema(schemaCheck); // WORKAROUND FOR BUG #639 - BEGIN - if (mms != null) { DirectoryServer.deregisterSynchronizationProvider(mms); mms.finalizeSynchronizationProvider(); } // WORKAROUND FOR BUG #639 - END - cleanEntries(); } /** * Configure the Synchronization for this test. */ protected void configureSynchronization() throws Exception { // // Add the Multimaster synchronization plugin DirectoryServer.getConfigHandler().addEntry(synchroPluginEntry, null); entryList.add(synchroPluginEntry.getDN()); assertNotNull(DirectoryServer.getConfigEntry(DN .decode(synchroPluginStringDN)), "Unable to add the Multimaster synchronization plugin"); // WORKAROUND FOR BUG #639 - BEGIN - DN dn = DN.decode(synchroPluginStringDN); ConfigEntry mmsConfigEntry = DirectoryServer.getConfigEntry(dn); mms = new MultimasterSynchronization(); try { mms.initializeSynchronizationProvider(mmsConfigEntry); } catch (ConfigException e) { assertTrue(false, "Unable to initialize the Multimaster synchronization plugin"); } DirectoryServer.registerSynchronizationProvider(mms); // WORKAROUND FOR BUG #639 - END - // // Add the changelog server DirectoryServer.getConfigHandler().addEntry(changeLogEntry, null); assertNotNull(DirectoryServer.getConfigEntry(changeLogEntry.getDN()), "Unable to add the changeLog server"); entryList.add(changeLogEntry.getDN()); // // We also have a replicated suffix (synchronization domain) DirectoryServer.getConfigHandler().addEntry(synchroServerEntry, null); assertNotNull(DirectoryServer.getConfigEntry(synchroServerEntry.getDN()), "Unable to add the synchronized server"); entryList.add(synchroServerEntry.getDN()); } } opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/UpdateOperationTest.java
@@ -30,7 +30,6 @@ import static org.opends.server.loggers.Error.logError; import static org.testng.Assert.*; import java.net.SocketException; import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; @@ -42,15 +41,11 @@ import org.opends.server.schema.IntegerSyntax; import org.opends.server.synchronization.common.ChangeNumberGenerator; import org.opends.server.synchronization.plugin.ChangelogBroker; import org.opends.server.synchronization.plugin.MultimasterSynchronization; import org.opends.server.synchronization.plugin.PersistentServerState; import org.opends.server.synchronization.protocol.AddMsg; import org.opends.server.synchronization.protocol.DeleteMsg; import org.opends.server.synchronization.protocol.ModifyDNMsg; import org.opends.server.synchronization.protocol.ModifyMsg; import org.opends.server.synchronization.protocol.SynchronizationMessage; import org.opends.server.config.ConfigEntry; import org.opends.server.config.ConfigException; import org.opends.server.core.AddOperation; import org.opends.server.core.DeleteOperation; import org.opends.server.core.DirectoryServer; @@ -61,7 +56,6 @@ import org.opends.server.protocols.internal.InternalSearchOperation; import org.opends.server.protocols.ldap.LDAPFilter; import org.opends.server.types.*; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; @@ -72,65 +66,12 @@ */ public class UpdateOperationTest extends SynchronizationTestCase { /** * The internal connection used for operation */ private InternalClientConnection connection; /** * Created entries that need to be deleted for cleanup */ private ArrayList<Entry> entryList = new ArrayList<Entry>(); /** * The Synchronization config manager entry */ private String synchroStringDN; /** * The synchronization plugin entry */ private String synchroPluginStringDN; private Entry synchroPluginEntry; /** * The Server synchro entry */ private String synchroServerStringDN; private Entry synchroServerEntry; /** * The Change log entry */ private String changeLogStringDN; private Entry changeLogEntry; /** * A "person" entry */ private Entry personEntry; /** * An entry with a entryUUID */ private Entry personWithUUIDEntry; private Entry personWithSecondUniqueID; /** * schema check flag */ private boolean schemaCheck; // WORKAROUND FOR BUG #639 - BEGIN - /** * */ MultimasterSynchronization mms; private String baseUUID; private String user1dn; @@ -138,8 +79,11 @@ private String user1entrysecondUUID; private String user1entryUUID; // WORKAROUND FOR BUG #639 - END - /** * A "person" entry */ protected Entry personEntry; /** * Set up the environment for performing the tests in this Class. @@ -179,13 +123,13 @@ entry.getUserAttributes(), entry.getOperationalAttributes()); addOp.setInternalOperation(true); addOp.run(); entryList.add(entry); entryList.add(entry.getDN()); } baseUUID = getEntryUUID(DN.decode("ou=People,dc=example,dc=com")); // top level synchro provider synchroStringDN = "cn=Synchronization Providers,cn=config"; String synchroStringDN = "cn=Synchronization Providers,cn=config"; // Multimaster Synchro plugin synchroPluginStringDN = "cn=Multimaster Synchronization, " @@ -200,7 +144,7 @@ synchroPluginEntry = TestCaseUtils.entryFromLdifString(synchroPluginLdif); // Change log changeLogStringDN = "cn=Changelog Server, " + synchroPluginStringDN; String changeLogStringDN = "cn=Changelog Server, " + synchroPluginStringDN; String changeLogLdif = "dn: " + changeLogStringDN + "\n" + "objectClass: top\n" + "objectClass: ds-cfg-synchronization-changelog-server-config\n" @@ -209,7 +153,7 @@ changeLogEntry = TestCaseUtils.entryFromLdifString(changeLogLdif); // suffix synchronized synchroServerStringDN = "cn=example, " + synchroPluginStringDN; String synchroServerStringDN = "cn=example, " + synchroPluginStringDN; String synchroServerLdif = "dn: " + synchroServerStringDN + "\n" + "objectClass: top\n" + "objectClass: ds-cfg-synchronization-provider-config\n" @@ -282,48 +226,6 @@ } /** * Clean up the environment. return null; * * @throws Exception * If the environment could not be set up. */ @AfterClass public void classCleanUp() throws Exception { DirectoryServer.setCheckSchema(schemaCheck); // WORKAROUND FOR BUG #639 - BEGIN - DirectoryServer.deregisterSynchronizationProvider(mms); mms.finalizeSynchronizationProvider(); // WORKAROUND FOR BUG #639 - END - cleanEntries(); } /** * suppress all the entries created by the tests in this class */ private void cleanEntries() { DeleteOperation op; // Delete entries Entry entries[] = entryList.toArray(new Entry[0]); for (int i = entries.length - 1; i != 0; i--) { try { op = new DeleteOperation(connection, InternalClientConnection .nextOperationID(), InternalClientConnection.nextMessageID(), null, entries[i].getDN()); op.run(); } catch (Exception e) { } } } /** * Tests the naming conflict resolution code. * In this test, the local server act both as an LDAP server and * a changelog server that are inter-connected. @@ -346,7 +248,7 @@ * Open a session to the changelog server using the Changelog broker API. * This must use a serverId different from the LDAP server ID */ ChangelogBroker broker = openChangelogSession(baseDn, (short) 2); ChangelogBroker broker = openChangelogSession(baseDn, (short) 2, 100); /* * Create a Change number generator to generate new changenumbers @@ -375,7 +277,7 @@ Entry resultEntry = getEntry(personWithUUIDEntry.getDN(), 10000, true); assertNotNull(resultEntry, "The send ADD synchronization message was not applied"); entryList.add(resultEntry); entryList.add(resultEntry.getDN()); // send a modify operation with the correct unique ID but another DN List<Modification> mods = generatemods("telephonenumber", "01 02 45"); @@ -412,7 +314,7 @@ resultEntry = getEntry(personWithUUIDEntry.getDN(), 10000, true); assertNotNull(resultEntry, "The ADD synchronization message was not applied"); entryList.add(resultEntry); entryList.add(resultEntry.getDN()); // send a modify operation with a wrong unique ID but the same DN mods = generatemods("telephonenumber", "02 01 03 05"); @@ -464,7 +366,7 @@ resultEntry = getEntry(personWithUUIDEntry.getDN(), 10000, true); assertNotNull(resultEntry, "The ADD synchronization message was not applied"); entryList.add(resultEntry); entryList.add(resultEntry.getDN()); // create an entry with the same DN and another unique ID addMsg = new AddMsg(gen.NewChangeNumber(), @@ -658,7 +560,7 @@ cleanEntries(); ChangelogBroker broker = openChangelogSession(baseDn, (short) 27); ChangelogBroker broker = openChangelogSession(baseDn, (short) 27, 100); try { ChangeNumberGenerator gen = new ChangeNumberGenerator((short) 27, 0); @@ -688,7 +590,7 @@ tmp.getObjectClasses(), tmp.getUserAttributes(), tmp.getOperationalAttributes()); addOp.run(); entryList.add(personEntry); entryList.add(personEntry.getDN()); assertTrue(DirectoryServer.entryExists(personEntry.getDN()), "The Add Entry operation failed"); @@ -787,7 +689,7 @@ Entry resultEntry = getEntry(personWithUUIDEntry.getDN(), 10000, true); assertNotNull(resultEntry, "The send ADD synchronization message was not applied"); entryList.add(resultEntry); entryList.add(resultEntry.getDN()); /* * Test the reception of Modify Msg @@ -858,24 +760,6 @@ } /** * Open a changelog session to the local Changelog server. * */ private ChangelogBroker openChangelogSession(final DN baseDn, short serverId) throws Exception, SocketException { PersistentServerState state = new PersistentServerState(baseDn); state.loadState(); ChangelogBroker broker = new ChangelogBroker(state, baseDn, serverId, 0, 0, 0, 0, 100); ArrayList<String> servers = new ArrayList<String>(1); servers.add("localhost:8989"); broker.start(servers); broker.setSoTimeout(1000); return broker; } /** * Check that the entry with the given dn has the given valueString value * for the given attrTypeStr attribute type. */ @@ -1037,50 +921,6 @@ } /** * Configure the Synchronization for this test. */ private void configureSynchronization() throws Exception { // // Add the Multimaster synchronization plugin DirectoryServer.getConfigHandler().addEntry(synchroPluginEntry, null); entryList.add(synchroPluginEntry); assertNotNull(DirectoryServer.getConfigEntry(DN .decode(synchroPluginStringDN)), "Unable to add the Multimaster synchronization plugin"); // WORKAROUND FOR BUG #639 - BEGIN - DN dn = DN.decode(synchroPluginStringDN); ConfigEntry mmsConfigEntry = DirectoryServer.getConfigEntry(dn); mms = new MultimasterSynchronization(); try { mms.initializeSynchronizationProvider(mmsConfigEntry); } catch (ConfigException e) { assertTrue(false, "Unable to initialize the Multimaster synchronization plugin"); } DirectoryServer.registerSynchronizationProvider(mms); // WORKAROUND FOR BUG #639 - END - // // Add the changelog server DirectoryServer.getConfigHandler().addEntry(changeLogEntry, null); assertNotNull(DirectoryServer.getConfigEntry(changeLogEntry.getDN()), "Unable to add the changeLog server"); entryList.add(changeLogEntry); // // We also have a replicated suffix (synchronization domain) DirectoryServer.getConfigHandler().addEntry(synchroServerEntry, null); assertNotNull(DirectoryServer.getConfigEntry(synchroServerEntry.getDN()), "Unable to add the syncrhonized server"); entryList.add(synchroServerEntry); } /** * Test case for * [Issue 635] NullPointerException when trying to access non existing entry. */ @@ -1116,7 +956,7 @@ final DN baseDn = DN.decode("ou=People,dc=example,dc=com"); Thread.sleep(2000); ChangelogBroker broker = openChangelogSession(baseDn, (short) 11); ChangelogBroker broker = openChangelogSession(baseDn, (short) 11, 100); try { ChangeNumberGenerator gen = new ChangeNumberGenerator((short) 11, 0); @@ -1147,7 +987,7 @@ tmp.getOperationalAttributes()); addOp.run(); assertEquals(addOp.getResultCode(), ResultCode.SUCCESS); entryList.add(tmp); entryList.add(tmp.getDN()); long initialCount = getReplayedUpdatesCount();