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(ServerContext serverContext,
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(LocalBackend<?> backend,
BackupConfig config)
Performs any processing that might be necessary just before the server begins processing on a backup task.
|
void |
processBackupEnd(LocalBackend<?> backend,
BackupConfig config,
boolean successful)
Performs any processing that might be necessary after the server has completed processing on a backup task.
|
void |
processExportBegin(LocalBackend<?> backend,
LDIFExportConfig config)
Performs any processing that might be necessary just before the server begins processing on an LDIF export task.
|
void |
processExportEnd(LocalBackend<?> 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(LocalBackend<?> backend,
LDIFImportConfig config)
Performs any processing that might be necessary just before the server begins processing on an LDIF import task.
|
void |
processImportEnd(LocalBackend<?> 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(LocalBackend<?> backend,
RestoreConfig config)
Performs any processing that might be necessary just before the server begins processing on a restore task.
|
void |
processRestoreEnd(LocalBackend<?> 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 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(ServerContext serverContext, ReplicationSynchronizationProviderCfg cfg) throws ConfigException
SynchronizationProvider
initializeSynchronizationProvider
in class SynchronizationProvider<ReplicationSynchronizationProviderCfg>
serverContext
- The server context.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(LocalBackend<?> 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(LocalBackend<?> 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(LocalBackend<?> 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(LocalBackend<?> 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(LocalBackend<?> 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(LocalBackend<?> 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(LocalBackend<?> 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(LocalBackend<?> 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-2020 ForgeRock AS.