From e5783d9d5e678cb4b8d69d98162c26d2858bbe33 Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Thu, 25 Jan 2007 01:59:52 +0000
Subject: [PATCH] Make a number of updates to schema processing, all of which fall under the umbrella of issue #1163.  The individual issues addressed include:

---
 opends/src/server/org/opends/server/messages/CoreMessages.java |  137 +++++++++++++++++++++++++++++++++++++++------
 1 files changed, 119 insertions(+), 18 deletions(-)

diff --git a/opends/src/server/org/opends/server/messages/CoreMessages.java b/opends/src/server/org/opends/server/messages/CoreMessages.java
index b1f6b31..67f2b53 100644
--- a/opends/src/server/org/opends/server/messages/CoreMessages.java
+++ b/opends/src/server/org/opends/server/messages/CoreMessages.java
@@ -2193,9 +2193,8 @@
   /**
    * The message ID for the message that will be used if an entry could not be
    * checked against a DIT structure rule because the server was unable to
-   * obtain a read lock on the parent entry.  This takes three arguments, which
-   * are the DN of the entry, the name of the DIT structure rule, and the DN of
-   * the parent entry.
+   * obtain a read lock on the parent entry.  This takes two arguments, which
+   * are the DN of the entry and the DN of the parent entry.
    */
   public static final int MSGID_ENTRY_SCHEMA_DSR_COULD_NOT_LOCK_PARENT =
        CATEGORY_MASK_CORE | SEVERITY_MASK_MILD_ERROR | 212;
@@ -2205,9 +2204,8 @@
   /**
    * The message ID for the message that will be used if an entry could not be
    * checked against a DIT structure rule because the server was unable to
-   * retrieve its parent entry.  This takes three arguments, which are the DN of
-   * the entry, the name of the DIT structure rule, and the DN of the parent
-   * entry.
+   * retrieve its parent entry.  This takes two arguments, which are the DN of
+   * the entry and the DN of the parent entry.
    */
   public static final int MSGID_ENTRY_SCHEMA_DSR_NO_PARENT_ENTRY =
        CATEGORY_MASK_CORE | SEVERITY_MASK_MILD_ERROR | 213;
@@ -2217,9 +2215,8 @@
   /**
    * The message ID for the message that will be used if an entry could not be
    * checked against a DIT structure rule because its parent entry did not
-   * contain a single structural objectclass.  This takes three arguments, which
-   * are the DN of the entry, the name of the DIT structure rule, and the DN of
-   * the parent entry.
+   * contain a single structural objectclass.  This takes two arguments, which
+   * are the DN of the entry and the DN of the parent entry.
    */
   public static final int MSGID_ENTRY_SCHEMA_DSR_NO_PARENT_OC =
        CATEGORY_MASK_CORE | SEVERITY_MASK_MILD_ERROR | 214;
@@ -6077,6 +6074,82 @@
 
 
   /**
+   * The message ID for the message that will be used if an attempt is made to
+   * add an entry with an attribute type that is marked OBSOLETE.  This takes
+   * two arguments, which are the DN of the entry and the name of the attribute
+   * type.
+   */
+  public static final int MSGID_ADD_ATTR_IS_OBSOLETE =
+       CATEGORY_MASK_CORE | SEVERITY_MASK_SEVERE_WARNING | 581;
+
+
+
+  /**
+   * The message ID for the message that will be used if an attempt is made to
+   * add an entry with an objectclass that is marked OBSOLETE.  This takes two
+   * arguments, which are the DN of the entry and the name of the objectclass.
+   */
+  public static final int MSGID_ADD_OC_IS_OBSOLETE =
+       CATEGORY_MASK_CORE | SEVERITY_MASK_SEVERE_WARNING | 582;
+
+
+
+  /**
+   * The message ID for the message that will be used if an entry cannot be
+   * modified because one of the targeted attributes was marked OBSOLETE.  This
+   * takes two arguments, which are the DN of the target entry and the name of
+   * the attribute.
+   */
+  public static final int MSGID_MODIFY_ATTR_IS_OBSOLETE =
+       CATEGORY_MASK_CORE | SEVERITY_MASK_MILD_ERROR | 583;
+
+
+
+  /**
+   * The message ID for the message that will be used if an attempt is made to
+   * add an OBSOLETE objectclass to an entry.  This takes two arguments, which
+   * are the name of the objectclass and the DN of the entry.
+   */
+  public static final int MSGID_ENTRY_ADD_OBSOLETE_OC =
+       CATEGORY_MASK_CORE | SEVERITY_MASK_MILD_ERROR | 584;
+
+
+
+  /**
+   * The message ID for the response message that will be used if a modify DN
+   * operation fails because the new RDN contains an attribute type which is
+   * marked OBSOLETE in the server schema.  This takes two arguments, which are
+   * the DN of the current entry and the name or OID of the obsolete attribute
+   * type.
+   */
+  public static final int MSGID_MODDN_NEWRDN_ATTR_IS_OBSOLETE =
+       CATEGORY_MASK_CORE | SEVERITY_MASK_MILD_ERROR | 585;
+
+
+
+  /**
+   * The message ID for the message that will be used if there was no DIT
+   * structure rule associated with an entry, but there was a DIT structure rule
+   * for its parent.  This takes two arguments, which are the DN of the entry
+   * and the DN of the parent entry.
+   */
+  public static final int MSGID_ENTRY_SCHEMA_VIOLATES_PARENT_DSR =
+       CATEGORY_MASK_CORE | SEVERITY_MASK_MILD_ERROR | 586;
+
+
+
+  /**
+   * The message ID for the message that will be used if an unexpected error
+   * occurs while attempting to evaluate a DIT structure rule for an entry's
+   * parent.  This takes two arguments, which are the DN of the entry and a
+   * string representation of the exception that was caught.
+   */
+  public static final int MSGID_ENTRY_SCHEMA_COULD_NOT_CHECK_PARENT_DSR =
+       CATEGORY_MASK_CORE | SEVERITY_MASK_MILD_ERROR | 587;
+
+
+
+  /**
    * Associates a set of generic messages with the message IDs defined
    * in this class.
    */
@@ -6509,19 +6582,24 @@
                     "%s that is not allowed by DIT content rule %s.");
     registerMessage(MSGID_ENTRY_SCHEMA_DSR_COULD_NOT_LOCK_PARENT,
                     "The Directory Server was unable to evaluate entry %s to " +
-                    "determine whether it was compliant with DIT structure " +
-                    "rule %s because it was unable to obtain a read lock " +
-                    "on parent entry %s.");
+                    "determine whether it was compliant with the DIT " +
+                    "structure rule configuration because it was unable to " +
+                    "obtain a read lock on parent entry %s.");
     registerMessage(MSGID_ENTRY_SCHEMA_DSR_NO_PARENT_ENTRY,
                     "The Directory Server was unable to evaluate entry %s to " +
-                    "determine whether it was compliant with DIT structure " +
-                    "rule %s because parent entry %s either does not exist " +
-                    "or could not be retrieved.");
+                    "determine whether it was compliant with the DIT " +
+                    "structure rule configuration because parent entry %s " +
+                    "either does not exist or could not be retrieved.");
     registerMessage(MSGID_ENTRY_SCHEMA_DSR_NO_PARENT_OC,
                     "The Directory Server was unable to evaluate entry %s to " +
-                    "determine whether it was compliant with DIT structure " +
-                    "rule %s because the parent entry %s does not appear to " +
-                    "contain a valid structural objectclass.");
+                    "determine whether it was compliant with the DIT " +
+                    "rule configuration because the parent entry %s does not " +
+                    "appear to contain a valid structural objectclass.");
+    registerMessage(MSGID_ENTRY_SCHEMA_VIOLATES_PARENT_DSR,
+                    "Entry %s is invalid according to the server schema " +
+                    "because there is no DIT structure rule that applies " +
+                    "to that entry, but there is a DIT structure rule for " +
+                    "the parent entry %s.");
     registerMessage(MSGID_ENTRY_SCHEMA_DSR_DISALLOWED_SUPERIOR_OC,
                     "Entry %s violates the Directory Server schema " +
                     "configuration because DIT structure rule %s does not " +
@@ -6530,6 +6608,10 @@
     registerMessage(MSGID_ENTRY_SCHEMA_COULD_NOT_CHECK_DSR,
                     "An unexpected error occurred while attempting to check " +
                     "entry %s against DIT structure rule %s:  %s.");
+    registerMessage(MSGID_ENTRY_SCHEMA_COULD_NOT_CHECK_PARENT_DSR,
+                    "An unexpected error occurred while attempting to " +
+                    "perform DIT structure rule processing for the parent of " +
+                    "entry %s:  %s.");
     registerMessage(MSGID_ENTRY_SET_UNKNOWN_OC,
                     "Objectclass %s cannot be used in entry %s because that " +
                     "class is not defined in the Directory Server schema.");
@@ -6539,6 +6621,9 @@
     registerMessage(MSGID_ENTRY_ADD_DUPLICATE_OC,
                     "Objectclass %s is already present in entry %s and " +
                     "cannot be added a second time.");
+    registerMessage(MSGID_ENTRY_ADD_OBSOLETE_OC,
+                    "Objectclass %s added to entry %s is marked OBSOLETE in " +
+                    "the server schema.");
     registerMessage(MSGID_ENTRY_DUPLICATE_VALUES,
                     "Unable to add one or more values to attribute %s " +
                     "because at least one of the values already exists.");
@@ -6780,6 +6865,14 @@
                     "Entry \"%s\" contains an value \"%s\" for attribute %s " +
                     "that is invalid according to the syntax for that " +
                     "attribute:  %s.");
+    registerMessage(MSGID_ADD_ATTR_IS_OBSOLETE,
+                    "Entry \"%s\" cannot be added because it contains " +
+                    "attribute type %s which is declared OBSOLETE in the " +
+                    "server schema.");
+    registerMessage(MSGID_ADD_OC_IS_OBSOLETE,
+                    "Entry \"%s\" cannot be added because it contains " +
+                    "objectclass %s which is declared OBSOLETE in the server " +
+                    "schema.");
     registerMessage(MSGID_ADD_INVALID_PWPOLICY_DN_SYNTAX,
                     "Entry \"%s\" cannot be added because it contains an " +
                     "invalid password policy subentry DN:  %s.");
@@ -7115,6 +7208,10 @@
                     "The modify DN operation for entry %s cannot be " +
                     "performed because the change would have violated the " +
                     "server schema:  %s.");
+    registerMessage(MSGID_MODDN_NEWRDN_ATTR_IS_OBSOLETE,
+                    "The modify DN operation for entry %s cannot be " +
+                    "performed because the new RDN includes attribute type " +
+                    "%s which is declared OBSOLETE in the server schema.");
     registerMessage(MSGID_MODDN_PREOP_INCREMENT_NO_ATTR,
                     "The modify DN operation for entry %s cannot be " +
                     "performed because a pre-operation plugin attempted to " +
@@ -7194,6 +7291,10 @@
                     "Entry %s cannot be modified because the modification " +
                     "attempted to update attribute %s which is defined as " +
                     "NO-USER-MODIFICATION in the server schema.");
+    registerMessage(MSGID_MODIFY_ATTR_IS_OBSOLETE,
+                    "Entry %s cannot be modified because the modification " +
+                    "attempted to set one or more new values for attribute " +
+                    "%s which is marked OBSOLETE in the server schema.");
     registerMessage(MSGID_MODIFY_PASSWORDS_CANNOT_HAVE_OPTIONS,
                     "Attributes used to hold user passwords are not allowed " +
                     "to have any attribute options.");

--
Gitblit v1.10.0