From e09805c46fdae2654b3564a240097e60e4f9f5f2 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Thu, 05 Dec 2013 10:29:22 +0000
Subject: [PATCH] OpenDJ 3 : config framework

---
 opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectChangeListenerAdaptor.java |   96 +-
 opendj-admin/src/main/java/org/opends/server/core/DirectoryServer.java                                  |   24 
 opendj-admin/src/main/java/org/opends/server/admin/server/ConfigAddListenerAdaptor.java                 |    3 
 opendj-admin/src/main/java/org/opends/server/api/ConfigChangeListener.java                              |   74 +-
 opendj-admin/pom.xml                                                                                    |    1 
 opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectAddListener.java           |   63 -
 opendj-admin/src/main/java/org/opends/server/api/ConfigAddListener.java                                 |    1 
 opendj-admin/src/main/resources/com/forgerock/opendj/ldap/config.properties                             |  935 ++++++++++++++++++++++++++++++++
 opendj-admin/src/main/java/org/opends/server/admin/server/ConfigDeleteListenerAdaptor.java              |    1 
 opendj-admin/src/main/java/org/opends/server/config/ConfigEntry.java                                    |  222 +++++++
 opendj-admin/src/main/resources/com/forgerock/opendj/ldap/admin.properties                              |    6 
 opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObject.java                      |    2 
 opendj-admin/src/main/java/org/opends/server/api/ConfigDeleteListener.java                              |    1 
 opendj-admin/src/main/java/org/opends/server/admin/server/DelayedConfigAddListener.java                 |    1 
 opendj-admin/src/main/java/org/opends/server/admin/server/ConfigChangeListenerAdaptor.java              |   10 
 opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectAddListenerAdaptor.java    |   93 +-
 opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectDeleteListener.java        |   65 -
 opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectDeleteListenerAdaptor.java |   95 +-
 opendj-admin/src/main/resources/com/forgerock/opendj/ldap/protocol.properties                           |    5 
 opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagementContext.java                  |    1 
 opendj-admin/src/main/java/org/opends/server/admin/AliasDefaultBehaviorProvider.java                    |    2 
 21 files changed, 1,400 insertions(+), 301 deletions(-)

diff --git a/opendj-admin/pom.xml b/opendj-admin/pom.xml
index 0847aef..7ac4e87 100644
--- a/opendj-admin/pom.xml
+++ b/opendj-admin/pom.xml
@@ -86,6 +86,7 @@
             <configuration>
               <messageFiles>
                 <messageFile>com/forgerock/opendj/ldap/admin.properties</messageFile>
+                <messageFile>com/forgerock/opendj/ldap/config.properties</messageFile>
                 <messageFile>com/forgerock/opendj/ldap/protocol.properties</messageFile>
               </messageFiles>
             </configuration>
diff --git a/opendj-admin/src/main/java/org/opends/server/admin/AliasDefaultBehaviorProvider.java b/opendj-admin/src/main/java/org/opends/server/admin/AliasDefaultBehaviorProvider.java
index d091dfb..13e6c9c 100644
--- a/opendj-admin/src/main/java/org/opends/server/admin/AliasDefaultBehaviorProvider.java
+++ b/opendj-admin/src/main/java/org/opends/server/admin/AliasDefaultBehaviorProvider.java
@@ -94,7 +94,7 @@
     public final LocalizableMessage getSynopsis(Locale locale) {
         ManagedObjectDefinitionI18NResource resource = ManagedObjectDefinitionI18NResource.getInstance();
         String property = "property." + propertyName + ".default-behavior.alias.synopsis";
-        return resource.getLocalizableMessage(definition, property, locale);
+        return resource.getMessage(definition, property, locale);
     }
 
 }
diff --git a/opendj-admin/src/main/java/org/opends/server/admin/server/ConfigAddListenerAdaptor.java b/opendj-admin/src/main/java/org/opends/server/admin/server/ConfigAddListenerAdaptor.java
index 305572a..3adf831 100644
--- a/opendj-admin/src/main/java/org/opends/server/admin/server/ConfigAddListenerAdaptor.java
+++ b/opendj-admin/src/main/java/org/opends/server/admin/server/ConfigAddListenerAdaptor.java
@@ -44,6 +44,7 @@
 import org.opends.server.admin.SetRelationDefinition;
 import org.opends.server.admin.DefinitionDecodingException.Reason;
 import org.opends.server.api.ConfigAddListener;
+import org.opends.server.config.ConfigEntry;
 import org.opends.server.config.ConfigException;
 import org.opends.server.types.ConfigChangeResult;
 import org.forgerock.opendj.ldap.DN;
@@ -206,7 +207,7 @@
   public boolean configAddIsAcceptable(ConfigEntry configEntry,
       LocalizableMessageBuilder unacceptableReason) {
     DN dn = configEntry.getDN();
-    AttributeValue av = dn.getRDN().getAttributeValue(0);
+    AttributeValue av = dn.rdn().getAttributeValue(0);
     String name = av.getValue().toString().trim();
 
     try {
diff --git a/opendj-admin/src/main/java/org/opends/server/admin/server/ConfigChangeListenerAdaptor.java b/opendj-admin/src/main/java/org/opends/server/admin/server/ConfigChangeListenerAdaptor.java
index 70a9e29..5e0e974 100644
--- a/opendj-admin/src/main/java/org/opends/server/admin/server/ConfigChangeListenerAdaptor.java
+++ b/opendj-admin/src/main/java/org/opends/server/admin/server/ConfigChangeListenerAdaptor.java
@@ -34,7 +34,6 @@
 import java.util.List;
 import java.util.Set;
 
-import com.forgerock.opendj.ldap.AdminMessages;
 import com.forgerock.opendj.util.StaticUtils;
 
 import org.forgerock.i18n.LocalizableMessage;
@@ -56,6 +55,7 @@
 import org.opends.server.admin.UndefinedDefaultBehaviorProvider;
 import org.opends.server.api.ConfigChangeListener;
 import org.opends.server.api.ConfigDeleteListener;
+import org.opends.server.config.ConfigEntry;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.types.ConfigChangeResult;
@@ -75,8 +75,8 @@
         ConfigChangeListener {
 
     private static final Logger debugLogger = LoggerFactory.getLogger(ConfigChangeListenerAdaptor.class);
-    private static final LocalizedLogger adminLogger = LocalizedLogger.getLocalizedLogger(
-            ERR_ADMIN_MANAGED_OBJECT_DOES_NOT_EXIST.get("").resourceName());
+    private static final LocalizedLogger adminLogger = LocalizedLogger
+            .getLocalizedLogger(ERR_ADMIN_MANAGED_OBJECT_DOES_NOT_EXIST.get("").resourceName());
 
     /**
      * A default behavior visitor used for determining the set of dependencies.
@@ -278,7 +278,7 @@
 
         DN parent = dn.parent();
         if (parent != null) {
-            ConfigEntry configEntry = getConfigEntry(dn.parent();
+            ConfigEntry configEntry = getConfigEntry(dn.parent());
             if (configEntry != null) {
                 configEntry.registerDeleteListener(cleanerListener);
             }
@@ -382,7 +382,7 @@
 
         // Now remove the cleaner listener as it will no longer be
         // needed.
-        ConfigEntry parentConfigEntry = getConfigEntry(dn.parent();
+        ConfigEntry parentConfigEntry = getConfigEntry(dn.parent());
         if (parentConfigEntry != null) {
             parentConfigEntry.deregisterDeleteListener(cleanerListener);
         }
diff --git a/opendj-admin/src/main/java/org/opends/server/admin/server/ConfigDeleteListenerAdaptor.java b/opendj-admin/src/main/java/org/opends/server/admin/server/ConfigDeleteListenerAdaptor.java
index 958bbe7..5b56f11 100644
--- a/opendj-admin/src/main/java/org/opends/server/admin/server/ConfigDeleteListenerAdaptor.java
+++ b/opendj-admin/src/main/java/org/opends/server/admin/server/ConfigDeleteListenerAdaptor.java
@@ -45,6 +45,7 @@
 import org.opends.server.admin.SetRelationDefinition;
 import org.opends.server.admin.DefinitionDecodingException.Reason;
 import org.opends.server.api.ConfigDeleteListener;
+import org.opends.server.config.ConfigEntry;
 import org.opends.server.config.ConfigException;
 import org.opends.server.types.ConfigChangeResult;
 import org.forgerock.opendj.ldap.DN;
diff --git a/opendj-admin/src/main/java/org/opends/server/admin/server/DelayedConfigAddListener.java b/opendj-admin/src/main/java/org/opends/server/admin/server/DelayedConfigAddListener.java
index a4fba01..2229295 100644
--- a/opendj-admin/src/main/java/org/opends/server/admin/server/DelayedConfigAddListener.java
+++ b/opendj-admin/src/main/java/org/opends/server/admin/server/DelayedConfigAddListener.java
@@ -28,6 +28,7 @@
 
 import org.opends.server.api.ConfigAddListener;
 import org.opends.server.api.ConfigDeleteListener;
+import org.opends.server.config.ConfigEntry;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.types.ConfigChangeResult;
diff --git a/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObject.java b/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObject.java
index e31fb2c..678eb14 100644
--- a/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObject.java
+++ b/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObject.java
@@ -53,7 +53,9 @@
 import org.opends.server.api.ConfigAddListener;
 import org.opends.server.api.ConfigChangeListener;
 import org.opends.server.api.ConfigDeleteListener;
+import org.opends.server.config.ConfigEntry;
 import org.opends.server.config.ConfigException;
+import org.opends.server.core.DirectoryServer;
 import org.opends.server.util.DynamicConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectAddListener.java b/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectAddListener.java
index 2f463bf..8d4debd 100644
--- a/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectAddListener.java
+++ b/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectAddListener.java
@@ -26,8 +26,6 @@
  */
 package org.opends.server.admin.server;
 
-
-
 import org.forgerock.i18n.LocalizableMessage;
 
 import java.util.List;
@@ -35,44 +33,39 @@
 import org.opends.server.admin.Configuration;
 import org.opends.server.types.ConfigChangeResult;
 
-
-
 /**
- * This interface defines the methods that a Directory Server
- * configurable component should implement if it wishes to be able to
- * receive notifications when a new server managed object is added.
+ * This interface defines the methods that a Directory Server configurable
+ * component should implement if it wishes to be able to receive notifications
+ * when a new server managed object is added.
  *
  * @param <T>
- *          The type of server managed object that this listener
- *          should be notified about.
+ *            The type of server managed object that this listener should be
+ *            notified about.
  */
 public interface ServerManagedObjectAddListener<T extends Configuration> {
 
-  /**
-   * Indicates whether the proposed addition of a new server managed
-   * object is acceptable to this add listener.
-   *
-   * @param mo
-   *          The server managed object that will be added.
-   * @param unacceptableReasons
-   *          A list that can be used to hold messages about why the
-   *          provided server managed object is not acceptable.
-   * @return Returns <code>true</code> if the proposed addition is
-   *         acceptable, or <code>false</code> if it is not.
-   */
-  public boolean isConfigurationAddAcceptable(
-      ServerManagedObject<? extends T> mo, List<LocalizableMessage> unacceptableReasons);
+    /**
+     * Indicates whether the proposed addition of a new server managed object is
+     * acceptable to this add listener.
+     *
+     * @param mo
+     *            The server managed object that will be added.
+     * @param unacceptableReasons
+     *            A list that can be used to hold messages about why the
+     *            provided server managed object is not acceptable.
+     * @return Returns <code>true</code> if the proposed addition is acceptable,
+     *         or <code>false</code> if it is not.
+     */
+    public boolean isConfigurationAddAcceptable(ServerManagedObject<? extends T> mo,
+            List<LocalizableMessage> unacceptableReasons);
 
-
-
-  /**
-   * Adds a new server managed object to this add listener.
-   *
-   * @param mo
-   *          The server managed object that will be added.
-   * @return Returns information about the result of adding the server
-   *         managed object.
-   */
-  public ConfigChangeResult applyConfigurationAdd(
-      ServerManagedObject<? extends T> mo);
+    /**
+     * Adds a new server managed object to this add listener.
+     *
+     * @param mo
+     *            The server managed object that will be added.
+     * @return Returns information about the result of adding the server managed
+     *         object.
+     */
+    public ConfigChangeResult applyConfigurationAdd(ServerManagedObject<? extends T> mo);
 }
diff --git a/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectAddListenerAdaptor.java b/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectAddListenerAdaptor.java
index 9506d56..b5f48ad 100644
--- a/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectAddListenerAdaptor.java
+++ b/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectAddListenerAdaptor.java
@@ -26,75 +26,58 @@
  */
 package org.opends.server.admin.server;
 
-
-
 import java.util.List;
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.admin.Configuration;
 import org.opends.server.types.ConfigChangeResult;
 
-
-
 /**
- * An adaptor class which converts
- * {@link ServerManagedObjectAddListener} callbacks to
- * {@link ConfigurationAddListener} callbacks.
+ * An adaptor class which converts {@link ServerManagedObjectAddListener}
+ * callbacks to {@link ConfigurationAddListener} callbacks.
  *
  * @param <T>
- *          The type of server managed object that this listener
- *          should be notified about.
+ *            The type of server managed object that this listener should be
+ *            notified about.
  */
-final class ServerManagedObjectAddListenerAdaptor<T extends Configuration>
-    implements ServerManagedObjectAddListener<T> {
+final class ServerManagedObjectAddListenerAdaptor<T extends Configuration> implements ServerManagedObjectAddListener<T> {
 
-  // The underlying add listener.
-  private final ConfigurationAddListener<T> listener;
+    // The underlying add listener.
+    private final ConfigurationAddListener<T> listener;
 
+    /**
+     * Creates a new server managed object add listener adaptor.
+     *
+     * @param listener
+     *            The underlying add listener.
+     */
+    public ServerManagedObjectAddListenerAdaptor(ConfigurationAddListener<T> listener) {
+        this.listener = listener;
+    }
 
+    /**
+     * {@inheritDoc}
+     */
+    public ConfigChangeResult applyConfigurationAdd(ServerManagedObject<? extends T> mo) {
+        return listener.applyConfigurationAdd(mo.getConfiguration());
+    }
 
-  /**
-   * Creates a new server managed object add listener adaptor.
-   *
-   * @param listener
-   *          The underlying add listener.
-   */
-  public ServerManagedObjectAddListenerAdaptor(
-      ConfigurationAddListener<T> listener) {
-    this.listener = listener;
-  }
+    /**
+     * Gets the configuration add listener associated with this adaptor.
+     *
+     * @return Returns the configuration add listener associated with this
+     *         adaptor.
+     */
+    public ConfigurationAddListener<T> getConfigurationAddListener() {
+        return listener;
+    }
 
-
-
-  /**
-   * {@inheritDoc}
-   */
-  public ConfigChangeResult applyConfigurationAdd(
-      ServerManagedObject<? extends T> mo) {
-    return listener.applyConfigurationAdd(mo.getConfiguration());
-  }
-
-
-
-  /**
-   * Gets the configuration add listener associated with this adaptor.
-   *
-   * @return Returns the configuration add listener associated with
-   *         this adaptor.
-   */
-  public ConfigurationAddListener<T> getConfigurationAddListener() {
-    return listener;
-  }
-
-
-
-  /**
-   * {@inheritDoc}
-   */
-  public boolean isConfigurationAddAcceptable(
-      ServerManagedObject<? extends T> mo, List<LocalizableMessage> unacceptableReasons) {
-    return listener.isConfigurationAddAcceptable(mo.getConfiguration(),
-        unacceptableReasons);
-  }
+    /**
+     * {@inheritDoc}
+     */
+    public boolean isConfigurationAddAcceptable(ServerManagedObject<? extends T> mo,
+            List<LocalizableMessage> unacceptableReasons) {
+        return listener.isConfigurationAddAcceptable(mo.getConfiguration(), unacceptableReasons);
+    }
 
 }
diff --git a/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectChangeListenerAdaptor.java b/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectChangeListenerAdaptor.java
index ee4233b..a76111c 100644
--- a/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectChangeListenerAdaptor.java
+++ b/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectChangeListenerAdaptor.java
@@ -26,77 +26,59 @@
  */
 package org.opends.server.admin.server;
 
-
-
 import java.util.List;
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.admin.Configuration;
 import org.opends.server.types.ConfigChangeResult;
 
-
-
 /**
- * An adaptor class which converts
- * {@link ServerManagedObjectChangeListener} callbacks to
- * {@link ConfigurationChangeListener} callbacks.
+ * An adaptor class which converts {@link ServerManagedObjectChangeListener}
+ * callbacks to {@link ConfigurationChangeListener} callbacks.
  *
  * @param <T>
- *          The type of server managed object that this listener
- *          should be notified about.
+ *            The type of server managed object that this listener should be
+ *            notified about.
  */
-final class ServerManagedObjectChangeListenerAdaptor<T extends Configuration>
-    implements ServerManagedObjectChangeListener<T> {
+final class ServerManagedObjectChangeListenerAdaptor<T extends Configuration> implements
+        ServerManagedObjectChangeListener<T> {
 
-  // The underlying change listener.
-  private final ConfigurationChangeListener<? super T> listener;
+    // The underlying change listener.
+    private final ConfigurationChangeListener<? super T> listener;
 
+    /**
+     * Creates a new server managed object change listener adaptor.
+     *
+     * @param listener
+     *            The underlying change listener.
+     */
+    public ServerManagedObjectChangeListenerAdaptor(ConfigurationChangeListener<? super T> listener) {
+        this.listener = listener;
+    }
 
+    /**
+     * {@inheritDoc}
+     */
+    public ConfigChangeResult applyConfigurationChange(ServerManagedObject<? extends T> mo) {
+        return listener.applyConfigurationChange(mo.getConfiguration());
+    }
 
-  /**
-   * Creates a new server managed object change listener adaptor.
-   *
-   * @param listener
-   *          The underlying change listener.
-   */
-  public ServerManagedObjectChangeListenerAdaptor(
-      ConfigurationChangeListener<? super T> listener) {
-    this.listener = listener;
-  }
+    /**
+     * Gets the configuration change listener associated with this adaptor.
+     *
+     * @return Returns the configuration change listener associated with this
+     *         adaptor.
+     */
+    public ConfigurationChangeListener<? super T> getConfigurationChangeListener() {
+        return listener;
+    }
 
-
-
-  /**
-   * {@inheritDoc}
-   */
-  public ConfigChangeResult applyConfigurationChange(
-      ServerManagedObject<? extends T> mo) {
-    return listener.applyConfigurationChange(mo.getConfiguration());
-  }
-
-
-
-  /**
-   * Gets the configuration change listener associated with this
-   * adaptor.
-   *
-   * @return Returns the configuration change listener associated with
-   *         this adaptor.
-   */
-  public ConfigurationChangeListener<? super T>
-  getConfigurationChangeListener() {
-    return listener;
-  }
-
-
-
-  /**
-   * {@inheritDoc}
-   */
-  public boolean isConfigurationChangeAcceptable(
-      ServerManagedObject<? extends T> mo, List<LocalizableMessage> unacceptableReasons) {
-    return listener.isConfigurationChangeAcceptable(mo.getConfiguration(),
-        unacceptableReasons);
-  }
+    /**
+     * {@inheritDoc}
+     */
+    public boolean isConfigurationChangeAcceptable(ServerManagedObject<? extends T> mo,
+            List<LocalizableMessage> unacceptableReasons) {
+        return listener.isConfigurationChangeAcceptable(mo.getConfiguration(), unacceptableReasons);
+    }
 
 }
diff --git a/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectDeleteListener.java b/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectDeleteListener.java
index f86ea29..0797b2b 100644
--- a/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectDeleteListener.java
+++ b/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectDeleteListener.java
@@ -26,8 +26,6 @@
  */
 package org.opends.server.admin.server;
 
-
-
 import org.forgerock.i18n.LocalizableMessage;
 
 import java.util.List;
@@ -35,46 +33,39 @@
 import org.opends.server.admin.Configuration;
 import org.opends.server.types.ConfigChangeResult;
 
-
-
 /**
- * This interface defines the methods that a Directory Server
- * configurable component should implement if it wishes to be able to
- * receive notifications when an existing server managed object is
- * deleted.
+ * This interface defines the methods that a Directory Server configurable
+ * component should implement if it wishes to be able to receive notifications
+ * when an existing server managed object is deleted.
  *
  * @param <T>
- *          The type of server managed object that this listener
- *          should be notified about.
+ *            The type of server managed object that this listener should be
+ *            notified about.
  */
 public interface ServerManagedObjectDeleteListener<T extends Configuration> {
 
-  /**
-   * Indicates whether the proposed deletion of an existing server
-   * managed object is acceptable to this delete listener.
-   *
-   * @param mo
-   *          The server managed object that will be deleted.
-   * @param unacceptableReasons
-   *          A list that can be used to hold messages about why the
-   *          provided server managed object is not acceptable.
-   * @return Returns <code>true</code> if the proposed deletion is
-   *         acceptable, or <code>false</code> if it is not.
-   */
-  public boolean isConfigurationDeleteAcceptable(
-      ServerManagedObject<? extends T> mo, List<LocalizableMessage> unacceptableReasons);
+    /**
+     * Indicates whether the proposed deletion of an existing server managed
+     * object is acceptable to this delete listener.
+     *
+     * @param mo
+     *            The server managed object that will be deleted.
+     * @param unacceptableReasons
+     *            A list that can be used to hold messages about why the
+     *            provided server managed object is not acceptable.
+     * @return Returns <code>true</code> if the proposed deletion is acceptable,
+     *         or <code>false</code> if it is not.
+     */
+    public boolean isConfigurationDeleteAcceptable(ServerManagedObject<? extends T> mo,
+            List<LocalizableMessage> unacceptableReasons);
 
-
-
-  /**
-   * Deletes an existing server managed object from this delete
-   * listener.
-   *
-   * @param mo
-   *          The existing server managed object that will be deleted.
-   * @return Returns information about the result of deleting the
-   *         server managed object.
-   */
-  public ConfigChangeResult applyConfigurationDelete(
-      ServerManagedObject<? extends T> mo);
+    /**
+     * Deletes an existing server managed object from this delete listener.
+     *
+     * @param mo
+     *            The existing server managed object that will be deleted.
+     * @return Returns information about the result of deleting the server
+     *         managed object.
+     */
+    public ConfigChangeResult applyConfigurationDelete(ServerManagedObject<? extends T> mo);
 }
diff --git a/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectDeleteListenerAdaptor.java b/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectDeleteListenerAdaptor.java
index 6b8007a..42c0fd2 100644
--- a/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectDeleteListenerAdaptor.java
+++ b/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagedObjectDeleteListenerAdaptor.java
@@ -26,76 +26,59 @@
  */
 package org.opends.server.admin.server;
 
-
-
 import java.util.List;
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.opends.server.admin.Configuration;
 import org.opends.server.types.ConfigChangeResult;
 
-
-
 /**
- * An adaptor class which converts
- * {@link ServerManagedObjectDeleteListener} callbacks to
- * {@link ConfigurationDeleteListener} callbacks.
+ * An adaptor class which converts {@link ServerManagedObjectDeleteListener}
+ * callbacks to {@link ConfigurationDeleteListener} callbacks.
  *
  * @param <T>
- *          The type of server managed object that this listener
- *          should be notified about.
+ *            The type of server managed object that this listener should be
+ *            notified about.
  */
-final class ServerManagedObjectDeleteListenerAdaptor<T extends Configuration>
-    implements ServerManagedObjectDeleteListener<T> {
+final class ServerManagedObjectDeleteListenerAdaptor<T extends Configuration> implements
+        ServerManagedObjectDeleteListener<T> {
 
-  // The underlying delete listener.
-  private final ConfigurationDeleteListener<T> listener;
+    // The underlying delete listener.
+    private final ConfigurationDeleteListener<T> listener;
 
+    /**
+     * Creates a new server managed object delete listener adaptor.
+     *
+     * @param listener
+     *            The underlying delete listener.
+     */
+    public ServerManagedObjectDeleteListenerAdaptor(ConfigurationDeleteListener<T> listener) {
+        this.listener = listener;
+    }
 
+    /**
+     * {@inheritDoc}
+     */
+    public ConfigChangeResult applyConfigurationDelete(ServerManagedObject<? extends T> mo) {
+        return listener.applyConfigurationDelete(mo.getConfiguration());
+    }
 
-  /**
-   * Creates a new server managed object delete listener adaptor.
-   *
-   * @param listener
-   *          The underlying delete listener.
-   */
-  public ServerManagedObjectDeleteListenerAdaptor(
-      ConfigurationDeleteListener<T> listener) {
-    this.listener = listener;
-  }
+    /**
+     * Gets the configuration delete listener associated with this adaptor.
+     *
+     * @return Returns the configuration delete listener associated with this
+     *         adaptor.
+     */
+    public ConfigurationDeleteListener<T> getConfigurationDeleteListener() {
+        return listener;
+    }
 
-
-
-  /**
-   * {@inheritDoc}
-   */
-  public ConfigChangeResult applyConfigurationDelete(
-      ServerManagedObject<? extends T> mo) {
-    return listener.applyConfigurationDelete(mo.getConfiguration());
-  }
-
-
-
-  /**
-   * Gets the configuration delete listener associated with this
-   * adaptor.
-   *
-   * @return Returns the configuration delete listener associated with
-   *         this adaptor.
-   */
-  public ConfigurationDeleteListener<T> getConfigurationDeleteListener() {
-    return listener;
-  }
-
-
-
-  /**
-   * {@inheritDoc}
-   */
-  public boolean isConfigurationDeleteAcceptable(
-      ServerManagedObject<? extends T> mo, List<LocalizableMessage> unacceptableReasons) {
-    return listener.isConfigurationDeleteAcceptable(mo.getConfiguration(),
-        unacceptableReasons);
-  }
+    /**
+     * {@inheritDoc}
+     */
+    public boolean isConfigurationDeleteAcceptable(ServerManagedObject<? extends T> mo,
+            List<LocalizableMessage> unacceptableReasons) {
+        return listener.isConfigurationDeleteAcceptable(mo.getConfiguration(), unacceptableReasons);
+    }
 
 }
diff --git a/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagementContext.java b/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagementContext.java
index 90f94ec..f923f4d 100644
--- a/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagementContext.java
+++ b/opendj-admin/src/main/java/org/opends/server/admin/server/ServerManagementContext.java
@@ -72,6 +72,7 @@
 import org.opends.server.admin.UndefinedDefaultBehaviorProvider;
 import org.opends.server.admin.UnknownPropertyDefinitionException;
 import org.opends.server.admin.DefinitionDecodingException.Reason;
+import org.opends.server.config.ConfigEntry;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 import org.forgerock.opendj.admin.meta.RootCfgDefn;
diff --git a/opendj-admin/src/main/java/org/opends/server/api/ConfigAddListener.java b/opendj-admin/src/main/java/org/opends/server/api/ConfigAddListener.java
index 2968838..ce25695 100644
--- a/opendj-admin/src/main/java/org/opends/server/api/ConfigAddListener.java
+++ b/opendj-admin/src/main/java/org/opends/server/api/ConfigAddListener.java
@@ -27,6 +27,7 @@
 package org.opends.server.api;
 
 import org.forgerock.i18n.LocalizableMessageBuilder;
+import org.opends.server.config.ConfigEntry;
 import org.opends.server.types.ConfigChangeResult;
 
 /**
diff --git a/opendj-admin/src/main/java/org/opends/server/api/ConfigChangeListener.java b/opendj-admin/src/main/java/org/opends/server/api/ConfigChangeListener.java
index bec1995..4913da9 100644
--- a/opendj-admin/src/main/java/org/opends/server/api/ConfigChangeListener.java
+++ b/opendj-admin/src/main/java/org/opends/server/api/ConfigChangeListener.java
@@ -26,56 +26,40 @@
  */
 package org.opends.server.api;
 
-
-
 import org.opends.server.config.ConfigEntry;
 import org.opends.server.types.ConfigChangeResult;
 import org.forgerock.i18n.LocalizableMessageBuilder;
 
-
 /**
- * This interface defines the methods that a Directory Server
- * component should implement if it wishes to be able to receive
- * notification of changes to a configuration entry.
+ * This interface defines the methods that a Directory Server component should
+ * implement if it wishes to be able to receive notification of changes to a
+ * configuration entry.
  */
-@org.opends.server.types.PublicAPI(
-     stability=org.opends.server.types.StabilityLevel.VOLATILE,
-     mayInstantiate=false,
-     mayExtend=true,
-     mayInvoke=false)
-public interface ConfigChangeListener
-{
-  /**
-   * Indicates whether the configuration entry that will result from a
-   * proposed modification is acceptable to this change listener.
-   *
-   * @param  configEntry         The configuration entry that will
-   *                             result from the requested update.
-   * @param  unacceptableReason  A buffer to which this method can
-   *                             append a human-readable message
-   *                             explaining why the proposed change is
-   *                             not acceptable.
-   *
-   * @return  {@code true} if the proposed entry contains an
-   *          acceptable configuration, or {@code false} if it does
-   *          not.
-   */
-  public boolean configChangeIsAcceptable(ConfigEntry configEntry,
-                      LocalizableMessageBuilder unacceptableReason);
+public interface ConfigChangeListener {
+    /**
+     * Indicates whether the configuration entry that will result from a
+     * proposed modification is acceptable to this change listener.
+     *
+     * @param configEntry
+     *            The configuration entry that will result from the requested
+     *            update.
+     * @param unacceptableReason
+     *            A buffer to which this method can append a human-readable
+     *            message explaining why the proposed change is not acceptable.
+     * @return {@code true} if the proposed entry contains an acceptable
+     *         configuration, or {@code false} if it does not.
+     */
+    public boolean configChangeIsAcceptable(ConfigEntry configEntry, LocalizableMessageBuilder unacceptableReason);
 
-
-
-  /**
-   * Attempts to apply a new configuration to this Directory Server
-   * component based on the provided changed entry.
-   *
-   * @param  configEntry  The configuration entry that containing the
-   *                      updated configuration for this component.
-   *
-   * @return  Information about the result of processing the
-   *          configuration change.
-   */
-  public ConfigChangeResult applyConfigurationChange(
-                                 ConfigEntry configEntry);
+    /**
+     * Attempts to apply a new configuration to this Directory Server component
+     * based on the provided changed entry.
+     *
+     * @param configEntry
+     *            The configuration entry that containing the updated
+     *            configuration for this component.
+     * @return Information about the result of processing the configuration
+     *         change.
+     */
+    public ConfigChangeResult applyConfigurationChange(ConfigEntry configEntry);
 }
-
diff --git a/opendj-admin/src/main/java/org/opends/server/api/ConfigDeleteListener.java b/opendj-admin/src/main/java/org/opends/server/api/ConfigDeleteListener.java
index d34bdb7..3aa58f4 100644
--- a/opendj-admin/src/main/java/org/opends/server/api/ConfigDeleteListener.java
+++ b/opendj-admin/src/main/java/org/opends/server/api/ConfigDeleteListener.java
@@ -28,6 +28,7 @@
 
 
 
+import org.opends.server.config.ConfigEntry;
 import org.opends.server.types.ConfigChangeResult;
 import org.forgerock.i18n.LocalizableMessageBuilder;
 
diff --git a/opendj-admin/src/main/java/org/opends/server/config/ConfigEntry.java b/opendj-admin/src/main/java/org/opends/server/config/ConfigEntry.java
new file mode 100644
index 0000000..a81424a
--- /dev/null
+++ b/opendj-admin/src/main/java/org/opends/server/config/ConfigEntry.java
@@ -0,0 +1,222 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ *      Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ *      Copyright 2006-2008 Sun Microsystems, Inc.
+ */
+package org.opends.server.config;
+
+import java.util.concurrent.CopyOnWriteArrayList;
+
+import org.forgerock.opendj.ldap.DN;
+import org.forgerock.opendj.ldap.Entries;
+import org.forgerock.opendj.ldap.Entry;
+import org.forgerock.opendj.ldap.schema.ObjectClass;
+import org.opends.server.api.ConfigAddListener;
+import org.opends.server.api.ConfigChangeListener;
+import org.opends.server.api.ConfigDeleteListener;
+import org.opends.server.core.DirectoryServer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A config entry wraps an entry to provides add, change and delete listeners on
+ * it.
+ */
+public final class ConfigEntry {
+
+    private static final Logger debugLogger = LoggerFactory.getLogger(ConfigEntry.class);
+
+    /** The set of add listeners that have been registered with this entry. */
+    private final CopyOnWriteArrayList<ConfigAddListener> addListeners;
+
+    /** The set of change listeners that have been registered with this entry. */
+    private final CopyOnWriteArrayList<ConfigChangeListener> changeListeners;
+
+    /** The set of delete listeners that have been registered with this entry. */
+    private final CopyOnWriteArrayList<ConfigDeleteListener> deleteListeners;
+
+    /** The actual entry wrapped by this configuration entry. */
+    private Entry entry;
+
+    /**
+     * Creates a new config entry with the provided entry.
+     *
+     * @param entry
+     *            The entry that will be encapsulated by this config entry.
+     */
+    public ConfigEntry(Entry entry) {
+        this.entry = entry;
+        addListeners = new CopyOnWriteArrayList<ConfigAddListener>();
+        changeListeners = new CopyOnWriteArrayList<ConfigChangeListener>();
+        deleteListeners = new CopyOnWriteArrayList<ConfigDeleteListener>();
+    }
+
+    /**
+     * Retrieves the actual entry wrapped by this configuration entry.
+     *
+     * @return The actual entry wrapped by this configuration entry.
+     */
+    public Entry getEntry() {
+        return entry;
+    }
+
+    /**
+     * Retrieves the DN for this configuration entry.
+     *
+     * @return The DN for this configuration entry.
+     */
+    public DN getDN() {
+        return entry.getName();
+    }
+
+    /**
+     * Indicates whether this configuration entry contains the specified
+     * objectclass.
+     *
+     * @param name
+     *            The name of the objectclass for which to make the
+     *            determination.
+     * @return <CODE>true</CODE> if this configuration entry contains the
+     *         specified objectclass, or <CODE>false</CODE> if not.
+     */
+    public boolean hasObjectClass(String name) {
+        // TODO : use the schema to get object class and check it in the entry
+        ObjectClass oc = DirectoryServer.getObjectClass(name.toLowerCase());
+        if (oc == null) {
+            oc = DirectoryServer.getDefaultObjectClass(name);
+        }
+
+        return Entries.containsObjectClass(entry, oc);
+    }
+
+    /**
+     * Retrieves the set of change listeners that have been registered with this
+     * configuration entry.
+     *
+     * @return The set of change listeners that have been registered with this
+     *         configuration entry.
+     */
+    public CopyOnWriteArrayList<ConfigChangeListener> getChangeListeners() {
+        return changeListeners;
+    }
+
+    /**
+     * Registers the provided change listener so that it will be notified of any
+     * changes to this configuration entry. No check will be made to determine
+     * whether the provided listener is already registered.
+     *
+     * @param listener
+     *            The change listener to register with this config entry.
+     */
+    public void registerChangeListener(ConfigChangeListener listener) {
+        changeListeners.add(listener);
+    }
+
+    /**
+     * Attempts to deregister the provided change listener with this
+     * configuration entry.
+     *
+     * @param listener
+     *            The change listener to deregister with this config entry.
+     * @return <CODE>true</CODE> if the specified listener was deregistered, or
+     *         <CODE>false</CODE> if it was not.
+     */
+    public boolean deregisterChangeListener(ConfigChangeListener listener) {
+        return changeListeners.remove(listener);
+    }
+
+    /**
+     * Retrieves the set of config add listeners that have been registered for
+     * this entry.
+     *
+     * @return The set of config add listeners that have been registered for
+     *         this entry.
+     */
+    public CopyOnWriteArrayList<ConfigAddListener> getAddListeners() {
+        return addListeners;
+    }
+
+    /**
+     * Registers the provided add listener so that it will be notified if any
+     * new entries are added immediately below this configuration entry.
+     *
+     * @param listener
+     *            The add listener that should be registered.
+     */
+    public void registerAddListener(ConfigAddListener listener) {
+        addListeners.addIfAbsent(listener);
+    }
+
+    /**
+     * Deregisters the provided add listener so that it will no longer be
+     * notified if any new entries are added immediately below this
+     * configuration entry.
+     *
+     * @param listener
+     *            The add listener that should be deregistered.
+     */
+    public void deregisterAddListener(ConfigAddListener listener) {
+        addListeners.remove(listener);
+    }
+
+    /**
+     * Retrieves the set of config delete listeners that have been registered
+     * for this entry.
+     *
+     * @return The set of config delete listeners that have been registered for
+     *         this entry.
+     */
+    public CopyOnWriteArrayList<ConfigDeleteListener> getDeleteListeners() {
+        return deleteListeners;
+    }
+
+    /**
+     * Registers the provided delete listener so that it will be notified if any
+     * entries are deleted immediately below this configuration entry.
+     *
+     * @param listener
+     *            The delete listener that should be registered.
+     */
+    public void registerDeleteListener(ConfigDeleteListener listener) {
+        deleteListeners.addIfAbsent(listener);
+    }
+
+    /**
+     * Deregisters the provided delete listener so that it will no longer be
+     * notified if any new are removed immediately below this configuration
+     * entry.
+     *
+     * @param listener
+     *            The delete listener that should be deregistered.
+     */
+    public void deregisterDeleteListener(ConfigDeleteListener listener) {
+        deleteListeners.remove(listener);
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public String toString() {
+        return entry.getName().toNormalizedString();
+    }
+}
diff --git a/opendj-admin/src/main/java/org/opends/server/core/DirectoryServer.java b/opendj-admin/src/main/java/org/opends/server/core/DirectoryServer.java
index e759115..f09f7d0 100644
--- a/opendj-admin/src/main/java/org/opends/server/core/DirectoryServer.java
+++ b/opendj-admin/src/main/java/org/opends/server/core/DirectoryServer.java
@@ -25,7 +25,11 @@
  */
 package org.opends.server.core;
 
+import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.schema.AttributeType;
+import org.forgerock.opendj.ldap.schema.ObjectClass;
+import org.opends.server.config.ConfigEntry;
+import org.opends.server.config.ConfigException;
 
 /**
  *  TODO : this is a stub
@@ -44,4 +48,24 @@
         throw new RuntimeException("Not implemented");
     }
 
+    public static ObjectClass getObjectClass(String lowerCase) {
+        throw new RuntimeException("Not implemented");
+    }
+
+    public static ObjectClass getDefaultObjectClass(String name) {
+        throw new RuntimeException("Not implemented");
+    }
+
+    public static AttributeType getAttributeType(String lowerCase) {
+        throw new RuntimeException("Not implemented");
+    }
+
+    public static AttributeType getDefaultAttributeType(String attrName) {
+        throw new RuntimeException("Not implemented");
+    }
+
+    public static ConfigEntry getConfigEntry(DN dn) throws ConfigException {
+        throw new RuntimeException("Not implemented");
+    }
+
 }
diff --git a/opendj-admin/src/main/resources/com/forgerock/opendj/ldap/admin.properties b/opendj-admin/src/main/resources/com/forgerock/opendj/ldap/admin.properties
index c6244b3..0992c20 100644
--- a/opendj-admin/src/main/resources/com/forgerock/opendj/ldap/admin.properties
+++ b/opendj-admin/src/main/resources/com/forgerock/opendj/ldap/admin.properties
@@ -22,19 +22,15 @@
 #
 #      Copyright 2006-2009 Sun Microsystems, Inc.
 
-
 #
 # Format string definitions
 #
 # Keys must be formatted as follows:
 #
-# [SEVERITY]_[DESCRIPTION]_[ORDINAL]
+# [DESCRIPTION]_[ORDINAL]
 #
 # where:
 #
-# SEVERITY is one of:
-# [INFO, MILD_WARN, SEVERE_WARN, MILD_ERR, SEVERE_ERR, FATAL_ERR, DEBUG, NOTICE]
-#
 # DESCRIPTION is an upper case string providing a hint as to the context of
 # the message in upper case with the underscore ('_') character serving as
 # word separator
diff --git a/opendj-admin/src/main/resources/com/forgerock/opendj/ldap/config.properties b/opendj-admin/src/main/resources/com/forgerock/opendj/ldap/config.properties
new file mode 100644
index 0000000..aa8c5c0
--- /dev/null
+++ b/opendj-admin/src/main/resources/com/forgerock/opendj/ldap/config.properties
@@ -0,0 +1,935 @@
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License, Version 1.0 only
+# (the "License").  You may not use this file except in compliance
+# with the License.
+#
+# You can obtain a copy of the license at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE
+# or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at
+# trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
+# add the following below this CDDL HEADER, with the fields enclosed
+# by brackets "[]" replaced with your own identifying information:
+#      Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#      Copyright 2006-2010 Sun Microsystems, Inc.
+#      Portions Copyright 2013 ForgeRock AS.
+
+#
+# Format string definitions
+#
+# Keys must be formatted as follows:
+#
+# [DESCRIPTION]_[ORDINAL]
+#
+# where:
+#
+# DESCRIPTION is an upper case string providing a hint as to the context of
+# the message in upper case with the underscore ('_') character serving as
+# word separator
+#
+# ORDINAL is an integer unique among other ordinals in this file
+#
+ERR_CONFIG_ATTR_IS_REQUIRED_1=Configuration attribute %s is required to \
+ have at least one value but the resulted operation would have removed all \
+ values
+ERR_CONFIG_ATTR_REJECTED_VALUE_2=Provided value %s for configuration \
+ attribute %s was rejected.  The reason provided was:  %s
+ERR_CONFIG_ATTR_SET_VALUES_IS_SINGLE_VALUED_3=Configuration attribute %s \
+ is single-valued, but multiple values were provided
+ERR_CONFIG_ATTR_ADD_VALUES_IS_SINGLE_VALUED_4=Configuration attribute %s \
+ is single-valued, but adding the provided value(s) would have given it \
+ multiple values
+ERR_CONFIG_ATTR_ADD_VALUES_ALREADY_EXISTS_5=Configuration attribute %s \
+ already contains a value %s
+ERR_CONFIG_ATTR_NO_SUCH_VALUE_6=Cannot remove value %s from \
+ configuration attribute %s because the specified value does not exist
+ERR_CONFIG_ATTR_INVALID_BOOLEAN_VALUE_7=Unable to set the value for \
+ Boolean configuration attribute %s because the provided value %s was not \
+ either 'true' or 'false'
+ERR_CONFIG_ATTR_NO_INT_VALUE_8=Unable to retrieve the value for \
+ configuration attribute %s as an integer because that attribute does not have \
+ any values
+ERR_CONFIG_ATTR_MULTIPLE_INT_VALUES_9=Unable to retrieve the value for \
+ configuration attribute %s as an integer because that attribute has multiple \
+ values
+ERR_CONFIG_ATTR_VALUE_OUT_OF_INT_RANGE_10=Unable to retrieve the value \
+ for configuration attribute %s as a Java int because the value is outside the \
+ allowable range for an int
+ERR_CONFIG_ATTR_INVALID_INT_VALUE_11=Unable to set the value for integer \
+ configuration attribute %s because the provided value %s cannot be \
+ interpreted as an integer value:  %s
+ERR_CONFIG_ATTR_INT_BELOW_LOWER_BOUND_12=Unable to set the value for \
+ configuration attribute %s because the provided value %d is less than the \
+ lowest allowed value of %d
+ERR_CONFIG_ATTR_INT_ABOVE_UPPER_BOUND_13=Unable to set the value for \
+ configuration attribute %s because the provided value %d is greater than the \
+ largest allowed value of %d
+ERR_CONFIG_ATTR_INT_COULD_NOT_PARSE_14=Unable to parse value %s for \
+ configuration attribute %s as an integer value:  %s
+ERR_CONFIG_ATTR_NO_STRING_VALUE_15=Unable to retrieve the value for \
+ configuration attribute %s as a string because that attribute does not have \
+ any values
+ERR_CONFIG_ATTR_MULTIPLE_STRING_VALUES_16=Unable to retrieve the value \
+ for configuration attribute %s as a string because that attribute has \
+ multiple values
+ERR_CONFIG_ATTR_EMPTY_STRING_VALUE_17=An empty value string was provided \
+ for configuration attribute %s
+ERR_CONFIG_ATTR_VALUE_NOT_ALLOWED_18=The value %s is not included in the \
+ list of acceptable values for configuration attribute %s
+ERR_CONFIG_ATTR_INVALID_UNIT_19='%s' is not a valid unit for \
+ configuration attribute %s
+ERR_CONFIG_ATTR_NO_UNIT_DELIMITER_20=Cannot decode %s as an integer \
+ value and a unit for configuration attribute %s because no value/unit \
+ delimiter could be found
+ERR_CONFIG_ATTR_COULD_NOT_PARSE_INT_COMPONENT_21=Could not decode the \
+ integer portion of value %s for configuration attribute %s:  %s
+ERR_CONFIG_ATTR_INVALID_VALUE_WITH_UNIT_22=The provided value %s for \
+ integer with unit attribute %s is not allowed:  %s
+ERR_CONFIG_ENTRY_CONFLICTING_CHILD_23=Unable to add configuration entry \
+ %s as a child of configuration entry %s because a child entry was already \
+ found with that DN
+ERR_CONFIG_ENTRY_NO_SUCH_CHILD_24=Unable to remove entry %s as a child \
+ of configuration entry %s because that entry did not have a child with the \
+ specified DN
+ERR_CONFIG_ENTRY_CANNOT_REMOVE_NONLEAF_25=Unable to remove entry %s as a \
+ child of configuration entry %s because that entry had children of its own \
+ and non-leaf entries may not be removed
+ERR_CONFIG_FILE_DOES_NOT_EXIST_26=The specified configuration file %s \
+ does not exist or is not readable
+ERR_CONFIG_FILE_CANNOT_VERIFY_EXISTENCE_27=An unexpected error occurred \
+ while attempting to determine whether configuration file %s exists:  %s
+ERR_CONFIG_FILE_CANNOT_OPEN_FOR_READ_28=An error occurred while \
+ attempting to open the configuration file %s for reading:  %s
+ERR_CONFIG_FILE_READ_ERROR_29=An error occurred while attempting to \
+ read the contents of configuration file %s:  %s
+ERR_CONFIG_ATTR_OPTIONS_NOT_ALLOWED_30=Invalid configuration attribute \
+ %s detected:  the only attribute option allowed in the Directory Server \
+ configuration is "pending" to indicate the set of pending values
+ERR_CONFIG_FILE_INVALID_LDIF_ENTRY_31=An error occurred at or near line \
+ %d while trying to parse the configuration from LDIF file %s:  %s
+ERR_CONFIG_FILE_EMPTY_32=The specified configuration file %s does not \
+ appear to contain any configuration entries
+ERR_CONFIG_FILE_INVALID_BASE_DN_33=The first entry read from LDIF \
+ configuration file %s had a DN of "%s" rather than the expected "%s" which \
+ should be used as the Directory Server configuration root
+ERR_CONFIG_FILE_GENERIC_ERROR_34=An unexpected error occurred while \
+ attempting to process the Directory Server configuration file %s:  %s
+ERR_CONFIG_FILE_DUPLICATE_ENTRY_35=Configuration entry %s starting at \
+ or near line %s in the LDIF configuration file %s has the same DN as another \
+ entry already read from that file
+ERR_CONFIG_FILE_NO_PARENT_36=Configuration entry %s starting at or near \
+ line %d in the configuration LDIF file %s does not appear to have a parent \
+ entry (expected parent DN was %s)
+ERR_CONFIG_FILE_UNKNOWN_PARENT_37=The Directory Server was unable to \
+ determine the parent DN for configuration entry %s starting at or near line \
+ %d in the configuration LDIF file %s
+ERR_CONFIG_CANNOT_DETERMINE_SERVER_ROOT_38=Unable to determine the \
+ Directory Server instance root from either an environment variable or based \
+ on the location of the configuration file.  Please set an environment \
+ variable named %s with a value containing the absolute path to the server \
+ installation root
+ERR_CONFIG_FILE_WRITE_ERROR_39=An unexpected error occurred while \
+ trying to write configuration entry %s to LDIF:  %s
+ERR_CONFIG_FILE_CLOSE_ERROR_40=An unexpected error occurred while \
+ trying to close the LDIF writer:  %s
+ERR_CONFIG_FILE_UNWILLING_TO_IMPORT_41=The Directory Server \
+ configuration may not be altered by importing a new configuration from LDIF
+WARN_CONFIG_LOGGER_NO_ACTIVE_ACCESS_LOGGERS_44=There are no active \
+ access loggers defined in the Directory Server configuration.  No access \
+ logging will be performed
+WARN_CONFIG_LOGGER_NO_ACTIVE_ERROR_LOGGERS_45=There are no active \
+ error loggers defined in the Directory Server configuration.  No error \
+ logging will be performed
+ERR_CONFIG_LOGGER_CANNOT_CREATE_LOGGER_49=An error occurred while \
+ attempting to create a Directory Server logger from the information in \
+ configuration entry %s:  %s
+ERR_CONFIG_LOGGER_INVALID_OBJECTCLASS_50=Configuration entry %s does \
+ not contain a valid objectclass for a Directory Server access, error, or \
+ debug logger definition
+ERR_CONFIG_LOGGER_INVALID_ACCESS_LOGGER_CLASS_54=Class %s specified in \
+ attribute ds-cfg-java-class of configuration entry %s cannot be \
+ instantiated as a Directory Server access logger:  %s
+ERR_CONFIG_LOGGER_INVALID_ERROR_LOGGER_CLASS_55=Class %s specified in \
+ attribute ds-cfg-java-class of configuration entry %s cannot be \
+ instantiated as a Directory Server error logger:  %s
+ERR_CONFIG_LOGGER_INVALID_DEBUG_LOGGER_CLASS_56=Class %s specified in \
+ attribute ds-cfg-java-class of configuration entry %s cannot be \
+ instantiated as a Directory Server debug logger:  %s
+ERR_CONFIG_ATTR_MULTIPLE_PENDING_VALUE_SETS_64=Configuration attribute \
+ %s appears to contain multiple pending value sets
+ERR_CONFIG_ATTR_MULTIPLE_ACTIVE_VALUE_SETS_65=Configuration attribute %s \
+ appears to contain multiple active value sets
+ERR_CONFIG_ATTR_NO_ACTIVE_VALUE_SET_66=Configuration attribute %s does \
+ not contain an active value set
+ERR_CONFIG_ATTR_INT_INVALID_TYPE_67=Unable to parse value %s for \
+ configuration attribute %s as an integer value because the element was of an \
+ invalid type (%s)
+ERR_CONFIG_ATTR_INT_INVALID_ARRAY_TYPE_68=Unable to parse value for \
+ configuration attribute %s as a set of integer values because the array \
+ contained elements of an invalid type (%s)
+ERR_CONFIG_ATTR_INVALID_STRING_VALUE_69=Unable to parse value %s for \
+ configuration attribute %s as a string value:  %s
+ERR_CONFIG_ATTR_STRING_INVALID_TYPE_70=Unable to parse value %s for \
+ configuration attribute %s as a string value because the element was of an \
+ invalid type (%s)
+ERR_CONFIG_ATTR_STRING_INVALID_ARRAY_TYPE_71=Unable to parse value for \
+ configuration attribute %s as a set of string values because the array \
+ contained elements of an invalid type (%s)
+ERR_CONFIG_ATTR_INT_WITH_UNIT_INVALID_TYPE_72=Unable to parse value %s \
+ for configuration attribute %s as an integer with unit value because the \
+ element was of an invalid type (%s)
+ERR_CONFIG_JMX_ATTR_NO_ATTR_74=Configuration entry %s does not contain \
+ attribute %s (or that attribute exists but is not accessible using JMX)
+ERR_CONFIG_JMX_NO_METHOD_78=There is no method %s for any invokable \
+ component registered with configuration entry %s
+ERR_CONFIG_JMX_CANNOT_REGISTER_MBEAN_83=The Directory Server could not \
+ register a JMX MBean for the component associated with configuration entry \
+ %s:  %s
+ERR_CONFIG_LDIF_WRITE_ERROR_84=An unexpected error occurred while \
+ trying to export the Directory Server configuration to LDIF:  %s
+ERR_CONFIG_WORK_QUEUE_TOO_MANY_FAILURES_94=Worker thread "%s" has \
+ experienced too many repeated failures while attempting to retrieve the next \
+ operation from the work queue (%d failures experienced, maximum of %d \
+ failures allowed).  This worker thread will be destroyed
+ERR_CONFIG_WORK_QUEUE_CANNOT_CREATE_MONITOR_95=A problem occurred \
+ while trying to create and start an instance of class %s to use as a monitor \
+ provider for the Directory Server work queue:  %s.  No monitor information \
+ will be available for the work queue
+ERR_CONFIG_ATTR_DN_NULL_98=A null value was provided for DN \
+ configuration attribute %s
+ERR_CONFIG_ATTR_DN_CANNOT_PARSE_99=An error occurred while trying to \
+ parse value "%s" of attribute %s as a DN:  %s
+ERR_CONFIG_ATTR_INVALID_DN_VALUE_100=Unable to parse value %s for \
+ configuration attribute %s as a DN:  %s
+ERR_CONFIG_ATTR_DN_INVALID_TYPE_101=Unable to parse value %s for \
+ configuration attribute %s as a DN because the element was of an invalid type \
+ (%s)
+ERR_CONFIG_ATTR_DN_INVALID_ARRAY_TYPE_102=Unable to parse value for \
+ configuration attribute %s as a set of DN values because the array contained \
+ elements of an invalid type (%s)
+ERR_CONFIG_CANNOT_REGISTER_AS_PRIVATE_SUFFIX_103=An unexpected error \
+ occurred while trying to register the configuration handler base DN "%s" as a \
+ private suffix with the Directory Server:  %s
+ERR_CONFIG_BACKEND_CANNOT_GET_CONFIG_BASE_104=An error occurred while \
+ trying to retrieve configuration entry cn=Backends,cn=config in order to \
+ initialize the Directory Server backends:  %s
+ERR_CONFIG_BACKEND_BASE_DOES_NOT_EXIST_105=The entry \
+ cn=Backends,cn=config does not appear to exist in the Directory Server \
+ configuration.  This is a required entry
+ERR_CONFIG_BACKEND_ERROR_INTERACTING_WITH_BACKEND_ENTRY_107=An \
+ unexpected error occurred while interacting with backend configuration entry \
+ %s:  %s
+INFO_CONFIG_BACKEND_ATTR_DESCRIPTION_CLASS_109=Fully-qualified \
+ name of the Java class that should provide the core logic for this backend \
+ implementation.  Changes to this configuration attribute will not take effect \
+ until the backend is disabled and re-enabled or the server is restarted
+INFO_CONFIG_BACKEND_DISABLED_111=The backend defined in configuration entry \
+ %s is marked as disabled and therefore will not be used
+ERR_CONFIG_BACKEND_UNABLE_TO_DETERMINE_ENABLED_STATE_112=An unexpected \
+ error occurred while attempting to determine whether the backend associated \
+ with configuration entry %s should be enabled or disabled:  %s.  It will be \
+ disabled
+ERR_CONFIG_BACKEND_CANNOT_INSTANTIATE_115=The Directory Server was \
+ unable to load class %s and use it to create a backend instance as defined in \
+ configuration entry %s.  The error that occurred was:  %s.  This backend will \
+ be disabled
+ERR_CONFIG_BACKEND_CANNOT_INITIALIZE_116=An error occurred while \
+ trying to initialize a backend loaded from class %s with the information in \
+ configuration entry %s:  %s.  This backend will be disabled
+ERR_CONFIG_BACKEND_CLASS_NOT_BACKEND_117=The class %s specified in \
+ configuration entry %s does not contain a valid Directory Server backend \
+ implementation
+NOTICE_CONFIG_BACKEND_ACTION_REQUIRED_TO_CHANGE_CLASS_118=The requested \
+ change to configuration entry %s would cause the class for the associated \
+ backend to change from %s to %s.  This change will not take effect until the \
+ backend is disabled and re-enabled, or until the Directory Server is \
+ restarted
+NOTICE_CONFIG_BACKEND_CANNOT_REMOVE_BACKEND_WITH_SUBORDINATES_119=The backend \
+ defined in configuration entry %s has one or more subordinate backends.  A \
+ backend may not be removed if it has subordinate backends
+ERR_CONFIG_MONITOR_INITIALIZATION_FAILED_140=An error occurred while \
+ trying to initialize an instance of class %s as a monitor provider as defined \
+ in configuration entry %s:  %s
+ERR_CONFIG_CONNHANDLER_CANNOT_INITIALIZE_154=An error occurred while \
+ trying to initialize a connection handler loaded from class %s with the \
+ information in configuration entry %s:  %s.  This connection handler will be \
+ disabled
+ERR_CONFIG_SCHEMA_MR_CANNOT_INITIALIZE_172=An error occurred while \
+ trying to initialize a matching rule loaded from class %s with the \
+ information in configuration entry %s:  %s.  This matching rule will be \
+ disabled
+WARN_CONFIG_SCHEMA_MR_CONFLICTING_MR_173=The matching rule defined in \
+ configuration entry %s conflicts with another matching rule defined in the \
+ server configuration:  %s.  This matching rule will not be used
+ERR_CONFIG_SCHEMA_SYNTAX_CANNOT_INITIALIZE_186=An error occurred while \
+ trying to initialize an attribute syntax loaded from class %s with the \
+ information in configuration entry %s:  %s.  This syntax will be disabled
+WARN_CONFIG_SCHEMA_SYNTAX_CONFLICTING_SYNTAX_187=The attribute syntax \
+ defined in configuration entry %s conflicts with another syntax defined in \
+ the server configuration:  %s.  This attribute syntax will not be used
+ERR_CONFIG_SCHEMA_NO_SCHEMA_DIR_188=Unable to read the Directory \
+ Server schema definitions because the schema directory %s does not exist
+ERR_CONFIG_SCHEMA_DIR_NOT_DIRECTORY_189=Unable to read the Directory \
+ Server schema definitions because the schema directory %s exists but is not a \
+ directory
+ERR_CONFIG_SCHEMA_CANNOT_LIST_FILES_190=Unable to read the Directory \
+ Server schema definitions from directory %s because an unexpected error \
+ occurred while trying to list the files in that directory:  %s
+WARN_CONFIG_SCHEMA_CANNOT_OPEN_FILE_191=Schema configuration file %s \
+ in directory %s cannot be parsed because an unexpected error occurred while \
+ trying to open the file for reading:  %s
+WARN_CONFIG_SCHEMA_CANNOT_READ_LDIF_ENTRY_192=Schema configuration \
+ file %s in directory %s cannot be parsed because an unexpected error occurred \
+ while trying to read its contents as an LDIF entry:  %s
+WARN_CONFIG_SCHEMA_CANNOT_PARSE_ATTR_TYPE_193=Unable to parse an \
+ attribute type definition from schema configuration file %s:  %s
+WARN_CONFIG_SCHEMA_CONFLICTING_ATTR_TYPE_194=An attribute type read \
+ from schema configuration file %s conflicts with another attribute type \
+ already read into the schema:  %s.  The later attribute type definition will \
+ be used
+WARN_CONFIG_SCHEMA_CONFLICTING_OC_195=An objectclass read from schema \
+ configuration file %s conflicts with another objectclass already read into \
+ the schema:  %s.  The later objectclass definition will be used
+WARN_CONFIG_SCHEMA_CANNOT_PARSE_OC_196=An objectclass read from schema \
+  configuration file %s could not be parsed:  %s
+ERR_CONFIG_ENTRYCACHE_CANNOT_INSTALL_DEFAULT_CACHE_200=An unexpected \
+ error occurred that prevented the server from installing its default entry \
+ cache framework:  %s
+WARN_CONFIG_ENTRYCACHE_NO_CONFIG_ENTRY_201=The entry cache \
+ configuration entry "cn=Entry Caches,cn=config" does not exist in the \
+ Directory Server configuration.  No entry cache will be available until this \
+ entry is created with a valid entry cache configuration
+ERR_CONFIG_ENTRYCACHE_CANNOT_INITIALIZE_CACHE_202=An error occurred \
+ while attempting to initialize an instance of class %s for use as the \
+ Directory Server entry cache:  %s.  As a result, the entry cache will be \
+ disabled
+ERR_CONFIG_ENTRYCACHE_CONFIG_NOT_ACCEPTABLE_203=The configuration for \
+ the entry cache defined in configuration entry %s was not acceptable:  %s
+ERR_CONFIG_ENTRYCACHE_CONFIG_LEVEL_NOT_ACCEPTABLE_204=The configuration \
+ for the entry cache defined in configuration entry %s was not acceptable:  \
+ the entry cache level %d is already in use
+INFO_WARN_CONFIG_ENTRYCACHE_NO_MONITOR_CONFIG_ENTRY_205=The configuration for \
+ the entry cache %s monitor provider was not available. As a result this \
+ monitor provider %s will not be enabled
+INFO_WARN_CONFIG_ENTRYCACHE_MONITOR_CONFIG_DISABLED_206=The configuration for \
+ the entry cache %s monitor provider was disabled. As a result the monitor \
+ provider %s will not be enabled
+ERR_CONFIG_ENTRY_CANNOT_REMOVE_CHILD_215=An unexpected error occurred \
+ while attempting to remove entry %s as a child of configuration entry %s:  %s
+WARN_CONFIG_SCHEMA_CANNOT_PARSE_NAME_FORM_216=Unable to parse a name \
+ form definition from schema configuration file %s:  %s
+WARN_CONFIG_SCHEMA_CONFLICTING_NAME_FORM_217=A name form read from \
+ schema configuration file %s conflicts with another name form already read \
+ into the schema:  %s.  The later name form definition will be used
+WARN_CONFIG_SCHEMA_CANNOT_PARSE_DCR_218=Unable to parse a DIT content \
+ rule definition from schema configuration file %s:  %s
+WARN_CONFIG_SCHEMA_CONFLICTING_DCR_219=A DIT content rule read from \
+ schema configuration file %s conflicts with another DIT content rule already \
+ read into the schema:  %s.  The later DIT content rule definition will be \
+ used
+WARN_CONFIG_SCHEMA_CANNOT_PARSE_DSR_220=Unable to parse a DIT \
+ structure rule definition from schema configuration file %s:  %s
+WARN_CONFIG_SCHEMA_CONFLICTING_DSR_221=A DIT structure rule read from \
+ schema configuration file %s conflicts with another DIT structure rule \
+ already read into the schema:  %s.  The later DIT structure rule definition \
+ will be used
+WARN_CONFIG_SCHEMA_CANNOT_PARSE_MRU_222=Unable to parse a matching \
+ rule use definition from schema configuration file %s:  %s
+WARN_CONFIG_SCHEMA_CONFLICTING_MRU_223=A matching rule use read from \
+ schema configuration file %s conflicts with another matching rule use already \
+ read into the schema:  %s.  The later matching rule use definition will be \
+ used
+ERR_CONFIG_ATTR_READ_ONLY_228=Configuration attribute %s is read-only \
+ and its values may not be altered
+ERR_CONFIG_PLUGIN_CANNOT_INITIALIZE_245=An error occurred while \
+ attempting to initialize an instance of class %s as a Directory Server plugin \
+ using the information in configuration entry %s:  %s.  This plugin will be \
+ disabled
+ERR_CONFIG_EXTOP_INVALID_CLASS_256=Class %s specified in configuration \
+ entry %s does not contain a valid extended operation handler implementation: \
+ %s
+ERR_CONFIG_EXTOP_INITIALIZATION_FAILED_261=An error occurred while \
+ trying to initialize an instance of class %s as an extended operation handler \
+ as defined in configuration entry %s:  %s
+ERR_CONFIG_SASL_INITIALIZATION_FAILED_277=An error occurred while trying \
+ to initialize an instance of class %s as a SASL mechanism handler as defined \
+ in configuration entry %s:  %s
+ERR_CONFIG_FILE_ADD_ALREADY_EXISTS_280=Entry %s cannot be added to the \
+ Directory Server configuration because another configuration entry already \
+ exists with that DN
+ERR_CONFIG_FILE_ADD_NO_PARENT_DN_281=Entry %s cannot be added to the \
+ Directory Server configuration because that DN does not have a parent
+ERR_CONFIG_FILE_ADD_NO_PARENT_282=Entry %s cannot be added to the \
+ Directory Server configuration because its parent entry %s does not exist
+ERR_CONFIG_FILE_ADD_REJECTED_BY_LISTENER_283=The Directory Server is \
+ unwilling to add configuration entry %s because one of the add listeners \
+ registered with the parent entry %s rejected this change with the message: \
+ %s
+ERR_CONFIG_FILE_ADD_FAILED_284=An unexpected error occurred while \
+ attempting to add configuration entry %s as a child of entry %s:  %s
+ERR_CONFIG_FILE_DELETE_NO_SUCH_ENTRY_285=Entry %s cannot be removed from \
+ the Directory Server configuration because the specified entry does not exist
+ERR_CONFIG_FILE_DELETE_HAS_CHILDREN_286=Entry %s cannot be removed from \
+ the Directory Server configuration because the specified entry has one or \
+ more subordinate entries
+ERR_CONFIG_FILE_DELETE_NO_PARENT_287=Entry %s cannot be removed from the \
+ Directory Server configuration because the entry does not have a parent and \
+ removing the configuration root entry is not allowed
+ERR_CONFIG_FILE_DELETE_REJECTED_288=Entry %s cannot be removed from the \
+ Directory Server configuration because one of the delete listeners registered \
+ with the parent entry %s rejected this change with the message:  %s
+ERR_CONFIG_FILE_DELETE_FAILED_289=An unexpected error occurred while \
+ attempting to remove configuration entry %s as a child of entry %s:  %s
+ERR_CONFIG_FILE_MODIFY_NO_SUCH_ENTRY_290=Entry %s cannot be modified \
+ because the specified entry does not exist
+ERR_CONFIG_FILE_MODIFY_REJECTED_BY_CHANGE_LISTENER_291=Entry %s cannot \
+ be modified because one of the configuration change listeners registered for \
+ that entry rejected the change:  %s
+ERR_CONFIG_FILE_SEARCH_NO_SUCH_BASE_293=The search operation cannot be \
+ processed because base entry %s does not exist
+ERR_CONFIG_FILE_SEARCH_INVALID_SCOPE_294=The search operation cannot be \
+ processed because the specified search scope %s is invalid
+ERR_CONFIG_FILE_WRITE_CANNOT_EXPORT_NEW_CONFIG_300=An error occurred \
+ while attempting to export the new Directory Server configuration to file %s: \
+ %s
+ERR_CONFIG_FILE_WRITE_CANNOT_RENAME_NEW_CONFIG_301=An error occurred \
+ while attempting to rename the new Directory Server configuration from file \
+ %s to %s:  %s
+ERR_CONFIG_FILE_MODDN_NOT_ALLOWED_302=Modify DN operations are not \
+ allowed in the Directory Server configuration
+INFO_CONFIG_BACKEND_ATTR_DESCRIPTION_BASE_DNS_305=Set of base \
+ DNs that should be used for this backend.  It is up to the backend \
+ implementation as to whether changes to this attribute will automatically \
+ take effect
+INFO_CONFIG_KEYMANAGER_DESCRIPTION_ENABLED_313=Indicates whether the \
+ Directory Server key manager provider should be enabled.  A key manager \
+ provider is required for operations that require access to a key manager \
+ (e.g., communication over SSL).  Changes to this configuration attribute will \
+ take effect immediately, but will only impact future attempts to access the \
+ key manager
+ERR_CONFIG_TRUSTMANAGER_DESCRIPTION_ENABLED_328=Indicates whether the \
+ Directory Server trust manager provider should be enabled.  A trust manager \
+ provider is required for operations that require access to a trust manager \
+ (e.g., communication over SSL).  Changes to this configuration attribute will \
+ take effect immediately, but will only impact future attempts to access the \
+ trust manager
+ERR_CONFIG_PWSCHEME_INITIALIZATION_FAILED_376=An error occurred while \
+ trying to initialize an instance of class %s as a password storage scheme as \
+ defined in configuration entry %s:  %s
+ERR_CONFIG_PWSCHEME_EXISTS_377=Unable to add a new password storage \
+ scheme entry with DN %s because there is already a storage scheme registered \
+ with that DN
+INFO_CONFIG_BACKEND_ATTR_DESCRIPTION_BACKEND_ID_382=Unique \
+ identifier for this backend.  Changes to this configuration attribute will \
+ not take effect until the backend is disabled and re-enabled or the server is \
+ restarted
+WARN_CONFIG_BACKEND_DUPLICATE_BACKEND_ID_384=The backend defined in \
+ configuration entry %s has a backend ID of %s that conflicts with the backend \
+ ID for another backend in the server.  The backend will be disabled
+ERR_CONFIG_BACKUP_CANNOT_GET_MAC_386=An error occurred while \
+ attempting to obtain the %s MAC provider to create the signed hash for the \
+ backup:  %s
+ERR_CONFIG_BACKUP_CANNOT_GET_DIGEST_387=An error occurred while \
+ attempting to obtain the %s message digest to create the hash for the backup: \
+ %s
+ERR_CONFIG_BACKUP_CANNOT_CREATE_ARCHIVE_FILE_388=An error occurred \
+ while trying to create the config archive file %s in directory %s:  %s
+ERR_CONFIG_BACKUP_CANNOT_GET_CIPHER_389=An error occurred while \
+ attempting to obtain the cipher to use to encrypt the backup:  %s
+ERR_CONFIG_BACKUP_ZIP_COMMENT_390=%s config backup %s
+ERR_CONFIG_BACKUP_CANNOT_DETERMINE_CONFIG_FILE_LOCATION_391=An error \
+ occurred while attempting to determine the path to the Directory Server \
+ configuration file so that it could be archived:  %s
+ERR_CONFIG_BACKUP_CANNOT_BACKUP_CONFIG_FILE_392=An error occurred \
+ while attempting to back up configuration file %s:  %s
+ERR_CONFIG_BACKUP_CANNOT_BACKUP_ARCHIVED_CONFIGS_393=An error occurred \
+ while attempting to back up the archived previous configurations from file \
+ %s:  %s
+ERR_CONFIG_BACKUP_CANNOT_CLOSE_ZIP_STREAM_394=An error occurred while \
+ trying to close the config archive file %s in directory %s:  %s
+ERR_CONFIG_BACKUP_CANNOT_UPDATE_BACKUP_DESCRIPTOR_395=An error \
+ occurred while attempting to update the backup descriptor file %s with \
+ information about the configuration backup:  %s
+ERR_CONFIG_RESTORE_NO_SUCH_BACKUP_396=Unable to restore or verify \
+ configuration backup %s in directory %s because no such backup exists
+ERR_CONFIG_RESTORE_NO_BACKUP_FILE_397=Unable to restore or verify \
+ configuration backup %s in directory %s because the archive filename could \
+ not be determined
+ERR_CONFIG_RESTORE_NO_SUCH_FILE_398=Unable to restore or verify \
+ configuration backup %s because the specified archive file %s does not exist
+ERR_CONFIG_RESTORE_CANNOT_CHECK_FOR_ARCHIVE_399=Unable to restore or \
+ verify configuration backup %s because an error occurred while trying to \
+ determine whether backup archive %s exists:  %s
+ERR_CONFIG_RESTORE_UNKNOWN_DIGEST_400=Unable to restore or verify \
+ configuration backup %s because an unsigned hash of this backup is available \
+ but the server cannot determine the digest algorithm used to generate this \
+ hash
+ERR_CONFIG_RESTORE_CANNOT_GET_DIGEST_401=Unable to restore or verify \
+ configuration backup %s because it has an unsigned hash that uses an unknown \
+ or unsupported digest algorithm of %s
+ERR_CONFIG_RESTORE_UNKNOWN_MAC_402=Unable to restore or verify \
+ configuration backup %s because a signed hash of this backup is available but \
+ the server cannot determine the MAC algorithm used to generate this hash
+ERR_CONFIG_RESTORE_CANNOT_GET_MAC_403=Unable to restore or verify \
+ configuration backup %s because it has a signed hash that uses an unknown or \
+ unsupported MAC algorithm of %s
+ERR_CONFIG_RESTORE_CANNOT_OPEN_BACKUP_FILE_404=Unable to restore or \
+ verify configuration backup %s because an error occurred while attempting to \
+ open the backup archive file %s:  %s
+ERR_CONFIG_RESTORE_CANNOT_GET_CIPHER_406=Unable to restore or verify \
+ configuration backup %s because it is encrypted using an unknown or \
+ unsupported cipher:  %s
+ERR_CONFIG_RESTORE_CANNOT_BACKUP_EXISTING_CONFIG_407=Unable to restore \
+ configuration backup %s because an error occurred while attempting to \
+ temporarily back up the current configuration files from %s to %s:  %s
+NOTICE_CONFIG_RESTORE_RESTORED_OLD_CONFIG_408=An error occurred that \
+ prevented the configuration backup from being properly restored.  However, \
+ the original configuration files that were in place before the start of the \
+ restore process have been preserved and are now in their original location of \
+ %s
+ERR_CONFIG_RESTORE_CANNOT_RESTORE_OLD_CONFIG_409=An error occurred \
+ that prevented the configuration backup from being properly restored.  The \
+ original configuration files that were in place before the start of the \
+ restore process have been preserved and are contained in the %s directory
+ERR_CONFIG_RESTORE_CANNOT_CREATE_CONFIG_DIRECTORY_410=Unable to \
+ restore configuration backup %s because an error occurred while attempting to \
+ create a new empty directory %s into which the files should be restored:  %s
+ERR_CONFIG_RESTORE_OLD_CONFIG_SAVED_411=An error occurred that \
+ prevented the configuration backup from being properly restored.  The \
+ original configuration files that were in place before the start of the \
+ restore process have been preserved in the %s directory
+ERR_CONFIG_RESTORE_CANNOT_GET_ZIP_ENTRY_412=Unable to restore or \
+ verify configuration backup %s because an error occurred while trying to read \
+ the next entry from the archive file %s:  %s
+ERR_CONFIG_RESTORE_CANNOT_CREATE_FILE_413=Unable to restore \
+ configuration backup %s because an error occurred while trying to recreate \
+ file %s:  %s
+ERR_CONFIG_RESTORE_CANNOT_PROCESS_ARCHIVE_FILE_414=Unable to restore \
+ or verify configuration backup %s because an error occurred while processing \
+ archived file %s:  %s
+ERR_CONFIG_RESTORE_ERROR_ON_ZIP_STREAM_CLOSE_415=Unable to restore or \
+ verify configuration backup %s because an unexpected error occurred while \
+ trying to close the archive file %s:  %s
+NOTICE_CONFIG_RESTORE_UNSIGNED_HASH_VALID_416=The message digest calculated \
+ from the backup archive matches the digest stored with the backup information
+ERR_CONFIG_RESTORE_UNSIGNED_HASH_INVALID_417=Unable to restore or \
+ verify configuration backup %s because the message digest calculated from the \
+ backup archive does not match the digest stored with the backup information
+NOTICE_CONFIG_RESTORE_SIGNED_HASH_VALID_418=The signed digest calculated from \
+ the backup archive matches the signature stored with the backup information
+ERR_CONFIG_RESTORE_SIGNED_HASH_INVALID_419=Unable to restore or verify \
+ configuration backup %s because the signed digest calculated from the backup \
+ archive does not match the signature stored with the backup information
+NOTICE_CONFIG_RESTORE_VERIFY_SUCCESSFUL_420=All tests performed on \
+ configuration backup %s from directory %s show that the archive appears to be \
+ valid
+NOTICE_CONFIG_RESTORE_SUCCESSFUL_421=Configuration backup %s was successfully \
+ restored from the archive in directory %s
+ERR_CONFIG_BACKEND_CANNOT_ACQUIRE_SHARED_LOCK_422=The Directory Server \
+ was unable to acquire a shared lock for backend %s:  %s.  This generally \
+ means that the backend is in use by a process that requires an exclusive lock \
+ (e.g., importing from LDIF or restoring a backup).  This backend will be \
+ disabled
+WARN_CONFIG_BACKEND_CANNOT_RELEASE_SHARED_LOCK_423=An error occurred \
+ while attempting to release a shared lock for backend %s:  %s.  This may \
+ interfere with operations that require exclusive access, including LDIF \
+ import and restoring a backup
+INFO_CONFIG_FILE_HEADER_424=This file contains the primary Directory Server \
+ configuration.  It must not be directly edited while the server is online. \
+ The server configuration should only be managed using the administration \
+ utilities provided with the Directory Server
+ERR_CONFIG_IDMAPPER_INITIALIZATION_FAILED_442=An error occurred while \
+ trying to initialize an instance of class %s as an identity mapper as defined \
+ in configuration entry %s:  %s
+ERR_CONFIG_IDMAPPER_NO_PROXY_MAPPER_DN_448=The Directory Server does \
+ not have any identity mapper configured for use in conjunction with proxied \
+ authorization V2 operations.  The Directory Server will not be able to \
+ process requests containing the proxied authorization control with a \
+ username-based authorization ID
+ERR_CONFIG_IDMAPPER_INVALID_PROXY_MAPPER_DN_449=The configured proxied \
+ authorization identity mapper DN %s does not refer to an active identity \
+ mapper.  The Directory Server will not be able to process requests containing \
+ the proxied authorization control with a username-based authorization ID
+ERR_CONFIG_SYNCH_UNABLE_TO_LOAD_PROVIDER_CLASS_463=An error occurred \
+ while attempting to load class %s referenced in synchronization provider \
+ configuration entry %s:  %s
+ERR_CONFIG_SYNCH_UNABLE_TO_INSTANTIATE_PROVIDER_464=An error occurred \
+ while attempting to instantiate class %s referenced in synchronization \
+ provider configuration entry %s:  %s
+ERR_CONFIG_SYNCH_ERROR_INITIALIZING_PROVIDER_465=An error occurred \
+ while attempting to initialize the Directory Server synchronization provider \
+ referenced in configuration entry %s:  %s
+ERR_CONFIG_PWVALIDATOR_INITIALIZATION_FAILED_489=An error occurred while \
+ trying to initialize an instance of class %s as a password validator as \
+ defined in configuration entry %s:  %s
+ERR_CONFIG_PWGENERATOR_INITIALIZATION_FAILED_505=An error occurred while \
+ trying to initialize an instance of class %s as a password generator as \
+ defined in configuration entry %s:  %s
+ERR_CONFIG_PWPOLICY_NO_POLICIES_514=No password policies have been \
+ defined below the cn=Password Policies,cn=config entry in the Directory \
+ Server configuration.  At least one password policy configuration must be \
+ defined
+ERR_CONFIG_PWPOLICY_INVALID_POLICY_CONFIG_515=The password policy \
+ defined in configuration entry %s is invalid:  %s
+ERR_CONFIG_PWPOLICY_MISSING_DEFAULT_POLICY_516=The Directory Server \
+ default password policy is defined as %s, but that entry does not exist or is \
+ not below the password policy configuration base cn=Password \
+ Policies,cn=config
+WARN_CONFIG_PWPOLICY_CANNOT_DELETE_DEFAULT_POLICY_517=The specified \
+ entry %s is currently defined as the configuration entry for the default \
+ password policy.  The default password policy configuration entry may not be \
+ removed
+INFO_CONFIG_PWPOLICY_REMOVED_POLICY_518=Password policy entry %s has been \
+ removed from the Directory Server configuration.  Any user entries that \
+ explicitly reference this password policy will no longer be allowed to \
+ authenticate
+WARN_CONFIG_AUTHZ_DISABLED_525=Access control has been disabled
+NOTICE_CONFIG_AUTHZ_ENABLED_526=Access control has been enabled and will use \
+ the %s implementation
+ERR_CONFIG_AUTHZ_UNABLE_TO_INSTANTIATE_HANDLER_533=An error occurred \
+ while attempting to instantiate class %s referenced in the access control \
+ configuration entry %s:  %s
+INFO_CONFIG_ROOTDN_DESCRIPTION_ALTERNATE_BIND_DN_540=Specifies one or more \
+ alternate bind DNs that may be used to authenticate as the associated root \
+ DN, in addition to the actual DN of the root DN configuration entry. \
+ Alternate bind DNs must not conflict with the DNs of any other entries in the \
+ directory, nor can they conflict with other alternate bind DNs configured for \
+ other root DNs.  Changes to this configuration attribute will take effect \
+ immediately
+ERR_CONFIG_ROOTDN_CONFLICTING_MAPPING_541=Unable to register "%s" as \
+ an alternate bind DN for user "%s" because it is already registered as an \
+ alternate bind DN for root user "%s"
+ERR_CONFIG_ACCTNOTHANDLER_INITIALIZATION_FAILED_558=An error occurred \
+ while trying to initialize an instance of class %s as an account status \
+ notification handler as defined in configuration entry %s:  %s
+ERR_CONFIG_ACCTNOTHANDLER_EXISTS_559=Unable to add a new account status \
+ notification handler entry with DN %s because there is already a notification \
+ handler registered with that DN
+ERR_CONFIG_UNABLE_TO_APPLY_STARTUP_CHANGES_563=An error occurred while \
+ attempting to apply the changes contained in file %s to the server \
+ configuration at startup:  %s
+ERR_CONFIG_ERROR_APPLYING_STARTUP_CHANGE_564=Unable to apply a change \
+ at server startup:  %s
+ERR_CONFIG_UNABLE_TO_APPLY_CHANGES_FILE_565=One or more errors occurred \
+ while applying changes on server startup
+ERR_CONFIG_BACKEND_MODE_INVALID_567=Configuration entry %s does not \
+ contain a valid value for configuration attribute ds-cfg-db-directory-permissions (It \
+ should be an UNIX permission mode in three-digit octal notation.)
+ERR_CONFIG_BACKEND_INSANE_MODE_568=Invalid UNIX file permissions %s \
+  does not allow read and write access to the backend database directory by \
+  the backend
+ERR_CONFIG_PWPOLICY_NO_DEFAULT_POLICY_571=No default password policy \
+ is configured for the Directory Server.  The default password policy must be \
+ specified by the ds-cfg-default-password-policy attribute in the cn=config \
+ entry
+WARN_CONFIG_BACKEND_CANNOT_REGISTER_BACKEND_572=An error occurred \
+ while attempting to register backend %s with the Directory Server:  %s
+ERR_CONFIG_FILE_CANNOT_CREATE_ARCHIVE_DIR_NO_REASON_573=An error \
+ occurred while trying to create the configuration archive directory %s
+ERR_CONFIG_FILE_CANNOT_CREATE_ARCHIVE_DIR_574=An error occurred while \
+ trying to create the configuration archive directory %s:  %s
+ERR_CONFIG_FILE_CANNOT_WRITE_CONFIG_ARCHIVE_575=An error occurred \
+ while trying to write the current configuration to the configuration archive: \
+ %s
+ERR_CONFIG_GROUP_INITIALIZATION_FAILED_591=An error occurred while \
+ trying to initialize an instance of class %s as a group implementation as in \
+ configuration entry %s:  %s
+ERR_CONFIG_FILE_ADD_INSUFFICIENT_PRIVILEGES_598=You do not have \
+ sufficient privileges to perform add operations in the Directory Server \
+ configuration
+ERR_CONFIG_FILE_DELETE_INSUFFICIENT_PRIVILEGES_599=You do not have \
+ sufficient privileges to perform delete operations in the Directory Server \
+ configuration
+ERR_CONFIG_FILE_MODIFY_INSUFFICIENT_PRIVILEGES_600=You do not have \
+ sufficient privileges to perform modify operations in the Directory Server \
+ configuration
+ERR_CONFIG_FILE_MODDN_INSUFFICIENT_PRIVILEGES_601=You do not have \
+ sufficient privileges to perform modify DN operations in the Directory Server \
+ configuration
+ERR_CONFIG_FILE_SEARCH_INSUFFICIENT_PRIVILEGES_602=You do not have \
+ sufficient privileges to perform search operations in the Directory Server \
+ configuration
+ERR_CONFIG_FILE_MODIFY_PRIVS_INSUFFICIENT_PRIVILEGES_603=You do not have \
+ sufficient privileges to change the set of default root privileges
+ERR_CONFIG_CERTMAPPER_INITIALIZATION_FAILED_614=An error occurred while \
+ trying to initialize an instance of class %s as a certificate mapper as \
+ defined in configuration entry %s:  %s
+ERR_CONFIG_KEYMANAGER_CANNOT_GET_BASE_617=An error occurred while \
+ attempting to retrieve the key manager provider base entry cn=Key Manager \
+ Providers,cn=config from the Directory Server configuration:  %s
+ERR_CONFIG_KEYMANAGER_INITIALIZATION_FAILED_627=An error occurred while \
+ trying to initialize an instance of class %s as a key manager provider as \
+ defined in configuration entry %s:  %s
+ERR_CONFIG_TRUSTMANAGER_CANNOT_GET_BASE_630=An error occurred while \
+ attempting to retrieve the trust manager provider base entry cn=Trust Manager \
+ Providers,cn=config from the Directory Server configuration:  %s
+ERR_CONFIG_TRUSTMANAGER_INITIALIZATION_FAILED_640=An error occurred \
+ while trying to initialize an instance of class %s as a trust manager \
+ provider as defined in configuration entry %s:  %s
+ERR_CONFIG_JMX_CANNOT_GET_ATTRIBUTE_643=Unable to retrieve JMX \
+ attribute %s associated with configuration entry %s:  %s
+ERR_CONFIG_CHANGE_NO_RESULT_645=%s.%s returned a result of null for \
+ entry %s
+ERR_CONFIG_CHANGE_RESULT_ERROR_646=%s.%s failed for entry %s:  result \
+ code=%s, admin action required=%b, messages="%s"
+WARN_CONFIG_CHANGE_RESULT_ACTION_REQUIRED_647=%s.%s indicated that \
+ administrative action is required for entry %s:  messages="%s"
+INFO_CONFIG_CHANGE_RESULT_MESSAGES_648=%s.%s succeeded but generated the \
+ following messages for entry %s:  %s
+ERR_CONFIG_VATTR_INVALID_SEARCH_FILTER_649=Unable to parse value "%s" \
+ from config entry "%s" as a valid search filter:  %s
+ERR_CONFIG_VATTR_INITIALIZATION_FAILED_650=An error occurred while \
+ trying to load an instance of class %s referenced in configuration entry %s \
+ as a virtual attribute provider:  %s
+ERR_CONFIG_VATTR_SV_TYPE_WITH_MV_PROVIDER_651=The virtual attribute \
+ configuration in entry "%s" is not valid because attribute type %s is \
+ single-valued but provider %s may generate multiple values
+ERR_CONFIG_VATTR_SV_TYPE_WITH_MERGE_VALUES_652=The virtual attribute \
+ configuration in entry "%s" is not valid because attribute type %s is \
+ single-valued but the conflict behavior is configured to merge real and \
+ virtual values
+ERR_CONFIG_FILE_MODIFY_STRUCTURAL_CHANGE_NOT_ALLOWED_653=Configuration \
+ entry %s cannot be modified because the change would alter its structural \
+ object class
+ERR_CONFIG_CANNOT_CALCULATE_DIGEST_654=An error occurred while \
+ attempting to calculate a SHA-1 digest of file %s:  %s
+WARN_CONFIG_MANUAL_CHANGES_DETECTED_655=The Directory Server has \
+ detected that one or more external changes have been made to the \
+ configuration file %s while the server was online, but another change has \
+ caused the server configuration to be overwritten.  The manual changes have \
+ not been applied, but they have been preserved in file %s
+ERR_CONFIG_MANUAL_CHANGES_LOST_656=The Directory Server encountered an \
+ error while attempting to determine whether the configuration file %s has \
+ been externally edited with the server online, and/or trying to preserve such \
+ changes:  %s.  Any manual changes made to that file may have been lost
+ERR_CONFIG_ROTATION_POLICY_INVALID_CLASS_657=Class %s specified in \
+ attribute ds-cfg-java-class of configuration entry %s cannot be \
+ instantiated as a Directory Server log rotation policy:  %s
+ERR_CONFIG_RETENTION_POLICY_INVALID_CLASS_658=Class %s specified in \
+ attribute ds-cfg-java-class of configuration entry %s cannot be \
+ instantiated as a Directory Server log retention policy:  %s
+ERR_CONFIG_ROTATION_POLICY_CANNOT_CREATE_POLICY_659=An error occurred \
+ while attempting to create a Directory Server log rotation policy from the \
+ information in configuration entry %s:  %s
+ERR_CONFIG_RETENTION_POLICY_CANNOT_CREATE_POLICY_660=An error occurred \
+ while attempting to create a Directory Server log retention policy from the \
+ information in configuration entry %s:  %s
+ERR_CONFIG_LOGGING_CANNOT_CREATE_WRITER_661=An error occurred while \
+ attempting to create a text writer for a Directory Server logger from the \
+ information in configuration entry %s:  %s
+WARN_CONFIG_SCHEMA_MULTIPLE_ENTRIES_IN_FILE_662=Schema configuration \
+ file %s in directory %s contains more than one entry.  Only the first entry \
+ will be examined, and the additional entries will be ignored
+WARN_CONFIG_SCHEMA_UNPARSEABLE_EXTRA_DATA_IN_FILE_663=Schema \
+ configuration file %s in directory %s contains additional data after the \
+ schema entry that cannot be parsed by the LDIF reader:  %s.  The first entry \
+ will be processed, but the remaining data will be ignored
+WARN_CONFIG_PLUGIN_EMPTY_ELEMENT_IN_ORDER_664=The plugin order \
+ definition for plugins of type %s contains an empty element.  This may cause \
+ the plugin order to be evaluated incorrectly
+WARN_CONFIG_PLUGIN_MULTIPLE_WILDCARDS_IN_ORDER_665=The plugin order \
+ definition for plugins of type %s contains multiple wildcard characters.  All \
+ plugin definitions should contain exactly one wildcard element to indicate \
+ where unmatched plugins should be included in the order, and including \
+ multiple wildcards may cause the plugin order to be evaluated incorrectly
+WARN_CONFIG_PLUGIN_LISTED_MULTIPLE_TIMES_666=The plugin order \
+ definition for plugins of type %s includes multiple references to the '%s' \
+ plugin.  This may cause the plugin order to be evaluated incorrectly
+WARN_CONFIG_PLUGIN_ORDER_NO_WILDCARD_667=The plugin order definition \
+ for plugins of type %s does not include a wildcard element to indicate where \
+ unmatched plugins should be included in the order.  The server will default \
+ to invoking all unnamed plugins after set of named plugins
+WARN_CONFIG_SCHEMA_CANNOT_DELETE_SYNTAX_IN_USE_668=Attribute syntax %s \
+ cannot be deleted from the server because it is in use by attribute type %s
+WARN_CONFIG_SCHEMA_CANNOT_DISABLE_SYNTAX_IN_USE_669=Attribute syntax \
+ %s cannot be disabled because it is in use by attribute type %s
+WARN_CONFIG_SCHEMA_CANNOT_DELETE_MR_IN_USE_BY_AT_670=Matching rule %s \
+ cannot be deleted from the server because it is in use by attribute type %s
+WARN_CONFIG_SCHEMA_CANNOT_DELETE_MR_IN_USE_BY_MRU_671=Matching rule %s \
+ cannot be deleted from the server because it is in use by matching rule use \
+ %s
+WARN_CONFIG_SCHEMA_CANNOT_DISABLE_MR_IN_USE_BY_AT_672=Matching rule %s \
+ cannot be disabled because it is in use by attribute type %s
+WARN_CONFIG_SCHEMA_CANNOT_DISABLE_MR_IN_USE_BY_MRU_673=Matching rule \
+ %s cannot be disabled because it is in use by matching rule use %s
+ERR_CONFIG_WORK_QUEUE_INITIALIZATION_FAILED_674=Unable to initialize \
+ an instance of class %s as a work queue as specified in configuration entry \
+ %s:  %s
+INFO_CONFIG_WORK_QUEUE_CLASS_CHANGE_REQUIRES_RESTART_675=The class used to \
+ provide the Directory Server work queue implementation has been changed from \
+ %s to %s, but this change will not take effect until the server is restarted
+ERR_CONFIG_FILE_ADD_APPLY_FAILED_676=The attempt to apply the \
+ configuration add failed.  The preliminary checks were all successful and the \
+ entry was added to the server configuration, but at least one of the \
+ configuration add listeners reported an error when attempting to apply the \
+ change:  %s
+ERR_CONFIG_FILE_DELETE_APPLY_FAILED_677=The attempt to apply the \
+ configuration delete failed.  The preliminary checks were all successful and \
+ the entry was removed from the server configuration, but at least one of the \
+ configuration delete listeners reported an error when attempting to apply the \
+ change:  %s
+ERR_CONFIG_FILE_MODIFY_APPLY_FAILED_678=The attempt to apply the \
+ configuration modification failed.  The preliminary checks were all \
+ successful and the modified entry was written to the server configuration, \
+ but at least one of the configuration change listeners reported an error when \
+ attempting to apply the change:  %s
+ERR_CONFIG_KEYMANAGER_CONFIG_NOT_ACCEPTABLE_679=The configuration for \
+ the key manager provider defined in configuration entry %s was not \
+ acceptable:  %s
+ERR_CONFIG_TRUSTMANAGER_CONFIG_NOT_ACCEPTABLE_680=The configuration for \
+ the trust manager provider defined in configuration entry %s was not \
+ acceptable:  %s
+ERR_CONFIG_AUTHZ_CONFIG_NOT_ACCEPTABLE_681=The configuration for the \
+ trust manager provider defined in configuration entry %s was not acceptable: \
+ %s
+ERR_CONFIG_ACCTNOTHANDLER_CONFIG_NOT_ACCEPTABLE_682=The configuration \
+ for the account status notification handler defined in configuration entry %s \
+ was not acceptable:  %s
+ERR_CONFIG_SCHEMA_SYNTAX_CONFIG_NOT_ACCEPTABLE_683=The configuration for \
+ the attribute syntax defined in configuration entry %s was not acceptable: \
+ %s
+ERR_CONFIG_CERTMAPPER_CONFIG_NOT_ACCEPTABLE_684=The configuration for \
+ the certificate mapper defined in configuration entry %s was not acceptable: \
+ %s
+ERR_CONFIG_GROUP_CONFIG_NOT_ACCEPTABLE_686=The configuration for the \
+ group implementation defined in configuration entry %s was not acceptable: \
+ %s
+ERR_CONFIG_IDMAPPER_CONFIG_NOT_ACCEPTABLE_687=The configuration for the \
+ identity mapper defined in configuration entry %s was not acceptable:  %s
+ERR_CONFIG_SCHEMA_MR_CONFIG_NOT_ACCEPTABLE_688=The configuration for the \
+ matching rule defined in configuration entry %s was not acceptable:  %s
+ERR_CONFIG_PWGENERATOR_CONFIG_NOT_ACCEPTABLE_689=The configuration for \
+ the password generator defined in configuration entry %s was not acceptable: \
+ %s
+ERR_CONFIG_PWSCHEME_CONFIG_NOT_ACCEPTABLE_690=The configuration for the \
+ password storage scheme defined in configuration entry %s was not acceptable: \
+ %s
+ERR_CONFIG_PWVALIDATOR_CONFIG_NOT_ACCEPTABLE_691=The configuration for \
+ the password validator defined in configuration entry %s was not acceptable: \
+ %s
+ERR_CONFIG_PLUGIN_CONFIG_NOT_ACCEPTABLE_692=The configuration for the \
+ plugin defined in configuration entry %s was not acceptable:  %s
+ERR_CONFIG_SASL_CONFIG_NOT_ACCEPTABLE_693=The configuration for the SASL \
+ mechanism handler defined in configuration entry %s was not acceptable:  %s
+ERR_CONFIG_VATTR_CONFIG_NOT_ACCEPTABLE_694=The configuration for the \
+ virtual attribute provider defined in configuration entry %s was not \
+ acceptable:  %s
+ERR_CONFIG_ALERTHANDLER_CONFIG_NOT_ACCEPTABLE_695=The configuration for \
+ the alert handler defined in configuration entry %s was not acceptable:  %s
+ERR_CONFIG_ALERTHANDLER_INITIALIZATION_FAILED_696=An error occurred \
+ while trying to initialize an instance of class %s as an alert handler as \
+ defined in configuration entry %s:  %s
+ERR_CONFIG_CORE_INVALID_SMTP_SERVER_697=The provided SMTP server value \
+ '%s' is invalid.  An SMTP server value must have an IP address or a \
+ resolvable name, and it may optionally be followed by a colon and an integer \
+ value between 1 and 65535 to specify the server port number
+ERR_STARTOK_CANNOT_OPEN_FOR_READING_698=An error occurred while \
+ attempting to open the current configuration file %s for reading in order to \
+ copy it to the ".startok" file:  %s
+ERR_STARTOK_CANNOT_OPEN_FOR_WRITING_699=An error occurred while \
+ attempting to open file %s in order to write the ".startok" configuration \
+ file:  %s
+ERR_STARTOK_CANNOT_WRITE_700=An error occurred while attempting to \
+ copy the current configuration from file %s into temporary file %s for use \
+ as the ".startok" configuration file:  %s
+ERR_STARTOK_CANNOT_RENAME_701=An error occurred while attempting to \
+ rename file %s to %s for use as the ".startok" configuration file:  %s
+NOTICE_CONFIG_FILE_USING_STARTOK_FILE_702=The Directory Server is starting \
+ using the last known good configuration file %s rather than the active \
+ configuration file %s
+WARN_CONFIG_FILE_NO_STARTOK_FILE_703=No last known good configuration \
+ file %s exists.  The server will attempt to start using the active \
+ configuration file %s
+ERR_CONFIG_JE_PROPERTY_INVALID_704=An error occurred while \
+ trying to parse and validate Berkeley DB JE property %s:  %s
+ERR_CONFIG_JE_PROPERTY_INVALID_FORM_705=An error occurred while \
+ trying to parse and validate Berkeley DB JE property %s: the property \
+ does not follow a singular property=value form
+ERR_CONFIG_JE_PROPERTY_SHADOWS_CONFIG_706=An error occurred while \
+ trying to parse and validate Berkeley DB JE property %s: the property \
+ shadows configuration attribute %s
+ERR_CONFIG_JE_DUPLICATE_PROPERTY_707=An error occurred while \
+ trying to parse and validate Berkeley DB JE property %s: the property \
+ is already defined for this component
+INFO_CONFIG_JE_PROPERTY_REQUIRES_RESTART_708=Setting Berkeley DB JE property \
+ %s will not take effect until the component for which it is set is restarted
+ERR_CONFIG_LOGGING_CANNOT_OPEN_FILE_709=An error occurred while \
+ attempting to open the configured log file %s for logger %s:  %s
+ERR_CONFIG_WORKFLOW_ELEMENT_CONFIG_NOT_ACCEPTABLE_710=The configuration \
+ for the workflow element defined in configuration entry %s was not \
+ acceptable: %s
+ERR_CONFIG_WORKFLOW_ELEMENT_CANNOT_INITIALIZE_711=An error occurred \
+ while trying to initialize a workflow element from class %s with the \
+ information in configuration entry %s:  %s.  This workflow element will be \
+ disabled
+ERR_CONFIG_WORKFLOW_CANNOT_CONFIGURE_MANUAL_713=An error occurred \
+ while trying to configure in manual mode the workflows in the \
+ Directory Server, and rollback to automatic configuration mode has failed \
+ too. If the server is in an unstab\
+  le state restart it with the last \
+ valid configuration
+ERR_CONFIG_WORKFLOW_CANNOT_CONFIGURE_AUTO_714=An error occurred \
+ while trying to configure in automatic mode the workflows in the \
+ Directory Server, and rollback to manual configuration mode has failed \
+ too. If the server is in an unstable state restart it with the last \
+ valid configuration
+ERR_CONFIG_LOGGING_INSANE_MODE_715=Invalid UNIX file permissions %s \
+  does not allow write access to the log file by the log publisher
+ERR_CONFIG_LOGGING_MODE_INVALID_716=Invalid UNIX file permissions %s: %s
+ERR_CONFIG_EXTENSION_CONFIG_NOT_ACCEPTABLE_717=The configuration for \
+ the extension defined in configuration entry %s was not \
+ acceptable:  %s
+ERR_CONFIG_EXTENSION_INITIALIZATION_FAILED_718=An error occurred while \
+ trying to initialize an instance of class %s as an extension as \
+ defined in configuration entry %s:  %s
+ERR_CONFIG_NETWORKGROUPREQUESTFILTERINGPOLICY_INVALID_ATTRIBUTE_719=The \
+ allowed attribute %s specified in configuration entry %s is also defined as \
+ a prohibited attribute
+ERR_CONFIG_NETWORKGROUPREQUESTFILTERINGPOLICY_INVALID_SUBTREE_720=The \
+ allowed subtree %s specified in configuration entry %s is also defined as \
+ a prohibited subtree
+ERR_CONFIG_NETWORK_GROUP_CONFIG_NOT_ACCEPTABLE_721=The configuration \
+ for the network group defined in configuration entry %s was not acceptable:  %s
+ERR_CONFIG_NETWORK_GROUP_POLICY_CANNOT_INITIALIZE_722=An error occurred \
+ while trying to initialize a network group policy loaded from class %s with \
+ the information in configuration entry %s:  %s
+WARN_CONFIG_SCHEMA_CANNOT_PARSE_LDAP_SYNTAX_723=An ldapSyntaxes \
+  attribute read from schema configuration file %s could not be parsed:  %s
+WARN_CONFIG_SCHEMA_CONFLICTING_LDAP_SYNTAX_724=An ldap syntax read \
+ from schema configuration file %s conflicts with another ldap syntax already \
+ read into the schema:  %s.  The later ldap syntax description will be used
+ERR_CONFIG_PWPOLICY_DEFAULT_POLICY_IS_WRONG_TYPE_726=The configuration \
+ entry '%s' is currently defined to be the default password policy, however it \
+ is not a password policy
+ERR_CONFIG_PWPOLICY_CANNOT_CHANGE_DEFAULT_POLICY_WRONG_TYPE_727=The \
+ default password policy value '%s' is invalid because it refers to an \
+ authentication policy which is not a password policy
+ERR_CONFIG_LOGGING_INVALID_TIME_FORMAT_728=The timestamp format string \
+ "%s" is not a valid format string.  The format string should conform to the \
+ syntax described in the documentation for the "java.text.SimpleDateFormat" class
+ERR_CONFIG_LOGGING_INVALID_USER_DN_PATTERN_729=The access log filtering \
+ criteria defined in "%s" could not be parsed because it contains an invalid \
+ user DN pattern "%s"
+ERR_CONFIG_LOGGING_INVALID_TARGET_DN_PATTERN_730=The access log filtering \
+ criteria defined in "%s" could not be parsed because it contains an invalid \
+ target DN pattern "%s"
+WARN_CONFIG_LOGGER_NO_ACTIVE_HTTP_ACCESS_LOGGERS_731=There are no active \
+ HTTP access loggers defined in the Directory Server configuration.  No HTTP \
+ access logging will be performed
+ERR_CONFIG_LOGGER_INVALID_HTTP_ACCESS_LOGGER_CLASS_732=Class %s specified \
+ in attribute ds-cfg-java-class of configuration entry %s cannot be \
+ instantiated as a Directory Server HTTP access logger:  %s
+ERR_CONFIG_LOGGING_EMPTY_LOG_FORMAT_733=The log format for configuration \
+ entry %s is empty. No information will be logged even if logging is activated
+WARN_CONFIG_LOGGING_UNSUPPORTED_FIELDS_IN_LOG_FORMAT_734=The log format \
+ for %s contains the folowing unsupported fields: %s. Their output will be \
+ replaced with a dash ("-") character
diff --git a/opendj-admin/src/main/resources/com/forgerock/opendj/ldap/protocol.properties b/opendj-admin/src/main/resources/com/forgerock/opendj/ldap/protocol.properties
index 36c6e0b..b571b70 100644
--- a/opendj-admin/src/main/resources/com/forgerock/opendj/ldap/protocol.properties
+++ b/opendj-admin/src/main/resources/com/forgerock/opendj/ldap/protocol.properties
@@ -29,13 +29,10 @@
 #
 # Keys must be formatted as follows:
 #
-# [SEVERITY]_[DESCRIPTION]_[ORDINAL]
+# [DESCRIPTION]_[ORDINAL]
 #
 # where:
 #
-# SEVERITY is one of:
-# [INFO, MILD_WARN, SEVERE_WARN, MILD_ERR, SEVERE_ERR, FATAL_ERR, DEBUG, NOTICE]
-#
 # DESCRIPTION is an upper case string providing a hint as to the context of
 # the message in upper case with the underscore ('_') character serving as
 # word separator

--
Gitblit v1.10.0