From 20396bec93ad0de9b6cefee7c7b1ad628d6ea1ae Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 18 Sep 2013 15:17:14 +0000
Subject: [PATCH] OPENDJ-1116 Introduce abstraction for the changelog DB
---
opendj-sdk/opends/src/server/org/opends/server/replication/common/MultiDomainServerState.java | 32
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/ReplicationTestCase.java | 97 +-
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/StateMachineTest.java | 14
opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNData.java | 9
opendj-sdk/opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java | 190 ++---
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DbHandlerTest.java | 9
opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java | 3
opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandler.java | 18
opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java | 125 ++-
opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationBackend.java | 15
opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServerHandler.java | 14
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java | 385 ++++-------
opendj-sdk/opends/src/server/org/opends/server/replication/server/LightweightServerHandler.java | 3
opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java | 82 +-
opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java | 72 +-
opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServer.java | 73 +-
opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DbHandler.java | 24
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/InitOnLineTest.java | 37
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/service/FakeStressReplicationDomain.java | 3
opendj-sdk/opends/src/server/org/opends/server/replication/server/StatusAnalyzer.java | 4
opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/api/CNIndexRecord.java | 7
opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java | 24
opendj-sdk/opends/src/server/org/opends/server/replication/service/ReplicationBroker.java | 166 ++---
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/AssuredReplicationServerTest.java | 5
opendj-sdk/opends/src/server/org/opends/server/replication/server/ChangelogState.java | 27
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java | 125 +--
opendj-sdk/opends/src/server/org/opends/server/replication/server/DataServerHandler.java | 13
opendj-sdk/opends/src/server/org/opends/server/replication/server/MessageHandler.java | 23
opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/api/ChangelogDB.java | 67 +-
opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/api/ChangeNumberIndexDB.java | 4
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/service/FakeReplicationDomain.java | 15
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/FractionalReplicationTest.java | 10
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/service/ReplicationDomainTest.java | 13
opendj-sdk/opends/src/server/org/opends/server/replication/server/MonitoringPublisher.java | 4
opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java | 43
opendj-sdk/opends/src/server/org/opends/server/replication/service/ReplicationDomain.java | 82 +-
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandlerTest.java | 16
opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationDomainMonitor.java | 13
38 files changed, 844 insertions(+), 1,022 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/common/MultiDomainServerState.java b/opendj-sdk/opends/src/server/org/opends/server/replication/common/MultiDomainServerState.java
index 2bbda8a..f0b1a1e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/common/MultiDomainServerState.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/common/MultiDomainServerState.java
@@ -27,8 +27,6 @@
*/
package org.opends.server.replication.common;
-import static org.opends.messages.ReplicationMessages.*;
-
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
@@ -36,9 +34,12 @@
import org.opends.messages.Category;
import org.opends.messages.Message;
import org.opends.messages.Severity;
+import org.opends.server.types.DN;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.ResultCode;
+import static org.opends.messages.ReplicationMessages.*;
+
/**
* This object is used to store a list of ServerState object, one by replication
* domain. Globally, it is the generalization of ServerState (that applies to
@@ -47,19 +48,19 @@
* MultiDomainServerState is also known as "cookie" and is used with the
* cookie-based changelog.
*/
-public class MultiDomainServerState implements Iterable<String>
+public class MultiDomainServerState implements Iterable<DN>
{
/**
* The list of (domain service id, ServerState).
*/
- private Map<String, ServerState> list;
+ private Map<DN, ServerState> list;
/**
* Creates a new empty object.
*/
public MultiDomainServerState()
{
- list = new TreeMap<String, ServerState>();
+ list = new TreeMap<DN, ServerState>();
}
/**
@@ -96,7 +97,7 @@
*
* @return a boolean indicating if the update was meaningful.
*/
- public boolean update(String baseDN, CSN csn)
+ public boolean update(DN baseDN, CSN csn)
{
if (csn == null)
return false;
@@ -125,9 +126,9 @@
* @param baseDN The provided baseDN.
* @param serverState The provided serverState.
*/
- public void update(String baseDN, ServerState serverState)
+ public void update(DN baseDN, ServerState serverState)
{
- list.put(baseDN,serverState.duplicate());
+ list.put(baseDN, serverState.duplicate());
}
/**
@@ -140,7 +141,7 @@
String res = "";
if ((list != null) && (!list.isEmpty()))
{
- for (String baseDN : list.keySet())
+ for (DN baseDN : list.keySet())
{
ServerState ss = list.get(baseDN);
res += baseDN + ":" + ss + ";";
@@ -173,7 +174,7 @@
* {@inheritDoc}
*/
@Override
- public Iterator<String> iterator()
+ public Iterator<DN> iterator()
{
return list.keySet().iterator();
}
@@ -195,7 +196,7 @@
*/
public boolean cover(MultiDomainServerState covered)
{
- for (String baseDN : covered.list.keySet())
+ for (DN baseDN : covered.list.keySet())
{
ServerState state = list.get(baseDN);
ServerState coveredState = covered.list.get(baseDN);
@@ -215,11 +216,10 @@
* @exception DirectoryException when an error occurs
* @return the split state.
*/
- public static Map<String,ServerState> splitGenStateToServerStates(
- String multidomainserverstate)
- throws DirectoryException
+ public static Map<DN, ServerState> splitGenStateToServerStates(
+ String multidomainserverstate) throws DirectoryException
{
- Map<String, ServerState> startStates = new TreeMap<String, ServerState>();
+ Map<DN, ServerState> startStates = new TreeMap<DN, ServerState>();
if ((multidomainserverstate != null)
&& (multidomainserverstate.length() > 0))
{
@@ -250,7 +250,7 @@
serverStateByDomain.update(fromCSN);
}
}
- startStates.put(domainBaseDN, serverStateByDomain);
+ startStates.put(DN.decode(domainBaseDN), serverStateByDomain);
}
}
catch (DirectoryException de)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java b/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java
index 955c034..0dd16d7 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java
@@ -159,8 +159,8 @@
/**
* The fully-qualified name of this class.
*/
- private static final String CLASS_NAME =
- "org.opends.server.replication.plugin.LDAPReplicationDomain";
+ private static final String CLASS_NAME = LDAPReplicationDomain.class
+ .getName();
/**
* The attribute used to mark conflicting entries.
@@ -209,17 +209,12 @@
*/
private final RemotePendingChanges remotePendingChanges;
- private final int serverId;
-
- private final DN baseDn;
-
- private volatile boolean shutdown = false;
-
private final InternalClientConnection conn =
InternalClientConnection.getRootConnection();
private boolean solveConflictFlag = true;
+ private volatile boolean shutdown = false;
private volatile boolean disabled = false;
private volatile boolean stateSavingDisabled = false;
@@ -371,8 +366,8 @@
{
protected ServerStateFlush()
{
- super("Replica DS(" + serverId
- + ") state checkpointer for domain \"" + baseDn + "\"");
+ super("Replica DS(" + getServerId()
+ + ") state checkpointer for domain \"" + getBaseDN() + "\"");
}
/**
@@ -418,8 +413,8 @@
protected RSUpdater(CSN replServerMaxCSN)
{
- super("Replica DS(" + serverId
- + ") missing change publisher for domain \"" + baseDn + "\"");
+ super("Replica DS(" + getServerId()
+ + ") missing change publisher for domain \"" + getBaseDN() + "\"");
this.startCSN = replServerMaxCSN;
}
@@ -458,7 +453,7 @@
* Log an error for the repair tool
* that will need to re-synchronize the servers.
*/
- message = ERR_CANNOT_RECOVER_CHANGES.get(baseDn.toNormalizedString());
+ message = ERR_CANNOT_RECOVER_CHANGES.get(getBaseDNString());
logError(message);
}
} catch (Exception e)
@@ -470,7 +465,7 @@
* Log an error for the repair tool
* that will need to re-synchronize the servers.
*/
- message = ERR_CANNOT_RECOVER_CHANGES.get(baseDn.toNormalizedString());
+ message = ERR_CANNOT_RECOVER_CHANGES.get(getBaseDNString());
logError(message);
}
finally
@@ -492,15 +487,13 @@
BlockingQueue<UpdateToReplay> updateToReplayQueue)
throws ConfigException
{
- super(configuration.getBaseDN().toNormalizedString(),
+ super(configuration.getBaseDN(),
configuration.getServerId(),
configuration.getInitializationWindowSize());
// Read the configuration parameters.
Set<String> replicationServers = configuration.getReplicationServer();
- this.serverId = configuration.getServerId();
- this.baseDn = configuration.getBaseDN();
int window = configuration.getWindowSize();
/**
* The time in milliseconds between heartbeats from the replication
@@ -519,7 +512,7 @@
readAssuredConfig(configuration, false);
// Get fractional configuration
- fractionalConfig = new FractionalConfig(baseDn);
+ fractionalConfig = new FractionalConfig(getBaseDN());
readFractionalConfig(configuration, false);
setGroupId((byte)configuration.getGroupId());
@@ -529,11 +522,11 @@
solveConflictFlag = isSolveConflict(configuration);
- Backend backend = retrievesBackend(baseDn);
+ Backend backend = retrievesBackend(getBaseDN());
if (backend == null)
{
throw new ConfigException(ERR_SEARCHING_DOMAIN_BACKEND.get(
- baseDn.toNormalizedString()));
+ getBaseDNString()));
}
try
@@ -543,14 +536,15 @@
catch (DirectoryException e)
{
logError(ERR_LOADING_GENERATION_ID.get(
- baseDn.toNormalizedString(), e.getLocalizedMessage()));
+ getBaseDNString(), e.getLocalizedMessage()));
}
/*
* Create a new Persistent Server State that will be used to store
* the last CSN seen from all LDAP servers in the topology.
*/
- state = new PersistentServerState(baseDn, serverId, getServerState());
+ state = new PersistentServerState(getBaseDN(), getServerId(),
+ getServerState());
flushThread = new ServerStateFlush();
/*
@@ -583,7 +577,7 @@
*/
private boolean isSolveConflict(ReplicationDomainCfg cfg)
{
- return !baseDn.equals(DirectoryServer.getSchemaDN())
+ return !getBaseDN().equals(DirectoryServer.getSchemaDN())
&& cfg.isSolveConflicts();
}
@@ -698,7 +692,7 @@
// Should not happen as normally already called without problem in
// isConfigurationChangeAcceptable or isConfigurationAcceptable
// if we come up to this method
- Message message = NOTE_ERR_FRACTIONAL.get(baseDn.toString(),
+ Message message = NOTE_ERR_FRACTIONAL.get(getBaseDNString(),
e.getLocalizedMessage());
logError(message);
return;
@@ -718,7 +712,7 @@
catch (ConfigException e)
{
// Should not happen
- Message message = NOTE_ERR_FRACTIONAL.get(baseDn.toString(),
+ Message message = NOTE_ERR_FRACTIONAL.get(getBaseDNString(),
e.getLocalizedMessage());
logError(message);
return;
@@ -767,7 +761,7 @@
if (debugEnabled())
TRACER.debugInfo(
"Attempt to read the potential fractional config in domain root "
- + "entry " + baseDn);
+ + "entry " + getBaseDN());
LDAPFilter filter;
try
@@ -780,7 +774,7 @@
}
// Search the domain root entry that is used to save the generation id
- ByteString asn1BaseDn = ByteString.valueOf(baseDn.toString());
+ ByteString asn1BaseDn = ByteString.valueOf(getBaseDNString());
Set<String> attributes = new LinkedHashSet<String>(3);
attributes.add(REPLICATION_GENERATION_ID);
attributes.add(REPLICATION_FRACTIONAL_EXCLUDE);
@@ -795,7 +789,7 @@
Message message = ERR_SEARCHING_GENERATION_ID.get(
search.getResultCode().getResultCodeName() + " " +
search.getErrorMessage(),
- baseDn.toString());
+ getBaseDNString());
logError(message);
return false;
}
@@ -846,7 +840,7 @@
}
if (attr.size() > 1)
{
- Message message = ERR_LOADING_GENERATION_ID.get(baseDn.toString(),
+ Message message = ERR_LOADING_GENERATION_ID.get(getBaseDNString(),
"#Values=" + attr.size() + " Must be exactly 1 in entry "
+ resultEntry.toLDIFString());
logError(message);
@@ -1559,7 +1553,7 @@
}
catch(DirectoryException e)
{
- Message message = NOTE_ERR_FRACTIONAL.get(baseDn.toString(),
+ Message message = NOTE_ERR_FRACTIONAL.get(getBaseDNString(),
e.getLocalizedMessage());
logError(message);
return FRACTIONAL_HAS_NO_FRACTIONAL_FILTERED_ATTRIBUTES;
@@ -1638,11 +1632,11 @@
{
case IMPORT_ERROR_MESSAGE_BAD_REMOTE:
msg = NOTE_ERR_FULL_UPDATE_IMPORT_FRACTIONAL_BAD_REMOTE.get(
- baseDn.toString(), Integer.toString(ieContext.getImportSource()));
+ getBaseDNString(), Integer.toString(ieContext.getImportSource()));
break;
case IMPORT_ERROR_MESSAGE_REMOTE_IS_FRACTIONAL:
msg = NOTE_ERR_FULL_UPDATE_IMPORT_FRACTIONAL_REMOTE_IS_FRACTIONAL.get(
- baseDn.toString(), Integer.toString(ieContext.getImportSource()));
+ getBaseDNString(), Integer.toString(ieContext.getImportSource()));
break;
}
ieContext.setException(new DirectoryException(UNWILLING_TO_PERFORM, msg));
@@ -1664,7 +1658,7 @@
if (target == RoutableMsg.ALL_SERVERS && fractionalConfig.isFractional())
{
Message msg = NOTE_ERR_FRACTIONAL_FORBIDDEN_FULL_UPDATE_FRACTIONAL.get(
- baseDn.toString(), Integer.toString(getServerId()));
+ getBaseDNString(), Integer.toString(getServerId()));
throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, msg);
}
@@ -1672,16 +1666,6 @@
}
/**
- * Returns the base DN of this ReplicationDomain.
- *
- * @return The base DN of this ReplicationDomain
- */
- public DN getBaseDN()
- {
- return baseDn;
- }
-
- /**
* Implement the handleConflictResolution phase of the deleteOperation.
*
* @param deleteOperation The deleteOperation.
@@ -1693,7 +1677,7 @@
{
if (!deleteOperation.isSynchronizationOperation() && !brokerIsConnected())
{
- Message msg = ERR_REPLICATION_COULD_NOT_CONNECT.get(baseDn.toString());
+ Message msg = ERR_REPLICATION_COULD_NOT_CONNECT.get(getBaseDNString());
return new SynchronizationProviderResult.StopProcessing(
ResultCode.UNWILLING_TO_PERFORM, msg);
}
@@ -1768,7 +1752,7 @@
{
if (!addOperation.isSynchronizationOperation() && !brokerIsConnected())
{
- Message msg = ERR_REPLICATION_COULD_NOT_CONNECT.get(baseDn.toString());
+ Message msg = ERR_REPLICATION_COULD_NOT_CONNECT.get(getBaseDNString());
return new SynchronizationProviderResult.StopProcessing(
ResultCode.UNWILLING_TO_PERFORM, msg);
}
@@ -1798,7 +1782,7 @@
StringBuilder sb = new StringBuilder();
addOperation.toString(sb);
Message msg = NOTE_ERR_FRACTIONAL_FORBIDDEN_OPERATION.get(
- baseDn.toString(), sb.toString());
+ getBaseDNString(), sb.toString());
return new SynchronizationProviderResult.StopProcessing(
ResultCode.UNWILLING_TO_PERFORM, msg);
}
@@ -1899,7 +1883,7 @@
{
if (!modifyDNOperation.isSynchronizationOperation() && !brokerIsConnected())
{
- Message msg = ERR_REPLICATION_COULD_NOT_CONNECT.get(baseDn.toString());
+ Message msg = ERR_REPLICATION_COULD_NOT_CONNECT.get(getBaseDNString());
return new SynchronizationProviderResult.StopProcessing(
ResultCode.UNWILLING_TO_PERFORM, msg);
}
@@ -1927,7 +1911,7 @@
StringBuilder sb = new StringBuilder();
modifyDNOperation.toString(sb);
Message msg = NOTE_ERR_FRACTIONAL_FORBIDDEN_OPERATION.get(
- baseDn.toString(), sb.toString());
+ getBaseDNString(), sb.toString());
return new SynchronizationProviderResult.StopProcessing(
ResultCode.UNWILLING_TO_PERFORM, msg);
}
@@ -2019,7 +2003,7 @@
{
if (!modifyOperation.isSynchronizationOperation() && !brokerIsConnected())
{
- Message msg = ERR_REPLICATION_COULD_NOT_CONNECT.get(baseDn.toString());
+ Message msg = ERR_REPLICATION_COULD_NOT_CONNECT.get(getBaseDNString());
return new SynchronizationProviderResult.StopProcessing(
ResultCode.UNWILLING_TO_PERFORM, msg);
}
@@ -2062,7 +2046,7 @@
StringBuilder sb = new StringBuilder();
modifyOperation.toString(sb);
Message msg = NOTE_ERR_FRACTIONAL_FORBIDDEN_OPERATION.get(
- baseDn.toString(), sb.toString());
+ getBaseDNString(), sb.toString());
return new SynchronizationProviderResult.StopProcessing(
ResultCode.UNWILLING_TO_PERFORM, msg);
}
@@ -2243,7 +2227,8 @@
// that is replicated, the generation is now lost because the
// DB is empty. We need to save it again the next time we add an entry.
if (op.getOperationType().equals(OperationType.DELETE)
- && ((PostOperationDeleteOperation) op).getEntryDN().equals(baseDn))
+ && ((PostOperationDeleteOperation) op)
+ .getEntryDN().equals(getBaseDN()))
{
generationIdSavedStatus = false;
}
@@ -2302,7 +2287,7 @@
ByteString.valueOf(freedDN.toString()));
InternalSearchOperation searchOp = conn.processSearch(
- ByteString.valueOf(baseDn.toString()),
+ ByteString.valueOf(getBaseDNString()),
SearchScope.WHOLE_SUBTREE,
DereferencePolicy.NEVER_DEREF_ALIASES,
0, 0, false, filter,
@@ -2756,7 +2741,7 @@
{
try
{
- InternalSearchOperation search = conn.processSearch(baseDn,
+ InternalSearchOperation search = conn.processSearch(getBaseDN(),
SearchScope.WHOLE_SUBTREE,
SearchFilter.createFilterFromString("entryuuid="+uuid));
if (search.getResultCode() == ResultCode.SUCCESS)
@@ -3114,8 +3099,7 @@
addConflict(msg);
msg.setDn(generateConflictRDN(entryUUID,
- op.getEntryDN().getRDN().toString()) + ","
- + baseDn);
+ op.getEntryDN().getRDN().toString()) + "," + getBaseDN());
// reset the parent entryUUID so that the check done is the
// handleConflict phase does not fail.
msg.setParentEntryUUID(null);
@@ -3257,8 +3241,8 @@
DirectoryServer.sendAlertNotification(this,
ALERT_TYPE_REPLICATION_UNRESOLVED_CONFLICT, alertMessage);
- ModifyDNOperation newOp =
- renameEntry(dn, generateDeleteConflictDn(entryUUID, dn), baseDn, true);
+ RDN newRDN = generateDeleteConflictDn(entryUUID, dn);
+ ModifyDNOperation newOp = renameEntry(dn, newRDN, getBaseDN(), true);
if (newOp.getResultCode() != ResultCode.SUCCESS)
{
@@ -3449,7 +3433,7 @@
state.clearInMemory();
state.loadState();
- generator.adjust(state.getMaxCSN(serverId));
+ generator.adjust(state.getMaxCSN(getServerId()));
// Retrieves the generation ID associated with the data imported
generationId = loadGenerationId();
@@ -3476,7 +3460,7 @@
* should we stop the modifications ?
*/
logError(ERR_LOADING_GENERATION_ID.get(
- baseDn.toNormalizedString(), e.getLocalizedMessage()));
+ getBaseDNString(), e.getLocalizedMessage()));
return;
}
@@ -3550,7 +3534,7 @@
*/
public ResultCode saveGenerationId(long generationId)
{
- ResultCode result = runSaveGenerationId(baseDn, generationId);
+ ResultCode result = runSaveGenerationId(getBaseDN(), generationId);
if (result != ResultCode.SUCCESS)
{
@@ -3565,8 +3549,7 @@
if (result != ResultCode.SUCCESS)
{
Message message = ERR_UPDATING_GENERATION_ID.get(
- result.getResultCodeName() + " " ,
- baseDn.toString());
+ result.getResultCodeName() + " " , getBaseDNString());
logError(message);
}
}
@@ -3589,7 +3572,7 @@
private long loadGenerationId() throws DirectoryException
{
if (debugEnabled())
- TRACER.debugInfo("Attempt to read generation ID from DB " + baseDn);
+ TRACER.debugInfo("Attempt to read generation ID from DB " + getBaseDN());
/*
* Search the database entry that is used to periodically
@@ -3598,7 +3581,7 @@
final Set<String> attributes = new LinkedHashSet<String>(1);
attributes.add(REPLICATION_GENERATION_ID);
final String filter = "(objectclass=*)";
- InternalSearchOperation search = conn.processSearch(baseDn.toString(),
+ InternalSearchOperation search = conn.processSearch(getBaseDNString(),
SearchScope.BASE_OBJECT,
DereferencePolicy.DEREF_ALWAYS, 0, 0, false,
filter,attributes);
@@ -3621,7 +3604,7 @@
Message message = ERR_SEARCHING_GENERATION_ID.get(
search.getResultCode().getResultCodeName() + " " +
search.getErrorMessage(),
- baseDn.toString());
+ getBaseDNString());
logError(message);
}
}
@@ -3641,9 +3624,8 @@
if (attr.size()>1)
{
Message message = ERR_LOADING_GENERATION_ID.get(
- baseDn.toString(), "#Values=" + attr.size() +
- " Must be exactly 1 in entry " +
- resultEntry.toLDIFString());
+ getBaseDNString(), "#Values=" + attr.size() +
+ " Must be exactly 1 in entry " + resultEntry.toLDIFString());
logError(message);
}
else if (attr.size() == 1)
@@ -3656,7 +3638,7 @@
catch(Exception e)
{
Message message = ERR_LOADING_GENERATION_ID.get(
- baseDn.toString(), e.getLocalizedMessage());
+ getBaseDNString(), e.getLocalizedMessage());
logError(message);
}
}
@@ -3670,15 +3652,15 @@
saveGenerationId(aGenerationId);
if (debugEnabled())
- TRACER.debugInfo("Generation ID created for domain base DN="
- + baseDn + " generationId=" + aGenerationId);
+ TRACER.debugInfo("Generation ID created for domain baseDN="
+ + getBaseDN() + " generationId=" + aGenerationId);
}
else
{
generationIdSavedStatus = true;
if (debugEnabled())
- TRACER.debugInfo("Generation ID successfully read from domain base DN="
- + baseDn + " generationId=" + aGenerationId);
+ TRACER.debugInfo("Generation ID successfully read from domain baseDN="
+ + getBaseDN() + " generationId=" + aGenerationId);
}
return aGenerationId;
}
@@ -3733,7 +3715,7 @@
private long exportBackend(OutputStream output, boolean checksumOutput)
throws DirectoryException
{
- Backend backend = retrievesBackend(this.baseDn);
+ Backend backend = retrievesBackend(getBaseDN());
// Acquire a shared lock for the backend.
try
@@ -3757,7 +3739,7 @@
throw new DirectoryException(ResultCode.OTHER, message, null);
}
- long numberOfEntries = backend.numSubordinates(baseDn, true) + 1;
+ long numberOfEntries = backend.numSubordinates(getBaseDN(), true) + 1;
long entryCount = Math.min(numberOfEntries, 1000);
OutputStream os;
ReplLDIFOutputStream ros = null;
@@ -3781,7 +3763,7 @@
// baseDn branch is the only one included in the export
List<DN> includeBranches = new ArrayList<DN>(1);
- includeBranches.add(this.baseDn);
+ includeBranches.add(getBaseDN());
LDIFExportConfig exportConfig = new LDIFExportConfig(os);
exportConfig.setIncludeBranches(includeBranches);
@@ -3866,12 +3848,12 @@
* Retrieves the backend related to the domain.
*
* @return The backend of that domain.
- * @param baseDn The baseDn to retrieve the backend
+ * @param baseDN The baseDN to retrieve the backend
*/
- protected static Backend retrievesBackend(DN baseDn)
+ protected static Backend retrievesBackend(DN baseDN)
{
// Retrieves the backend related to this domain
- return DirectoryServer.getBackend(baseDn);
+ return DirectoryServer.getBackend(baseDN);
}
/**
@@ -3911,7 +3893,7 @@
{
LDIFImportConfig importConfig = null;
- Backend backend = retrievesBackend(baseDn);
+ Backend backend = retrievesBackend(getBaseDN());
try
{
@@ -3924,10 +3906,9 @@
}
else
{
- importConfig =
- new LDIFImportConfig(input);
+ importConfig = new LDIFImportConfig(input);
List<DN> includeBranches = new ArrayList<DN>();
- includeBranches.add(this.baseDn);
+ includeBranches.add(getBaseDN());
importConfig.setIncludeBranches(includeBranches);
importConfig.setAppendToExistingData(false);
importConfig.setSkipDNValidation(true);
@@ -3968,7 +3949,7 @@
{
importConfig.close();
closeBackendImport(backend); // Re-enable backend
- backend = retrievesBackend(baseDn);
+ backend = retrievesBackend(getBaseDN());
}
loadDataState();
@@ -4076,7 +4057,7 @@
*/
public Backend getBackend()
{
- return retrievesBackend(baseDn);
+ return retrievesBackend(getBaseDN());
}
/*
@@ -4124,9 +4105,9 @@
ReplicationDomainCfg configuration, List<Message> unacceptableReasons)
{
// Check that there is not already a domain with the same DN
- DN dn = configuration.getBaseDN();
+ final DN dn = configuration.getBaseDN();
LDAPReplicationDomain domain = MultimasterReplication.findDomain(dn, null);
- if (domain != null && domain.baseDn.equals(dn))
+ if (domain != null && domain.getBaseDN().equals(dn))
{
Message message = ERR_SYNC_INVALID_DN.get();
unacceptableReasons.add(message);
@@ -4348,7 +4329,7 @@
{
throw new ConfigException(
NOTE_ERR_UNABLE_TO_ENABLE_ECL.get(
- "Replication Domain on" + baseDn,
+ "Replication Domain on" + getBaseDN(),
de.getMessage() + " " + de.getCause().getMessage()), de);
}
}
@@ -4398,7 +4379,7 @@
{
Message message =
NOTE_ERR_UNABLE_TO_ENABLE_ECL.get(
- "Replication Domain on" + baseDn,
+ "Replication Domain on" + getBaseDN(),
de.getMessage() + " " + de.getCause().getMessage());
logError(message);
// and go on
@@ -4412,7 +4393,7 @@
setNewStatus(StatusMachineEvent.TO_BAD_GEN_ID_STATUS_EVENT);
broker.signalStatusChange(status);
Message message = NOTE_FRACTIONAL_BAD_DATA_SET_NEED_RESYNC.get(
- baseDn.toString());
+ getBaseDNString());
logError(message);
return; // Do not send changes to the replication server
}
@@ -4426,7 +4407,7 @@
* Check that the ReplicationServer has seen all our previous
* changes.
*/
- CSN replServerMaxCSN = replicationServerState.getCSN(serverId);
+ CSN replServerMaxCSN = replicationServerState.getCSN(getServerId());
// we don't want to update from here (a DS) an empty RS because
// normally the RS should have been updated by other RSes except for
@@ -4436,7 +4417,7 @@
// and we don't want to update it with our changes that could be huge.
if (replServerMaxCSN != null && replServerMaxCSN.getSeqnum() != 0)
{
- CSN ourMaxCSN = state.getMaxCSN(serverId);
+ CSN ourMaxCSN = state.getMaxCSN(getServerId());
if (ourMaxCSN != null && !ourMaxCSN.olderOrEqual(replServerMaxCSN))
{
pendingChanges.setRecovering(true);
@@ -4446,7 +4427,7 @@
}
} catch (Exception e)
{
- Message message = ERR_PUBLISHING_FAKE_OPS.get(baseDn.toNormalizedString(),
+ Message message = ERR_PUBLISHING_FAKE_OPS.get(getBaseDNString(),
e.getLocalizedMessage() + " " + stackTraceToSingleLineString(e));
logError(message);
}
@@ -4493,11 +4474,12 @@
// So we search by interval of 10 seconds and store the results in the
// replayOperations list so that they are sorted before sending them.
long missingChangesDelta = currentStartCSN.getTime() + 10000;
- CSN endCSN = new CSN(missingChangesDelta, 0xffffffff, serverId);
+ CSN endCSN = new CSN(missingChangesDelta, 0xffffffff, getServerId());
ScanSearchListener listener =
new ScanSearchListener(currentStartCSN, endCSN);
- op = searchForChangedEntries(baseDn, currentStartCSN, endCSN, listener);
+ op = searchForChangedEntries(getBaseDN(), currentStartCSN, endCSN,
+ listener);
// Publish and remove all the changes from the replayOperations list
// that are older than the endCSN.
@@ -4624,7 +4606,7 @@
@Override
public long countEntries() throws DirectoryException
{
- Backend backend = retrievesBackend(baseDn);
+ Backend backend = retrievesBackend(getBaseDN());
if (!backend.supportsLDIFExport())
{
Message message = ERR_INIT_EXPORT_NOT_SUPPORTED.get(
@@ -4633,7 +4615,7 @@
throw new DirectoryException(ResultCode.OTHER, message);
}
- return backend.numSubordinates(baseDn, true) + 1;
+ return backend.numSubordinates(getBaseDN(), true) + 1;
}
/**
@@ -4724,7 +4706,7 @@
try
{
source = Integer.decode(sourceString);
- if (source >= -1 && source != serverId)
+ if (source >= -1 && source != getServerId())
{
// TODO Verifies serverID is in the domain
// We should check here that this is a server implied
@@ -4741,13 +4723,12 @@
if (cause != null)
{
Message message = ERR_INVALID_IMPORT_SOURCE.get(
- baseDn.toNormalizedString(), Integer.toString(serverId),
+ getBaseDNString(), Integer.toString(getServerId()),
Integer.toString(source),"Details:" + cause.getLocalizedMessage());
throw new DirectoryException(resultCode, message, cause);
}
- Message message = ERR_INVALID_IMPORT_SOURCE.get(
- baseDn.toNormalizedString(), Integer.toString(serverId),
- Integer.toString(source),"");
+ Message message = ERR_INVALID_IMPORT_SOURCE.get(getBaseDNString(),
+ Integer.toString(getServerId()), Integer.toString(source), "");
throw new DirectoryException(resultCode, message);
}
@@ -5345,7 +5326,7 @@
long endDate) throws DirectoryException
{
TRACER.debugInfo("[PURGE] purgeConflictsHistorical "
- + "on domain: " + baseDn
+ + "on domain: " + getBaseDN()
+ "endDate:" + new Date(endDate)
+ "lastCSNPurgedFromHist: "
+ lastCSNPurgedFromHist.toStringUI());
@@ -5363,7 +5344,7 @@
}
InternalSearchOperation searchOp = conn.processSearch(
- ByteString.valueOf(baseDn.toString()),
+ ByteString.valueOf(getBaseDNString()),
SearchScope.WHOLE_SUBTREE,
DereferencePolicy.NEVER_DEREF_ALIASES,
0, 0, false, filter,
@@ -5415,4 +5396,5 @@
}
}
}
+
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ChangelogState.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ChangelogState.java
index 18ea636..9ce9082 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ChangelogState.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ChangelogState.java
@@ -31,6 +31,8 @@
import java.util.List;
import java.util.Map;
+import org.opends.server.types.DN;
+
/**
* This is the changelog state stored in the changelogStateDB. For each
* replication domain, it contains:
@@ -45,22 +47,21 @@
public class ChangelogState
{
- private final Map<String, Long> domainToGenerationId =
- new HashMap<String, Long>();
- private final Map<String, List<Integer>> domainToServerIds =
- new HashMap<String, List<Integer>>();
+ private final Map<DN, Long> domainToGenerationId = new HashMap<DN, Long>();
+ private final Map<DN, List<Integer>> domainToServerIds =
+ new HashMap<DN, List<Integer>>();
/**
* Sets the generationId for the supplied replication domain.
*
- * @param baseDn
+ * @param baseDN
* the targeted replication domain baseDN
* @param generationId
* the generation Id to set
*/
- public void setDomainGenerationId(String baseDn, long generationId)
+ public void setDomainGenerationId(DN baseDN, long generationId)
{
- domainToGenerationId.put(baseDn, generationId);
+ domainToGenerationId.put(baseDN, generationId);
}
/**
@@ -68,16 +69,16 @@
*
* @param serverId
* the serverId to add
- * @param baseDn
+ * @param baseDN
* the targeted replication domain baseDN
*/
- public void addServerIdToDomain(int serverId, String baseDn)
+ public void addServerIdToDomain(int serverId, DN baseDN)
{
- List<Integer> serverIds = domainToServerIds.get(baseDn);
+ List<Integer> serverIds = domainToServerIds.get(baseDN);
if (serverIds == null)
{
serverIds = new LinkedList<Integer>();
- domainToServerIds.put(baseDn, serverIds);
+ domainToServerIds.put(baseDN, serverIds);
}
serverIds.add(serverId);
}
@@ -87,7 +88,7 @@
*
* @return a Map of domainBaseDN => generationId
*/
- public Map<String, Long> getDomainToGenerationId()
+ public Map<DN, Long> getDomainToGenerationId()
{
return domainToGenerationId;
}
@@ -97,7 +98,7 @@
*
* @return a Map of domainBaseDN => List<serverId>.
*/
- public Map<String, List<Integer>> getDomainToServerIds()
+ public Map<DN, List<Integer>> getDomainToServerIds()
{
return domainToServerIds;
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/DataServerHandler.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/DataServerHandler.java
index 26db6f2..ffaa1f4 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/DataServerHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/DataServerHandler.java
@@ -136,7 +136,7 @@
if (debugEnabled())
{
TRACER.debugInfo("In RS " + replicationServer.getServerId()
- + ", DS " + getServerId() + " for baseDn " + getBaseDN()
+ + ", DS " + getServerId() + " for baseDN=" + getBaseDN()
+ " has already generation id " + newGenId
+ " so no ChangeStatusMsg sent to him.");
}
@@ -150,7 +150,7 @@
if (debugEnabled())
{
TRACER.debugInfo("In RS " + replicationServer.getServerId()
- + ", closing connection to DS " + getServerId() + " for baseDn "
+ + ", closing connection to DS " + getServerId() + " for baseDN="
+ getBaseDN() + " to force reconnection as new local"
+ " generationId and remote one match and DS is in bad gen id: "
+ newGenId);
@@ -220,7 +220,7 @@
{
TRACER.debugInfo("In RS " + replicationServer.getServerId()
+ " Sending change status " + origin + " to " + getServerId()
- + " for baseDn " + getBaseDN() + ":\n" + csMsg);
+ + " for baseDN=" + getBaseDN() + ":\n" + csMsg);
}
session.publish(csMsg);
@@ -361,7 +361,8 @@
heartbeatInterval = serverStartMsg.getHeartbeatInterval();
// generic stuff
- setBaseDNAndDomain(serverStartMsg.getBaseDn(), true);
+ DN baseDN = DN.decode(serverStartMsg.getBaseDn());
+ setBaseDNAndDomain(baseDN, true);
setInitialServerState(serverStartMsg.getServerState());
setSendWindowSize(serverStartMsg.getWindowSize());
@@ -477,7 +478,7 @@
Message message = INFO_REPLICATION_SERVER_CONNECTION_FROM_DS
.get(getReplicationServerId(), getServerId(),
- replicationServerDomain.getBaseDn(),
+ replicationServerDomain.getBaseDN().toNormalizedString(),
session.getReadableRemoteAddress());
logError(message);
@@ -550,7 +551,7 @@
if (serverId != 0)
{
return "Replica DS(" + serverId + ") for domain \""
- + replicationServerDomain.getBaseDn() + "\"";
+ + replicationServerDomain.getBaseDN() + "\"";
}
return "Unknown server";
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
index 8621480..afaebbf 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java
@@ -391,7 +391,8 @@
super(session, queueSize, replicationServer, rcvWindowSize);
try
{
- setBaseDNAndDomain(ServerConstants.DN_EXTERNAL_CHANGELOG_ROOT, true);
+ DN baseDN = DN.decode(ServerConstants.DN_EXTERNAL_CHANGELOG_ROOT);
+ setBaseDNAndDomain(baseDN, true);
}
catch(DirectoryException de)
{
@@ -665,8 +666,8 @@
Depending on allowUnknownDomains provided flag, a non empty map will
be considered as an error when allowUnknownDomains is false.
*/
- Map<String,ServerState> startStatesFromProvidedCookie =
- new HashMap<String,ServerState>();
+ Map<DN, ServerState> startStatesFromProvidedCookie =
+ new HashMap<DN, ServerState>();
ReplicationServer rs = this.replicationServer;
@@ -691,11 +692,11 @@
continue;
// skip the excluded domains
- if (excludedBaseDNs.contains(rsd.getBaseDn()))
+ if (excludedBaseDNs.contains(rsd.getBaseDN().toNormalizedString()))
{
// this is an excluded domain
if (allowUnknownDomains)
- startStatesFromProvidedCookie.remove(rsd.getBaseDn());
+ startStatesFromProvidedCookie.remove(rsd.getBaseDN());
continue;
}
@@ -713,14 +714,14 @@
if (isPersistent == PERSISTENT_CHANGES_ONLY)
{
newDomainCtxt.startState = rsd.getEligibleState(eligibleCSN);
- startStatesFromProvidedCookie.remove(rsd.getBaseDn());
+ startStatesFromProvidedCookie.remove(rsd.getBaseDN());
}
else
{
// let's take the start state for this domain from the provided
// cookie
newDomainCtxt.startState =
- startStatesFromProvidedCookie.remove(rsd.getBaseDn());
+ startStatesFromProvidedCookie.remove(rsd.getBaseDN());
if (providedCookie == null
|| providedCookie.length() == 0
@@ -742,7 +743,7 @@
// when there is a cookie provided in the request,
if (newDomainCtxt.startState == null)
{
- missingDomains += (rsd.getBaseDn() + ":;");
+ missingDomains += (rsd.getBaseDN() + ":;");
continue;
}
else if (!newDomainCtxt.startState.isEmpty())
@@ -750,8 +751,8 @@
if (hasCookieBeenTrimmedFromDB(rsd, newDomainCtxt.startState))
{
throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM,
- ERR_RESYNC_REQUIRED_TOO_OLD_DOMAIN_IN_PROVIDED_COOKIE
- .get(newDomainCtxt.rsd.getBaseDn()));
+ ERR_RESYNC_REQUIRED_TOO_OLD_DOMAIN_IN_PROVIDED_COOKIE.get(
+ newDomainCtxt.rsd.getBaseDN().toNormalizedString()));
}
}
}
@@ -764,12 +765,12 @@
// Creates an unconnected SH for the domain
MessageHandler mh = new MessageHandler(maxQueueSize, replicationServer);
mh.setInitialServerState(newDomainCtxt.startState);
- mh.setBaseDNAndDomain(rsd.getBaseDn(), false);
+ mh.setBaseDNAndDomain(rsd.getBaseDN(), false);
// register the unconnected into the domain
rsd.registerHandler(mh);
newDomainCtxt.mh = mh;
- previousCookie.update(newDomainCtxt.rsd.getBaseDn(),
+ previousCookie.update(newDomainCtxt.rsd.getBaseDN(),
newDomainCtxt.startState);
// store the new context
@@ -799,7 +800,7 @@
if (!startStatesFromProvidedCookie.isEmpty())
{
if (allowUnknownDomains)
- for (String providedDomain : startStatesFromProvidedCookie.keySet())
+ for (DN providedDomain : startStatesFromProvidedCookie.keySet())
if (rs.getReplicationServerDomain(providedDomain) == null)
// the domain provided in the cookie is not replicated
startStatesFromProvidedCookie.remove(providedDomain);
@@ -816,7 +817,7 @@
*/
StringBuilder sb = new StringBuilder();
for (DomainContext domainCtxt : domainCtxts) {
- sb.append(domainCtxt.rsd.getBaseDn()).append(":")
+ sb.append(domainCtxt.rsd.getBaseDN()).append(":")
.append(domainCtxt.startState).append(";");
}
throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM,
@@ -1235,7 +1236,7 @@
final ECLUpdateMsg change = new ECLUpdateMsg(
(LDAPUpdateMsg) oldestContext.nextMsg,
null, // cookie will be set later
- oldestContext.rsd.getBaseDn(),
+ oldestContext.rsd.getBaseDN().toNormalizedString(),
0); // changeNumber may be set later
oldestContext.nextMsg = null;
@@ -1287,7 +1288,7 @@
final ECLUpdateMsg change = new ECLUpdateMsg(
(LDAPUpdateMsg) oldestContext.nextMsg,
null, // set later
- oldestContext.rsd.getBaseDn(),
+ oldestContext.rsd.getBaseDN().toNormalizedString(),
0);
oldestContext.nextMsg = null; // clean
@@ -1318,7 +1319,7 @@
TRACER.debugInfo("getNextECLUpdate updates previousCookie:" + csn);
// Update the current state
- previousCookie.update(oldestChange.getBaseDN(), csn);
+ previousCookie.update(DN.decode(oldestChange.getBaseDN()), csn);
// Set the current value of global state in the returned message
oldestChange.setCookie(previousCookie);
@@ -1357,7 +1358,7 @@
// replogCSN : the oldest change from the changelog db
CSN csnFromChangelogDb = oldestChange.getUpdateMsg().getCSN();
- String dnFromChangelogDb = oldestChange.getBaseDN();
+ DN dnFromChangelogDb = DN.decode(oldestChange.getBaseDN());
while (true)
{
@@ -1372,7 +1373,7 @@
// the next change from the CNIndexDB
final CNIndexRecord currentRecord = cnIndexDBCursor.getRecord();
final CSN csnFromDraftCNDb = currentRecord.getCSN();
- final String dnFromDraftCNDb = currentRecord.getBaseDN();
+ final DN dnFromDraftCNDb = currentRecord.getBaseDN();
if (debugEnabled())
TRACER.debugInfo("assignChangeNumber() generating change number "
@@ -1440,7 +1441,7 @@
}
}
- private boolean areSameChange(CSN csn1, String dn1, CSN csn2, String dn2)
+ private boolean areSameChange(CSN csn1, DN dn1, CSN csn2, DN dn2)
{
boolean sameDN = dn1.compareTo(dn2) == 0;
boolean sameCSN = csn1.compareTo(csn2) == 0;
@@ -1458,7 +1459,7 @@
replicationServer.getChangeNumberIndexDB().addRecord(new CNIndexRecord(
change.getChangeNumber(),
previousCookie.toString(),
- change.getBaseDN(),
+ DN.decode(change.getBaseDN()),
change.getUpdateMsg().getCSN()));
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/LightweightServerHandler.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/LightweightServerHandler.java
index 8a490ed..a6c2ae5 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/LightweightServerHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/LightweightServerHandler.java
@@ -195,7 +195,8 @@
List<Attribute> attributes = new ArrayList<Attribute>();
attributes.add(Attributes.create("server-id", String.valueOf(serverId)));
- attributes.add(Attributes.create("domain-name", rsDomain.getBaseDn()));
+ attributes.add(Attributes.create("domain-name",
+ rsDomain.getBaseDN().toNormalizedString()));
attributes.add(Attributes.create("connected-to",
replServerHandler.getMonitorInstanceName()));
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/MessageHandler.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/MessageHandler.java
index 9df5c26..a4c73a8 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/MessageHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/MessageHandler.java
@@ -76,11 +76,11 @@
/**
* Local hosting RS.
*/
- protected ReplicationServer replicationServer = null;
+ protected ReplicationServer replicationServer;
/**
- * Specifies the related replication server domain based on baseDn.
+ * Specifies the related replication server domain based on baseDN.
*/
- protected ReplicationServerDomain replicationServerDomain = null;
+ protected ReplicationServerDomain replicationServerDomain;
/**
* Number of update sent to the server.
*/
@@ -106,9 +106,9 @@
*/
private ServerState serverState;
/**
- * Specifies the baseDn of the domain.
+ * Specifies the baseDN of the domain.
*/
- private String baseDN = null;
+ private DN baseDN;
/**
* Specifies whether the consumer is still active or not.
* If not active, the handler will not return any message.
@@ -563,7 +563,7 @@
*/
protected String getBaseDN()
{
- return baseDN;
+ return baseDN.toNormalizedString();
}
/**
@@ -628,21 +628,22 @@
* @exception DirectoryException
* raised when a problem occurs.
*/
- protected void setBaseDNAndDomain(String baseDN, boolean isDataServer)
- throws DirectoryException
+ protected void setBaseDNAndDomain(DN baseDN, boolean isDataServer)
+ throws DirectoryException
{
if (this.baseDN != null)
{
- if (!this.baseDN.equalsIgnoreCase(baseDN))
+ if (!this.baseDN.equals(baseDN))
{
- Message message = ERR_RS_DN_DOES_NOT_MATCH.get(this.baseDN, baseDN);
+ Message message = ERR_RS_DN_DOES_NOT_MATCH.get(
+ this.baseDN.toNormalizedString(), baseDN.toNormalizedString());
throw new DirectoryException(ResultCode.OTHER, message, null);
}
}
else
{
this.baseDN = baseDN;
- if (!baseDN.equalsIgnoreCase("cn=changelog"))
+ if (!baseDN.toNormalizedString().equals("cn=changelog"))
this.replicationServerDomain = getDomain(isDataServer);
}
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/MonitoringPublisher.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/MonitoringPublisher.java
index f85ce25..2a5fea0 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/MonitoringPublisher.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/MonitoringPublisher.java
@@ -77,7 +77,7 @@
super("Replication server RS("
+ replicationServerDomain.getLocalRSServerId()
+ ") monitor publisher for domain \""
- + replicationServerDomain.getBaseDn() + "\"");
+ + replicationServerDomain.getBaseDN() + "\"");
this.domain = replicationServerDomain;
this.period = period;
@@ -198,6 +198,6 @@
private String getMessage(String message)
{
return "In RS " + domain.getLocalRSServerId() + ", for base dn "
- + domain.getBaseDn() + ": " + message;
+ + domain.getBaseDN() + ": " + message;
}
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationBackend.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationBackend.java
index a6bec09..ff8c99f 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationBackend.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationBackend.java
@@ -537,7 +537,7 @@
}
else
{
- DN baseDN = DN.decode(rsd.getBaseDn() + "," + BASE_DN);
+ DN baseDN = DN.decode(rsd.getBaseDN() + "," + BASE_DN);
for (DN includeBranch : includeBranches)
{
if (includeBranch.isDescendantOf(baseDN)
@@ -591,14 +591,14 @@
TRACER.debugInfo("State=" + serverState);
Attribute stateAttr = Attributes.create("state", serverState.toString());
Attribute genidAttr = Attributes.create("generation-id",
- exportContainer.getGenerationId() + exportContainer.getBaseDn());
+ "" + exportContainer.getGenerationId() + exportContainer.getBaseDN());
attrs.clear();
attrs.put(ocType, singletonList(ocAttr));
attrs.put(stateAttr.getAttributeType(), singletonList(stateAttr));
attrs.put(genidAttr.getAttributeType(), singletonList(genidAttr));
- final String dnString = exportContainer.getBaseDn() + "," + BASE_DN;
+ final String dnString = exportContainer.getBaseDN() + "," + BASE_DN;
try
{
DN dn = DN.decode(dnString);
@@ -651,7 +651,7 @@
}
lookthroughCount++;
writeChange(cursor.getChange(), ldifWriter, searchOperation,
- rsd.getBaseDn(), exportConfig != null);
+ rsd.getBaseDN(), exportConfig != null);
cursor.next();
}
}
@@ -758,7 +758,7 @@
* Exports one change.
*/
private void writeChange(UpdateMsg updateMsg, LDIFWriter ldifWriter,
- SearchOperation searchOperation, String baseDN, boolean isExport)
+ SearchOperation searchOperation, DN baseDN, boolean isExport)
{
InternalClientConnection conn =
InternalClientConnection.getRootConnection();
@@ -862,7 +862,8 @@
addAttribute(entry.getUserAttributes(), CHANGE_NUMBER,
msg.getCSN().toString());
- addAttribute(entry.getUserAttributes(), "replicationDomain", baseDN);
+ addAttribute(entry.getUserAttributes(), "replicationDomain",
+ baseDN.toNormalizedString());
// Get the base DN, scope, and filter for the search.
DN searchBaseDN = searchOperation.getBaseDN();
@@ -1222,7 +1223,7 @@
ReplicationServerDomain rsd = iter.next();
// Skip containers that are not covered by the include branches.
- DN baseDN = DN.decode(rsd.getBaseDn() + "," + BASE_DN);
+ DN baseDN = DN.decode(rsd.getBaseDN() + "," + BASE_DN);
if (searchBaseDN.isDescendantOf(baseDN)
|| searchBaseDN.isAncestorOf(baseDN))
{
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationDomainMonitor.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationDomainMonitor.java
index a99057d..9b599d1 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationDomainMonitor.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationDomainMonitor.java
@@ -153,6 +153,8 @@
{
try
{
+ String baseDN = domain.getBaseDN().toNormalizedString();
+
// Prevent out of band monitor responses from updating our pending
// table until we are ready.
synchronized (pendingMonitorDataLock)
@@ -182,7 +184,7 @@
{
// Log a message and do a best effort from here.
Message message = ERR_SENDING_REMOTE_MONITOR_DATA_REQUEST.get(
- domain.getBaseDn(), serverId, e.getMessage());
+ baseDN, serverId, e.getMessage());
logError(message);
}
}
@@ -206,8 +208,7 @@
// error log with repeated messages.
if (!pendingMonitorDataServerIDs.contains(serverId))
{
- logError(NOTE_MONITOR_DATA_RECEIVED.get(
- domain.getBaseDn(), serverId));
+ logError(NOTE_MONITOR_DATA_RECEIVED.get(baseDN, serverId));
}
}
@@ -219,7 +220,7 @@
if (!monitorDataLateServers.contains(serverId))
{
logError(WARN_MISSING_REMOTE_MONITOR_DATA.get(
- domain.getBaseDn(), serverId));
+ baseDN, serverId));
}
}
@@ -313,8 +314,8 @@
{
// This is a response for an earlier request whose computing is
// already complete.
- logError(INFO_IGNORING_REMOTE_MONITOR_DATA.get(domain.getBaseDn(),
- msg.getSenderID()));
+ logError(INFO_IGNORING_REMOTE_MONITOR_DATA.get(
+ domain.getBaseDN().toNormalizedString(), msg.getSenderID()));
return;
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServer.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
index 5f43ada..b41939a 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServer.java
@@ -95,8 +95,8 @@
* This table is used to store the list of dn for which we are currently
* handling servers.
*/
- private final Map<String, ReplicationServerDomain> baseDNs =
- new HashMap<String, ReplicationServerDomain>();
+ private final Map<DN, ReplicationServerDomain> baseDNs =
+ new HashMap<DN, ReplicationServerDomain>();
private volatile boolean shutdown = false;
private int rcvWindow;
@@ -396,7 +396,7 @@
continue; // Skip: avoid connecting to self.
}
- connect(rsURL, domain.getBaseDn());
+ connect(rsURL, domain.getBaseDN());
}
}
@@ -436,11 +436,12 @@
/**
* Establish a connection to the server with the address and port.
*
- * @param remoteServerURL The address and port for the server, separated by a
- * colon.
- * @param baseDn The baseDn of the connection
+ * @param remoteServerURL
+ * The address and port for the server, separated by a colon.
+ * @param baseDN
+ * The baseDN of the connection
*/
- private void connect(String remoteServerURL, String baseDn)
+ private void connect(String remoteServerURL, DN baseDN)
{
int separator = remoteServerURL.lastIndexOf(':');
String port = remoteServerURL.substring(separator + 1);
@@ -464,7 +465,7 @@
ReplicationServerHandler rsHandler = new ReplicationServerHandler(
session, queueSize, this, rcvWindow);
- rsHandler.connect(baseDn, sslEncryption);
+ rsHandler.connect(baseDN, sslEncryption);
}
catch (Exception e)
{
@@ -677,36 +678,37 @@
* Get the ReplicationServerDomain associated to the base DN given in
* parameter.
*
- * @param baseDn The base Dn for which the ReplicationServerDomain must be
- * returned.
+ * @param baseDN
+ * The base Dn for which the ReplicationServerDomain must be
+ * returned.
* @return The ReplicationServerDomain associated to the base DN given in
* parameter.
*/
- public ReplicationServerDomain getReplicationServerDomain(String baseDn)
+ public ReplicationServerDomain getReplicationServerDomain(DN baseDN)
{
- return getReplicationServerDomain(baseDn, false);
+ return getReplicationServerDomain(baseDN, false);
}
/**
* Get the ReplicationServerDomain associated to the base DN given in
* parameter.
*
- * @param baseDn The base Dn for which the ReplicationServerDomain must be
+ * @param baseDN The base Dn for which the ReplicationServerDomain must be
* returned.
* @param create Specifies whether to create the ReplicationServerDomain if
* it does not already exist.
* @return The ReplicationServerDomain associated to the base DN given in
* parameter.
*/
- public ReplicationServerDomain getReplicationServerDomain(String baseDn,
+ public ReplicationServerDomain getReplicationServerDomain(DN baseDN,
boolean create)
{
synchronized (baseDNs)
{
- ReplicationServerDomain domain = baseDNs.get(baseDn);
+ ReplicationServerDomain domain = baseDNs.get(baseDN);
if (domain == null && create) {
- domain = new ReplicationServerDomain(baseDn, this);
- baseDNs.put(baseDn, domain);
+ domain = new ReplicationServerDomain(baseDN, this);
+ baseDNs.put(baseDN, domain);
}
return domain;
}
@@ -805,12 +807,12 @@
/**
* Clears the generationId for the replicationServerDomain related to the
- * provided baseDn.
+ * provided baseDN.
*
- * @param baseDn
- * The baseDn for which to delete the generationId.
+ * @param baseDN
+ * The baseDN for which to delete the generationId.
*/
- public void clearGenerationId(String baseDn)
+ public void clearGenerationId(DN baseDN)
{
synchronized (cnIndexDBLock)
{
@@ -818,7 +820,7 @@
{
try
{
- cnIndexDB.clear(baseDn);
+ cnIndexDB.clear(baseDN);
}
catch (Exception ignored)
{
@@ -1047,7 +1049,7 @@
* @param baseDN The baseDN of the replicationServerDomain.
* @return The value of the generationID.
*/
- public long getGenerationId(String baseDN)
+ public long getGenerationId(DN baseDN)
{
ReplicationServerDomain rsd = getReplicationServerDomain(baseDN);
if (rsd!=null)
@@ -1480,7 +1482,7 @@
CSN eligibleCSN = null;
for (ReplicationServerDomain domain : getReplicationServerDomains())
{
- if (contains(excludedBaseDNs, domain.getBaseDn()))
+ if (contains(excludedBaseDNs, domain.getBaseDN().toNormalizedString()))
continue;
final CSN domainEligibleCSN = domain.getEligibleCSN();
@@ -1494,7 +1496,7 @@
{
final String dates = domainEligibleCSN == null ?
"" : new Date(domainEligibleCSN.getTime()).toString();
- debugLog += "[baseDN=" + domain.getBaseDn()
+ debugLog += "[baseDN=" + domain.getBaseDN()
+ "] [eligibleCSN=" + domainEligibleCSN + ", " + dates + "]";
}
}
@@ -1611,9 +1613,9 @@
final CNIndexRecord firstCNRecord = cnIndexDB.getFirstRecord();
final CNIndexRecord lastCNRecord = cnIndexDB.getLastRecord();
- Map<String, ServerState> domainsServerStateForLastCN = null;
+ boolean noCookieForLastCN = true;
CSN csnForLastCN = null;
- String domainForLastCN = null;
+ DN domainForLastCN = null;
if (firstCNRecord != null)
{
if (lastCNRecord == null)
@@ -1631,11 +1633,8 @@
// Get the generalized state associated with the current last change
// number and initializes from it the startStates table
String lastCNGenState = lastCNRecord.getPreviousCookie();
- if (lastCNGenState != null && lastCNGenState.length() > 0)
- {
- domainsServerStateForLastCN = MultiDomainServerState
- .splitGenStateToServerStates(lastCNGenState);
- }
+ noCookieForLastCN = lastCNGenState == null
+ || lastCNGenState.length() == 0;
csnForLastCN = lastCNRecord.getCSN();
domainForLastCN = lastCNRecord.getBaseDN();
@@ -1644,13 +1643,13 @@
long newestDate = 0;
for (ReplicationServerDomain rsd : getReplicationServerDomains())
{
- if (contains(excludedBaseDNs, rsd.getBaseDn()))
+ if (contains(excludedBaseDNs, rsd.getBaseDN().toNormalizedString()))
continue;
// for this domain, have the state in the replchangelog
// where the last change number update is
long ec;
- if (domainsServerStateForLastCN == null)
+ if (noCookieForLastCN)
{
// Count changes of this domain from the beginning of the changelog
CSN trimCSN = new CSN(rsd.getLatestDomainTrimDate(), 0, 0);
@@ -1676,7 +1675,7 @@
CSN csnx = new CSN(newestDate, csnForLastCN.getSeqnum(), 0);
ec = rsd.getEligibleCount(csnx, crossDomainEligibleCSN);
- if (domainForLastCN.equalsIgnoreCase(rsd.getBaseDn()))
+ if (domainForLastCN.equals(rsd.getBaseDN()))
ec--;
}
@@ -1717,11 +1716,11 @@
MultiDomainServerState result = new MultiDomainServerState();
for (ReplicationServerDomain rsd : getReplicationServerDomains())
{
- if (contains(excludedBaseDNs, rsd.getBaseDn())
+ if (contains(excludedBaseDNs, rsd.getBaseDN().toNormalizedString())
|| rsd.getDbServerState().isEmpty())
continue;
- result.update(rsd.getBaseDn(), rsd.getEligibleState(getEligibleCSN()));
+ result.update(rsd.getBaseDN(), rsd.getEligibleState(getEligibleCSN()));
}
return result;
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
index eef08e4..e0ed2c1 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java
@@ -75,7 +75,7 @@
*/
public class ReplicationServerDomain extends MonitorProvider<MonitorProviderCfg>
{
- private final String baseDn;
+ private final DN baseDN;
/**
* The Status analyzer that periodically verifies whether the connected DSs
@@ -172,21 +172,21 @@
private ServerState ctHeartbeatState;
/**
- * Creates a new ReplicationServerDomain associated to the DN baseDn.
+ * Creates a new ReplicationServerDomain associated to the baseDN.
*
- * @param baseDn
- * The baseDn associated to the ReplicationServerDomain.
+ * @param baseDN
+ * The baseDN associated to the ReplicationServerDomain.
* @param localReplicationServer
* the ReplicationServer that created this instance.
*/
- public ReplicationServerDomain(String baseDn,
+ public ReplicationServerDomain(DN baseDN,
ReplicationServer localReplicationServer)
{
- this.baseDn = baseDn;
+ this.baseDN = baseDN;
this.localReplicationServer = localReplicationServer;
this.assuredTimeoutTimer = new Timer("Replication server RS("
+ localReplicationServer.getServerId()
- + ") assured timer for domain \"" + baseDn + "\"", true);
+ + ") assured timer for domain \"" + baseDN + "\"", true);
this.changelogDB = localReplicationServer.getChangelogDB();
DirectoryServer.registerMonitorProvider(this);
@@ -253,7 +253,8 @@
// Unknown assured mode: should never happen
Message errorMsg = ERR_RS_UNKNOWN_ASSURED_MODE.get(
Integer.toString(localReplicationServer.getServerId()),
- assuredMode.toString(), baseDn, update.toString());
+ assuredMode.toString(), baseDN.toNormalizedString(),
+ update.toString());
logError(errorMsg);
assuredMessage = false;
}
@@ -405,7 +406,7 @@
{
try
{
- if (this.changelogDB.publishUpdateMsg(baseDn, serverId, updateMsg))
+ if (this.changelogDB.publishUpdateMsg(baseDN, serverId, updateMsg))
{
/*
* JNR: Matt and I had a hard time figuring out where to put this
@@ -608,7 +609,8 @@
// Should never happen
Message errorMsg = ERR_UNKNOWN_ASSURED_SAFE_DATA_LEVEL.get(
Integer.toString(localReplicationServer.getServerId()),
- Byte.toString(safeDataLevel), baseDn, update.toString());
+ Byte.toString(safeDataLevel), baseDN.toNormalizedString(),
+ update.toString());
logError(errorMsg);
} else if (sourceGroupId == groupId
// Assured feature does not cross different group IDS
@@ -760,7 +762,7 @@
mb.append(ERR_RS_ERROR_SENDING_ACK.get(
Integer.toString(localReplicationServer.getServerId()),
Integer.toString(origServer.getServerId()),
- csn.toString(), baseDn));
+ csn.toString(), baseDN.toNormalizedString()));
mb.append(" ");
mb.append(stackTraceToSingleLineString(e));
logError(mb.toMessage());
@@ -838,7 +840,7 @@
mb.append(ERR_RS_ERROR_SENDING_ACK.get(
Integer.toString(localReplicationServer.getServerId()),
Integer.toString(origServer.getServerId()),
- csn.toString(), baseDn));
+ csn.toString(), baseDN.toNormalizedString()));
mb.append(" ");
mb.append(stackTraceToSingleLineString(e));
logError(mb.toMessage());
@@ -1275,7 +1277,7 @@
*/
public Set<Integer> getServerIds()
{
- return changelogDB.getDomainServerIds(baseDn);
+ return changelogDB.getDomainServerIds(baseDN);
}
/**
@@ -1292,7 +1294,7 @@
*/
public ReplicaDBCursor getCursorFrom(int serverId, CSN startAfterCSN)
{
- return changelogDB.getCursorFrom(baseDn, serverId, startAfterCSN);
+ return changelogDB.getCursorFrom(baseDN, serverId, startAfterCSN);
}
/**
@@ -1305,7 +1307,7 @@
*/
public long getCount(int serverId, CSN from, CSN to)
{
- return changelogDB.getCount(baseDn, serverId, from, to);
+ return changelogDB.getCount(baseDN, serverId, from, to);
}
/**
@@ -1315,16 +1317,17 @@
*/
public long getChangesCount()
{
- return changelogDB.getDomainChangesCount(baseDn);
+ return changelogDB.getDomainChangesCount(baseDN);
}
/**
- * Get the baseDn.
- * @return Returns the baseDn.
+ * Get the baseDN.
+ *
+ * @return Returns the baseDN.
*/
- public String getBaseDn()
+ public DN getBaseDN()
{
- return baseDn;
+ return baseDN;
}
/**
@@ -1520,7 +1523,7 @@
{
MessageBuilder mb = new MessageBuilder();
mb.append(ERR_NO_REACHABLE_PEER_IN_THE_DOMAIN.get(
- this.baseDn, Integer.toString(msg.getDestination())));
+ baseDN.toNormalizedString(), Integer.toString(msg.getDestination())));
mb.append(" In Replication Server=").append(
this.localReplicationServer.getMonitorInstanceName());
mb.append(" unroutable message =").append(msg.getClass().getSimpleName());
@@ -1567,7 +1570,8 @@
*/
MessageBuilder mb = new MessageBuilder();
mb.append(ERR_NO_REACHABLE_PEER_IN_THE_DOMAIN.get(
- this.baseDn, Integer.toString(msg.getDestination())));
+ baseDN.toNormalizedString(),
+ Integer.toString(msg.getDestination())));
mb.append(" unroutable message =" + msg.getClass().getSimpleName());
mb.append(" Details: " + ioe.getLocalizedMessage());
final Message message = mb.toMessage();
@@ -1698,7 +1702,7 @@
stopAllServers(true);
- changelogDB.shutdownDomain(baseDn);
+ changelogDB.shutdownDomain(baseDN);
}
/**
@@ -1709,7 +1713,7 @@
public ServerState getDbServerState()
{
ServerState serverState = new ServerState();
- for (CSN lastCSN : changelogDB.getDomainLastCSNs(baseDn).values())
+ for (CSN lastCSN : changelogDB.getDomainLastCSNs(baseDN).values())
{
serverState.update(lastCSN);
}
@@ -1722,7 +1726,7 @@
@Override
public String toString()
{
- return "ReplicationServerDomain " + baseDn;
+ return "ReplicationServerDomain " + baseDN;
}
/**
@@ -1755,10 +1759,9 @@
{
if (i == 2)
{
- Message message =
- ERR_EXCEPTION_SENDING_TOPO_INFO
- .get(baseDn, "directory", Integer.toString(dsHandler
- .getServerId()), e.getMessage());
+ Message message = ERR_EXCEPTION_SENDING_TOPO_INFO.get(
+ baseDN.toNormalizedString(), "directory",
+ Integer.toString(dsHandler.getServerId()), e.getMessage());
logError(message);
}
}
@@ -1793,7 +1796,7 @@
if (i == 2)
{
Message message = ERR_EXCEPTION_SENDING_TOPO_INFO.get(
- baseDn, "replication",
+ baseDN.toNormalizedString(), "replication",
Integer.toString(rsHandler.getServerId()), e.getMessage());
logError(message);
}
@@ -1934,9 +1937,8 @@
{
if (debugEnabled())
{
- TRACER.debugInfo("In " + this + " Receiving ResetGenerationIdMsg from "
- + senderHandler.getServerId() + " for baseDn " + baseDn + ":\n"
- + genIdMsg);
+ debug("Receiving ResetGenerationIdMsg from "
+ + senderHandler.getServerId() + ":\n" + genIdMsg);
}
try
@@ -1965,10 +1967,8 @@
// Order to take a gen id we already have, just ignore
if (debugEnabled())
{
- TRACER.debugInfo("In " + this
- + " Reset generation id requested for baseDn " + baseDn
- + " but generation id was already " + this.generationId + ":\n"
- + genIdMsg);
+ debug("Reset generation id requested but generationId was already "
+ + this.generationId + ":\n" + genIdMsg);
}
}
@@ -1987,8 +1987,8 @@
}
} catch (IOException e)
{
- logError(ERR_EXCEPTION_FORWARDING_RESET_GEN_ID.get(baseDn,
- e.getMessage()));
+ logError(ERR_EXCEPTION_FORWARDING_RESET_GEN_ID.get(
+ baseDN.toNormalizedString(), e.getMessage()));
}
}
@@ -2001,7 +2001,8 @@
dsHandler.changeStatusForResetGenId(newGenId);
} catch (IOException e)
{
- logError(ERR_EXCEPTION_CHANGING_STATUS_AFTER_RESET_GEN_ID.get(baseDn,
+ logError(ERR_EXCEPTION_CHANGING_STATUS_AFTER_RESET_GEN_ID.get(
+ baseDN.toNormalizedString(),
Integer.toString(dsHandler.getServerId()),
e.getMessage()));
}
@@ -2014,7 +2015,8 @@
// treatment.
sendTopoInfoToAll();
- logError(NOTE_RESET_GENERATION_ID.get(baseDn, newGenId));
+ logError(NOTE_RESET_GENERATION_ID.get(baseDN.toNormalizedString(),
+ newGenId));
}
catch(Exception e)
{
@@ -2069,7 +2071,8 @@
sendTopoInfoToAllExcept(senderHandler);
Message message = NOTE_DIRECTORY_SERVER_CHANGED_STATUS.get(
- senderHandler.getServerId(), baseDn, newStatus.toString());
+ senderHandler.getServerId(), baseDN.toNormalizedString(),
+ newStatus.toString());
logError(message);
}
catch(Exception e)
@@ -2114,7 +2117,7 @@
// StatusAnalyzer.
if (debugEnabled())
{
- TRACER.debugInfo("Status analyzer for domain " + baseDn
+ TRACER.debugInfo("Status analyzer for domain " + baseDN
+ " has been interrupted when"
+ " trying to acquire domain lock for changing the status of DS "
+ dsHandler.getServerId());
@@ -2133,7 +2136,7 @@
catch (IOException e)
{
logError(ERR_EXCEPTION_CHANGING_STATUS_FROM_STATUS_ANALYZER
- .get(baseDn,
+ .get(baseDN.toNormalizedString(),
Integer.toString(dsHandler.getServerId()),
e.getMessage()));
}
@@ -2186,10 +2189,10 @@
public void clearDbs()
{
// Reset the localchange and state db for the current domain
- changelogDB.clearDomain(baseDn);
+ changelogDB.clearDomain(baseDN);
try
{
- localReplicationServer.clearGenerationId(baseDn);
+ localReplicationServer.clearGenerationId(baseDN);
}
catch (Exception e)
{
@@ -2285,7 +2288,7 @@
rsHandler.getServerId(),
rsHandler.session.getReadableRemoteAddress(),
rsHandler.getGenerationId(),
- baseDn, getLocalRSServerId(), generationId);
+ baseDN.toNormalizedString(), getLocalRSServerId(), generationId);
logError(message);
ErrorMsg errorMsg = new ErrorMsg(getLocalRSServerId(),
@@ -2494,7 +2497,8 @@
{
return "Replication server RS(" + localReplicationServer.getServerId()
+ ") " + localReplicationServer.getServerURL() + ",cn="
- + baseDn.replace(',', '_').replace('=', '_') + ",cn=Replication";
+ + baseDN.toNormalizedString().replace(',', '_').replace('=', '_')
+ + ",cn=Replication";
}
/**
@@ -2509,9 +2513,10 @@
String.valueOf(localReplicationServer.getServerId())));
attributes.add(Attributes.create("replication-server-port",
String.valueOf(localReplicationServer.getReplicationPort())));
- attributes.add(Attributes.create("domain-name", baseDn));
+ attributes.add(Attributes.create("domain-name",
+ baseDN.toNormalizedString()));
attributes.add(Attributes.create("generation-id",
- baseDn + " " + generationId));
+ baseDN + " " + generationId));
// Missing changes
long missingChanges = getDomainMonitorData().getMissingChangesRS(
@@ -2595,7 +2600,7 @@
if (eligibleCSN.olderOrEqual(mostRecentDbCSN))
{
// let's try to seek the first change <= eligibleCSN
- CSN newCSN = changelogDB.getCSNAfter(baseDn, serverId, eligibleCSN);
+ CSN newCSN = changelogDB.getCSNAfter(baseDN, serverId, eligibleCSN);
result.update(newCSN);
} else {
// for this serverId, all changes in the ChangelogDb are holder
@@ -2612,8 +2617,7 @@
if (debugEnabled())
{
- TRACER
- .debugInfo("In " + this + " getEligibleState() result is " + result);
+ debug("getEligibleState() result is " + result);
}
return result;
}
@@ -2629,7 +2633,7 @@
public ServerState getStartState()
{
ServerState domainStartState = new ServerState();
- for (CSN firstCSN : changelogDB.getDomainFirstCSNs(baseDn).values())
+ for (CSN firstCSN : changelogDB.getDomainFirstCSNs(baseDN).values())
{
domainStartState.update(firstCSN);
}
@@ -2650,7 +2654,7 @@
CSN eligibleCSN = null;
for (Entry<Integer, CSN> entry :
- changelogDB.getDomainLastCSNs(baseDn).entrySet())
+ changelogDB.getDomainLastCSNs(baseDN).entrySet())
{
// Consider this producer (DS/db).
final int serverId = entry.getKey();
@@ -2767,7 +2771,7 @@
logError(ERR_CHANGELOG_ERROR_SENDING_MSG
.get("Replication Server "
+ localReplicationServer.getReplicationPort() + " "
- + baseDn + " " + localReplicationServer.getServerId()));
+ + baseDN + " " + localReplicationServer.getServerId()));
stopServer(rsHandler, false);
}
}
@@ -2844,7 +2848,7 @@
*/
public long getLatestDomainTrimDate()
{
- return changelogDB.getDomainLatestTrimDate(baseDn);
+ return changelogDB.getDomainLatestTrimDate(baseDN);
}
/**
@@ -2962,8 +2966,9 @@
private void debug(String message)
{
- TRACER.debugInfo("In RS serverId=" + localReplicationServer.getServerId()
- + " for baseDn=" + baseDn + " and port="
- + localReplicationServer.getReplicationPort() + ": " + message);
+ TRACER.debugInfo("In ReplicationServerDomain serverId="
+ + localReplicationServer.getServerId() + " for baseDN=" + baseDN
+ + " and port=" + localReplicationServer.getReplicationPort()
+ + ": " + message);
}
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServerHandler.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServerHandler.java
index b21a06b..ac7c6a7 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServerHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServerHandler.java
@@ -84,7 +84,8 @@
serverURL = inReplServerStartMsg.getServerURL();
final String port = serverURL.substring(serverURL.lastIndexOf(':') + 1);
serverAddressURL = session.getRemoteAddress() + ":" + port;
- setBaseDNAndDomain(inReplServerStartMsg.getBaseDn(), false);
+ DN baseDN = DN.decode(inReplServerStartMsg.getBaseDn());
+ setBaseDNAndDomain(baseDN, false);
setInitialServerState(inReplServerStartMsg.getServerState());
setSendWindowSize(inReplServerStartMsg.getWindowSize());
if (protocolVersion > ProtocolVersion.REPLICATION_PROTOCOL_V1)
@@ -141,8 +142,8 @@
* @param sslEncryption The sslEncryption requested to the remote RS.
* @throws DirectoryException when an error occurs.
*/
- public void connect(String baseDN, boolean sslEncryption)
- throws DirectoryException
+ public void connect(DN baseDN, boolean sslEncryption)
+ throws DirectoryException
{
// we are the initiator and decides of the encryption
this.sslEncryption = sslEncryption;
@@ -245,7 +246,7 @@
Message message = INFO_REPLICATION_SERVER_CONNECTION_TO_RS
.get(getReplicationServerId(), getServerId(),
- replicationServerDomain.getBaseDn(),
+ replicationServerDomain.getBaseDN().toNormalizedString(),
session.getReadableRemoteAddress());
logError(message);
@@ -380,7 +381,7 @@
Message message = INFO_REPLICATION_SERVER_CONNECTION_FROM_RS
.get(getReplicationServerId(), getServerId(),
- replicationServerDomain.getBaseDn(),
+ replicationServerDomain.getBaseDN().toNormalizedString(),
session.getReadableRemoteAddress());
logError(message);
@@ -719,7 +720,7 @@
if (serverId != 0)
{
return "Replication server RS(" + serverId + ") for domain \""
- + replicationServerDomain.getBaseDn() + "\"";
+ + replicationServerDomain.getBaseDN() + "\"";
}
return "Unknown server";
}
@@ -757,4 +758,5 @@
if (replicationServerDomain != null)
replicationServerDomain.receiveTopoInfoFromRS(topoMsg, this, true);
}
+
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/StatusAnalyzer.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/StatusAnalyzer.java
index d442314..52f3c08 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/StatusAnalyzer.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/StatusAnalyzer.java
@@ -78,7 +78,7 @@
{
super("Replication server RS("
+ replicationServerDomain.getLocalRSServerId()
- + ") delay monitor for domain \"" + replicationServerDomain.getBaseDn()
+ + ") delay monitor for domain \"" + replicationServerDomain.getBaseDN()
+ "\"");
this.replicationServerDomain = replicationServerDomain;
@@ -173,7 +173,7 @@
private String getMessage(String message)
{
return "In RS " + replicationServerDomain.getLocalRSServerId()
- + ", for base dn " + replicationServerDomain.getBaseDn() + ": "
+ + ", for baseDN=" + replicationServerDomain.getBaseDN() + ": "
+ message;
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/api/CNIndexRecord.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/api/CNIndexRecord.java
index 4363a21..0ce5e5e 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/api/CNIndexRecord.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/api/CNIndexRecord.java
@@ -27,6 +27,7 @@
package org.opends.server.replication.server.changelog.api;
import org.opends.server.replication.common.CSN;
+import org.opends.server.types.DN;
/**
* The Change Number Index Data class represents records stored in the
@@ -38,7 +39,7 @@
/** This is the key used to store the rest of the . */
private long changeNumber;
private String previousCookie;
- private String baseDN;
+ private DN baseDN;
private CSN csn;
/**
@@ -53,7 +54,7 @@
* @param csn
* the replication CSN field
*/
- public CNIndexRecord(long changeNumber, String previousCookie, String baseDN,
+ public CNIndexRecord(long changeNumber, String previousCookie, DN baseDN,
CSN csn)
{
super();
@@ -68,7 +69,7 @@
*
* @return the baseDN
*/
- public String getBaseDN()
+ public DN getBaseDN()
{
return baseDN;
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/api/ChangeNumberIndexDB.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/api/ChangeNumberIndexDB.java
index b97f471..81092a4 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/api/ChangeNumberIndexDB.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/api/ChangeNumberIndexDB.java
@@ -26,6 +26,8 @@
*/
package org.opends.server.replication.server.changelog.api;
+import org.opends.server.types.DN;
+
/**
* This class stores an index of all the changes seen by this server in the form
* of {@link CNIndexRecord}s. The records are sorted by a global ordering as
@@ -131,7 +133,7 @@
* @throws ChangelogException
* if a database problem occurs.
*/
- void clear(String baseDNToClear) throws ChangelogException;
+ void clear(DN baseDNToClear) throws ChangelogException;
/**
* Shutdown this DB.
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/api/ChangelogDB.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/api/ChangelogDB.java
index 9686ee0..0ff0187 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/api/ChangelogDB.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/api/ChangelogDB.java
@@ -32,6 +32,7 @@
import org.opends.server.config.ConfigException;
import org.opends.server.replication.common.CSN;
import org.opends.server.replication.protocol.UpdateMsg;
+import org.opends.server.types.DN;
/**
* The changelogDB stores the replication data on persistent storage.
@@ -102,65 +103,65 @@
* Returns the serverIds for the servers that are or have been part of the
* provided replication domain.
*
- * @param baseDn
- * the replication domain baseDn
+ * @param baseDN
+ * the replication domain baseDN
* @return a set of integers holding the serverIds
*/
- Set<Integer> getDomainServerIds(String baseDn);
+ Set<Integer> getDomainServerIds(DN baseDN);
/**
* Get the number of changes for the specified replication domain.
*
- * @param baseDn
- * the replication domain baseDn
+ * @param baseDN
+ * the replication domain baseDN
* @return the number of changes.
*/
- long getDomainChangesCount(String baseDn);
+ long getDomainChangesCount(DN baseDN);
/**
* Returns the FIRST {@link CSN}s of each serverId for the specified
* replication domain.
*
- * @param baseDn
- * the replication domain baseDn
+ * @param baseDN
+ * the replication domain baseDN
* @return a {serverId => FIRST CSN} Map
*/
- Map<Integer, CSN> getDomainFirstCSNs(String baseDn);
+ Map<Integer, CSN> getDomainFirstCSNs(DN baseDN);
/**
* Returns the LAST {@link CSN}s of each serverId for the specified
* replication domain.
*
- * @param baseDn
- * the replication domain baseDn
+ * @param baseDN
+ * the replication domain baseDN
* @return a {serverId => LAST CSN} Map
*/
- Map<Integer, CSN> getDomainLastCSNs(String baseDn);
+ Map<Integer, CSN> getDomainLastCSNs(DN baseDN);
/**
* Retrieves the latest trim date for the specified replication domain.
*
- * @param baseDn
- * the replication domain baseDn
+ * @param baseDN
+ * the replication domain baseDN
* @return the domain latest trim date
*/
- long getDomainLatestTrimDate(String baseDn);
+ long getDomainLatestTrimDate(DN baseDN);
/**
* Shutdown the specified replication domain.
*
- * @param baseDn
- * the replication domain baseDn
+ * @param baseDN
+ * the replication domain baseDN
*/
- void shutdownDomain(String baseDn);
+ void shutdownDomain(DN baseDN);
/**
* Clear DB and shutdown for the specified replication domain.
*
- * @param baseDn
- * the replication domain baseDn
+ * @param baseDN
+ * the replication domain baseDN
*/
- void clearDomain(String baseDn);
+ void clearDomain(DN baseDN);
// serverId methods
@@ -168,8 +169,8 @@
* Return the number of changes between 2 provided {@link CSN}s for the
* specified serverId and replication domain.
*
- * @param baseDn
- * the replication domain baseDn
+ * @param baseDN
+ * the replication domain baseDN
* @param serverId
* the serverId on which to act
* @param from
@@ -178,14 +179,14 @@
* The upper (newer) CSN
* @return The computed number of changes
*/
- long getCount(String baseDn, int serverId, CSN from, CSN to);
+ long getCount(DN baseDN, int serverId, CSN from, CSN to);
/**
* Returns the {@link CSN} situated immediately after the specified
* {@link CSN} for the specified serverId and replication domain.
*
- * @param baseDn
- * the replication domain baseDn
+ * @param baseDN
+ * the replication domain baseDN
* @param serverId
* the serverId for which we want the information
* @param startAfterCSN
@@ -193,14 +194,14 @@
* @return a new ReplicationIterator that allows to browse the db managed by
* this dbHandler and starting at the position defined by a given CSN.
*/
- CSN getCSNAfter(String baseDn, int serverId, CSN startAfterCSN);
+ CSN getCSNAfter(DN baseDN, int serverId, CSN startAfterCSN);
/**
* Generates a non empty {@link ReplicaDBCursor} for the specified serverId
* and replication domain.
*
- * @param baseDn
- * the replication domain baseDn
+ * @param baseDN
+ * the replication domain baseDN
* @param serverId
* the serverId on which to act
* @param startAfterCSN
@@ -208,13 +209,13 @@
* @return a {@link ReplicaDBCursor} if the ReplicaDB is not empty, null
* otherwise
*/
- ReplicaDBCursor getCursorFrom(String baseDn, int serverId, CSN startAfterCSN);
+ ReplicaDBCursor getCursorFrom(DN baseDN, int serverId, CSN startAfterCSN);
/**
* for the specified serverId and replication domain.
*
- * @param baseDn
- * the replication domain baseDn
+ * @param baseDN
+ * the replication domain baseDN
* @param serverId
* the serverId on which to act
* @param updateMsg
@@ -223,7 +224,7 @@
* @throws ChangelogException
* If a database problem happened
*/
- boolean publishUpdateMsg(String baseDn, int serverId, UpdateMsg updateMsg)
+ boolean publishUpdateMsg(DN baseDN, int serverId, UpdateMsg updateMsg)
throws ChangelogException;
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DbHandler.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DbHandler.java
index 0ba2b64..11c5a81 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DbHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DbHandler.java
@@ -47,6 +47,7 @@
import org.opends.server.replication.server.changelog.je.ReplicationDB.*;
import org.opends.server.types.Attribute;
import org.opends.server.types.Attributes;
+import org.opends.server.types.DN;
import org.opends.server.types.InitializationException;
import org.opends.server.util.TimeThread;
@@ -113,7 +114,7 @@
private CSN firstChange;
private CSN lastChange;
private int serverId;
- private String baseDn;
+ private DN baseDN;
private DbMonitorProvider dbMonitor = new DbMonitorProvider();
private DirectoryThread thread;
private final Object flushLock = new Object();
@@ -131,21 +132,19 @@
* Creates a new dbHandler associated to a given LDAP server.
*
* @param id Identifier of the DB.
- * @param baseDn the baseDn for which this DB was created.
+ * @param baseDN the baseDN for which this DB was created.
* @param replicationServer The ReplicationServer that creates this dbHandler.
* @param dbenv the Database Env to use to create the ReplicationServer DB.
* server for this domain.
* @param queueSize The queueSize to use when creating the dbHandler.
* @throws ChangelogException If a database problem happened
*/
- public DbHandler(
- int id, String baseDn, ReplicationServer replicationServer,
- ReplicationDbEnv dbenv, int queueSize)
- throws ChangelogException
+ public DbHandler(int id, DN baseDN, ReplicationServer replicationServer,
+ ReplicationDbEnv dbenv, int queueSize) throws ChangelogException
{
this.replicationServer = replicationServer;
serverId = id;
- this.baseDn = baseDn;
+ this.baseDN = baseDN;
trimAge = replicationServer.getTrimAge();
queueMaxSize = queueSize;
queueLowmark = queueSize / 5;
@@ -153,13 +152,13 @@
queueMaxBytes = 200 * queueMaxSize;
queueLowmarkBytes = 200 * queueLowmark;
queueHimarkBytes = 200 * queueLowmark;
- db = new ReplicationDB(id, baseDn, replicationServer, dbenv);
+ db = new ReplicationDB(id, baseDN, replicationServer, dbenv);
firstChange = db.readFirstChange();
lastChange = db.readLastChange();
thread = new DirectoryThread(this, "Replication server RS("
+ replicationServer.getServerId()
+ ") changelog checkpointer for Replica DS(" + id
- + ") for domain \"" + baseDn + "\"");
+ + ") for domain \"" + baseDN + "\"");
thread.start();
DirectoryServer.deregisterMonitorProvider(dbMonitor);
@@ -531,7 +530,8 @@
List<Attribute> attributes = new ArrayList<Attribute>();
attributes.add(Attributes.create("replicationServer-database",
String.valueOf(serverId)));
- attributes.add(Attributes.create("domain-name", baseDn));
+ attributes.add(Attributes.create("domain-name",
+ baseDN.toNormalizedString()));
if (firstChange != null)
{
attributes.add(Attributes.create("first-change", encode(firstChange)));
@@ -559,7 +559,7 @@
public String getMonitorInstanceName()
{
ReplicationServerDomain domain = replicationServer
- .getReplicationServerDomain(baseDn);
+ .getReplicationServerDomain(baseDN);
return "Changelog for DS(" + serverId + "),cn="
+ domain.getMonitorInstanceName();
}
@@ -581,7 +581,7 @@
@Override
public String toString()
{
- return baseDn + " " + serverId + " " + firstChange + " " + lastChange;
+ return baseDN + " " + serverId + " " + firstChange + " " + lastChange;
}
/**
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java
index 50ace70..fb5faf6 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDB.java
@@ -92,7 +92,8 @@
final long changeNumber = record.getChangeNumber();
DatabaseEntry key = new ReplicationDraftCNKey(changeNumber);
DatabaseEntry data = new DraftCNData(changeNumber,
- record.getPreviousCookie(), record.getBaseDN(), record.getCSN());
+ record.getPreviousCookie(), record.getBaseDN().toNormalizedString(),
+ record.getCSN());
// Use a transaction so that we can override durability.
Transaction txn = null;
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNData.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNData.java
index 77e2efd..c6faad5 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNData.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNData.java
@@ -33,6 +33,8 @@
import org.opends.server.replication.common.CSN;
import org.opends.server.replication.server.changelog.api.CNIndexRecord;
import org.opends.server.replication.server.changelog.api.ChangelogException;
+import org.opends.server.types.DN;
+import org.opends.server.types.DirectoryException;
import com.sleepycat.je.DatabaseEntry;
@@ -104,7 +106,8 @@
{
String stringData = new String(data, "UTF-8");
String[] str = stringData.split(FIELD_SEPARATOR, 3);
- return new CNIndexRecord(changeNumber, str[0], str[1], new CSN(str[2]));
+ final DN baseDN = DN.decode(str[1]);
+ return new CNIndexRecord(changeNumber, str[0], baseDN, new CSN(str[2]));
}
catch (UnsupportedEncodingException e)
{
@@ -112,6 +115,10 @@
// TODO: i18n
throw new ChangelogException(Message.raw("need UTF-8 support"));
}
+ catch (DirectoryException e)
+ {
+ throw new ChangelogException(e);
+ }
}
/**
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandler.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandler.java
index a070ac2..3462514 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandler.java
@@ -46,10 +46,7 @@
import org.opends.server.replication.server.ReplicationServerDomain;
import org.opends.server.replication.server.changelog.api.*;
import org.opends.server.replication.server.changelog.je.DraftCNDB.*;
-import org.opends.server.types.Attribute;
-import org.opends.server.types.Attributes;
-import org.opends.server.types.DebugLogLevel;
-import org.opends.server.types.InitializationException;
+import org.opends.server.types.*;
import static org.opends.messages.ReplicationMessages.*;
import static org.opends.server.loggers.ErrorLogger.*;
@@ -298,7 +295,7 @@
/** {@inheritDoc} */
@Override
- public void clear(String baseDNToClear) throws ChangelogException
+ public void clear(DN baseDNToClear) throws ChangelogException
{
if (isEmpty())
{
@@ -321,15 +318,14 @@
// From the draftCNDb change record, get the domain and CSN
final CNIndexRecord record = cursor.currentRecord();
- final String baseDN = record.getBaseDN();
- if (baseDNToClear != null && baseDNToClear.equalsIgnoreCase(baseDN))
+ if (baseDNToClear != null && baseDNToClear.equals(record.getBaseDN()))
{
cursor.delete();
continue;
}
final ReplicationServerDomain domain =
- replicationServer.getReplicationServerDomain(baseDN);
+ replicationServer.getReplicationServerDomain(record.getBaseDN());
if (domain == null)
{
// the domain has been removed since the record was written in the
@@ -354,10 +350,10 @@
ServerState csnVector;
try
{
- Map<String, ServerState> csnStartStates =
+ Map<DN, ServerState> csnStartStates =
MultiDomainServerState.splitGenStateToServerStates(
record.getPreviousCookie());
- csnVector = csnStartStates.get(baseDN);
+ csnVector = csnStartStates.get(record.getBaseDN());
if (debugEnabled())
TRACER.debugInfo("DraftCNDBHandler:clear() - ChangeVector:"
@@ -516,7 +512,7 @@
* Takes the lock on this object (blocking until lock can be acquired).
* @throws InterruptedException If interrupted.
*/
- public void lock() throws InterruptedException
+ public void lock() throws InterruptedException
{
lock.lockInterruptibly();
}
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java
index bea6ac5..97057f5 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java
@@ -42,6 +42,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.api.ReplicaDBCursor;
+import org.opends.server.types.DN;
import org.opends.server.types.DebugLogLevel;
import org.opends.server.util.Pair;
@@ -62,8 +63,8 @@
/**
* This map contains the List of updates received from each LDAP server.
*/
- private final Map<String, Map<Integer, DbHandler>> sourceDbHandlers =
- new ConcurrentHashMap<String, Map<Integer, DbHandler>>();
+ private final Map<DN, Map<Integer, DbHandler>> sourceDbHandlers =
+ new ConcurrentHashMap<DN, Map<Integer, DbHandler>>();
private ReplicationDbEnv dbEnv;
private String dbDirName = null;
private File dbDirectory;
@@ -82,9 +83,9 @@
this.replicationServer = replicationServer;
}
- private Map<Integer, DbHandler> getDomainMap(String baseDn)
+ private Map<Integer, DbHandler> getDomainMap(DN baseDN)
{
- final Map<Integer, DbHandler> domainMap = sourceDbHandlers.get(baseDn);
+ final Map<Integer, DbHandler> domainMap = sourceDbHandlers.get(baseDN);
if (domainMap != null)
{
return domainMap;
@@ -92,45 +93,45 @@
return Collections.emptyMap();
}
- private DbHandler getDbHandler(String baseDn, int serverId)
+ private DbHandler getDbHandler(DN baseDN, int serverId)
{
- return getDomainMap(baseDn).get(serverId);
+ return getDomainMap(baseDN).get(serverId);
}
/**
* Provision resources for the specified serverId in the specified replication
* domain.
*
- * @param baseDn
+ * @param baseDN
* the replication domain where to add the serverId
* @param serverId
* the server Id to add to the replication domain
* @throws ChangelogException
* If a database error happened.
*/
- private void commission(String baseDn, int serverId, ReplicationServer rs)
+ private void commission(DN baseDN, int serverId, ReplicationServer rs)
throws ChangelogException
{
- getOrCreateDbHandler(baseDn, serverId, rs);
+ getOrCreateDbHandler(baseDN, serverId, rs);
}
- private Pair<DbHandler, Boolean> getOrCreateDbHandler(String baseDn,
+ private Pair<DbHandler, Boolean> getOrCreateDbHandler(DN baseDN,
int serverId, ReplicationServer rs) throws ChangelogException
{
synchronized (sourceDbHandlers)
{
- Map<Integer, DbHandler> domainMap = sourceDbHandlers.get(baseDn);
+ Map<Integer, DbHandler> domainMap = sourceDbHandlers.get(baseDN);
if (domainMap == null)
{
domainMap = new ConcurrentHashMap<Integer, DbHandler>();
- sourceDbHandlers.put(baseDn, domainMap);
+ sourceDbHandlers.put(baseDN, domainMap);
}
DbHandler dbHandler = domainMap.get(serverId);
if (dbHandler == null)
{
dbHandler =
- new DbHandler(serverId, baseDn, rs, dbEnv, rs.getQueueSize());
+ new DbHandler(serverId, baseDN, rs, dbEnv, rs.getQueueSize());
domainMap.put(serverId, dbHandler);
return Pair.of(dbHandler, true);
}
@@ -161,19 +162,18 @@
private void initializeChangelogState(final ChangelogState changelogState)
throws ChangelogException
{
- for (Map.Entry<String, Long> entry :
+ for (Map.Entry<DN, Long> entry :
changelogState.getDomainToGenerationId().entrySet())
{
replicationServer.getReplicationServerDomain(entry.getKey(), true)
.initGenerationID(entry.getValue());
}
- for (Map.Entry<String, List<Integer>> entry : changelogState
- .getDomainToServerIds().entrySet())
+ for (Map.Entry<DN, List<Integer>> entry :
+ changelogState.getDomainToServerIds().entrySet())
{
- final String baseDn = entry.getKey();
for (int serverId : entry.getValue())
{
- commission(baseDn, serverId, replicationServer);
+ commission(entry.getKey(), serverId, replicationServer);
}
}
}
@@ -190,16 +190,16 @@
/** {@inheritDoc} */
@Override
- public Set<Integer> getDomainServerIds(String baseDn)
+ public Set<Integer> getDomainServerIds(DN baseDN)
{
- return getDomainMap(baseDn).keySet();
+ return getDomainMap(baseDN).keySet();
}
/** {@inheritDoc} */
@Override
- public long getCount(String baseDn, int serverId, CSN from, CSN to)
+ public long getCount(DN baseDN, int serverId, CSN from, CSN to)
{
- DbHandler dbHandler = getDbHandler(baseDn, serverId);
+ DbHandler dbHandler = getDbHandler(baseDN, serverId);
if (dbHandler != null)
{
return dbHandler.getCount(from, to);
@@ -209,10 +209,10 @@
/** {@inheritDoc} */
@Override
- public long getDomainChangesCount(String baseDn)
+ public long getDomainChangesCount(DN baseDN)
{
long entryCount = 0;
- for (DbHandler dbHandler : getDomainMap(baseDn).values())
+ for (DbHandler dbHandler : getDomainMap(baseDN).values())
{
entryCount += dbHandler.getChangesCount();
}
@@ -221,9 +221,9 @@
/** {@inheritDoc} */
@Override
- public void shutdownDomain(String baseDn)
+ public void shutdownDomain(DN baseDN)
{
- shutdownDbHandlers(getDomainMap(baseDn));
+ shutdownDbHandlers(getDomainMap(baseDN));
}
private void shutdownDbHandlers(Map<Integer, DbHandler> domainMap)
@@ -240,9 +240,9 @@
/** {@inheritDoc} */
@Override
- public Map<Integer, CSN> getDomainFirstCSNs(String baseDn)
+ public Map<Integer, CSN> getDomainFirstCSNs(DN baseDN)
{
- final Map<Integer, DbHandler> domainMap = getDomainMap(baseDn);
+ final Map<Integer, DbHandler> domainMap = getDomainMap(baseDN);
final Map<Integer, CSN> results =
new HashMap<Integer, CSN>(domainMap.size());
for (DbHandler dbHandler : domainMap.values())
@@ -254,9 +254,9 @@
/** {@inheritDoc} */
@Override
- public Map<Integer, CSN> getDomainLastCSNs(String baseDn)
+ public Map<Integer, CSN> getDomainLastCSNs(DN baseDN)
{
- final Map<Integer, DbHandler> domainMap = getDomainMap(baseDn);
+ final Map<Integer, DbHandler> domainMap = getDomainMap(baseDN);
final Map<Integer, CSN> results =
new HashMap<Integer, CSN>(domainMap.size());
for (DbHandler dbHandler : domainMap.values())
@@ -268,9 +268,9 @@
/** {@inheritDoc} */
@Override
- public void clearDomain(String baseDn)
+ public void clearDomain(DN baseDN)
{
- final Map<Integer, DbHandler> domainMap = getDomainMap(baseDn);
+ final Map<Integer, DbHandler> domainMap = getDomainMap(baseDN);
synchronized (domainMap)
{
for (DbHandler dbHandler : domainMap.values())
@@ -294,7 +294,7 @@
try
{
- dbEnv.clearGenerationId(baseDn);
+ dbEnv.clearGenerationId(baseDN);
}
catch (Exception ignored)
{
@@ -320,10 +320,10 @@
/** {@inheritDoc} */
@Override
- public long getDomainLatestTrimDate(String baseDn)
+ public long getDomainLatestTrimDate(DN baseDN)
{
long latest = 0;
- for (DbHandler dbHandler : getDomainMap(baseDn).values())
+ for (DbHandler dbHandler : getDomainMap(baseDN).values())
{
if (latest == 0 || latest < dbHandler.getLatestTrimDate())
{
@@ -335,9 +335,9 @@
/** {@inheritDoc} */
@Override
- public CSN getCSNAfter(String baseDn, int serverId, CSN startAfterCSN)
+ public CSN getCSNAfter(DN baseDN, int serverId, CSN startAfterCSN)
{
- final DbHandler dbHandler = getDbHandler(baseDn, serverId);
+ final DbHandler dbHandler = getDbHandler(baseDN, serverId);
ReplicaDBCursor cursor = null;
try
@@ -407,10 +407,10 @@
/** {@inheritDoc} */
@Override
- public ReplicaDBCursor getCursorFrom(String baseDn, int serverId,
+ public ReplicaDBCursor getCursorFrom(DN baseDN, int serverId,
CSN startAfterCSN)
{
- DbHandler dbHandler = getDbHandler(baseDn, serverId);
+ DbHandler dbHandler = getDbHandler(baseDN, serverId);
if (dbHandler == null)
{
return null;
@@ -437,11 +437,11 @@
/** {@inheritDoc} */
@Override
- public boolean publishUpdateMsg(String baseDn, int serverId,
+ public boolean publishUpdateMsg(DN baseDN, int serverId,
UpdateMsg updateMsg) throws ChangelogException
{
final Pair<DbHandler, Boolean> pair =
- getOrCreateDbHandler(baseDn, serverId, replicationServer);
+ getOrCreateDbHandler(baseDN, serverId, replicationServer);
final DbHandler dbHandler = pair.getFirst();
final boolean wasCreated = pair.getSecond();
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java
index fad6571..c50b535 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDB.java
@@ -40,6 +40,7 @@
import org.opends.server.replication.server.ReplicationServer;
import org.opends.server.replication.server.ReplicationServerDomain;
import org.opends.server.replication.server.changelog.api.ChangelogException;
+import org.opends.server.types.DN;
import org.opends.server.util.StaticUtils;
import com.sleepycat.je.*;
@@ -65,7 +66,7 @@
private ReplicationDbEnv dbenv;
private ReplicationServer replicationServer;
private int serverId;
- private String baseDn;
+ private DN baseDN;
/**
* The lock used to provide exclusive access to the thread that close the db
@@ -117,25 +118,24 @@
* Creates a new database or open existing database that will be used
* to store and retrieve changes from an LDAP server.
* @param serverId The identifier of the LDAP server.
- * @param baseDn The baseDn of the replication domain.
+ * @param baseDN The baseDN of the replication domain.
* @param replicationServer The ReplicationServer that needs to be shutdown.
* @param dbenv The Db environment to use to create the db.
* @throws ChangelogException If a database problem happened.
*/
- public ReplicationDB(int serverId, String baseDn,
- ReplicationServer replicationServer,
- ReplicationDbEnv dbenv)
- throws ChangelogException
+ public ReplicationDB(int serverId, DN baseDN,
+ ReplicationServer replicationServer, ReplicationDbEnv dbenv)
+ throws ChangelogException
{
this.serverId = serverId;
- this.baseDn = baseDn;
+ this.baseDN = baseDN;
this.dbenv = dbenv;
this.replicationServer = replicationServer;
// Get or create the associated ReplicationServerDomain and Db.
final ReplicationServerDomain domain =
- replicationServer.getReplicationServerDomain(baseDn, true);
- db = dbenv.getOrAddDb(serverId, baseDn, domain.getGenerationId());
+ replicationServer.getReplicationServerDomain(baseDN, true);
+ db = dbenv.getOrAddDb(serverId, baseDN, domain.getGenerationId());
intializeCounters();
@@ -527,7 +527,7 @@
@Override
public String toString()
{
- return serverId + baseDn;
+ return serverId + " " + baseDN.toNormalizedString();
}
/**
@@ -876,7 +876,7 @@
String dbName = db.getDatabaseName();
// Clears the reference to this serverID
- dbenv.clearServerId(baseDn, serverId);
+ dbenv.clearServerId(baseDN, serverId);
// Closing is requested by the Berkeley DB before truncate
db.close();
@@ -886,7 +886,7 @@
dbenv.clearDb(dbName);
// RE-create the db
- db = dbenv.getOrAddDb(serverId, baseDn, -1);
+ db = dbenv.getOrAddDb(serverId, baseDN, -1);
}
catch(Exception e)
{
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java
index 4f1f166..8db0837 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java
@@ -37,6 +37,8 @@
import org.opends.server.replication.server.ChangelogState;
import org.opends.server.replication.server.ReplicationServer;
import org.opends.server.replication.server.changelog.api.ChangelogException;
+import org.opends.server.types.DN;
+import org.opends.server.types.DirectoryException;
import com.sleepycat.je.*;
@@ -190,29 +192,29 @@
final String stringData = toString(data.getData());
if (debugEnabled())
- debug("read (" + GENERATION_ID_TAG + " generationId baseDn) OR "
+ debug("read (" + GENERATION_ID_TAG + " generationId baseDN) OR "
+ "(serverId baseDN): " + stringData);
final String[] str = stringData.split(FIELD_SEPARATOR, 3);
if (str[0].equals(GENERATION_ID_TAG))
{
long generationId = toLong(str[1]);
- String baseDn = str[2];
+ DN baseDN = DN.decode(str[2]);
if (debugEnabled())
- debug("has read baseDn=" + baseDn + " generationId=" +generationId);
+ debug("has read baseDN=" + baseDN + " generationId=" +generationId);
- result.setDomainGenerationId(baseDn, generationId);
+ result.setDomainGenerationId(baseDN, generationId);
}
else
{
int serverId = toInt(str[0]);
- String baseDn = str[1];
+ DN baseDN = DN.decode(str[1]);
if (debugEnabled())
- debug("has read: baseDn=" + baseDn + " serverId=" + serverId);
+ debug("has read: baseDN=" + baseDN + " serverId=" + serverId);
- result.addServerIdToDomain(serverId, baseDn);
+ result.addServerIdToDomain(serverId, baseDN);
}
status = cursor.getNext(key, data, LockMode.DEFAULT);
@@ -224,6 +226,10 @@
{
throw new ChangelogException(e);
}
+ catch (DirectoryException e)
+ {
+ throw new ChangelogException(e);
+ }
finally
{
close(cursor);
@@ -290,37 +296,37 @@
/**
* Finds or creates the database used to store changes from the server with
- * the given serverId and the given baseDn.
+ * the given serverId and the given baseDN.
*
* @param serverId
* The server id that identifies the server.
- * @param baseDn
- * The baseDn that identifies the domain.
+ * @param baseDN
+ * The baseDN that identifies the domain.
* @param generationId
* The generationId associated to this domain.
* @return the Database.
* @throws ChangelogException
* in case of underlying Exception.
*/
- public Database getOrAddDb(int serverId, String baseDn, long generationId)
+ public Database getOrAddDb(int serverId, DN baseDN, long generationId)
throws ChangelogException
{
if (debugEnabled())
- debug("ReplicationDbEnv.getOrAddDb(" + serverId + ", " + baseDn + ", "
+ debug("ReplicationDbEnv.getOrAddDb(" + serverId + ", " + baseDN + ", "
+ generationId + ")");
try
{
// JNR: redundant info is stored between the key and data down below.
// It is probably ok since "changelogstate" DB does not receive a high
// volume of inserts.
- final String serverIdToBaseDn = buildServerIdKey(baseDn, serverId);
+ final String serverIdToBaseDn = buildServerIdKey(baseDN, serverId);
// Opens the DB for the changes received from this server on this domain.
Database db = openDatabase(serverIdToBaseDn);
putInChangelogStateDBIfNotExist(serverIdToBaseDn, serverIdToBaseDn);
- putInChangelogStateDBIfNotExist(buildGenIdKey(baseDn),
- buildGenIdData(baseDn, generationId));
+ putInChangelogStateDBIfNotExist(buildGenIdKey(baseDN),
+ buildGenIdData(baseDN, generationId));
return db;
}
catch (RuntimeException e)
@@ -329,20 +335,20 @@
}
}
- private String buildGenIdKey(String baseDn)
+ private String buildGenIdKey(DN baseDN)
{
- return GENERATION_ID_TAG + FIELD_SEPARATOR + baseDn;
+ return GENERATION_ID_TAG + FIELD_SEPARATOR + baseDN.toNormalizedString();
}
- private String buildServerIdKey(String baseDn, int serverId)
+ private String buildServerIdKey(DN baseDN, int serverId)
{
- return serverId + FIELD_SEPARATOR + baseDn;
+ return serverId + FIELD_SEPARATOR + baseDN.toNormalizedString();
}
- private String buildGenIdData(String baseDn, long generationId)
+ private String buildGenIdData(DN baseDN, long generationId)
{
return GENERATION_ID_TAG + FIELD_SEPARATOR + generationId + FIELD_SEPARATOR
- + baseDn;
+ + baseDN.toNormalizedString();
}
private void putInChangelogStateDBIfNotExist(String keyString,
@@ -420,31 +426,31 @@
}
/**
- * Clears the provided generationId associated to the provided baseDn from the
+ * Clears the provided generationId associated to the provided baseDN from the
* state Db.
*
- * @param baseDn
- * The baseDn for which the generationID must be cleared.
+ * @param baseDN
+ * The baseDN for which the generationID must be cleared.
*/
- public void clearGenerationId(String baseDn)
+ public void clearGenerationId(DN baseDN)
{
- deleteFromChangelogStateDB(buildGenIdKey(baseDn),
- "clearGenerationId(baseDN=" + baseDn + ")");
+ deleteFromChangelogStateDB(buildGenIdKey(baseDN),
+ "clearGenerationId(baseDN=" + baseDN + ")");
}
/**
- * Clears the provided serverId associated to the provided baseDn from the
+ * Clears the provided serverId associated to the provided baseDN from the
* state Db.
*
- * @param baseDn
- * The baseDn for which the generationID must be cleared.
+ * @param baseDN
+ * The baseDN for which the serverId must be cleared.
* @param serverId
* The serverId to remove from the Db.
*/
- public void clearServerId(String baseDn, int serverId)
+ public void clearServerId(DN baseDN, int serverId)
{
- deleteFromChangelogStateDB(buildServerIdKey(baseDn, serverId),
- "clearServerId(baseDN=" + baseDn + " , serverId=" + serverId + ")");
+ deleteFromChangelogStateDB(buildServerIdKey(baseDN, serverId),
+ "clearServerId(baseDN=" + baseDN + " , serverId=" + serverId + ")");
}
private void deleteFromChangelogStateDB(String keyString,
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 2195c79..e1a7a00 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
@@ -45,6 +45,7 @@
import org.opends.server.replication.common.*;
import org.opends.server.replication.plugin.MultimasterReplication;
import org.opends.server.replication.protocol.*;
+import org.opends.server.types.DN;
import org.opends.server.types.DebugLogLevel;
import org.opends.server.util.ServerConstants;
@@ -79,7 +80,7 @@
private volatile String replicationServer = NO_CONNECTED_SERVER;
private volatile Session session = null;
private final ServerState state;
- private final String baseDn;
+ private final DN baseDN;
private final int serverId;
private Semaphore sendWindow;
private int maxSendWindow;
@@ -192,9 +193,9 @@
* @param replicationDomain The replication domain that is creating us.
* @param state The ServerState that should be used by this broker
* when negotiating the session with the replicationServer.
- * @param baseDn The base DN that should be used by this broker
+ * @param baseDN The base DN that should be used by this broker
* when negotiating the session with the replicationServer.
- * @param serverID2 The server ID that should be used by this broker
+ * @param serverId The server ID that should be used by this broker
* when negotiating the session with the replicationServer.
* @param window The size of the send and receive window to use.
* @param generationId The generationId for the server associated to the
@@ -208,14 +209,14 @@
* or zero if no CSN heartbeat should be sent.
*/
public ReplicationBroker(ReplicationDomain replicationDomain,
- ServerState state, String baseDn, int serverID2, int window,
+ ServerState state, DN baseDN, int serverId, int window,
long generationId, long heartbeatInterval,
ReplSessionSecurity replSessionSecurity, byte groupId,
long changeTimeHeartbeatInterval)
{
this.domain = replicationDomain;
- this.baseDn = baseDn;
- this.serverId = serverID2;
+ this.baseDN = baseDN;
+ this.serverId = serverId;
this.state = state;
this.protocolVersion = ProtocolVersion.getCurrentVersion();
this.replSessionSecurity = replSessionSecurity;
@@ -245,7 +246,7 @@
{
shutdown = false;
this.rcvWindow = this.maxRcvWindow;
- this.connect();
+ connect();
}
}
@@ -269,7 +270,7 @@
}
this.rcvWindow = this.maxRcvWindow;
- this.connect();
+ connect();
}
}
@@ -779,8 +780,8 @@
private void connect()
{
- if (this.baseDn.compareToIgnoreCase(
- ServerConstants.DN_EXTERNAL_CHANGELOG_ROOT) == 0)
+ if (this.baseDN.toNormalizedString().equalsIgnoreCase(
+ ServerConstants.DN_EXTERNAL_CHANGELOG_ROOT))
{
connectAsECL();
} else
@@ -964,14 +965,14 @@
|| (electedRsInfo.getGenerationId() == -1))
{
Message message = NOTE_NOW_FOUND_SAME_GENERATION_CHANGELOG
- .get(serverId, rsServerId, baseDn,
+ .get(serverId, rsServerId, baseDN.toNormalizedString(),
session.getReadableRemoteAddress(),
getGenerationID());
logError(message);
} else
{
Message message = WARN_NOW_FOUND_BAD_GENERATION_CHANGELOG
- .get(serverId, rsServerId, baseDn,
+ .get(serverId, rsServerId, baseDN.toNormalizedString(),
session.getReadableRemoteAddress(),
getGenerationID(),
electedRsInfo.getGenerationId());
@@ -995,15 +996,14 @@
{
Message message = WARN_COULD_NOT_FIND_CHANGELOG.get(
serverId,
- baseDn,
- collectionToString(replicationServerInfos.keySet(),
- ", "));
+ baseDN.toNormalizedString(),
+ collectionToString(replicationServerInfos.keySet(), ", "));
logError(message);
}
else
{
Message message = WARN_NO_AVAILABLE_CHANGELOGS.get(
- serverId, baseDn);
+ serverId, baseDN.toNormalizedString());
logError(message);
}
}
@@ -1082,11 +1082,10 @@
warn user and start heartbeat monitor to recover when a server
with the right group id shows up.
*/
- Message message =
- WARN_CONNECTED_TO_SERVER_WITH_WRONG_GROUP_ID.get(Byte
- .toString(groupId), Integer.toString(rsServerId), rsInfo
- .getServerURL(), Byte.toString(getRsGroupId()), baseDn, Integer
- .toString(serverId));
+ Message message = WARN_CONNECTED_TO_SERVER_WITH_WRONG_GROUP_ID.get(
+ Byte.toString(groupId), Integer.toString(rsServerId),
+ rsInfo.getServerURL(), Byte.toString(getRsGroupId()),
+ baseDN.toNormalizedString(), Integer.toString(serverId));
logError(message);
}
startRSHeartBeatMonitoring();
@@ -1098,10 +1097,9 @@
}
catch (Exception e)
{
- Message message =
- ERR_COMPUTING_FAKE_OPS.get(baseDn, rsInfo.getServerURL(), e
- .getLocalizedMessage()
- + stackTraceToSingleLineString(e));
+ Message message = ERR_COMPUTING_FAKE_OPS.get(
+ baseDN.toNormalizedString(), rsInfo.getServerURL(),
+ e.getLocalizedMessage() + " " + stackTraceToSingleLineString(e));
logError(message);
}
finally
@@ -1149,7 +1147,7 @@
if (debugEnabled())
{
- TRACER.debugInfo("RB for dn " + baseDn + " and with server id "
+ TRACER.debugInfo("RB for dn " + baseDN + " and with server id "
+ serverId + " computed " + nChanges + " changes late.");
}
@@ -1211,6 +1209,8 @@
String port = server.substring(separator + 1);
String hostname = server.substring(0, separator);
+ final String baseDn = this.baseDN.toNormalizedString();
+
Session localSession = null;
Socket socket = null;
boolean hasConnected = false;
@@ -1218,9 +1218,7 @@
try
{
- /*
- * Open a socket connection to the next candidate.
- */
+ // Open a socket connection to the next candidate.
int intPort = Integer.parseInt(port);
InetSocketAddress serverAddr = new InetSocketAddress(
InetAddress.getByName(hostname), intPort);
@@ -1239,15 +1237,15 @@
StartMsg serverStartMsg;
if (!isECL)
{
- serverStartMsg = new ServerStartMsg(serverId, url, baseDn,
- maxRcvWindow, heartbeatInterval, state,
- this.getGenerationID(), isSslEncryption, groupId);
+ serverStartMsg = new ServerStartMsg(serverId, url,
+ baseDN.toNormalizedString(), maxRcvWindow, heartbeatInterval, state,
+ getGenerationID(), isSslEncryption, groupId);
}
else
{
serverStartMsg = new ServerStartECLMsg(url, 0, 0, 0, 0,
maxRcvWindow, heartbeatInterval, state,
- this.getGenerationID(), isSslEncryption, groupId);
+ getGenerationID(), isSslEncryption, groupId);
}
localSession.publish(serverStartMsg);
@@ -1256,7 +1254,7 @@
ReplicationMsg msg = localSession.receive();
if (debugEnabled())
{
- TRACER.debugInfo("In RB for " + baseDn + "\nRB HANDSHAKE SENT:\n"
+ TRACER.debugInfo("In RB for " + baseDN + "\nRB HANDSHAKE SENT:\n"
+ serverStartMsg + "\nAND RECEIVED:\n" + msg);
}
@@ -1266,10 +1264,9 @@
// Sanity check
String repDn = replServerInfo.getBaseDn();
- if (!this.baseDn.equals(repDn))
+ if (!baseDn.equals(repDn))
{
- errorMessage = ERR_DS_DN_DOES_NOT_MATCH.get(repDn,
- this.baseDn);
+ errorMessage = ERR_DS_DN_DOES_NOT_MATCH.get(repDn, baseDn);
return null;
}
@@ -1324,22 +1321,8 @@
{
if (!hasConnected || !keepConnection)
{
- if (localSession != null)
- {
- localSession.close();
- }
-
- if (socket != null)
- {
- try
- {
- socket.close();
- }
- catch (IOException e)
- {
- // Ignore.
- }
- }
+ close(localSession);
+ close(socket);
}
if (!hasConnected && errorMessage != null)
@@ -1372,13 +1355,9 @@
* reply message from the replication server.
*
* @param server Server we are connecting with.
- * @return The ReplServerStartMsg the server replied. Null if could not
- * get an answer.
*/
- private TopologyMsg performECLPhaseTwoHandshake(String server)
+ private void performECLPhaseTwoHandshake(String server)
{
- TopologyMsg topologyMsg = null;
-
try
{
// Send our Start Session
@@ -1386,32 +1365,24 @@
startECLSessionMsg.setOperationId("-1");
session.publish(startECLSessionMsg);
- /* FIXME:ECL In the handshake phase two, should RS send back a topo msg ?
- * Read the TopologyMsg that should come back.
- topologyMsg = (TopologyMsg) session.receive();
- */
+ // FIXME ECL In the handshake phase two, should RS send back a topo msg ?
if (debugEnabled())
{
- TRACER.debugInfo("In RB for " + baseDn + "\nRB HANDSHAKE SENT:\n"
+ TRACER.debugInfo("In RB for " + baseDN + "\nRB HANDSHAKE SENT:\n"
+ startECLSessionMsg);
}
// Alright set the timeout to the desired value
session.setSoTimeout(timeout);
connected = true;
-
} catch (Exception e)
{
Message message = WARN_EXCEPTION_STARTING_SESSION_PHASE.get(serverId,
- server, baseDn, stackTraceToSingleLineString(e));
+ server, baseDN.toNormalizedString(), stackTraceToSingleLineString(e));
logError(message);
setSession(null);
-
- // Be sure to return null.
- topologyMsg = null;
}
- return topologyMsg;
}
/**
@@ -1464,7 +1435,7 @@
if (debugEnabled())
{
- TRACER.debugInfo("In RB for " + baseDn + "\nRB HANDSHAKE SENT:\n"
+ TRACER.debugInfo("In RB for " + baseDN + "\nRB HANDSHAKE SENT:\n"
+ startSessionMsg + "\nAND RECEIVED:\n" + topologyMsg);
}
@@ -1474,7 +1445,7 @@
} catch (Exception e)
{
Message message = WARN_EXCEPTION_STARTING_SESSION_PHASE.get(serverId,
- server, baseDn, stackTraceToSingleLineString(e));
+ server, baseDN.toNormalizedString(), stackTraceToSingleLineString(e));
logError(message);
setSession(null);
@@ -2118,8 +2089,8 @@
// Start a heartbeat monitor thread.
if (heartbeatInterval > 0)
{
- heartbeatMonitor = new HeartbeatMonitor(getServerId(),
- getRsServerId(), baseDn, session, heartbeatInterval);
+ heartbeatMonitor = new HeartbeatMonitor(getServerId(), getRsServerId(),
+ baseDN.toNormalizedString(), session, heartbeatInterval);
heartbeatMonitor.start();
}
}
@@ -2185,8 +2156,8 @@
catch (Exception e)
{
MessageBuilder mb = new MessageBuilder();
- mb.append(NOTE_EXCEPTION_RESTARTING_SESSION.get(baseDn,
- e.getLocalizedMessage()));
+ mb.append(NOTE_EXCEPTION_RESTARTING_SESSION.get(
+ baseDN.toNormalizedString(), e.getLocalizedMessage()));
mb.append(stackTraceToSingleLineString(e));
logError(mb.toMessage());
}
@@ -2210,7 +2181,7 @@
if (debugEnabled())
{
TRACER.debugInfo(this + " end restart : connected=" + connected
- + " with RSid=" + this.getRsServerId() + " genid=" + this.generationID);
+ + " with RSid=" + getRsServerId() + " genid=" + this.generationID);
}
}
@@ -2476,17 +2447,14 @@
}
else if (msg instanceof StopMsg)
{
- /*
- * RS performs a proper disconnection
- */
- Message message = WARN_REPLICATION_SERVER_PROPERLY_DISCONNECTED
- .get(replicationServerID,
- savedSession.getReadableRemoteAddress(),
- serverId, baseDn);
+ // RS performs a proper disconnection
+ Message message = WARN_REPLICATION_SERVER_PROPERLY_DISCONNECTED.get(
+ replicationServerID, savedSession.getReadableRemoteAddress(),
+ serverId, baseDN.toNormalizedString());
logError(message);
// Try to find a suitable RS
- this.reStart(savedSession, true);
+ reStart(savedSession, true);
}
else if (msg instanceof MonitorMsg)
{
@@ -2547,14 +2515,15 @@
message = NOTE_LOAD_BALANCE_REPLICATION_SERVER.get(
serverId, replicationServerID,
savedSession.getReadableRemoteAddress(),
- baseDn);
+ baseDN.toNormalizedString());
}
else
{
message = NOTE_NEW_BEST_REPLICATION_SERVER.get(
serverId, replicationServerID,
savedSession.getReadableRemoteAddress(),
- bestServerInfo.getServerId(), baseDn);
+ bestServerInfo.getServerId(),
+ baseDN.toNormalizedString());
}
logError(message);
reStart(true);
@@ -2586,12 +2555,10 @@
final Session tmpSession = session;
if (tmpSession == null || !tmpSession.closeInitiated())
{
- /*
- * We did not initiate the close on our side, log an error message.
- */
- Message message = WARN_REPLICATION_SERVER_BADLY_DISCONNECTED
- .get(serverId, baseDn, replicationServerID,
- savedSession.getReadableRemoteAddress());
+ // We did not initiate the close on our side, log an error message.
+ Message message = WARN_REPLICATION_SERVER_BADLY_DISCONNECTED.get(
+ serverId, baseDN.toNormalizedString(), replicationServerID,
+ savedSession.getReadableRemoteAddress());
logError(message);
}
@@ -2678,7 +2645,7 @@
if (debugEnabled())
TRACER.debugInfo("ReplicationBroker " + serverId + " is stopping and will"
+ " close the connection to replication server " + rsServerId + " for"
- + " domain " + baseDn);
+ + " domain " + baseDN);
synchronized (startStopLock)
{
@@ -2767,10 +2734,8 @@
if (connected)
{
return sendWindow.availablePermits();
- } else
- {
- return 0;
}
+ return 0;
}
/**
@@ -2864,9 +2829,9 @@
} catch (IOException ex)
{
Message message = ERR_EXCEPTION_SENDING_CS.get(
- baseDn,
+ baseDN.toNormalizedString(),
Integer.toString(serverId),
- ex.getLocalizedMessage() + stackTraceToSingleLineString(ex));
+ ex.getLocalizedMessage() + " " + stackTraceToSingleLineString(ex));
logError(message);
}
}
@@ -3022,10 +2987,9 @@
// Start a CSN heartbeat thread.
if (changeTimeHeartbeatSendInterval > 0)
{
- String threadName = "Replica DS("
- + this.getServerId()
+ String threadName = "Replica DS(" + getServerId()
+ ") change time heartbeat publisher for domain \""
- + this.baseDn + "\" to RS(" + this.getRsServerId()
+ + this.baseDN + "\" to RS(" + getRsServerId()
+ ") at " + session.getReadableRemoteAddress();
ctHeartbeatPublisherThread = new CTHeartbeatPublisherThread(
diff --git a/opendj-sdk/opends/src/server/org/opends/server/replication/service/ReplicationDomain.java b/opendj-sdk/opends/src/server/org/opends/server/replication/service/ReplicationDomain.java
index bffdd04..577c766 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/replication/service/ReplicationDomain.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/replication/service/ReplicationDomain.java
@@ -50,6 +50,7 @@
import org.opends.server.tasks.InitializeTargetTask;
import org.opends.server.tasks.InitializeTask;
import org.opends.server.types.Attribute;
+import org.opends.server.types.DN;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.ResultCode;
@@ -79,7 +80,7 @@
* and which can start receiving updates.
* <p>
* When updates are received the Replication Service calls the
- * {@link #processUpdate(UpdateMsg)} method.
+ * {@link #processUpdate(UpdateMsg, AtomicBoolean)} method.
* ReplicationDomain implementation should implement the appropriate code
* for replaying the update on the local repository.
* When fully done the subclass must call the
@@ -121,7 +122,7 @@
* All Replication Domain using this baseDN will be connected
* through the Replication Service.
*/
- private final String baseDN;
+ private final DN baseDN;
/**
* The identifier of this Replication Domain inside the
@@ -161,8 +162,8 @@
/**
* A Map used to store all the ReplicationDomains created on this server.
*/
- private static Map<String, ReplicationDomain> domains =
- new HashMap<String, ReplicationDomain>();
+ private static Map<DN, ReplicationDomain> domains =
+ new HashMap<DN, ReplicationDomain>();
/*
* Assured mode properties
@@ -335,7 +336,7 @@
* is participating to a given Replication Domain.
* @param initWindow Window used during initialization.
*/
- public ReplicationDomain(String baseDN, int serverID,int initWindow)
+ public ReplicationDomain(DN baseDN, int serverID, int initWindow)
{
this.baseDN = baseDN;
this.serverID = serverID;
@@ -358,8 +359,7 @@
* is participating to a given Replication Domain.
* @param serverState The serverState to use
*/
- public ReplicationDomain(String baseDN, int serverID,
- ServerState serverState)
+ public ReplicationDomain(DN baseDN, int serverID, ServerState serverState)
{
this.baseDN = baseDN;
this.serverID = serverID;
@@ -397,7 +397,7 @@
if (!isValidInitialStatus(initStatus))
{
Message msg = ERR_DS_INVALID_INIT_STATUS.get(initStatus.toString(),
- baseDN, Integer.toString(serverID));
+ getBaseDNString(), Integer.toString(serverID));
logError(msg);
} else
{
@@ -426,7 +426,7 @@
if (event == StatusMachineEvent.INVALID_EVENT)
{
Message msg = ERR_DS_INVALID_REQUESTED_STATUS.get(reqStatus.toString(),
- baseDN, Integer.toString(serverID));
+ getBaseDNString(), Integer.toString(serverID));
logError(msg);
return;
}
@@ -482,13 +482,23 @@
}
/**
+ * Returns the base DN of this ReplicationDomain.
+ *
+ * @return The base DN of this ReplicationDomain
+ */
+ public DN getBaseDN()
+ {
+ return baseDN;
+ }
+
+ /**
* Gets the baseDN of this domain.
*
* @return The baseDN for this domain.
*/
public String getBaseDNString()
{
- return baseDN;
+ return baseDN.toNormalizedString();
}
/**
@@ -943,7 +953,7 @@
requested servers. Log problem
*/
Message errorMsg = NOTE_DS_RECEIVED_ACK_ERROR.get(
- baseDN, Integer.toString(serverID),
+ getBaseDNString(), Integer.toString(serverID),
update.toString(), ack.errorsToString());
logError(errorMsg);
@@ -1387,7 +1397,7 @@
if (serverToInitialize == RoutableMsg.ALL_SERVERS)
{
Message msg = NOTE_FULL_UPDATE_ENGAGED_FOR_REMOTE_START_ALL.get(
- countEntries(), baseDN, serverID);
+ countEntries(), getBaseDNString(), serverID);
logError(msg);
for (DSInfo dsi : getReplicasList())
@@ -1403,7 +1413,7 @@
else
{
Message msg = NOTE_FULL_UPDATE_ENGAGED_FOR_REMOTE_START.get(
- countEntries(), baseDN, serverID, serverToInitialize);
+ countEntries(), getBaseDNString(), serverID, serverToInitialize);
logError(msg);
ieContext.startList.add(serverToInitialize);
@@ -1434,8 +1444,8 @@
// Send start message to the peer
InitializeTargetMsg initTargetMsg = new InitializeTargetMsg(
- baseDN, serverID, serverToInitialize, serverRunningTheTask,
- ieContext.entryCount, initWindow);
+ getBaseDNString(), serverID, serverToInitialize,
+ serverRunningTheTask, ieContext.entryCount, initWindow);
broker.publish(initTargetMsg);
@@ -1457,7 +1467,6 @@
// Notify the peer of the success
DoneMsg doneMsg = new DoneMsg(serverID, initTargetMsg.getDestination());
broker.publish(doneMsg);
-
}
catch(DirectoryException exportException)
{
@@ -1558,14 +1567,14 @@
.getLocalizedMessage() : "";
if (serverToInitialize == RoutableMsg.ALL_SERVERS)
{
- Message msg = NOTE_FULL_UPDATE_ENGAGED_FOR_REMOTE_END_ALL
- .get(baseDN, serverID, cause);
+ Message msg = NOTE_FULL_UPDATE_ENGAGED_FOR_REMOTE_END_ALL.get(
+ getBaseDNString(), serverID, cause);
logError(msg);
}
else
{
Message msg = NOTE_FULL_UPDATE_ENGAGED_FOR_REMOTE_END.get(
- baseDN, serverID, serverToInitialize, cause);
+ getBaseDNString(), serverID, serverToInitialize, cause);
logError(msg);
}
@@ -1922,7 +1931,7 @@
Message errMsg =
Message.raw(Category.SYNC, Severity.NOTICE,
ERR_INIT_EXPORTER_DISCONNECTION.get(
- this.baseDN,
+ getBaseDNString(),
Integer.toString(this.serverID),
Integer.toString(ieContext.importSource)));
if (ieContext.getException()==null)
@@ -2200,7 +2209,7 @@
ieContext.initializeTask = initTask;
ieContext.attemptCnt = 0;
ieContext.initReqMsgSent = new InitializeRequestMsg(
- baseDN, serverID, source, this.initWindow);
+ getBaseDNString(), serverID, source, this.initWindow);
// Publish Init request msg
broker.publish(ieContext.initReqMsgSent);
@@ -2261,7 +2270,7 @@
{
// Log starting
Message msg = NOTE_FULL_UPDATE_ENGAGED_FROM_REMOTE_START.get(
- baseDN, initTargetMsgReceived.getSenderID(), serverID);
+ getBaseDNString(), initTargetMsgReceived.getSenderID(), serverID);
logError(msg);
// Go into full update status
@@ -2395,7 +2404,7 @@
finally
{
Message msg = NOTE_FULL_UPDATE_ENGAGED_FROM_REMOTE_END.get(
- baseDN, initTargetMsgReceived.getSenderID(), serverID,
+ getBaseDNString(), initTargetMsgReceived.getSenderID(), serverID,
(ieContext.getException() != null ? ieContext
.getException().getLocalizedMessage() : ""));
logError(msg);
@@ -2436,7 +2445,7 @@
if (newStatus == ServerStatus.INVALID_STATUS)
{
- Message msg = ERR_DS_CANNOT_CHANGE_STATUS.get(baseDN,
+ Message msg = ERR_DS_CANNOT_CHANGE_STATUS.get(getBaseDNString(),
Integer.toString(serverID), status.toString(), event.toString());
logError(msg);
return;
@@ -2514,10 +2523,8 @@
}
if (!allSet)
{
- ResultCode resultCode = ResultCode.OTHER;
- Message message = ERR_RESET_GENERATION_ID_FAILED.get(baseDN);
- throw new DirectoryException(
- resultCode, message);
+ Message message = ERR_RESET_GENERATION_ID_FAILED.get(getBaseDNString());
+ throw new DirectoryException(ResultCode.OTHER, message);
}
}
@@ -2592,7 +2599,7 @@
if (!isConnected())
{
ResultCode resultCode = ResultCode.OTHER;
- Message message = ERR_RESET_GENERATION_CONN_ERR_ID.get(baseDN,
+ Message message = ERR_RESET_GENERATION_CONN_ERR_ID.get(getBaseDNString(),
Integer.toString(serverID),
Long.toString(genIdMessage.getGenerationId()));
throw new DirectoryException(
@@ -2987,11 +2994,10 @@
* Starts the receiver side of the Replication Service.
* <p>
* After this method has been called, the Replication Service will start
- * calling the {@link #processUpdate(UpdateMsg)}.
+ * calling the {@link #processUpdate(UpdateMsg, AtomicBoolean)}.
* <p>
* This method must be called once and must be called after the
* {@link #startPublishService(Collection, int, long, long)}.
- *
*/
public void startListenService()
{
@@ -3234,8 +3240,8 @@
} else if (assuredMode != AssuredMode.SAFE_DATA_MODE)
{
Message errorMsg = ERR_DS_UNKNOWN_ASSURED_MODE.get(
- Integer.toString(serverID), msgAssuredMode.toString(), baseDN,
- msg.toString());
+ Integer.toString(serverID), msgAssuredMode.toString(),
+ getBaseDNString(), msg.toString());
logError(errorMsg);
}
// Nothing to do in Assured safe data mode, only RS ack updates.
@@ -3401,9 +3407,9 @@
* Publish an {@link UpdateMsg} to the Replication Service.
* <p>
* The Replication Service will handle the delivery of this {@link UpdateMsg}
- * to all the participants of this Replication Domain.
- * These members will be receive this {@link UpdateMsg} through a call
- * of the {@link #processUpdate(UpdateMsg)} message.
+ * to all the participants of this Replication Domain. These members will be
+ * receive this {@link UpdateMsg} through a call of the
+ * {@link #processUpdate(UpdateMsg, AtomicBoolean)} message.
*
* @param msg The UpdateMsg that should be pushed.
*/
@@ -3449,8 +3455,8 @@
{
// This exception may only be raised if assured replication is
// enabled
- Message errorMsg = NOTE_DS_ACK_TIMEOUT.get(baseDN, Long.toString(
- assuredTimeout), update.toString());
+ Message errorMsg = NOTE_DS_ACK_TIMEOUT.get(getBaseDNString(),
+ Long.toString(assuredTimeout), update.toString());
logError(errorMsg);
}
}
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java
index dbda94d..eb87cc4 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/GenerationIdTest.java
@@ -28,7 +28,6 @@
package org.opends.server.replication;
import java.io.File;
-import java.net.SocketException;
import java.net.SocketTimeoutException;
import java.util.*;
@@ -88,7 +87,7 @@
private static final int changelog2ID = 12;
private static final int changelog3ID = 13;
- private DN baseDn;
+ private DN baseDN;
private ReplicationBroker broker2 = null;
private ReplicationBroker broker3 = null;
private ReplicationServer replServer1 = null;
@@ -167,7 +166,7 @@
{
super.setUp();
- baseDn = DN.decode(baseDnStr);
+ baseDN = DN.decode(baseDnStr);
updatedEntries = newLDIFEntries();
@@ -181,7 +180,7 @@
"objectclass: ds-task",
"objectclass: ds-task-initialize-remote-replica",
"ds-task-class-name: org.opends.server.tasks.InitializeTargetTask",
- "ds-task-initialize-domain-dn: " + baseDn,
+ "ds-task-initialize-domain-dn: " + baseDN,
"ds-task-initialize-replica-server-id: " + server2ID);
}
@@ -239,17 +238,17 @@
{
return new String[]{
- "dn: " + baseDn + "\n"
+ "dn: " + baseDN + "\n"
+ "objectClass: top\n"
+ "objectClass: organization\n"
+ "entryUUID: 21111111-1111-1111-1111-111111111111\n"
+ "\n",
- "dn: ou=People," + baseDn + "\n"
+ "dn: ou=People," + baseDN + "\n"
+ "objectClass: top\n"
+ "objectClass: organizationalUnit\n"
+ "entryUUID: 21111111-1111-1111-1111-111111111112\n"
+ "\n",
- "dn: cn=Fiona Jensen,ou=people," + baseDn + "\n"
+ "dn: cn=Fiona Jensen,ou=people," + baseDN + "\n"
+ "objectclass: top\n"
+ "objectclass: person\n"
+ "objectclass: organizationalPerson\n"
@@ -260,7 +259,7 @@
+ "telephonenumber: +1 408 555 1212\n"
+ "entryUUID: 21111111-1111-1111-1111-111111111113\n"
+ "\n",
- "dn: cn=Robert Langman,ou=people," + baseDn + "\n"
+ "dn: cn=Robert Langman,ou=people," + baseDN + "\n"
+ "objectclass: top\n"
+ "objectclass: person\n"
+ "objectclass: organizationalPerson\n"
@@ -343,36 +342,26 @@
* @return The new created replication server.
*/
private ReplicationServer createReplicationServer(int changelogId,
- boolean all, String testCase)
+ boolean all, String testCase) throws Exception
{
SortedSet<String> servers = new TreeSet<String>();
- try
+ if (all)
{
- if (all)
- {
- if (changelogId != changelog1ID)
- servers.add("localhost:" + getChangelogPort(changelog1ID));
- if (changelogId != changelog2ID)
- servers.add("localhost:" + getChangelogPort(changelog2ID));
- if (changelogId != changelog3ID)
- servers.add("localhost:" + getChangelogPort(changelog3ID));
- }
- int chPort = getChangelogPort(changelogId);
- String chDir = "generationIdTest"+changelogId+testCase+"Db";
- ReplServerFakeConfiguration conf =
- new ReplServerFakeConfiguration(chPort, chDir, 0, changelogId, 0, 100,
- servers);
- ReplicationServer replicationServer = new ReplicationServer(conf);
- Thread.sleep(1000);
-
- return replicationServer;
-
+ if (changelogId != changelog1ID)
+ servers.add("localhost:" + getChangelogPort(changelog1ID));
+ if (changelogId != changelog2ID)
+ servers.add("localhost:" + getChangelogPort(changelog2ID));
+ if (changelogId != changelog3ID)
+ servers.add("localhost:" + getChangelogPort(changelog3ID));
}
- catch (Exception e)
- {
- fail("createChangelog" + stackTraceToSingleLineString(e));
- }
- return null;
+ int chPort = getChangelogPort(changelogId);
+ String chDir = "generationIdTest" + changelogId + testCase + "Db";
+ ReplServerFakeConfiguration conf =
+ new ReplServerFakeConfiguration(chPort, chDir, 0, changelogId, 0, 100, servers);
+ ReplicationServer replicationServer = new ReplicationServer(conf);
+ Thread.sleep(1000);
+
+ return replicationServer;
}
/**
@@ -380,10 +369,9 @@
* replication Server ID.
* @param changeLogID replication Server ID
*/
- private void connectServer1ToChangelog(int changeLogID)
+ private void connectServer1ToChangelog(int changeLogID) throws Exception
{
// Connect DS to the replicationServer
- try
{
// suffix synchronized
String synchroServerLdif =
@@ -412,8 +400,7 @@
LDAPReplicationDomain doToco=null;
while(waitCo<50)
{
- doToco =
- LDAPReplicationDomain.retrievesReplicationDomain(baseDn);
+ doToco = LDAPReplicationDomain.retrievesReplicationDomain(baseDN);
if (doToco != null && doToco.isConnected())
{
break;
@@ -425,19 +412,13 @@
assertTrue(doToco.isConnected(), "not connected after #attempt="+waitCo);
debugInfo("ReplicationDomain: Import/Export is running ? " + doToco.ieRunning());
}
- catch(Exception e)
- {
- debugInfo("connectToReplServer", e);
- fail("connectToReplServer", e);
- }
}
/**
* Disconnect DS from the replicationServer
*/
- private void disconnectFromReplServer(int changelogID)
+ private void disconnectFromReplServer(int changelogID) throws Exception
{
- try
{
// suffix synchronized
String synchroServerStringDN = "cn=" + testName + ", cn=domains," +
@@ -447,8 +428,7 @@
DN synchroServerDN = DN.decode(synchroServerStringDN);
- Entry ecle;
- ecle = DirectoryServer.getConfigHandler().getEntry(
+ Entry ecle = DirectoryServer.getConfigHandler().getEntry(
DN.decode("cn=external changelog," + synchroServerStringDN));
if (ecle!=null)
{
@@ -468,8 +448,7 @@
int waitCo=0;
while(waitCo<30)
{
- replDomainToDis =
- LDAPReplicationDomain.retrievesReplicationDomain(baseDn);
+ replDomainToDis = LDAPReplicationDomain.retrievesReplicationDomain(baseDN);
Thread.sleep(200);
waitCo++;
}
@@ -481,10 +460,6 @@
debugInfo("disconnectFromReplServer:" + changelogID, e);
}
}
- catch(Exception e)
- {
- fail("disconnectFromReplServer", e);
- }
}
private int getChangelogPort(int changelogID) throws Exception
@@ -499,19 +474,18 @@
protected static final String REPLICATION_GENERATION_ID =
"ds-sync-generation-id";
- private long readGenIdFromSuffixRootEntry()
+ private long readGenIdFromSuffixRootEntry() throws Exception
{
long genId=-1;
- try
{
- Entry resultEntry = getEntry(baseDn, 1000, true);
+ Entry resultEntry = getEntry(baseDN, 1000, true);
if (resultEntry==null)
{
- debugInfo("Entry not found <" + baseDn + ">");
+ debugInfo("Entry not found <" + baseDN + ">");
}
else
{
- debugInfo("Entry found <" + baseDn + ">");
+ debugInfo("Entry found <" + baseDN + ">");
AttributeType synchronizationGenIDType =
DirectoryServer.getAttributeType(REPLICATION_GENERATION_ID);
@@ -529,44 +503,28 @@
}
}
- catch(Exception e)
- {
- fail("Exception raised in readGenId", e);
- }
return genId;
}
- private void performLdifImport()
+ private void performLdifImport() throws Exception
{
- try
- {
- // Create a temporary test LDIF file.
- /*
- A temporary LDIF file containing some test entries.
- */
- File ldifFile = File.createTempFile("import-test", ".ldif");
- String resourcePath = DirectoryServer.getInstanceRoot() + File.separator +
- "config" + File.separator + "MakeLDIF";
- LdifFileWriter.makeLdif(ldifFile.getPath(), resourcePath, template);
+ // Create a temporary test LDIF file.
+ // A temporary LDIF file containing some test entries.
+ File ldifFile = File.createTempFile("import-test", ".ldif");
+ String resourcePath =
+ DirectoryServer.getInstanceRoot() + File.separator + "config"
+ + File.separator + "MakeLDIF";
+ LdifFileWriter.makeLdif(ldifFile.getPath(), resourcePath, template);
- // Launch import of the Ldif file on the memory test backend
- // Note: we do not use a task here as import task does not work on memory
- // backend: it disables then re-enables backend which leads to backend
- // object instance lost and this is not accepttable for a backend with
- // non persistent data
- LDIFImportConfig importConfig =
- new LDIFImportConfig(ldifFile.getAbsolutePath());
+ // Launch import of the Ldif file on the memory test backend
+ // Note: we do not use a task here as import task does not work on memory
+ // backend: it disables then re-enables backend which leads to backend
+ // object instance lost and this is not acceptable for a backend with
+ // non persistent data
+ LDIFImportConfig importConfig = new LDIFImportConfig(ldifFile.getAbsolutePath());
- MemoryBackend memoryBackend =
- (MemoryBackend) DirectoryServer.getBackend(TEST_BACKEND_ID);
- memoryBackend.importLDIF(importConfig);
-
- }
- catch(Exception e)
- {
- fail("Could not perform ldif import on memory test backend: "
- + e.getMessage());
- }
+ MemoryBackend memoryBackend = (MemoryBackend) DirectoryServer.getBackend(TEST_BACKEND_ID);
+ memoryBackend.importLDIF(importConfig);
}
private String createEntry(UUID uid)
@@ -588,7 +546,7 @@
+ "userPassword: password\n" + "initials: AA\n";
}
- static protected ReplicationMsg createAddMsg()
+ static protected ReplicationMsg createAddMsg() throws Exception
{
Entry personWithUUIDEntry = null;
String user1entryUUID;
@@ -619,14 +577,7 @@
+ "userPassword: password\n" + "initials: AA\n"
+ "entryUUID: " + user1entryUUID + "\n";
- try
- {
- personWithUUIDEntry = TestCaseUtils.entryFromLdifString(entryWithUUIDldif);
- }
- catch(Exception e)
- {
- fail(e.getMessage());
- }
+ personWithUUIDEntry = TestCaseUtils.entryFromLdifString(entryWithUUIDldif);
// Create and publish an update message to add an entry.
return new AddMsg(gen.newCSN(),
@@ -710,7 +661,7 @@
debugInfo(testCase + " Expect genId to be set in memory on the replication " +
" server side (not wrote on disk/db since no change occurred).");
- rgenId = replServer1.getGenerationId(baseDn.toNormalizedString());
+ rgenId = replServer1.getGenerationId(baseDN);
assertEquals(rgenId, EMPTY_DN_GENID);
// Clean for next test
@@ -733,34 +684,19 @@
assertTrue(genId != EMPTY_DN_GENID);
debugInfo(testCase + " Test that the generationId is set on RS1");
- rgenId = replServer1.getGenerationId(baseDn.toNormalizedString());
+ rgenId = replServer1.getGenerationId(baseDN);
assertEquals(genId, rgenId);
//===========================================================
debugInfo(testCase + " ** TEST ** DS2 connection to RS1 with bad genID");
- try
- {
- broker2 = openReplicationSession(baseDn,
- server2ID, 100, getChangelogPort(changelog1ID),
- 1000, !emptyOldChanges, genId+1);
- }
- catch(SocketException se)
- {
- fail("DS2 with bad genID failed to connect to RS1.");
- }
+ broker2 = openReplicationSession(baseDN, server2ID, 100,
+ getChangelogPort(changelog1ID), 1000, !emptyOldChanges, genId+1);
//===========================================================
debugInfo(testCase + " ** TEST ** DS3 connection to RS1 with good genID");
- try
- {
- broker3 = openReplicationSession(baseDn,
- server3ID, 100, getChangelogPort(changelog1ID), 1000, !emptyOldChanges, genId);
- }
- catch(SocketException se)
- {
- fail("Broker connection is expected to be accepted.");
- }
+ broker3 = openReplicationSession(baseDN, server3ID, 100,
+ getChangelogPort(changelog1ID), 1000, !emptyOldChanges, genId);
//===========================================================
debugInfo(testCase + " ** TEST ** DS2 (bad genID) changes must be ignored.");
@@ -790,21 +726,13 @@
checkChangelogSize(1);
// Verify that DS3 receives this change
- try
- {
- ReplicationMsg msg = broker3.receive();
- debugInfo("Broker 3 received expected update msg" + msg);
- }
- catch(SocketTimeoutException e)
- {
- fail("Update message is supposed to be received.");
- }
+ ReplicationMsg msg = broker3.receive();
+ debugInfo("Broker 3 received expected update msg" + msg);
//===========================================================
debugInfo(testCase + " ** TEST ** Persistence of the generation ID in RS1");
- long genIdBeforeShut =
- replServer1.getGenerationId(baseDn.toNormalizedString());
+ long genIdBeforeShut = replServer1.getGenerationId(baseDN);
debugInfo("Shutdown replServer1");
broker2.stop();
@@ -824,8 +752,7 @@
debugInfo("Delay to allow DS to reconnect to replServer1");
- long genIdAfterRestart =
- replServer1.getGenerationId(baseDn.toNormalizedString());
+ long genIdAfterRestart = replServer1.getGenerationId(baseDN);
debugInfo("Aft restart / replServer.genId=" + genIdAfterRestart);
assertTrue(replServer1!=null, "Replication server creation failed.");
assertTrue(genIdBeforeShut == genIdAfterRestart,
@@ -841,22 +768,15 @@
//===============================================================
debugInfo(testCase + " ** TEST ** Import with new data set + reset will"+
" spread a new gen ID on the topology, verify DS1 and RS1");
- try
- {
- debugInfo("Create again broker2");
- broker2 = openReplicationSession(baseDn,
- server2ID, 100, getChangelogPort(changelog1ID), 1000, emptyOldChanges, genId);
- assertTrue(broker2.isConnected(), "Broker2 failed to connect to replication server");
+ debugInfo("Create again broker2");
+ broker2 = openReplicationSession(baseDN,
+ server2ID, 100, getChangelogPort(changelog1ID), 1000, emptyOldChanges, genId);
+ assertTrue(broker2.isConnected(), "Broker2 failed to connect to replication server");
- debugInfo("Create again broker3");
- broker3 = openReplicationSession(baseDn,
- server3ID, 100, getChangelogPort(changelog1ID), 1000, emptyOldChanges, genId);
- assertTrue(broker3.isConnected(), "Broker3 failed to connect to replication server");
- }
- catch(SocketException se)
- {
- fail("Broker connection is expected to be accepted.");
- }
+ debugInfo("Create again broker3");
+ broker3 = openReplicationSession(baseDN,
+ server3ID, 100, getChangelogPort(changelog1ID), 1000, emptyOldChanges, genId);
+ assertTrue(broker3.isConnected(), "Broker3 failed to connect to replication server");
debugInfo("Launch on-line import on DS1");
@@ -905,7 +825,7 @@
+ "is expected to be diffrent from previous one");
debugInfo("RS1 must have the new gen ID");
- rgenId = replServer1.getGenerationId(baseDn.toNormalizedString());
+ rgenId = replServer1.getGenerationId(baseDN);
assertEquals(genId, rgenId, "DS and replServer are expected to have same genId.");
debugInfo("RS1 must have been cleared since it has not the proper generation ID");
@@ -933,14 +853,14 @@
try
{
- ReplicationMsg msg = broker2.receive();
- fail("No update message is supposed to be received by broker2 in bad gen id. " + msg);
+ ReplicationMsg msg2 = broker2.receive();
+ fail("No update message is supposed to be received by broker2 in bad gen id. " + msg2);
} catch(SocketTimeoutException e) { /* expected */ }
try
{
- ReplicationMsg msg = broker3.receive();
- fail("No update message is supposed to be received by broker3 in bad gen id. " + msg);
+ ReplicationMsg msg2 = broker3.receive();
+ fail("No update message is supposed to be received by broker3 in bad gen id. " + msg2);
} catch(SocketTimeoutException e) { /* expected */ }
@@ -954,8 +874,8 @@
try
{
- ReplicationMsg msg = broker3.receive();
- fail("No update message is supposed to be received by broker3 in bad gen id. "+ msg);
+ ReplicationMsg msg2 = broker3.receive();
+ fail("No update message is supposed to be received by broker3 in bad gen id. "+ msg2);
} catch(SocketTimeoutException e) { /* expected */ }
@@ -978,13 +898,13 @@
broker2.stop();
// Simulates the broker restart at the end of the import
- broker2 = openReplicationSession(baseDn,
+ broker2 = openReplicationSession(baseDN,
server2ID, 100, getChangelogPort(changelog1ID), 1000, emptyOldChanges, genId);
broker3.stop();
// Simulates the broker restart at the end of the import
- broker3 = openReplicationSession(baseDn,
+ broker3 = openReplicationSession(baseDN,
server3ID, 100, getChangelogPort(changelog1ID), 1000, emptyOldChanges, genId);
debugInfo("Adding reset task to DS1");
@@ -1001,7 +921,7 @@
waitTaskState(taskReset, TaskState.COMPLETED_SUCCESSFULLY, null);
debugInfo("Verify that RS1 has still the right genID");
- assertEquals(replServer1.getGenerationId(baseDn.toNormalizedString()), rgenId);
+ assertEquals(replServer1.getGenerationId(baseDN), rgenId);
// Updates count in RS1 must stay unchanged = to 1
Thread.sleep(500);
@@ -1016,26 +936,12 @@
"Expecting that DS3 is not in bad gen id from RS1");
debugInfo("Verify that DS2 receives the add message stored in RS1 DB");
- try
- {
- ReplicationMsg msg = broker2.receive();
- assertTrue(msg instanceof AddMsg, "Excpected to receive an AddMsg but received: " + msg);
- }
- catch(SocketTimeoutException e)
- {
- fail("The msg stored in RS1 DB is expected to be received by DS2)");
- }
+ msg = broker2.receive();
+ assertTrue(msg instanceof AddMsg, "Expected to receive an AddMsg but received: " + msg);
debugInfo("Verify that DS3 receives the add message stored in RS1 DB");
- try
- {
- ReplicationMsg msg = broker3.receive();
- assertTrue(msg instanceof AddMsg, "Excpected to receive an AddMsg but received: " + msg);
- }
- catch(SocketTimeoutException e)
- {
- fail("The msg stored in RS1 DB is expected to be received by DS3)");
- }
+ msg = broker3.receive();
+ assertTrue(msg instanceof AddMsg, "Expected to receive an AddMsg but received: " + msg);
debugInfo("DS2 is publishing a change and RS1 must store this change, DS3 must receive it.");
emsg = (AddMsg)createAddMsg();
@@ -1044,18 +950,10 @@
Thread.sleep(500);
checkChangelogSize(2);
- try
- {
- ReplicationMsg msg = broker3.receive();
-
- /* expected */
- AddMsg rcvmsg = (AddMsg)msg;
- assertEquals(rcvmsg.getCSN(), emsg.getCSN());
- }
- catch(SocketTimeoutException e)
- {
- fail("The msg send by DS2 is expected to be received by DS3)");
- }
+ /* expected */
+ msg = broker3.receive();
+ AddMsg rcvmsg = (AddMsg)msg;
+ assertEquals(rcvmsg.getCSN(), emsg.getCSN());
//===============================================================
debugInfo(testCase + " ** TEST ** General cleaning");
@@ -1064,11 +962,6 @@
disconnectFromReplServer(changelog1ID);
debugInfo("Successfully ending " + testCase);
- }
- catch(Exception e)
- {
- fail(testCase + " Exception:"+ e.getMessage() + " " +
- stackTraceToSingleLineString(e));
} finally
{
postTest();
@@ -1110,19 +1003,16 @@
int waitRes=0;
while(waitRes<100)
{
- if ((replServer1.getGenerationId(baseDn.toNormalizedString())==EMPTY_DN_GENID)
- && (replServer2.getGenerationId(baseDn.toNormalizedString())==EMPTY_DN_GENID)
- && (replServer3.getGenerationId(baseDn.toNormalizedString())==EMPTY_DN_GENID))
+ if (replServer1.getGenerationId(baseDN) == EMPTY_DN_GENID
+ && replServer2.getGenerationId(baseDN) == EMPTY_DN_GENID
+ && replServer3.getGenerationId(baseDN) == EMPTY_DN_GENID)
break;
waitRes++;
Thread.sleep(100);
}
- assertEquals(replServer1.getGenerationId(baseDn.toNormalizedString()), EMPTY_DN_GENID,
- " in replServer1");
- assertEquals(replServer2.getGenerationId(baseDn.toNormalizedString()), EMPTY_DN_GENID,
- " in replServer2");
- assertEquals(replServer3.getGenerationId(baseDn.toNormalizedString()), EMPTY_DN_GENID,
- " in replServer3");
+ assertEquals(replServer1.getGenerationId(baseDN), EMPTY_DN_GENID, " in replServer1");
+ assertEquals(replServer2.getGenerationId(baseDN), EMPTY_DN_GENID, " in replServer2");
+ assertEquals(replServer3.getGenerationId(baseDN), EMPTY_DN_GENID, " in replServer3");
debugInfo("Disconnect DS from replServer1.");
disconnectFromReplServer(changelog1ID);
@@ -1130,18 +1020,18 @@
waitRes=0;
while(waitRes<100)
{
- if ((replServer1.getGenerationId(baseDn.toNormalizedString())==-1)
- && (replServer2.getGenerationId(baseDn.toNormalizedString())==-1)
- && (replServer3.getGenerationId(baseDn.toNormalizedString())==-1))
+ if (replServer1.getGenerationId(baseDN) == -1
+ && replServer2.getGenerationId(baseDN) == -1
+ && replServer3.getGenerationId(baseDN) == -1)
break;
waitRes++;
Thread.sleep(100);
}
debugInfo(
"Expect genIds to be resetted in all servers to -1 as no more DS in topo - after 10 sec");
- assertEquals(replServer1.getGenerationId(baseDn.toNormalizedString()), -1);
- assertEquals(replServer2.getGenerationId(baseDn.toNormalizedString()), -1);
- assertEquals(replServer3.getGenerationId(baseDn.toNormalizedString()), -1);
+ assertEquals(replServer1.getGenerationId(baseDN), -1);
+ assertEquals(replServer2.getGenerationId(baseDN), -1);
+ assertEquals(replServer3.getGenerationId(baseDN), -1);
debugInfo("Add entries to DS");
addTestEntriesToDB(updatedEntries);
@@ -1156,28 +1046,21 @@
waitRes=0;
while(waitRes<100)
{
- if ((replServer1.getGenerationId(baseDn.toNormalizedString())==genId)
- && (replServer2.getGenerationId(baseDn.toNormalizedString())==genId)
- && (replServer3.getGenerationId(baseDn.toNormalizedString())==genId))
+ if (replServer1.getGenerationId(baseDN) == genId
+ && replServer2.getGenerationId(baseDN) == genId
+ && replServer3.getGenerationId(baseDN) == genId)
break;
waitRes++;
Thread.sleep(100);
}
- assertEquals(replServer1.getGenerationId(baseDn.toNormalizedString()), genId);
- assertEquals(replServer2.getGenerationId(baseDn.toNormalizedString()), genId);
- assertEquals(replServer3.getGenerationId(baseDn.toNormalizedString()), genId);
+ assertEquals(replServer1.getGenerationId(baseDN), genId);
+ assertEquals(replServer2.getGenerationId(baseDN), genId);
+ assertEquals(replServer3.getGenerationId(baseDN), genId);
debugInfo("Connecting broker2 to replServer3 with a good genId");
- try
- {
- broker2 = openReplicationSession(baseDn,
- server2ID, 100, getChangelogPort(changelog3ID),
- 1000, !emptyOldChanges, genId);
- Thread.sleep(1000);
- } catch (SocketException se)
- {
- fail("Broker connection is expected to be accepted.");
- }
+ broker2 = openReplicationSession(baseDN, server2ID, 100,
+ getChangelogPort(changelog3ID), 1000, !emptyOldChanges, genId);
+ Thread.sleep(1000);
debugInfo("Expecting that broker2 is not in bad gen id since it has a correct genId");
assertFalse(isDegradedDueToGenerationId(replServer1, server2ID));
@@ -1192,29 +1075,22 @@
waitRes=0;
while(waitRes<100)
{
- if ((replServer1.getGenerationId(baseDn.toNormalizedString())==genId)
- && (replServer2.getGenerationId(baseDn.toNormalizedString())==genId)
- && (replServer3.getGenerationId(baseDn.toNormalizedString())==genId))
+ if (replServer1.getGenerationId(baseDN) == genId
+ && replServer2.getGenerationId(baseDN) == genId
+ && replServer3.getGenerationId(baseDN) == genId)
break;
waitRes++;
Thread.sleep(100);
}
- assertEquals(replServer1.getGenerationId(baseDn.toNormalizedString()), genId);
- assertEquals(replServer2.getGenerationId(baseDn.toNormalizedString()), genId);
- assertEquals(replServer3.getGenerationId(baseDn.toNormalizedString()), genId);
+ assertEquals(replServer1.getGenerationId(baseDN), genId);
+ assertEquals(replServer2.getGenerationId(baseDN), genId);
+ assertEquals(replServer3.getGenerationId(baseDN), genId);
debugInfo("Connecting broker3 to replServer1 with a bad genId");
- try
- {
- long badgenId = 1;
- broker3 = openReplicationSession(baseDn,
- server3ID, 100, getChangelogPort(changelog1ID),
- 1000, !emptyOldChanges, badgenId);
- Thread.sleep(1000);
- } catch (SocketException se)
- {
- fail("Broker connection is expected to be accepted.");
- }
+ long badgenId = 1;
+ broker3 = openReplicationSession(baseDN, server3ID, 100,
+ getChangelogPort(changelog1ID), 1000, !emptyOldChanges, badgenId);
+ Thread.sleep(1000);
debugInfo("Expecting that broker3 is in bad gen id since it has a bad genId");
assertTrue(isDegradedDueToGenerationId(replServer1, server3ID));
@@ -1243,9 +1119,9 @@
debugInfo("Verifying that all replservers genIds have been reset.");
genId = readGenIdFromSuffixRootEntry();
- assertEquals(replServer1.getGenerationId(baseDn.toNormalizedString()), genId);
- assertEquals(replServer2.getGenerationId(baseDn.toNormalizedString()), genId);
- assertEquals(replServer3.getGenerationId(baseDn.toNormalizedString()), genId);
+ assertEquals(replServer1.getGenerationId(baseDN), genId);
+ assertEquals(replServer2.getGenerationId(baseDN), genId);
+ assertEquals(replServer3.getGenerationId(baseDN), genId);
debugInfo("Adding reset task to DS." + genId);
taskReset = TestCaseUtils.makeEntry(
@@ -1265,16 +1141,16 @@
while(waitRes<100)
{
readGenIdFromSuffixRootEntry();
- if ((replServer1.getGenerationId(baseDn.toNormalizedString())==-1)
- && (replServer2.getGenerationId(baseDn.toNormalizedString())==-1)
- && (replServer3.getGenerationId(baseDn.toNormalizedString())==-1))
+ if (replServer1.getGenerationId(baseDN) == -1
+ && replServer2.getGenerationId(baseDN) == -1
+ && replServer3.getGenerationId(baseDN) == -1)
break;
waitRes++;
Thread.sleep(100);
}
- assertEquals(replServer1.getGenerationId(baseDn.toNormalizedString()), -1, "test"+i);
- assertEquals(replServer2.getGenerationId(baseDn.toNormalizedString()), -1, "test"+i);
- assertEquals(replServer3.getGenerationId(baseDn.toNormalizedString()), -1, "test"+i);
+ assertEquals(replServer1.getGenerationId(baseDN), -1, "test" + i);
+ assertEquals(replServer2.getGenerationId(baseDN), -1, "test" + i);
+ assertEquals(replServer3.getGenerationId(baseDN), -1, "test" + i);
debugInfo(
"Disconnect DS from replServer1 (required in order to DEL entries).");
@@ -1289,7 +1165,7 @@
private boolean isDegradedDueToGenerationId(ReplicationServer rs, int serverId)
{
- ReplicationServerDomain domain = rs.getReplicationServerDomain(baseDn.toNormalizedString());
+ ReplicationServerDomain domain = rs.getReplicationServerDomain(baseDN);
return domain.isDegradedDueToGenerationId(serverId);
}
@@ -1424,12 +1300,11 @@
for (int i=0; i< 5; i++)
{
long generationId = 1000+i;
- broker = openReplicationSession(baseDn,
- server2ID, 100, getChangelogPort(changelog1ID),
- 1000, !emptyOldChanges, generationId);
+ broker = openReplicationSession(baseDN, server2ID, 100,
+ getChangelogPort(changelog1ID), 1000, !emptyOldChanges, generationId);
debugInfo(testCase + " Expect genId to be set in memory on the replication " +
" server side even if not wrote on disk/db since no change occurred.");
- rgenId = replServer1.getGenerationId(baseDn.toNormalizedString());
+ rgenId = replServer1.getGenerationId(baseDN);
assertEquals(rgenId, generationId);
broker.stop();
broker = null;
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/InitOnLineTest.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/InitOnLineTest.java
index 3446e9f..ec5c490 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/InitOnLineTest.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/InitOnLineTest.java
@@ -113,7 +113,7 @@
private static final String EXAMPLE_DN = "dc=example,dc=com";
private static int[] replServerPort = new int[20];
- private DN baseDn;
+ private DN baseDN;
private ReplicationBroker server2;
private ReplicationBroker server3;
private ReplicationServer changelog1;
@@ -153,7 +153,7 @@
log("Setup: debugEnabled:" + debugEnabled());
// This test suite depends on having the schema available.
- baseDn = DN.decode(EXAMPLE_DN);
+ baseDN = DN.decode(EXAMPLE_DN);
// This test uses import tasks which do not work with memory backend
// (like the test backend we use in every tests): backend is disabled then
@@ -610,7 +610,7 @@
"Unable to add the synchronized server");
configEntryList.add(synchroServerEntry.getDN());
- replDomain = LDAPReplicationDomain.retrievesReplicationDomain(baseDn);
+ replDomain = LDAPReplicationDomain.retrievesReplicationDomain(baseDN);
assertTrue(!replDomain.ieRunning(),
"ReplicationDomain: Import/Export is not expected to be running");
@@ -1004,10 +1004,10 @@
"objectclass: ds-task",
"objectclass: ds-task-initialize-from-remote-replica",
"ds-task-class-name: org.opends.server.tasks.InitializeTask",
- "ds-task-initialize-domain-dn: " + baseDn,
+ "ds-task-initialize-domain-dn: " + baseDN,
"ds-task-initialize-replica-server-id: -3");
addTask(taskInit, ResultCode.OTHER,
- ERR_INVALID_IMPORT_SOURCE.get(baseDn.toNormalizedString(),
+ ERR_INVALID_IMPORT_SOURCE.get(baseDN.toNormalizedString(),
Integer.toString(server1ID),"-3",""));
// Scope containing a serverID absent from the domain
@@ -1101,7 +1101,7 @@
private Set<Integer> getConnectedDSServerIds(ReplicationServer changelog)
{
- ReplicationServerDomain domain = changelog.getReplicationServerDomain(baseDn.toNormalizedString());
+ ReplicationServerDomain domain = changelog.getReplicationServerDomain(baseDN);
return domain.getConnectedDSs().keySet();
}
@@ -1197,8 +1197,7 @@
log(testCase + " Will connect server 2 to " + changelog2ID);
server2 = openReplicationSession(DN.decode(EXAMPLE_DN),
server2ID, 100, getChangelogPort(changelog2ID),
- 1000, emptyOldChanges,
- changelog1.getGenerationId(baseDn.toNormalizedString()));
+ 1000, emptyOldChanges, changelog1.getGenerationId(baseDN));
}
// Connect a broker acting as server 3 to Repl Server 3
@@ -1210,8 +1209,7 @@
log(testCase + " Will connect server 3 to " + changelog3ID);
server3 = openReplicationSession(DN.decode(EXAMPLE_DN),
server3ID, 100, getChangelogPort(changelog3ID),
- 1000, emptyOldChanges,
- changelog1.getGenerationId(baseDn.toNormalizedString()));
+ 1000, emptyOldChanges, changelog1.getGenerationId(baseDN));
}
// Thread.sleep(500);
@@ -1271,14 +1269,14 @@
"objectclass: ds-task",
"objectclass: ds-task-initialize-from-remote-replica",
"ds-task-class-name: org.opends.server.tasks.InitializeTask",
- "ds-task-initialize-domain-dn: " + baseDn,
+ "ds-task-initialize-domain-dn: " + baseDN,
"ds-task-initialize-replica-server-id: " + 20);
addTask(taskInit, ResultCode.SUCCESS, null);
waitTaskState(taskInit, TaskState.STOPPED_BY_ERROR,
ERR_NO_REACHABLE_PEER_IN_THE_DOMAIN.get(
- baseDn.toString(), "20"));
+ baseDN.toString(), "20"));
// Test 2
taskInit = TestCaseUtils.makeEntry(
@@ -1288,12 +1286,11 @@
"objectclass: ds-task",
"objectclass: ds-task-initialize-from-remote-replica",
"ds-task-class-name: org.opends.server.tasks.InitializeTask",
- "ds-task-initialize-domain-dn: " + baseDn,
+ "ds-task-initialize-domain-dn: " + baseDN,
"ds-task-initialize-replica-server-id: " + server1ID);
addTask(taskInit, ResultCode.OTHER, ERR_INVALID_IMPORT_SOURCE.get(
- baseDn.toNormalizedString(),
- Integer.toString(server1ID),"20",""));
+ baseDN.toNormalizedString(), Integer.toString(server1ID),"20",""));
if (replDomain != null)
{
@@ -1311,7 +1308,7 @@
@Test(enabled=false)
public void initializeTargetNoTarget() throws Exception
{
- String testCase = "initializeTargetNoTarget" + baseDn;
+ String testCase = "initializeTargetNoTarget" + baseDN;
log("Starting "+testCase);
try
@@ -1332,13 +1329,13 @@
"objectclass: ds-task",
"objectclass: ds-task-initialize-remote-replica",
"ds-task-class-name: org.opends.server.tasks.InitializeTargetTask",
- "ds-task-initialize-domain-dn: " + baseDn,
+ "ds-task-initialize-domain-dn: " + baseDN,
"ds-task-initialize-replica-server-id: " + 0);
addTask(taskInit, ResultCode.SUCCESS, null);
waitTaskState(taskInit, TaskState.STOPPED_BY_ERROR,
- ERR_NO_REACHABLE_PEER_IN_THE_DOMAIN.get(baseDn.toString(), "0"));
+ ERR_NO_REACHABLE_PEER_IN_THE_DOMAIN.get(baseDN.toString(), "0"));
if (replDomain != null)
{
@@ -1406,7 +1403,7 @@
"objectclass: ds-task",
"objectclass: ds-task-initialize-from-remote-replica",
"ds-task-class-name: org.opends.server.tasks.InitializeTask",
- "ds-task-initialize-domain-dn: " + baseDn,
+ "ds-task-initialize-domain-dn: " + baseDN,
"ds-task-initialize-replica-server-id: " + server2ID);
addTask(taskInit, ResultCode.SUCCESS, null);
@@ -1420,7 +1417,7 @@
"objectclass: ds-task",
"objectclass: ds-task-initialize-from-remote-replica",
"ds-task-class-name: org.opends.server.tasks.InitializeTask",
- "ds-task-initialize-domain-dn: " + baseDn,
+ "ds-task-initialize-domain-dn: " + baseDN,
"ds-task-initialize-replica-server-id: " + server2ID);
// Second task is expected to be rejected
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 fefecc1..a6d3d36 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
@@ -27,6 +27,14 @@
*/
package org.opends.server.replication;
+import java.io.File;
+import java.net.SocketException;
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.NoSuchElementException;
+import java.util.concurrent.locks.Lock;
+
import org.opends.messages.Category;
import org.opends.messages.Message;
import org.opends.messages.Severity;
@@ -61,14 +69,6 @@
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
-import java.io.File;
-import java.net.SocketException;
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.NoSuchElementException;
-import java.util.concurrent.locks.Lock;
-
import static org.opends.server.config.ConfigConstants.*;
import static org.opends.server.loggers.ErrorLogger.*;
import static org.opends.server.loggers.debug.DebugLogger.*;
@@ -117,7 +117,7 @@
/**
* Replication monitor stats
*/
- private DN monitorDn;
+ private DN monitorDN;
private String monitorAttr;
private long lastCount;
@@ -172,22 +172,22 @@
}
/**
- * Retrieves the domain associated to the baseDn, and the value of the generationId
+ * Retrieves the domain associated to the baseDN, and the value of the generationId
* of this domain. If the domain does not exist, returns the default hard-coded\
* value of the generationId corresponding to test backend with its default
* initial o=test root root entry.
*
- * @param baseDn The baseDn for which we want the generationId
+ * @param baseDN The baseDN for which we want the generationId
* @return The value of the generationId.
*/
- static protected long getGenerationId(DN baseDn)
+ static protected long getGenerationId(DN baseDN)
{
// This is the value of the generationId computed by the server when the
// test suffix (o=test) has only the root entry created.
long genId = TEST_DN_WITH_ROOT_ENTRY_GENID;
try
{
- LDAPReplicationDomain replDomain = LDAPReplicationDomain.retrievesReplicationDomain(baseDn);
+ LDAPReplicationDomain replDomain = LDAPReplicationDomain.retrievesReplicationDomain(baseDN);
genId = replDomain.getGenerationID();
}
catch(Exception e) {}
@@ -200,12 +200,12 @@
* does not exist, take the 'empty backend' generationID.
*/
protected ReplicationBroker openReplicationSession(
- final DN baseDn, int serverId, int window_size,
+ final DN baseDN, int serverId, int window_size,
int port, int timeout, boolean emptyOldChanges)
throws Exception, SocketException
{
- return openReplicationSession(baseDn, serverId, window_size,
- port, timeout, emptyOldChanges, getGenerationId(baseDn), null);
+ return openReplicationSession(baseDN, serverId, window_size,
+ port, timeout, emptyOldChanges, getGenerationId(baseDN), null);
}
/**
@@ -213,12 +213,12 @@
* providing the generationId.
*/
protected ReplicationBroker openReplicationSession(
- final DN baseDn, int serverId, int window_size,
+ final DN baseDN, int serverId, int window_size,
int port, int timeout, boolean emptyOldChanges,
long generationId)
throws Exception, SocketException
{
- return openReplicationSession(baseDn, serverId, window_size,
+ return openReplicationSession(baseDN, serverId, window_size,
port, timeout, emptyOldChanges, generationId, null);
}
@@ -227,7 +227,7 @@
* providing the generationId.
*/
protected ReplicationBroker openReplicationSession(
- final DN baseDn, int serverId, int window_size,
+ final DN baseDN, int serverId, int window_size,
int port, int timeout, boolean emptyOldChanges,
long generationId, ReplicationDomain replicationDomain)
throws Exception, SocketException
@@ -235,12 +235,12 @@
ServerState state = new ServerState();
if (emptyOldChanges)
- new PersistentServerState(baseDn, serverId, new ServerState());
+ new PersistentServerState(baseDN, serverId, new ServerState());
ReplicationBroker broker = new ReplicationBroker(replicationDomain,
- state, baseDn.toNormalizedString(), serverId, window_size,
+ state, baseDN, serverId, window_size,
generationId, 100000, getReplSessionSecurity(), (byte)1, 500);
- ArrayList<String> servers = new ArrayList<String>(1);
+ List<String> servers = new ArrayList<String>(1);
servers.add("localhost:" + port);
broker.start(servers);
if (timeout != 0)
@@ -297,15 +297,14 @@
/**
* Open a replicationServer session to the local ReplicationServer
* with a default value generationId.
- *
*/
protected ReplicationBroker openReplicationSession(
- final DN baseDn, int serverId, int window_size,
+ final DN baseDN, int serverId, int window_size,
int port, int timeout, ServerState state)
throws Exception, SocketException
{
- return openReplicationSession(baseDn, serverId, window_size,
- port, timeout, state, getGenerationId(baseDn));
+ return openReplicationSession(baseDN, serverId, window_size,
+ port, timeout, state, getGenerationId(baseDN));
}
/**
@@ -313,14 +312,14 @@
* starting with a given ServerState.
*/
protected ReplicationBroker openReplicationSession(
- final DN baseDn, int serverId, int window_size,
+ final DN baseDN, int serverId, int window_size,
int port, int timeout, ServerState state, long generationId)
throws Exception, SocketException
{
ReplicationBroker broker = new ReplicationBroker(null,
- state, baseDn.toNormalizedString(), serverId, window_size, generationId,
+ state, baseDN, serverId, window_size, generationId,
100000, getReplSessionSecurity(), (byte)1, 500);
- ArrayList<String> servers = new ArrayList<String>(1);
+ List<String> servers = new ArrayList<String>(1);
servers.add("localhost:" + port);
broker.start(servers);
checkConnection(30, broker, port);
@@ -333,10 +332,9 @@
/**
* Open a replicationServer session with flow control to the local
* ReplicationServer.
- *
*/
protected ReplicationBroker openReplicationSession(
- final DN baseDn, int serverId, int window_size,
+ final DN baseDN, int serverId, int window_size,
int port, int timeout, int maxSendQueue, int maxRcvQueue,
boolean emptyOldChanges)
throws Exception, SocketException
@@ -344,12 +342,12 @@
ServerState state = new ServerState();
if (emptyOldChanges)
- new PersistentServerState(baseDn, serverId, new ServerState());
+ new PersistentServerState(baseDN, serverId, new ServerState());
ReplicationBroker broker = new ReplicationBroker(null,
- state, baseDn.toNormalizedString(), serverId, window_size,
- getGenerationId(baseDn), 0, getReplSessionSecurity(), (byte)1, 500);
- ArrayList<String> servers = new ArrayList<String>(1);
+ state, baseDN, serverId, window_size,
+ getGenerationId(baseDN), 0, getReplSessionSecurity(), (byte)1, 500);
+ List<String> servers = new ArrayList<String>(1);
servers.add("localhost:" + port);
broker.start(servers);
checkConnection(30, broker, port);
@@ -584,10 +582,9 @@
* @return The monitor value
* @throws Exception If an error occurs.
*/
- protected long getMonitorAttrValue(DN baseDn, String attr) throws Exception
+ protected long getMonitorAttrValue(DN baseDN, String attr) throws Exception
{
- String monitorFilter =
- "(&(cn=Directory server*)(domain-name=" + baseDn + "))";
+ String monitorFilter = "(&(cn=Directory server*)(domain-name=" + baseDN + "))";
InternalSearchOperation op;
int count = 0;
@@ -685,10 +682,9 @@
try
{
Entry entry = DirectoryServer.getEntry(dn);
- if (entry == null)
- return null;
- else
+ if (entry != null)
return entry.duplicate(true);
+ return null;
}
finally
{
@@ -699,18 +695,11 @@
/**
* Update the monitor count for the specified monitor attribute.
*/
- protected void updateMonitorCount(DN baseDn, String attr) {
- monitorDn = baseDn;
+ protected void updateMonitorCount(DN baseDN, String attr) throws Exception
+ {
+ monitorDN = baseDN;
monitorAttr = attr;
- try
- {
- lastCount = getMonitorAttrValue(baseDn, attr);
- }
- catch (Exception ex)
- {
- ex.printStackTrace();
- assertTrue(false);
- }
+ lastCount = getMonitorAttrValue(baseDN, attr);
}
/**
@@ -720,7 +709,7 @@
protected long getMonitorDelta() {
long delta = 0;
try {
- long currentCount = getMonitorAttrValue(monitorDn, monitorAttr);
+ long currentCount = getMonitorAttrValue(monitorDN, monitorAttr);
delta = (currentCount - lastCount);
lastCount = currentCount;
} catch (Exception ex) {
@@ -937,7 +926,7 @@
// Check that the task contains some log messages.
AttributeType logMessagesType = DirectoryServer.getAttributeType(
ATTR_TASK_LOG_MESSAGES.toLowerCase());
- ArrayList<String> logMessages = new ArrayList<String>();
+ List<String> logMessages = new ArrayList<String>();
resultEntry.getAttributeValues(logMessagesType,
DirectoryStringSyntax.DECODER,
logMessages);
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/FractionalReplicationTest.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/FractionalReplicationTest.java
index 637bb45..10fd86d 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/FractionalReplicationTest.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/plugin/FractionalReplicationTest.java
@@ -383,10 +383,8 @@
List<String> replicationServers = new ArrayList<String>();
replicationServers.add("localhost:" + replServerPort);
- replicationDomain =
- new FakeReplicationDomain((firstBackend ? TEST_ROOT_DN_STRING
- : TEST2_ROOT_DN_STRING), DS2_ID, replicationServers, 100, 1000,
- generationId);
+ DN baseDN = DN.decode(firstBackend ? TEST_ROOT_DN_STRING : TEST2_ROOT_DN_STRING);
+ replicationDomain = new FakeReplicationDomain(baseDN, DS2_ID, replicationServers, 100, 1000, generationId);
// Test connection
assertTrue(replicationDomain.isConnected());
@@ -587,14 +585,14 @@
private long generationID = -1;
public FakeReplicationDomain(
- String serviceID,
+ DN baseDN,
int serverID,
Collection<String> replicationServers,
int window,
long heartbeatInterval,
long generationId) throws ConfigException
{
- super(serviceID, serverID, 100);
+ super(baseDN, serverID, 100);
generationID = generationId;
startPublishService(replicationServers, window, heartbeatInterval, 500);
startListenService();
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 c2e1630..ab0835d 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
@@ -76,6 +76,7 @@
{
private static final String EXAMPLE_DN = "dc=example,dc=com"; // Server id definitions
+ private static DN EXAMPLE_DN_;
private static final int DS1_ID = 1;
private static final int DS2_ID = 2;
@@ -117,7 +118,7 @@
}
// Clear any reference to a domain in synchro plugin
- MultimasterReplication.deleteDomain(DN.decode(EXAMPLE_DN));
+ MultimasterReplication.deleteDomain(EXAMPLE_DN_);
if (ds2 != null)
{
@@ -223,8 +224,7 @@
SortedSet<String> replServers = new TreeSet<String>();
replServers.add("localhost:" + rs1Port);
- DN baseDn = DN.decode(EXAMPLE_DN);
- DomainFakeCfg domainConf = new DomainFakeCfg(baseDn, dsId, replServers);
+ DomainFakeCfg domainConf = new DomainFakeCfg(EXAMPLE_DN_, dsId, replServers);
LDAPReplicationDomain replicationDomain = MultimasterReplication.createNewDomain(domainConf);
replicationDomain.start();
SynchronizationProvider<SynchronizationProviderCfg> provider =
@@ -246,9 +246,9 @@
private ReplicationBroker createReplicationBroker(int dsId,
ServerState state, long generationId) throws Exception
{
- ReplicationBroker broker = new ReplicationBroker(null,
- state, EXAMPLE_DN, dsId, 100, generationId, 0,
- new ReplSessionSecurity(null, null, null, true), (byte) 1, 500);
+ ReplSessionSecurity security = new ReplSessionSecurity(null, null, null, true);
+ ReplicationBroker broker = new ReplicationBroker(null, state, EXAMPLE_DN_,
+ dsId, 100, generationId, 0, security, (byte) 1, 500);
List<String> servers = new ArrayList<String>(1);
servers.add("localhost:" + rs1Port);
broker.start(servers);
@@ -715,13 +715,13 @@
public void setUp() throws Exception
{
super.setUp();
+ EXAMPLE_DN_ = DN.decode(EXAMPLE_DN);
// Note: this test does not use the memory test backend as for having a DS
// going into degraded status, we need to send a lot of updates. This makes
// the memory test backend crash with OutOfMemoryError. So we prefer here
// a backend backed up with a file
TestCaseUtils.clearJEBackend(false, "userRoot", EXAMPLE_DN);
-
}
/**
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/AssuredReplicationServerTest.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/AssuredReplicationServerTest.java
index 959bd91..e1375a3 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/AssuredReplicationServerTest.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/AssuredReplicationServerTest.java
@@ -54,6 +54,7 @@
import org.opends.server.replication.plugin.MultimasterReplication;
import org.opends.server.replication.protocol.*;
import org.opends.server.replication.service.ReplicationDomain;
+import org.opends.server.types.DN;
import org.opends.server.types.DirectoryException;
import org.opends.server.util.StaticUtils;
import org.testng.annotations.BeforeClass;
@@ -457,7 +458,7 @@
int rsPort = getRsPort(rsId);
FakeReplicationDomain fakeReplicationDomain = new FakeReplicationDomain(
- TEST_ROOT_DN_STRING, serverId, generationId,
+ DN.decode(TEST_ROOT_DN_STRING), serverId, generationId,
(byte)groupId, assured, assuredMode, (byte)safeDataLevel, assuredTimeout,
scenario, serverState);
@@ -600,7 +601,7 @@
* @throws org.opends.server.config.ConfigException
*/
public FakeReplicationDomain(
- String baseDN,
+ DN baseDN,
int serverID,
long generationId,
byte groupId,
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 88c04c5..166011f 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
@@ -32,6 +32,7 @@
import java.util.*;
import org.opends.server.TestCaseUtils;
+import org.opends.server.admin.std.server.ExternalChangelogDomainCfg;
import org.opends.server.api.Backend;
import org.opends.server.api.ConnectionHandler;
import org.opends.server.backends.MemoryBackend;
@@ -101,6 +102,11 @@
/** The port of the replicationServer. */
private int replicationServerPort;
+ /** base DN for "o=test" */
+ private static DN TEST_ROOT_DN;
+ /** base DN for "o=test2" */
+ private static DN TEST_ROOT_DN2;
+
private static final String TEST_BACKEND_ID2 = "test2";
private static final String TEST_ROOT_DN_STRING2 = "o=" + TEST_BACKEND_ID2;
@@ -134,6 +140,8 @@
public void setUp() throws Exception
{
super.setUp();
+ TEST_ROOT_DN = DN.decode(TEST_ROOT_DN_STRING);
+ TEST_ROOT_DN2 = DN.decode(TEST_ROOT_DN_STRING2);
// This test suite depends on having the schema available.
configure();
@@ -367,7 +375,7 @@
// Test first and last change number
ECLCompatTestLimits(1,8, true);
- // Test first and last change number, a dd a new change, do not
+ // Test first and last change number, add a new change, do not
// search again the ECL, but search for first and last
ECLCompatTestLimitsAndAdd(1,8, ts);
@@ -472,12 +480,10 @@
try
{
// create 2 regular brokers on the 2 suffixes
- server01 = openReplicationSession(
- DN.decode(TEST_ROOT_DN_STRING), SERVER_ID_1,
+ server01 = openReplicationSession(TEST_ROOT_DN, SERVER_ID_1,
100, replicationServerPort, brokerSessionTimeout, true);
- server02 = openReplicationSession(
- DN.decode(TEST_ROOT_DN_STRING2), SERVER_ID_2,
+ server02 = openReplicationSession(TEST_ROOT_DN2, SERVER_ID_2,
100, replicationServerPort, brokerSessionTimeout, true, EMPTY_DN_GENID);
// create and publish 1 change on each suffix
@@ -616,19 +622,14 @@
try
{
- DN baseDn2 = DN.decode(TEST_ROOT_DN_STRING2);
-
- server01 = openReplicationSession(
- DN.decode(TEST_ROOT_DN_STRING), SERVER_ID_1,
+ server01 = openReplicationSession(TEST_ROOT_DN, SERVER_ID_1,
100, replicationServerPort, brokerSessionTimeout, true);
// create and publish 1 change on each suffix
long time = TimeThread.getTime();
CSN csn1 = new CSN(time, 1, SERVER_ID_1);
- DeleteMsg delMsg1 =
- new DeleteMsg("o=" + tn + "1," + TEST_ROOT_DN_STRING, csn1,
- "ECLBasicMsg1uid");
+ DeleteMsg delMsg1 = new DeleteMsg("o=" + tn + "1," + TEST_ROOT_DN_STRING, csn1, "ECLBasicMsg1uid");
server01.publish(delMsg1);
debugInfo(tn, "publishes:" + delMsg1);
@@ -638,12 +639,11 @@
backend2.setPrivateBackend(true);
SortedSet<String> replServers = newSet("localhost:" + replicationServerPort);
- DomainFakeCfg domainConf =
- new DomainFakeCfg(baseDn2, 1602, replServers);
+ DomainFakeCfg domainConf = new DomainFakeCfg(TEST_ROOT_DN2, 1602, replServers);
domain2 = startNewDomain(domainConf, null,null);
sleep(1000);
- addEntry(createEntry(baseDn2));
+ addEntry(createEntry(TEST_ROOT_DN2));
sleep(2000);
// Search on ECL from start on all suffixes
@@ -656,8 +656,7 @@
assertThat(entries).hasSize(2);
debugAndWriteEntries(null, entries, tn);
- ExternalChangelogDomainFakeCfg eclCfg =
- new ExternalChangelogDomainFakeCfg(false, null, null);
+ ExternalChangelogDomainCfg eclCfg = new ExternalChangelogDomainFakeCfg(false, null, null);
domainConf.setExternalChangelogDomain(eclCfg);
domain2.applyConfigurationChange(domainConf);
@@ -707,12 +706,10 @@
LDIFWriter ldifWriter = getLDIFWriter();
- s1test = openReplicationSession(
- DN.decode(TEST_ROOT_DN_STRING), SERVER_ID_1,
+ s1test = openReplicationSession(TEST_ROOT_DN, SERVER_ID_1,
100, replicationServerPort, brokerSessionTimeout, true);
- s2test2 = openReplicationSession(
- DN.decode(TEST_ROOT_DN_STRING2), SERVER_ID_2,
+ s2test2 = openReplicationSession(TEST_ROOT_DN2, SERVER_ID_2,
100, replicationServerPort, brokerSessionTimeout, true, EMPTY_DN_GENID);
sleep(500);
@@ -784,12 +781,10 @@
// Test startState ("first cookie") of the ECL
// --
- s1test2 = openReplicationSession(
- DN.decode(TEST_ROOT_DN_STRING2), 1203,
+ s1test2 = openReplicationSession(TEST_ROOT_DN2, 1203,
100, replicationServerPort, brokerSessionTimeout, true, EMPTY_DN_GENID);
- s2test = openReplicationSession(
- DN.decode(TEST_ROOT_DN_STRING), 1204,
+ s2test = openReplicationSession(TEST_ROOT_DN, 1204,
100, replicationServerPort, brokerSessionTimeout, true);
sleep(500);
@@ -807,12 +802,12 @@
publishDeleteMsgInOTest(s2test, csn9, tn, 9);
sleep(500);
- ServerState startState = getReplicationDomainStartState(TEST_ROOT_DN_STRING);
+ ServerState startState = getReplicationDomainStartState(TEST_ROOT_DN);
assertEquals(startState.getCSN(s1test.getServerId()).getSeqnum(), 1);
assertTrue(startState.getCSN(s2test.getServerId()) != null);
assertEquals(startState.getCSN(s2test.getServerId()).getSeqnum(), 7);
- startState = getReplicationDomainStartState(TEST_ROOT_DN_STRING2);
+ startState = getReplicationDomainStartState(TEST_ROOT_DN2);
assertEquals(startState.getCSN(s2test2.getServerId()).getSeqnum(), 2);
assertEquals(startState.getCSN(s1test2.getServerId()).getSeqnum(), 6);
@@ -867,9 +862,9 @@
debugInfo(tn, "Ending test successfully");
}
- private ServerState getReplicationDomainStartState(String baseDn)
+ private ServerState getReplicationDomainStartState(DN baseDN)
{
- return replicationServer.getReplicationServerDomain(baseDn).getStartState();
+ return replicationServer.getReplicationServerDomain(baseDN).getStartState();
}
private String getCookie(List<SearchResultEntry> entries,
@@ -968,8 +963,7 @@
// 1. Populate the changelog and read the cookie
// Creates broker on o=test
- server01 = openReplicationSession(
- DN.decode(TEST_ROOT_DN_STRING), SERVER_ID_1,
+ server01 = openReplicationSession(TEST_ROOT_DN, SERVER_ID_1,
100, replicationServerPort, brokerSessionTimeout, true);
final CSN[] csns = generateCSNs(4, SERVER_ID_1);
@@ -1024,12 +1018,12 @@
// returns the appropriate error.
publishDeleteMsgInOTest(server01, csns[3], tn, 1);
- debugInfo(tn, "d1 trimdate" + getReplicationDomainStartState("o=test"));
- debugInfo(tn, "d2 trimdate" + getReplicationDomainStartState("o=test2"));
+ debugInfo(tn, "d1 trimdate" + getReplicationDomainStartState(TEST_ROOT_DN));
+ debugInfo(tn, "d2 trimdate" + getReplicationDomainStartState(TEST_ROOT_DN2));
searchOp = searchOnCookieChangelog("(targetDN=*)", cookieNotEmpty, tn, UNWILLING_TO_PERFORM);
assertEquals(searchOp.getSearchEntries().size(), 0);
assertTrue(searchOp.getErrorMessage().toString().startsWith(
- ERR_RESYNC_REQUIRED_TOO_OLD_DOMAIN_IN_PROVIDED_COOKIE.get("o=test").toString()),
+ ERR_RESYNC_REQUIRED_TOO_OLD_DOMAIN_IN_PROVIDED_COOKIE.get(TEST_ROOT_DN_STRING).toString()),
searchOp.getErrorMessage().toString());
}
finally
@@ -1097,13 +1091,11 @@
LDIFWriter ldifWriter = getLDIFWriter();
// Creates broker on o=test
- server01 = openReplicationSession(
- DN.decode(TEST_ROOT_DN_STRING), SERVER_ID_1,
+ server01 = openReplicationSession(TEST_ROOT_DN, SERVER_ID_1,
100, replicationServerPort, brokerSessionTimeout, true);
// Creates broker on o=test2
- server02 = openReplicationSession(
- DN.decode(TEST_ROOT_DN_STRING2), SERVER_ID_2,
+ server02 = openReplicationSession(TEST_ROOT_DN2, SERVER_ID_2,
100, replicationServerPort, brokerSessionTimeout, true);
String user1entryUUID = "11111111-1111-1111-1111-111111111111";
@@ -1142,7 +1134,7 @@
// Publish modDN
csnCounter++;
- final DN newSuperior = DN.decode(TEST_ROOT_DN_STRING2);
+ final DN newSuperior = TEST_ROOT_DN2;
ModifyDNOperation op = new ModifyDNOperationBasis(connection, 1, 1, null,
DN.decode("uid="+tn+"4," + TEST_ROOT_DN_STRING), // entryDN
RDN.decode("uid="+tn+"new4"), // new rdn
@@ -1386,8 +1378,7 @@
{
// Create broker on suffix
- ReplicationBroker server01 = openReplicationSession(
- DN.decode(TEST_ROOT_DN_STRING), SERVER_ID_1,
+ ReplicationBroker server01 = openReplicationSession(TEST_ROOT_DN, SERVER_ID_1,
100, replicationServerPort, brokerSessionTimeout, true);
CSN[] csns = generateCSNs(2, SERVER_ID_1);
@@ -1655,14 +1646,12 @@
try
{
// Create broker on o=test
- server01 = openReplicationSession(
- DN.decode(TEST_ROOT_DN_STRING), SERVER_ID_1,
+ server01 = openReplicationSession(TEST_ROOT_DN, SERVER_ID_1,
100, replicationServerPort, brokerSessionTimeout, true);
server01.setChangeTimeHeartbeatInterval(100); //ms
// Create broker on o=test2
- server02 = openReplicationSession(
- DN.decode(TEST_ROOT_DN_STRING2), SERVER_ID_2,
+ server02 = openReplicationSession(TEST_ROOT_DN2, SERVER_ID_2,
100, replicationServerPort, brokerSessionTimeout, true, EMPTY_DN_GENID);
server02.setChangeTimeHeartbeatInterval(100); //ms
@@ -2196,12 +2185,10 @@
backend2 = initializeTestBackend(true, TEST_BACKEND_ID2);
// --
- s1test = openReplicationSession(
- DN.decode(TEST_ROOT_DN_STRING), SERVER_ID_1,
+ s1test = openReplicationSession(TEST_ROOT_DN, SERVER_ID_1,
100, replicationServerPort, brokerSessionTimeout, true);
- s2test2 = openReplicationSession(
- DN.decode(TEST_ROOT_DN_STRING2), SERVER_ID_2,
+ s2test2 = openReplicationSession(TEST_ROOT_DN2, SERVER_ID_2,
100, replicationServerPort, brokerSessionTimeout, true, EMPTY_DN_GENID);
sleep(500);
@@ -2222,12 +2209,10 @@
sleep(500);
// --
- s1test2 = openReplicationSession(
- DN.decode(TEST_ROOT_DN_STRING2), 1203,
+ s1test2 = openReplicationSession(TEST_ROOT_DN2, 1203,
100, replicationServerPort, brokerSessionTimeout, true, EMPTY_DN_GENID);
- s2test = openReplicationSession(
- DN.decode(TEST_ROOT_DN_STRING), 1204,
+ s2test = openReplicationSession(TEST_ROOT_DN, 1204,
100, replicationServerPort, brokerSessionTimeout, true);
sleep(500);
@@ -2246,20 +2231,20 @@
publishDeleteMsgInOTest(s2test, csn9, tn, 9);
sleep(500);
- ReplicationServerDomain rsd1 = replicationServer.getReplicationServerDomain(TEST_ROOT_DN_STRING);
+ ReplicationServerDomain rsd1 = replicationServer.getReplicationServerDomain(TEST_ROOT_DN);
rsd1.getDbServerState();
rsd1.getChangeTimeHeartbeatState();
- debugInfo(tn, rsd1.getBaseDn()
+ debugInfo(tn, rsd1.getBaseDN()
+ " DbServerState=" + rsd1.getDbServerState()
+ " ChangeTimeHeartBeatState=" + rsd1.getChangeTimeHeartbeatState()
+ " eligibleCSN=" + rsd1.getEligibleCSN()
+ " rs eligibleCSN=" + replicationServer.getEligibleCSN());
// FIXME:ECL Enable this test by adding an assert on the right value
- ReplicationServerDomain rsd2 = replicationServer.getReplicationServerDomain(TEST_ROOT_DN_STRING2);
+ ReplicationServerDomain rsd2 = replicationServer.getReplicationServerDomain(TEST_ROOT_DN2);
rsd2.getDbServerState();
rsd2.getChangeTimeHeartbeatState();
- debugInfo(tn, rsd2.getBaseDn()
+ debugInfo(tn, rsd2.getBaseDN()
+ " DbServerState=" + rsd2.getDbServerState()
+ " ChangeTimeHeartBeatState=" + rsd2.getChangeTimeHeartbeatState()
+ " eligibleCSN=" + rsd2.getEligibleCSN()
@@ -2309,8 +2294,7 @@
LDIFWriter ldifWriter = getLDIFWriter();
// Creates broker on o=test
- ReplicationBroker server01 = openReplicationSession(
- DN.decode(TEST_ROOT_DN_STRING), SERVER_ID_1,
+ ReplicationBroker server01 = openReplicationSession(TEST_ROOT_DN, SERVER_ID_1,
100, replicationServerPort, brokerSessionTimeout, true);
String user1entryUUID = "11111111-1112-1113-1114-111111111115";
@@ -2356,7 +2340,7 @@
DN.decode("uid="+tn+"4," + TEST_ROOT_DN_STRING), // entryDN
RDN.decode("uid="+tn+"new4"), // new rdn
true, // deleteoldrdn
- DN.decode(TEST_ROOT_DN_STRING2)); // new superior
+ TEST_ROOT_DN2); // new superior
op.setAttachment(SYNCHROCONTEXT, new ModifyDnContext(csns[3], user1entryUUID, "newparentId"));
LocalBackendModifyDNOperation localOp = new LocalBackendModifyDNOperation(op);
ModifyDNMsg modDNMsg = new ModifyDNMsg(localOp);
@@ -2455,8 +2439,7 @@
LDIFWriter ldifWriter = getLDIFWriter();
// Creates broker on o=test
- ReplicationBroker server01 =
- openReplicationSession(DN.decode(TEST_ROOT_DN_STRING), SERVER_ID_1,
+ ReplicationBroker server01 = openReplicationSession(TEST_ROOT_DN, SERVER_ID_1,
100, replicationServerPort, brokerSessionTimeout, true);
String user1entryUUID = "11111111-1112-1113-1114-111111111115";
@@ -2493,8 +2476,7 @@
debugInfo(tn, "Starting test\n\n");
// Creates broker on o=test
- ReplicationBroker server01 =
- openReplicationSession(DN.decode(TEST_ROOT_DN_STRING), SERVER_ID_1, 100,
+ ReplicationBroker server01 = openReplicationSession(TEST_ROOT_DN, SERVER_ID_1, 100,
replicationServerPort, brokerSessionTimeout, true);
String filter = "(changenumber=" + firstChangeNumber + ")";
@@ -2776,8 +2758,7 @@
ECLCompatTestLimits(expectedFirst, expectedLast, true);
// Creates broker on o=test
- ReplicationBroker server01 =
- openReplicationSession(DN.decode(TEST_ROOT_DN_STRING), SERVER_ID_1, 100,
+ ReplicationBroker server01 = openReplicationSession(TEST_ROOT_DN, SERVER_ID_1, 100,
replicationServerPort, brokerSessionTimeout, true);
String user1entryUUID = "11111111-1112-1113-1114-111111111115";
@@ -2808,7 +2789,7 @@
final CSN csn2 = csns[1];
final CSN csn3 = csns[2];
- ReplicationServerDomain rsdtest = replicationServer.getReplicationServerDomain(TEST_ROOT_DN_STRING);
+ ReplicationServerDomain rsdtest = replicationServer.getReplicationServerDomain(TEST_ROOT_DN);
// this empty state will force to count from the start of the DB
final ServerState fromStart = new ServerState();
@@ -2816,8 +2797,7 @@
assertEquals(rsdtest.getEligibleCount(fromStart, csns[0]), 0);
// Creates broker on o=test
- ReplicationBroker server01 = openReplicationSession(
- DN.decode(TEST_ROOT_DN_STRING), SERVER_ID_1,
+ ReplicationBroker server01 = openReplicationSession(TEST_ROOT_DN, SERVER_ID_1,
1000, replicationServerPort, brokerSessionTimeout, true);
// Publish one first message
@@ -2945,14 +2925,13 @@
// Configure replication on this backend
// Add the root entry in the backend
backend2 = initializeTestBackend(false, TEST_BACKEND_ID2);
- DN baseDn2 = DN.decode(TEST_ROOT_DN_STRING2);
SortedSet<String> replServers = newSet("localhost:" + replicationServerPort);
// on o=test2,sid=1702 include attrs set to : 'sn'
SortedSet<String> eclInclude = newSet("sn", "roomnumber");
- DomainFakeCfg domainConf = new DomainFakeCfg(baseDn2, 1702, replServers);
+ DomainFakeCfg domainConf = new DomainFakeCfg(TEST_ROOT_DN2, 1702, replServers);
domain2 = startNewDomain(domainConf, eclInclude, eclInclude);
backend3 = initializeTestBackend(false, TEST_BACKEND_ID3);
@@ -2969,12 +2948,12 @@
// on o=test2,sid=1704 include attrs set to : 'cn'
eclInclude = newSet("cn");
- domainConf = new DomainFakeCfg(baseDn2, 1704, replServers);
+ domainConf = new DomainFakeCfg(TEST_ROOT_DN2, 1704, replServers);
domain21 = startNewDomain(domainConf, eclInclude, eclInclude);
sleep(1000);
- addEntry(createEntry(baseDn2));
+ addEntry(createEntry(TEST_ROOT_DN2));
addEntry(createEntry(baseDn3));
String lentry =
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DbHandlerTest.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DbHandlerTest.java
index 6c02c78..b68f4c9 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DbHandlerTest.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DbHandlerTest.java
@@ -41,6 +41,7 @@
import org.opends.server.replication.server.ReplServerFakeConfiguration;
import org.opends.server.replication.server.ReplicationServer;
import org.opends.server.replication.server.changelog.api.ReplicaDBCursor;
+import org.opends.server.types.DN;
import org.opends.server.util.StaticUtils;
import org.testng.annotations.Test;
@@ -86,7 +87,7 @@
testRoot = createCleanDir();
dbEnv = new ReplicationDbEnv(testRoot.getPath(), replicationServer);
- handler = new DbHandler(1, TEST_ROOT_DN_STRING, replicationServer, dbEnv, 5000);
+ handler = new DbHandler(1, DN.decode(TEST_ROOT_DN_STRING), replicationServer, dbEnv, 5000);
CSNGenerator gen = new CSNGenerator( 1, 0);
CSN csn1 = gen.newCSN();
@@ -251,7 +252,7 @@
testRoot = createCleanDir();
dbEnv = new ReplicationDbEnv(testRoot.getPath(), replicationServer);
- handler = new DbHandler(1, TEST_ROOT_DN_STRING, replicationServer, dbEnv, 5000);
+ handler = new DbHandler(1, DN.decode(TEST_ROOT_DN_STRING), replicationServer, dbEnv, 5000);
// Creates changes added to the dbHandler
CSNGenerator gen = new CSNGenerator( 1, 0);
@@ -347,7 +348,7 @@
testRoot = createCleanDir();
dbEnv = new ReplicationDbEnv(testRoot.getPath(), replicationServer);
- handler = new DbHandler(1, TEST_ROOT_DN_STRING, replicationServer, dbEnv, 10);
+ handler = new DbHandler(1, DN.decode(TEST_ROOT_DN_STRING), replicationServer, dbEnv, 10);
handler.setCounterWindowSize(counterWindow);
// Populate the db with 'max' msg
@@ -443,7 +444,7 @@
debugInfo(tn,"SHUTDOWN handler and recreate");
handler.shutdown();
- handler = new DbHandler(1, TEST_ROOT_DN_STRING, replicationServer, dbEnv, 10);
+ handler = new DbHandler(1, DN.decode(TEST_ROOT_DN_STRING), replicationServer, dbEnv, 10);
handler.setCounterWindowSize(counterWindow);
// Test first and last
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandlerTest.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandlerTest.java
index b82861c..4ff647d 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandlerTest.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/DraftCNDbHandlerTest.java
@@ -40,6 +40,7 @@
import org.opends.server.replication.server.changelog.api.ChangeNumberIndexDBCursor;
import org.opends.server.replication.server.changelog.api.ChangelogException;
import org.opends.server.replication.server.changelog.je.DraftCNDB.DraftCNDBCursor;
+import org.opends.server.types.DN;
import org.opends.server.util.StaticUtils;
import org.testng.annotations.Test;
@@ -92,9 +93,9 @@
String value2 = "value2";
String value3 = "value3";
- String baseDN1 = "baseDN1";
- String baseDN2 = "baseDN2";
- String baseDN3 = "baseDN3";
+ DN baseDN1 = DN.decode("o=baseDN1");
+ DN baseDN2 = DN.decode("o=baseDN2");
+ DN baseDN3 = DN.decode("o=baseDN3");
CSNGenerator gen = new CSNGenerator(1, 0);
CSN csn1 = gen.newCSN();
@@ -153,8 +154,7 @@
}
}
- private void assertEqualTo(CNIndexRecord data, CSN csn, String baseDN,
- String cookie)
+ private void assertEqualTo(CNIndexRecord data, CSN csn, DN baseDN, String cookie)
{
assertEquals(data.getCSN(), csn);
assertEquals(data.getBaseDN(), baseDN);
@@ -219,9 +219,9 @@
String value2 = "value2";
String value3 = "value3";
- String baseDN1 = "baseDN1";
- String baseDN2 = "baseDN2";
- String baseDN3 = "baseDN3";
+ DN baseDN1 = DN.decode("o=baseDN1");
+ DN baseDN2 = DN.decode("o=baseDN2");
+ DN baseDN3 = DN.decode("o=baseDN3");
CSNGenerator gen = new CSNGenerator(1, 0);
CSN csn1 = gen.newCSN();
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/service/FakeReplicationDomain.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/service/FakeReplicationDomain.java
index cea2757..eb55ed1 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/service/FakeReplicationDomain.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/service/FakeReplicationDomain.java
@@ -27,8 +27,6 @@
*/
package org.opends.server.replication.service;
-import static org.opends.messages.ReplicationMessages.*;
-
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -38,9 +36,12 @@
import org.opends.server.config.ConfigException;
import org.opends.server.replication.protocol.UpdateMsg;
+import org.opends.server.types.DN;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.ResultCode;
+import static org.opends.messages.ReplicationMessages.*;
+
/**
* This class is the minimum implementation of a Concrete ReplicationDomain
* used to test the Generic Replication Service.
@@ -52,23 +53,23 @@
* A blocking queue that is used to send the UpdateMsg received from the
* Replication Service.
*/
- private BlockingQueue<UpdateMsg> queue = null;
+ private BlockingQueue<UpdateMsg> queue;
/** A string that will be exported should exportBackend be called. */
- private String exportString = null;
+ private String exportString;
/**
* A StringBuilder that will be used to build a build a new String should the
* import be called.
*/
- private StringBuilder importString = null;
+ private StringBuilder importString;
private int exportedEntryCount;
private long generationID = 1;
public FakeReplicationDomain(
- String baseDN,
+ DN baseDN,
int serverID,
Collection<String> replicationServers,
int window,
@@ -82,7 +83,7 @@
}
public FakeReplicationDomain(
- String baseDN,
+ DN baseDN,
int serverID,
Collection<String> replicationServers,
int window,
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/service/FakeStressReplicationDomain.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/service/FakeStressReplicationDomain.java
index 03fef06..26109f8 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/service/FakeStressReplicationDomain.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/service/FakeStressReplicationDomain.java
@@ -38,6 +38,7 @@
import org.opends.server.config.ConfigException;
import org.opends.server.replication.protocol.UpdateMsg;
+import org.opends.server.types.DN;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.ResultCode;
@@ -55,7 +56,7 @@
private BlockingQueue<UpdateMsg> queue = null;
public FakeStressReplicationDomain(
- String baseDN,
+ DN baseDN,
int serverID,
Collection<String> replicationServers,
int window,
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/service/ReplicationDomainTest.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/service/ReplicationDomainTest.java
index 9adaa20..e07d1cc 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/service/ReplicationDomainTest.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/service/ReplicationDomainTest.java
@@ -43,6 +43,7 @@
import org.opends.server.replication.protocol.UpdateMsg;
import org.opends.server.replication.server.ReplServerFakeConfiguration;
import org.opends.server.replication.server.ReplicationServer;
+import org.opends.server.types.DN;
import org.opends.server.util.StaticUtils;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
@@ -77,7 +78,7 @@
int domain1ServerId, int domain2ServerId)
throws Exception
{
- String testService = "test";
+ DN testService = DN.decode("o=test");
ReplicationServer replServer1 = null;
ReplicationServer replServer2 = null;
FakeReplicationDomain domain1 = null;
@@ -207,7 +208,7 @@
@Test(enabled=false)
public void publishPerf() throws Exception
{
- String testService = "test";
+ DN testService = DN.decode("o=test");
ReplicationServer replServer1 = null;
int replServerID1 = 10;
FakeReplicationDomain domain1 = null;
@@ -324,7 +325,7 @@
public void exportAndImport(int serverId1, int serverId2) throws Exception
{
final int ENTRYCOUNT=5000;
- String testService = "test";
+ DN testService = DN.decode("o=test");
ReplicationServer replServer = null;
int replServerID = 11;
FakeReplicationDomain domain1 = null;
@@ -395,7 +396,7 @@
public void exportAndImportAcross2ReplServers() throws Exception
{
final int ENTRYCOUNT=5000;
- String testService = "test";
+ DN testService = DN.decode("o=test");
ReplicationServer replServer2 = null;
ReplicationServer replServer1 = null;
int replServerID = 11;
@@ -483,7 +484,7 @@
@Test(enabled=false)
public void senderInitialize() throws Exception
{
- String testService = "test";
+ DN testService = DN.decode("o=test");
ReplicationServer replServer = null;
int replServerID = 12;
FakeStressReplicationDomain domain1 = null;
@@ -517,7 +518,7 @@
@Test(enabled=false)
public void receiverInitialize() throws Exception
{
- String testService = "test";
+ DN testService = DN.decode("o=test");
ReplicationServer replServer = null;
int replServerID = 11;
FakeStressReplicationDomain domain1 = null;
--
Gitblit v1.10.0