From 7c774e1356257bd64273760740f2464f2d6661fb Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Tue, 09 Jan 2007 20:20:30 +0000
Subject: [PATCH] Update the schema backend to provide full support for online schema updates. which includes the following:

---
 opends/src/server/org/opends/server/core/DirectoryServer.java |   42 +++++++++++++++++++++++++++++-------------
 1 files changed, 29 insertions(+), 13 deletions(-)

diff --git a/opends/src/server/org/opends/server/core/DirectoryServer.java b/opends/src/server/org/opends/server/core/DirectoryServer.java
index 6817cbc..f9bb224 100644
--- a/opends/src/server/org/opends/server/core/DirectoryServer.java
+++ b/opends/src/server/org/opends/server/core/DirectoryServer.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Portions Copyright 2006 Sun Microsystems, Inc.
+ *      Portions Copyright 2006-2007 Sun Microsystems, Inc.
  */
 package org.opends.server.core;
 
@@ -2905,10 +2905,16 @@
          directoryServer.schema.getObjectClass(TOP_OBJECTCLASS_NAME);
     if (objectClass == null)
     {
-      objectClass = new ObjectClass(TOP_OBJECTCLASS_NAME, Collections
-          .singleton(TOP_OBJECTCLASS_NAME), TOP_OBJECTCLASS_OID,
-          TOP_OBJECTCLASS_DESCRIPTION, null, null, null,
-          ObjectClassType.ABSTRACT, false, null);
+      String definition =
+           "( 2.5.6.0 NAME 'top' ABSTRACT MUST objectClass " +
+           "X-ORIGIN 'RFC 2256' )";
+
+      objectClass = new ObjectClass(definition, TOP_OBJECTCLASS_NAME,
+                                    Collections.singleton(TOP_OBJECTCLASS_NAME),
+                                    TOP_OBJECTCLASS_OID,
+                                    TOP_OBJECTCLASS_DESCRIPTION, null, null,
+                                    null, ObjectClassType.ABSTRACT, false,
+                                    null);
     }
 
     return objectClass;
@@ -2937,10 +2943,13 @@
     ObjectClass objectClass = directoryServer.schema.getObjectClass(lowerName);
     if (objectClass == null)
     {
-      objectClass = new ObjectClass(name,
-          Collections.singleton(name), lowerName, null,
-          getTopObjectClass(), null, null, ObjectClassType.ABSTRACT,
-          false, null);
+      String oid        = lowerName + "-oid";
+      String definition = "( " + oid + " NAME '" + name + "' ABSTRACT )";
+
+      objectClass = new ObjectClass(definition, name,
+                                    Collections.singleton(name), oid, null,
+                                    getTopObjectClass(), null, null,
+                                    ObjectClassType.ABSTRACT, false, null);
     }
 
     return objectClass;
@@ -3109,8 +3118,12 @@
           }
         }
 
+        String definition =
+             "( 2.5.4.0 NAME 'objectClass' EQUALITY objectIdentifierMatch " +
+             "SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 X-ORIGIN 'RFC 2256' )";
+
         directoryServer.objectClassAttributeType =
-             new AttributeType("objectClass",
+             new AttributeType(definition, "objectClass",
                                Collections.singleton("objectClass"),
                                OBJECTCLASS_ATTRIBUTE_TYPE_OID, null, null,
                                oidSyntax, AttributeUsage.USER_APPLICATIONS,
@@ -3172,9 +3185,12 @@
                       String.valueOf(name));
 
 
-    String lowerName = toLowerCase(name);
-    return new AttributeType(name, Collections.singleton(name),
-                             lowerName, null, null, syntax,
+    String oid        = toLowerCase(name) + "-oid";
+    String definition = "( " + oid + " NAME '" + name + "' SYNTAX " +
+                        syntax.getOID() + " )";
+
+    return new AttributeType(definition, name, Collections.singleton(name),
+                             oid, null, null, syntax,
                              AttributeUsage.USER_APPLICATIONS, false, false,
                              false, false);
   }

--
Gitblit v1.10.0