| | |
| | | ExportTaskListener |
| | | { |
| | | private ReplicationServerListener replicationServerListener = null; |
| | | private static Map<DN, ReplicationDomain> domains = |
| | | new HashMap<DN, ReplicationDomain>() ; |
| | | private static Map<DN, LDAPReplicationDomain> domains = |
| | | new HashMap<DN, LDAPReplicationDomain>() ; |
| | | |
| | | /** |
| | | * The queue of received update messages, to be treated by the ReplayThread |
| | |
| | | * Can be null is the request has no associated operation. |
| | | * @return The domain for this DN. |
| | | */ |
| | | public static ReplicationDomain findDomain(DN dn, PluginOperation pluginOp) |
| | | public static LDAPReplicationDomain findDomain( |
| | | DN dn, PluginOperation pluginOp) |
| | | { |
| | | /* |
| | | * Don't run the special replication code on Operation that are |
| | |
| | | } |
| | | |
| | | |
| | | ReplicationDomain domain = null; |
| | | LDAPReplicationDomain domain = null; |
| | | DN temp = dn; |
| | | do |
| | | { |
| | |
| | | * @return The domain created. |
| | | * @throws ConfigException When the configuration is not valid. |
| | | */ |
| | | public static ReplicationDomain createNewDomain( |
| | | public static LDAPReplicationDomain createNewDomain( |
| | | ReplicationDomainCfg configuration) |
| | | throws ConfigException |
| | | { |
| | | ReplicationDomain domain; |
| | | domain = new ReplicationDomain(configuration, updateToReplayQueue); |
| | | LDAPReplicationDomain domain; |
| | | domain = new LDAPReplicationDomain(configuration, updateToReplayQueue); |
| | | |
| | | if (domains.size() == 0) |
| | | { |
| | |
| | | */ |
| | | public static void deleteDomain(DN dn) |
| | | { |
| | | ReplicationDomain domain = domains.remove(dn); |
| | | LDAPReplicationDomain domain = domains.remove(dn); |
| | | |
| | | if (domain != null) |
| | | domain.shutdown(); |
| | |
| | | public boolean isConfigurationAddAcceptable( |
| | | ReplicationDomainCfg configuration, List<Message> unacceptableReasons) |
| | | { |
| | | return ReplicationDomain.isConfigurationAcceptable( |
| | | return LDAPReplicationDomain.isConfigurationAcceptable( |
| | | configuration, unacceptableReasons); |
| | | } |
| | | |
| | |
| | | { |
| | | try |
| | | { |
| | | ReplicationDomain rd = createNewDomain(configuration); |
| | | LDAPReplicationDomain rd = createNewDomain(configuration); |
| | | if (isRegistered) |
| | | { |
| | | rd.start(); |
| | |
| | | public SynchronizationProviderResult handleConflictResolution( |
| | | PreOperationModifyOperation modifyOperation) |
| | | { |
| | | ReplicationDomain domain = |
| | | LDAPReplicationDomain domain = |
| | | findDomain(modifyOperation.getEntryDN(), modifyOperation); |
| | | if (domain == null) |
| | | return new SynchronizationProviderResult.ContinueProcessing(); |
| | |
| | | public SynchronizationProviderResult handleConflictResolution( |
| | | PreOperationAddOperation addOperation) throws DirectoryException |
| | | { |
| | | ReplicationDomain domain = |
| | | LDAPReplicationDomain domain = |
| | | findDomain(addOperation.getEntryDN(), addOperation); |
| | | if (domain == null) |
| | | return new SynchronizationProviderResult.ContinueProcessing(); |
| | |
| | | public SynchronizationProviderResult handleConflictResolution( |
| | | PreOperationDeleteOperation deleteOperation) throws DirectoryException |
| | | { |
| | | ReplicationDomain domain = |
| | | LDAPReplicationDomain domain = |
| | | findDomain(deleteOperation.getEntryDN(), deleteOperation); |
| | | if (domain == null) |
| | | return new SynchronizationProviderResult.ContinueProcessing(); |
| | |
| | | public SynchronizationProviderResult handleConflictResolution( |
| | | PreOperationModifyDNOperation modifyDNOperation) throws DirectoryException |
| | | { |
| | | ReplicationDomain domain = |
| | | LDAPReplicationDomain domain = |
| | | findDomain(modifyDNOperation.getEntryDN(), modifyDNOperation); |
| | | if (domain == null) |
| | | return new SynchronizationProviderResult.ContinueProcessing(); |
| | |
| | | doPreOperation(PreOperationModifyOperation modifyOperation) |
| | | { |
| | | DN operationDN = modifyOperation.getEntryDN(); |
| | | ReplicationDomain domain = findDomain(operationDN, modifyOperation); |
| | | LDAPReplicationDomain domain = findDomain(operationDN, modifyOperation); |
| | | |
| | | if ((domain == null) || (!domain.solveConflict())) |
| | | return new SynchronizationProviderResult.ContinueProcessing(); |
| | |
| | | throws DirectoryException |
| | | { |
| | | DN operationDN = modifyDNOperation.getEntryDN(); |
| | | ReplicationDomain domain = findDomain(operationDN, modifyDNOperation); |
| | | LDAPReplicationDomain domain = findDomain(operationDN, modifyDNOperation); |
| | | |
| | | if ((domain == null) || (!domain.solveConflict())) |
| | | return new SynchronizationProviderResult.ContinueProcessing(); |
| | |
| | | public SynchronizationProviderResult doPreOperation( |
| | | PreOperationAddOperation addOperation) |
| | | { |
| | | ReplicationDomain domain = |
| | | LDAPReplicationDomain domain = |
| | | findDomain(addOperation.getEntryDN(), addOperation); |
| | | if (domain == null) |
| | | return new SynchronizationProviderResult.ContinueProcessing(); |
| | |
| | | isRegistered = false; |
| | | |
| | | // shutdown all the domains |
| | | for (ReplicationDomain domain : domains.values()) |
| | | for (LDAPReplicationDomain domain : domains.values()) |
| | | { |
| | | domain.shutdown(); |
| | | } |
| | |
| | | @Override |
| | | public void processSchemaChange(List<Modification> modifications) |
| | | { |
| | | ReplicationDomain domain = |
| | | LDAPReplicationDomain domain = |
| | | findDomain(DirectoryServer.getSchemaDN(), null); |
| | | if (domain != null) |
| | | domain.synchronizeModifications(modifications); |
| | |
| | | { |
| | | for (DN dn : backend.getBaseDNs()) |
| | | { |
| | | ReplicationDomain domain = findDomain(dn, null); |
| | | LDAPReplicationDomain domain = findDomain(dn, null); |
| | | if (domain != null) |
| | | domain.backupStart(); |
| | | } |
| | |
| | | { |
| | | for (DN dn : backend.getBaseDNs()) |
| | | { |
| | | ReplicationDomain domain = findDomain(dn, null); |
| | | LDAPReplicationDomain domain = findDomain(dn, null); |
| | | if (domain != null) |
| | | domain.backupEnd(); |
| | | } |
| | |
| | | { |
| | | for (DN dn : backend.getBaseDNs()) |
| | | { |
| | | ReplicationDomain domain = findDomain(dn, null); |
| | | LDAPReplicationDomain domain = findDomain(dn, null); |
| | | if (domain != null) |
| | | domain.disable(); |
| | | } |
| | |
| | | { |
| | | for (DN dn : backend.getBaseDNs()) |
| | | { |
| | | ReplicationDomain domain = findDomain(dn, null); |
| | | LDAPReplicationDomain domain = findDomain(dn, null); |
| | | if (domain != null) |
| | | domain.enable(); |
| | | } |
| | |
| | | { |
| | | for (DN dn : backend.getBaseDNs()) |
| | | { |
| | | ReplicationDomain domain = findDomain(dn, null); |
| | | LDAPReplicationDomain domain = findDomain(dn, null); |
| | | if (domain != null) |
| | | domain.disable(); |
| | | } |
| | |
| | | { |
| | | for (DN dn : backend.getBaseDNs()) |
| | | { |
| | | ReplicationDomain domain = findDomain(dn, null); |
| | | LDAPReplicationDomain domain = findDomain(dn, null); |
| | | if (domain != null) |
| | | domain.enable(); |
| | | } |
| | |
| | | { |
| | | for (DN dn : backend.getBaseDNs()) |
| | | { |
| | | ReplicationDomain domain = findDomain(dn, null); |
| | | LDAPReplicationDomain domain = findDomain(dn, null); |
| | | if (domain != null) |
| | | domain.backupStart(); |
| | | } |
| | |
| | | { |
| | | for (DN dn : backend.getBaseDNs()) |
| | | { |
| | | ReplicationDomain domain = findDomain(dn, null); |
| | | LDAPReplicationDomain domain = findDomain(dn, null); |
| | | if (domain != null) |
| | | domain.backupEnd(); |
| | | } |
| | |
| | | */ |
| | | private void genericPostOperation(PostOperationOperation operation, DN dn) |
| | | { |
| | | ReplicationDomain domain = findDomain(dn, operation); |
| | | LDAPReplicationDomain domain = findDomain(dn, operation); |
| | | if (domain == null) |
| | | return; |
| | | |
| | |
| | | isRegistered = true; |
| | | |
| | | // start all the domains |
| | | for (ReplicationDomain domain : domains.values()) |
| | | for (LDAPReplicationDomain domain : domains.values()) |
| | | { |
| | | domain.start(); |
| | | } |