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/extensions/ExactMatchIdentityMapper.java | 22 +++++++++++++---------
1 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/ExactMatchIdentityMapper.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/ExactMatchIdentityMapper.java
index b53c32d..5030cb0 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/ExactMatchIdentityMapper.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/ExactMatchIdentityMapper.java
@@ -46,6 +46,8 @@
import org.opends.server.types.*;
import static org.opends.messages.ExtensionMessages.*;
+import static org.opends.server.core.BackendConfigManager.NamingContextFilter.PUBLIC;
+import static org.opends.server.core.BackendConfigManager.NamingContextFilter.TOP_LEVEL;
import static org.opends.server.protocols.internal.InternalClientConnection.*;
import static org.opends.server.util.CollectionUtils.*;
@@ -105,7 +107,8 @@
Set<DN> cfgBaseDNs = configuration.getMatchBaseDN();
if (cfgBaseDNs == null || cfgBaseDNs.isEmpty())
{
- cfgBaseDNs = DirectoryServer.getPublicNamingContexts().keySet();
+ cfgBaseDNs = DirectoryServer.getInstance().getServerContext().getBackendConfigManager()
+ .getNamingContexts(PUBLIC, TOP_LEVEL);
}
BackendConfigManager backendConfigManager =
@@ -114,7 +117,7 @@
{
for (DN baseDN : cfgBaseDNs)
{
- LocalBackend<?> b = backendConfigManager.getLocalBackend(baseDN);
+ LocalBackend<?> b = backendConfigManager.findLocalBackendForEntry(baseDN);
if (b != null && ! b.isIndexed(t, IndexType.EQUALITY))
{
throw new ConfigException(ERR_EXACTMAP_ATTR_UNINDEXED.get(
@@ -182,7 +185,8 @@
Collection<DN> baseDNs = config.getMatchBaseDN();
if (baseDNs == null || baseDNs.isEmpty())
{
- baseDNs = DirectoryServer.getPublicNamingContexts().keySet();
+ baseDNs = DirectoryServer.getInstance().getServerContext().getBackendConfigManager()
+ .getNamingContexts(PUBLIC, TOP_LEVEL);
}
SearchResultEntry matchingEntry = null;
@@ -268,18 +272,18 @@
// Make sure that all of the configured attributes are indexed for equality
// in all appropriate backends.
Set<DN> cfgBaseDNs = configuration.getMatchBaseDN();
- if (cfgBaseDNs == null || cfgBaseDNs.isEmpty())
- {
- cfgBaseDNs = DirectoryServer.getPublicNamingContexts().keySet();
- }
-
BackendConfigManager backendConfigManager =
DirectoryServer.getInstance().getServerContext().getBackendConfigManager();
+ if (cfgBaseDNs == null || cfgBaseDNs.isEmpty())
+ {
+ cfgBaseDNs = backendConfigManager.getNamingContexts(PUBLIC, TOP_LEVEL);
+ }
+
for (AttributeType t : configuration.getMatchAttribute())
{
for (DN baseDN : cfgBaseDNs)
{
- LocalBackend<?> b = backendConfigManager.getLocalBackend(baseDN);
+ LocalBackend<?> b = backendConfigManager.findLocalBackendForEntry(baseDN);
if (b != null && ! b.isIndexed(t, IndexType.EQUALITY))
{
unacceptableReasons.add(ERR_EXACTMAP_ATTR_UNINDEXED.get(
--
Gitblit v1.10.0