DomainFakeCfg.java revision 2efcb9667318c099d8723dd578f198c16b4a22c4
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at
* trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
* add the following below this CDDL HEADER, with the fields enclosed
* by brackets "[]" replaced with your own identifying information:
* Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*
*
* Copyright 2007-2010 Sun Microsystems, Inc.
* Portions copyright 2011 ForgeRock AS
*/
/**
* This class implement a configuration object for the MultimasterDomain
* that can be used in unit tests to instantiate ReplicationDomain.
*/
public class DomainFakeCfg implements ReplicationDomainCfg
{
private int serverId;
private long heartbeatInterval = 1000;
// By default changeTimeHeartbeatInterval is set to 0 in order to disable
// this feature and not kill the tests that expect to receive special
// messages.
private long changeTimeHeartbeatInterval = 0;
// Is assured mode enabled or not ?
private boolean assured = false;
// Assured sub mode (used when assured is true)
// Safe Data level (used when assuredType is safe data)
private int assuredSdLevel = 1;
// Timeout (in milliseconds) when waiting for acknowledgments
private long assuredTimeout = 1000;
// Group id
private int groupId = 1;
// Referrals urls to be published to other servers of the topology
private ExternalChangelogDomainCfg eclCfg =
/**
* Creates a new Domain with the provided information
* (assured mode disabled, default group id)
*/
{
this.replicationServers = replServers;
}
/**
* Creates a new Domain with the provided information
* (with some fractional configuration provided)
*/
{
if (fractionalExcludes != null)
{
{
}
}
if (fractionalIncludes != null)
{
{
}
}
}
/**
* Creates a new Domain with the provided information
* (assured mode disabled, group id provided)
*/
int groupId)
{
}
/**
* Creates a new Domain with the provided information
* (assured mode info provided as well as group id)
*/
{
switch(assuredType)
{
case NOT_ASSURED:
assured = false;
break;
case SAFE_DATA:
case SAFE_READ:
assured = true;
this.assuredType = assuredType;
break;
}
this.assuredSdLevel = assuredSdLevel;
this.assuredTimeout = assuredTimeout;
}
/**
* Create a new Domain from the provided arguments.
*
* @param string The baseDN in string form.
* @param serverId The serverID.
* @param replServer The replication Server that will be used.
*
* @throws DirectoryException When the provided string is not a valid DN.
*/
throws DirectoryException
{
}
/**
* {@inheritDoc}
*/
public void addChangeListener(
{
}
/**
* {@inheritDoc}
*/
{
return null;
}
/**
* {@inheritDoc}
*/
public long getHeartbeatInterval()
{
return heartbeatInterval ;
}
/**
* {@inheritDoc}
*/
public long getChangetimeHeartbeatInterval()
{
return changeTimeHeartbeatInterval;
}
/**
* {@inheritDoc}
*/
public void setChangetimeHeartbeatInterval(long changeTimeHeartbeatInterval)
{
}
/**
* {@inheritDoc}
*/
public long getMaxReceiveDelay()
{
return 0;
}
/**
* {@inheritDoc}
*/
public int getMaxReceiveQueue()
{
return 0;
}
/**
* {@inheritDoc}
*/
public long getMaxSendDelay()
{
return 0;
}
/**
* {@inheritDoc}
*/
public int getMaxSendQueue()
{
return 0;
}
/**
* {@inheritDoc}
*/
{
return baseDn;
}
/**
* {@inheritDoc}
*/
{
return replicationServers;
}
/**
* {@inheritDoc}
*/
public int getServerId()
{
return serverId;
}
/**
* {@inheritDoc}
*/
public int getWindowSize()
{
return 100;
}
/**
* {@inheritDoc}
*/
public void removeChangeListener(
{
}
/**
* {@inheritDoc}
*/
{
try
{
return DN.decode("cn=domain, cn=domains,cn=Multimaster Synchronization,cn=Synchronization Providers,cn=config");
} catch (DirectoryException e)
{
return null;
}
}
/**
* {@inheritDoc}
*/
return null;
}
/**
* Set the heartbeat interval.
*
* @param interval
*/
public void setHeartbeatInterval(long interval)
{
}
/**
* Get the isolation policy.
*/
public IsolationPolicy getIsolationPolicy()
{
return policy;
}
/**
* Set the isolation policy.
*
* @param policy the policy that must now be used.
*/
{
}
public int getAssuredSdLevel()
{
return assuredSdLevel;
}
public int getGroupId()
{
return groupId;
}
public long getAssuredTimeout()
{
return assuredTimeout;
}
public AssuredType getAssuredType()
{
return assuredType;
}
public boolean isAssured()
{
return assured;
}
{
return refUrls;
}
{
return fractionalExcludes;
}
{
return fractionalIncludes;
}
public boolean isSolveConflicts()
{
return true;
}
public long getInitializationHeartbeatInterval()
{
return 180;
}
public int getInitializationWindowSize()
{
return 100;
}
public boolean hasExternalChangelogDomain() { return true; }
/**
* Gets the ECL Domain if it is present.
*
* @return Returns the ECL Domain if it is present.
* @throws ConfigException
* If the ECL Domain does not exist or it could not
* be successfully decoded.
*/
throws ConfigException
{ return eclCfg; }
/**
* Sets the ECL Domain if it is present.
*
* @return Returns the ECL Domain if it is present.
* @throws ConfigException
* If the ECL Domain does not exist or it could not
* be successfully decoded.
*/
throws ConfigException
/**
* Registers to be notified when the ECL Domain is added.
*
* @param listener
* The ECL Domain configuration add listener.
* @throws ConfigException
* If the add listener could not be registered.
*/
public
void addECLDomainAddListener(
throws ConfigException
{}
/**
* Deregisters an existing ECL Domain configuration add listener.
*
* @param listener
* The ECL Domain configuration add listener.
*/
public void removeECLDomainAddListener(
{}
/**
* Registers to be notified the ECL Domain is deleted.
*
* @param listener
* The ECL Domain configuration delete listener.
* @throws ConfigException
* If the delete listener could not be registered.
*/
public void
throws ConfigException
{}
/**
* Deregisters an existing ECL Domain configuration delete listener.
*
* @param listener
* The ECL Domain configuration delete listener.
*/
public void
{}
public boolean isLogChangenumber()
{
return true;
}
/**
* Gets the "conflicts-historical-purge-delay" property.
* <p>
* This delay indicates the time (in minutes) the domain keeps the
* historical information necessary to solve conflicts.
*
* @return Returns the value of the "conflicts-historical-purge-delay" property.
**/
public long getConflictsHistoricalPurgeDelay()
{
return 1440;
}
}