From d75c93322e20bdad4cc2c57bd784a03d95fd3105 Mon Sep 17 00:00:00 2001
From: kenneth_suter <kenneth_suter@localhost>
Date: Mon, 24 Sep 2007 12:15:23 +0000
Subject: [PATCH] Creation of a base DN registry for managing the base DN and naming context to backend maps.  Supports a 'test' mode that can be used to test whether registration/deregistration operations will be acceptable.

---
 opends/src/server/org/opends/server/core/BackendConfigManager.java |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/opends/src/server/org/opends/server/core/BackendConfigManager.java b/opends/src/server/org/opends/server/core/BackendConfigManager.java
index daab51b..2f272e7 100644
--- a/opends/src/server/org/opends/server/core/BackendConfigManager.java
+++ b/opends/src/server/org/opends/server/core/BackendConfigManager.java
@@ -402,11 +402,14 @@
         }
       }
 
-      for (DN dn : addedDNs)
+      // Copy the directory server's base DN registry and make the
+      // requested changes to see if it complains.
+      BaseDnRegistry reg = DirectoryServer.copyBaseDnRegistry();
+      for (DN dn : removedDNs)
       {
         try
         {
-          DirectoryServer.registerBaseDN(dn, backend, false, true);
+          reg.deregisterBaseDN(dn);
         }
         catch (DirectoryException de)
         {
@@ -420,11 +423,11 @@
         }
       }
 
-      for (DN dn : removedDNs)
+      for (DN dn : addedDNs)
       {
         try
         {
-          DirectoryServer.deregisterBaseDN(dn, true);
+          reg.registerBaseDN(dn, backend, false);
         }
         catch (DirectoryException de)
         {
@@ -928,11 +931,12 @@
 
 
     // Make sure that all of the base DNs are acceptable for use in the server.
+    BaseDnRegistry reg = DirectoryServer.copyBaseDnRegistry();
     for (DN baseDN : baseDNs)
     {
       try
       {
-        DirectoryServer.registerBaseDN(baseDN, backend, false, true);
+        reg.registerBaseDN(baseDN, backend, false);
       }
       catch (DirectoryException de)
       {

--
Gitblit v1.10.0