From 55a07ce2479e1b4c74dec15ce4e78e3fdf50a27c Mon Sep 17 00:00:00 2001
From: mrossign <mrossign@localhost>
Date: Wed, 16 Sep 2009 08:34:51 +0000
Subject: [PATCH] Fix for #4098 Initializing a fractional domain through import-ldif when server is down does not work

---
 opends/src/server/org/opends/server/core/PluginConfigManager.java |   33 +++++++++++++++++++++++++++++++--
 1 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/opends/src/server/org/opends/server/core/PluginConfigManager.java b/opends/src/server/org/opends/server/core/PluginConfigManager.java
index 43bc080..92cd78e 100644
--- a/opends/src/server/org/opends/server/core/PluginConfigManager.java
+++ b/opends/src/server/org/opends/server/core/PluginConfigManager.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Copyright 2006-2009 Sun Microsystems, Inc.
  */
 package org.opends.server.core;
 
@@ -90,6 +90,7 @@
   private DirectoryServerPlugin[] postConnectPlugins;
   private DirectoryServerPlugin[] postDisconnectPlugins;
   private DirectoryServerPlugin[] ldifImportPlugins;
+  private DirectoryServerPlugin[] ldifImportEndPlugins;
   private DirectoryServerPlugin[] ldifExportPlugins;
   private DirectoryServerPlugin[] preParseAbandonPlugins;
   private DirectoryServerPlugin[] preParseAddPlugins;
@@ -174,6 +175,7 @@
     postConnectPlugins                 = new DirectoryServerPlugin[0];
     postDisconnectPlugins              = new DirectoryServerPlugin[0];
     ldifImportPlugins                  = new DirectoryServerPlugin[0];
+    ldifImportEndPlugins               = new DirectoryServerPlugin[0];
     ldifExportPlugins                  = new DirectoryServerPlugin[0];
     preParseAbandonPlugins             = new DirectoryServerPlugin[0];
     preParseAddPlugins                 = new DirectoryServerPlugin[0];
@@ -423,6 +425,7 @@
       case POSTCONNECT:            return PluginType.POST_CONNECT;
       case POSTDISCONNECT:         return PluginType.POST_DISCONNECT;
       case LDIFIMPORT:             return PluginType.LDIF_IMPORT;
+      case LDIFIMPORTEND:          return PluginType.LDIF_IMPORT_END;
       case LDIFEXPORT:             return PluginType.LDIF_EXPORT;
       case PREPARSEABANDON:        return PluginType.PRE_PARSE_ABANDON;
       case PREPARSEADD:            return PluginType.PRE_PARSE_ADD;
@@ -595,6 +598,11 @@
                  addPlugin(ldifImportPlugins, plugin, t,
                            pluginRootConfig.getPluginOrderLDIFImport());
             break;
+          case LDIF_IMPORT_END:
+            ldifImportEndPlugins =
+                 addPlugin(ldifImportEndPlugins, plugin, t,
+                           pluginRootConfig.getPluginOrderLDIFImportEnd());
+            break;
           case LDIF_EXPORT:
             ldifExportPlugins =
                  addPlugin(ldifExportPlugins, plugin, t,
@@ -1088,6 +1096,9 @@
           case LDIF_IMPORT:
             ldifImportPlugins = removePlugin(ldifImportPlugins, plugin);
             break;
+          case LDIF_IMPORT_END:
+            ldifImportEndPlugins = removePlugin(ldifImportEndPlugins, plugin);
+            break;
           case LDIF_EXPORT:
             ldifExportPlugins = removePlugin(ldifExportPlugins, plugin);
             break;
@@ -1558,7 +1569,7 @@
 
 
 
-  /**
+/**
    * Invokes the set of LDIF import plugins that have been configured in the
    * Directory Server.
    *
@@ -1622,6 +1633,24 @@
 
 
   /**
+   * Invokes the LDIF import session finalization of LDIF import plugins that
+   * have been configured in the Directory Server.
+   *
+   * @param  importConfig  The LDIF import configuration used for the LDIF
+   *                       import session.
+   */
+  public void invokeLDIFImportEndPlugins(
+      LDIFImportConfig importConfig)
+  {
+    for (DirectoryServerPlugin p : ldifImportEndPlugins)
+    {
+      p.doLDIFImportEnd(importConfig);
+    }
+  }
+
+
+
+  /**
    * Invokes the set of LDIF export plugins that have been configured in the
    * Directory Server.
    *

--
Gitblit v1.10.0