| | |
| | | import org.opends.messages.Message; |
| | | import org.opends.server.admin.server.ConfigurationAddListener; |
| | | import org.opends.server.admin.server.ConfigurationDeleteListener; |
| | | import org.opends.server.admin.std.server.MultimasterDomainCfg; |
| | | import org.opends.server.admin.std.server.MultimasterSynchronizationProviderCfg; |
| | | import org.opends.server.admin.std.server.ReplicationDomainCfg; |
| | | import org.opends.server.admin.std.server.ReplicationSynchronizationProviderCfg; |
| | | import org.opends.server.api.Backend; |
| | | import org.opends.server.api.BackupTaskListener; |
| | | import org.opends.server.api.ExportTaskListener; |
| | |
| | | * as pre-op, conflictRsolution, and post-op. |
| | | */ |
| | | public class MultimasterReplication |
| | | extends SynchronizationProvider<MultimasterSynchronizationProviderCfg> |
| | | implements ConfigurationAddListener<MultimasterDomainCfg>, |
| | | ConfigurationDeleteListener<MultimasterDomainCfg>, |
| | | extends SynchronizationProvider<ReplicationSynchronizationProviderCfg> |
| | | implements ConfigurationAddListener<ReplicationDomainCfg>, |
| | | ConfigurationDeleteListener<ReplicationDomainCfg>, |
| | | BackupTaskListener, RestoreTaskListener, ImportTaskListener, |
| | | ExportTaskListener |
| | | { |
| | |
| | | * @throws ConfigException When the configuration is not valid. |
| | | */ |
| | | public static ReplicationDomain createNewDomain( |
| | | MultimasterDomainCfg configuration) |
| | | ReplicationDomainCfg configuration) |
| | | throws ConfigException |
| | | { |
| | | ReplicationDomain domain; |
| | |
| | | */ |
| | | @Override |
| | | public void initializeSynchronizationProvider( |
| | | MultimasterSynchronizationProviderCfg configuration) |
| | | ReplicationSynchronizationProviderCfg configuration) |
| | | throws ConfigException |
| | | { |
| | | domains.clear(); |
| | |
| | | |
| | | // Register as an add and delete listener with the root configuration so we |
| | | // can be notified if Multimaster domain entries are added or removed. |
| | | configuration.addMultimasterDomainAddListener(this); |
| | | configuration.addMultimasterDomainDeleteListener(this); |
| | | configuration.addReplicationDomainAddListener(this); |
| | | configuration.addReplicationDomainDeleteListener(this); |
| | | |
| | | // Create the list of domains that are already defined. |
| | | for (String name : configuration.listMultimasterDomains()) |
| | | for (String name : configuration.listReplicationDomains()) |
| | | { |
| | | MultimasterDomainCfg domain = configuration.getMultimasterDomain(name); |
| | | ReplicationDomainCfg domain = configuration.getReplicationDomain(name); |
| | | createNewDomain(domain); |
| | | } |
| | | |
| | |
| | | * {@inheritDoc} |
| | | */ |
| | | public boolean isConfigurationAddAcceptable( |
| | | MultimasterDomainCfg configuration, List<Message> unacceptableReasons) |
| | | ReplicationDomainCfg configuration, List<Message> unacceptableReasons) |
| | | { |
| | | return ReplicationDomain.isConfigurationAcceptable( |
| | | configuration, unacceptableReasons); |
| | |
| | | * {@inheritDoc} |
| | | */ |
| | | public ConfigChangeResult applyConfigurationAdd( |
| | | MultimasterDomainCfg configuration) |
| | | ReplicationDomainCfg configuration) |
| | | { |
| | | try |
| | | { |
| | |
| | | * {@inheritDoc} |
| | | */ |
| | | public ConfigChangeResult applyConfigurationDelete( |
| | | MultimasterDomainCfg configuration) |
| | | ReplicationDomainCfg configuration) |
| | | { |
| | | deleteDomain(configuration.getReplicationDN()); |
| | | deleteDomain(configuration.getBaseDN()); |
| | | |
| | | return new ConfigChangeResult(ResultCode.SUCCESS, false); |
| | | } |
| | |
| | | * {@inheritDoc} |
| | | */ |
| | | public boolean isConfigurationDeleteAcceptable( |
| | | MultimasterDomainCfg configuration, List<Message> unacceptableReasons) |
| | | ReplicationDomainCfg configuration, List<Message> unacceptableReasons) |
| | | { |
| | | return true; |
| | | } |