From 97050c54efee9d0cc89afb5fb61b9a1c67f73f6a Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Wed, 16 Nov 2016 19:28:22 +0000
Subject: [PATCH] OPENDJ-3460 Improve management of subordinate backend and naming contexts
---
opendj-server-legacy/src/main/java/org/opends/server/tasks/ImportTask.java | 29 ++++++++---------------------
1 files changed, 8 insertions(+), 21 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tasks/ImportTask.java b/opendj-server-legacy/src/main/java/org/opends/server/tasks/ImportTask.java
index 37fccc6..222ce30 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tasks/ImportTask.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tasks/ImportTask.java
@@ -39,6 +39,7 @@
import org.opends.messages.TaskMessages;
import org.opends.server.api.LocalBackend;
import org.opends.server.api.LocalBackend.BackendOperation;
+import org.opends.server.api.Backend;
import org.opends.server.api.ClientConnection;
import org.opends.server.backends.task.Task;
import org.opends.server.backends.task.TaskState;
@@ -283,7 +284,7 @@
if(backendID != null)
{
- backend = getServerContext().getBackendConfigManager().getLocalBackend(backendID);
+ backend = getServerContext().getBackendConfigManager().getLocalBackendById(backendID);
if (backend == null)
{
LocalizableMessage message = ERR_LDIFIMPORT_NO_BACKENDS_FOR_ID.get();
@@ -301,7 +302,7 @@
BackendConfigManager backendConfigManager = getServerContext().getBackendConfigManager();
for(DN includeBranch : includeBranches)
{
- LocalBackend<?> locatedBackend = backendConfigManager.getLocalBackend(includeBranch);
+ LocalBackend<?> locatedBackend = backendConfigManager.findLocalBackendForEntry(includeBranch);
if(locatedBackend != null)
{
if(backend == null)
@@ -441,7 +442,7 @@
if(backendID != null)
{
- backend = getServerContext().getBackendConfigManager().getLocalBackend(backendID);
+ backend = getServerContext().getBackendConfigManager().getLocalBackendById(backendID);
if (backend == null)
{
@@ -460,7 +461,7 @@
BackendConfigManager backendConfigManager = getServerContext().getBackendConfigManager();
for(DN includeBranch : includeBranches)
{
- LocalBackend<?> locatedBackend = backendConfigManager.getLocalBackend(includeBranch);
+ LocalBackend<?> locatedBackend = backendConfigManager.findLocalBackendForEntry(includeBranch);
if(locatedBackend != null)
{
if(backend == null)
@@ -479,23 +480,9 @@
// Find backends with subordinate base DNs that should be excluded from the import.
defaultIncludeBranches = new HashSet<>(backend.getBaseDNs());
-
- if (backend.getSubordinateBackends() != null)
+ for (Backend<?> subBackend : getServerContext().getBackendConfigManager().getSubordinateBackends(backend))
{
- for (LocalBackend<?> subBackend : backend.getSubordinateBackends())
- {
- for (DN baseDN : subBackend.getBaseDNs())
- {
- for (DN importBase : defaultIncludeBranches)
- {
- if (!baseDN.equals(importBase) && baseDN.isSubordinateOrEqualTo(importBase))
- {
- excludeBranches.add(baseDN);
- break;
- }
- }
- }
- }
+ excludeBranches.addAll(subBackend.getBaseDNs());
}
for (String s : excludeBranchStrings)
@@ -717,7 +704,7 @@
// It is necessary to retrieve the backend structure again
// because disabling and enabling it again may have resulted
// in a new backend being registered to the server.
- backend = getServerContext().getBackendConfigManager().getLocalBackend(backend.getBackendID());
+ backend = getServerContext().getBackendConfigManager().getLocalBackendById(backend.getBackendID());
}
catch (DirectoryException e)
{
--
Gitblit v1.10.0