public class MultimasterReplication extends SynchronizationProvider<ReplicationSynchronizationProviderCfg> implements ConfigurationAddListener<ReplicationDomainCfg>, ConfigurationDeleteListener<ReplicationDomainCfg>, ConfigurationChangeListener<ReplicationSynchronizationProviderCfg>, BackupTaskListener, RestoreTaskListener, ImportTaskListener, ExportTaskListener
Modifier and Type | Class and Description |
---|---|
static class |
MultimasterReplication.UnreachableReplicationServers
Keeps information on temporarily unreachable replication unreachableServers.
|
Constructor and Description |
---|
MultimasterReplication() |
Modifier and Type | Method and Description |
---|---|
ConfigChangeResult |
applyConfigurationAdd(ReplicationDomainCfg configuration)
Adds a new configuration to this add listener.
|
ConfigChangeResult |
applyConfigurationChange(ReplicationSynchronizationProviderCfg configuration)
Applies the configuration changes to this change listener.
|
ConfigChangeResult |
applyConfigurationDelete(ReplicationDomainCfg configuration)
Deletes an existing configuration from this delete listener.
|
void |
completeSynchronizationProvider()
Performs any necessary final initialization processing for this
synchronization provider.
|
static LDAPReplicationDomain |
createNewDomain(ReplicationDomainCfg configuration)
Creates a new domain from its configEntry, do the
necessary initialization and starts it so that it is
fully operational when this method returns.
|
static void |
deleteDomain(DN dn)
Deletes a domain.
|
void |
doPostOperation(PostOperationAddOperation addOperation)
Performs any necessary synchronization processing that may be
needed after the provided add operation is performed.
|
void |
doPostOperation(PostOperationDeleteOperation deleteOperation)
Performs any necessary synchronization processing that may be
needed after the provided delete operation is performed.
|
void |
doPostOperation(PostOperationModifyDNOperation modifyDNOperation)
Performs any necessary synchronization processing that may be
needed after the provided modify DN operation is performed.
|
void |
doPostOperation(PostOperationModifyOperation modifyOperation)
Performs any necessary synchronization processing that may be
needed after the provided modify operation is performed.
|
SynchronizationProviderResult |
doPreOperation(PreOperationAddOperation addOperation)
Performs any necessary synchronization processing that may be
needed before the provided add operation is performed.
|
SynchronizationProviderResult |
doPreOperation(PreOperationDeleteOperation deleteOperation)
Performs any necessary synchronization processing that may be
needed before the provided delete operation is performed.
|
SynchronizationProviderResult |
doPreOperation(PreOperationModifyDNOperation modifyDNOperation)
Performs any necessary synchronization processing that may be
needed before the provided modify DN operation is performed.
|
SynchronizationProviderResult |
doPreOperation(PreOperationModifyOperation modifyOperation)
Performs any necessary synchronization processing that may be
needed before the provided modify operation is performed.
|
void |
finalizeSynchronizationProvider()
Performs any necessary finalization for this synchronization
provider.
|
static LDAPReplicationDomain |
findDomain(DN dn,
PluginOperation pluginOp)
Finds the domain for a given DN.
|
static int |
getConnectionTimeoutMS()
Returns the connection timeout in milli-seconds.
|
static Set<DN> |
getExcludedChangelogDomains()
Gets the Set of domain baseDN which are disabled for the external changelog.
|
static int |
getNumberOfDomains()
Gets the number of handled domain objects.
|
ReplicationServerListener |
getReplicationServerListener()
Returns the replication server listener associated to that Multimaster
Replication.
|
static MultimasterReplication.UnreachableReplicationServers |
getUnreachableReplicationServers()
Returns temporarily unreachable Replication Servers.
|
SynchronizationProviderResult |
handleConflictResolution(PreOperationAddOperation addOperation)
Performs any necessary synchronization processing for the
operation that may be needed early on to deal with any potential
conflict resolution or updates to historical data.
|
SynchronizationProviderResult |
handleConflictResolution(PreOperationDeleteOperation deleteOperation)
Performs any necessary synchronization processing for the
operation that may be needed early on to deal with any potential
conflict resolution or updates to historical data.
|
SynchronizationProviderResult |
handleConflictResolution(PreOperationModifyDNOperation modifyDNOperation)
Performs any necessary synchronization processing for the
operation that may be needed early on to deal with any potential
conflict resolution or updates to historical data.
|
SynchronizationProviderResult |
handleConflictResolution(PreOperationModifyOperation modifyOperation)
Performs any necessary synchronization processing for the
operation that may be needed early on to deal with any potential
conflict resolution or updates to historical data.
|
void |
initializeSynchronizationProvider(ReplicationSynchronizationProviderCfg cfg)
Performs any initialization that might be necessary for this
synchronization provider.
|
boolean |
isConfigurationAddAcceptable(ReplicationDomainCfg configuration,
List<LocalizableMessage> unacceptableReasons)
Indicates whether the proposed addition of a new configuration is
acceptable to this add listener.
|
boolean |
isConfigurationChangeAcceptable(ReplicationSynchronizationProviderCfg configuration,
List<LocalizableMessage> unacceptableReasons)
Indicates whether the proposed change to the configuration is acceptable
to this change listener.
|
boolean |
isConfigurationDeleteAcceptable(ReplicationDomainCfg configuration,
List<LocalizableMessage> unacceptableReasons)
Indicates whether the proposed deletion of an existing configuration is
acceptable to this delete listener.
|
static boolean |
isECLEnabled()
Returns whether the external change-log contains data from at least a domain.
|
static boolean |
isECLEnabledDomain(DN baseDN)
Returns whether the provided baseDN represents a replication domain enabled
for the external changelog.
|
void |
processBackupBegin(Backend<?> backend,
BackupConfig config)
Performs any processing that might be necessary just before the
server begins processing on a backup task.
|
void |
processBackupEnd(Backend<?> backend,
BackupConfig config,
boolean successful)
Performs any processing that might be necessary after the server
has completed processing on a backup task.
|
void |
processExportBegin(Backend<?> backend,
LDIFExportConfig config)
Performs any processing that might be necessary just before the
server begins processing on an LDIF export task.
|
void |
processExportEnd(Backend<?> backend,
LDIFExportConfig config,
boolean successful)
Performs any processing that might be necessary after the server
has completed processing on an LDIF export task.
|
void |
processImportBegin(Backend<?> backend,
LDIFImportConfig config)
Performs any processing that might be necessary just before the
server begins processing on an LDIF import task.
|
void |
processImportEnd(Backend<?> backend,
LDIFImportConfig config,
boolean successful)
Performs any processing that might be necessary after the server
has completed processing on an LDIF import task.
|
void |
processRestoreBegin(Backend<?> backend,
RestoreConfig config)
Performs any processing that might be necessary just before the
server begins processing on a restore task.
|
void |
processRestoreEnd(Backend<?> backend,
RestoreConfig config,
boolean successful)
Performs any processing that might be necessary after the server
has completed processing on a restore task.
|
void |
processSchemaChange(List<Modification> modifications)
This method is called whenever the server detects a modification
of the schema done by directly modifying the backing files
of the schema backend.
|
isConfigurationAcceptable
public MultimasterReplication()
public static LDAPReplicationDomain findDomain(DN dn, PluginOperation pluginOp)
dn
- The DN for which the domain must be returned.pluginOp
- An optional operation for which the check is done.
Can be null is the request has no associated operation.public static LDAPReplicationDomain createNewDomain(ReplicationDomainCfg configuration) throws ConfigException
configuration
- The entry with the configuration of this domain.ConfigException
- When the configuration is not valid.public static void deleteDomain(DN dn)
dn
- : the base DN of the domain to delete.public void initializeSynchronizationProvider(ReplicationSynchronizationProviderCfg cfg) throws ConfigException
SynchronizationProvider
initializeSynchronizationProvider
in class SynchronizationProvider<ReplicationSynchronizationProviderCfg>
cfg
- The configuration information for this
synchronization provider.ConfigException
- If the provided entry does not contain
a valid configuration for this
synchronization provider.public boolean isConfigurationAddAcceptable(ReplicationDomainCfg configuration, List<LocalizableMessage> unacceptableReasons)
ConfigurationAddListener
isConfigurationAddAcceptable
in interface ConfigurationAddListener<ReplicationDomainCfg>
configuration
- The configuration that will be added.unacceptableReasons
- A list that can be used to hold messages about why the
provided configuration is not acceptable.true
if the proposed addition is acceptable,
or false
if it is not.public ConfigChangeResult applyConfigurationAdd(ReplicationDomainCfg configuration)
ConfigurationAddListener
applyConfigurationAdd
in interface ConfigurationAddListener<ReplicationDomainCfg>
configuration
- The configuration that will be added.public void doPostOperation(PostOperationAddOperation addOperation)
SynchronizationProvider
doPostOperation
in class SynchronizationProvider<ReplicationSynchronizationProviderCfg>
addOperation
- The add operation to be processed.public void doPostOperation(PostOperationDeleteOperation deleteOperation)
SynchronizationProvider
doPostOperation
in class SynchronizationProvider<ReplicationSynchronizationProviderCfg>
deleteOperation
- The delete operation to be processed.public void doPostOperation(PostOperationModifyDNOperation modifyDNOperation)
SynchronizationProvider
doPostOperation
in class SynchronizationProvider<ReplicationSynchronizationProviderCfg>
modifyDNOperation
- The modify DN operation to be
processed.public void doPostOperation(PostOperationModifyOperation modifyOperation)
SynchronizationProvider
doPostOperation
in class SynchronizationProvider<ReplicationSynchronizationProviderCfg>
modifyOperation
- The modify operation to be processed.public SynchronizationProviderResult handleConflictResolution(PreOperationModifyOperation modifyOperation)
SynchronizationProvider
handleConflictResolution
in class SynchronizationProvider<ReplicationSynchronizationProviderCfg>
modifyOperation
- The modify operation to be processed.public SynchronizationProviderResult handleConflictResolution(PreOperationAddOperation addOperation) throws DirectoryException
SynchronizationProvider
handleConflictResolution
in class SynchronizationProvider<ReplicationSynchronizationProviderCfg>
addOperation
- The add operation to be processed.DirectoryException
- If a problem occurs during
synchronization processing.public SynchronizationProviderResult handleConflictResolution(PreOperationDeleteOperation deleteOperation) throws DirectoryException
SynchronizationProvider
handleConflictResolution
in class SynchronizationProvider<ReplicationSynchronizationProviderCfg>
deleteOperation
- The delete operation to be processed.DirectoryException
- If a problem occurs during
synchronization processing.public SynchronizationProviderResult handleConflictResolution(PreOperationModifyDNOperation modifyDNOperation) throws DirectoryException
SynchronizationProvider
handleConflictResolution
in class SynchronizationProvider<ReplicationSynchronizationProviderCfg>
modifyDNOperation
- The modify DN operation to be
processed.DirectoryException
- If a problem occurs during
synchronization processing.public SynchronizationProviderResult doPreOperation(PreOperationModifyOperation modifyOperation)
SynchronizationProvider
doPreOperation
in class SynchronizationProvider<ReplicationSynchronizationProviderCfg>
modifyOperation
- The modify operation to be processed.public SynchronizationProviderResult doPreOperation(PreOperationDeleteOperation deleteOperation) throws DirectoryException
SynchronizationProvider
doPreOperation
in class SynchronizationProvider<ReplicationSynchronizationProviderCfg>
deleteOperation
- The delete operation to be processed.DirectoryException
- If a problem occurs during
synchronization processing.public SynchronizationProviderResult doPreOperation(PreOperationModifyDNOperation modifyDNOperation) throws DirectoryException
SynchronizationProvider
doPreOperation
in class SynchronizationProvider<ReplicationSynchronizationProviderCfg>
modifyDNOperation
- The modify DN operation to be
processed.DirectoryException
- If a problem occurs during
synchronization processing.public SynchronizationProviderResult doPreOperation(PreOperationAddOperation addOperation)
SynchronizationProvider
doPreOperation
in class SynchronizationProvider<ReplicationSynchronizationProviderCfg>
addOperation
- The add operation to be processed.public void finalizeSynchronizationProvider()
SynchronizationProvider
finalizeSynchronizationProvider
in class SynchronizationProvider<ReplicationSynchronizationProviderCfg>
public void processSchemaChange(List<Modification> modifications)
processSchemaChange
in class SynchronizationProvider<ReplicationSynchronizationProviderCfg>
modifications
- The list of modifications that was
applied to the schema.public void processBackupBegin(Backend<?> backend, BackupConfig config)
BackupTaskListener
processBackupBegin
in interface BackupTaskListener
backend
- The backend to be archived.config
- Configuration information about the backup to be
performed.public void processBackupEnd(Backend<?> backend, BackupConfig config, boolean successful)
BackupTaskListener
processBackupEnd
in interface BackupTaskListener
backend
- The backend that was archived.config
- Configuration information about the backup
that was performed.successful
- Indicates whether the backup operation
completed successfully.public void processRestoreBegin(Backend<?> backend, RestoreConfig config)
RestoreTaskListener
processRestoreBegin
in interface RestoreTaskListener
backend
- The backend to be restored.config
- Configuration information about the restore to
be performed.public void processRestoreEnd(Backend<?> backend, RestoreConfig config, boolean successful)
RestoreTaskListener
processRestoreEnd
in interface RestoreTaskListener
backend
- The backend that was restored.config
- Configuration information about the restore
that was performed.successful
- Indicates whether the restore operation
completed successfully.public void processImportBegin(Backend<?> backend, LDIFImportConfig config)
ImportTaskListener
processImportBegin
in interface ImportTaskListener
backend
- The backend to be imported.config
- Configuration information about the LDIF import
to be performed.public void processImportEnd(Backend<?> backend, LDIFImportConfig config, boolean successful)
ImportTaskListener
processImportEnd
in interface ImportTaskListener
backend
- The backend that was imported.config
- Configuration information about the LDIF
import that was performed.successful
- Indicates whether the import operation
completed successfully.public void processExportBegin(Backend<?> backend, LDIFExportConfig config)
ExportTaskListener
processExportBegin
in interface ExportTaskListener
backend
- The backend to be exported.config
- Configuration information about the LDIF export
to be performed.public void processExportEnd(Backend<?> backend, LDIFExportConfig config, boolean successful)
ExportTaskListener
processExportEnd
in interface ExportTaskListener
backend
- The backend that was exported.config
- Configuration information about the LDIF
export that was performed.successful
- Indicates whether the export operation
completed successfully.public ConfigChangeResult applyConfigurationDelete(ReplicationDomainCfg configuration)
ConfigurationDeleteListener
applyConfigurationDelete
in interface ConfigurationDeleteListener<ReplicationDomainCfg>
configuration
- The existing configuration that will be deleted.public boolean isConfigurationDeleteAcceptable(ReplicationDomainCfg configuration, List<LocalizableMessage> unacceptableReasons)
ConfigurationDeleteListener
isConfigurationDeleteAcceptable
in interface ConfigurationDeleteListener<ReplicationDomainCfg>
configuration
- The configuration that will be deleted.unacceptableReasons
- A list that can be used to hold messages about why the
provided configuration is not acceptable.true
if the proposed deletion is acceptable,
or false
if it is not.public ReplicationServerListener getReplicationServerListener()
public boolean isConfigurationChangeAcceptable(ReplicationSynchronizationProviderCfg configuration, List<LocalizableMessage> unacceptableReasons)
ConfigurationChangeListener
isConfigurationChangeAcceptable
in interface ConfigurationChangeListener<ReplicationSynchronizationProviderCfg>
configuration
- The new configuration containing the changes.unacceptableReasons
- A list that can be used to hold messages about why the
provided configuration is not acceptable.true
if the proposed change is acceptable,
or false
if it is not.public ConfigChangeResult applyConfigurationChange(ReplicationSynchronizationProviderCfg configuration)
ConfigurationChangeListener
applyConfigurationChange
in interface ConfigurationChangeListener<ReplicationSynchronizationProviderCfg>
configuration
- The new configuration containing the changes.public void completeSynchronizationProvider()
SynchronizationProvider
completeSynchronizationProvider
in class SynchronizationProvider<ReplicationSynchronizationProviderCfg>
public static int getNumberOfDomains()
public static Set<DN> getExcludedChangelogDomains() throws DirectoryException
DirectoryException
- if a problem occurspublic static boolean isECLEnabledDomain(DN baseDN)
baseDN
- the replication domain to checkpublic static boolean isECLEnabled()
public static int getConnectionTimeoutMS()
public static MultimasterReplication.UnreachableReplicationServers getUnreachableReplicationServers()
Copyright 2010-2017 ForgeRock AS.