From 160f2cacf471475fbfce7d9ec0573a224adf1a4c Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Fri, 08 Dec 2006 00:12:35 +0000
Subject: [PATCH] Add a new ds-monitor-entry objectclass to all monitor entries so that they include a structural objectclass.

---
 opends/resource/schema/02-config.ldif                            |    3 ++-
 opends/src/server/org/opends/server/backends/MonitorBackend.java |   19 +++++++------------
 opends/src/server/org/opends/server/util/ServerConstants.java    |    8 ++++++++
 3 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/opends/resource/schema/02-config.ldif b/opends/resource/schema/02-config.ldif
index 4eea314..4688e6e 100644
--- a/opends/resource/schema/02-config.ldif
+++ b/opends/resource/schema/02-config.ldif
@@ -1367,5 +1367,6 @@
   SUP ds-cfg-account-status-notification-handler STRUCTURAL
   MUST ds-cfg-account-status-notification-type
   X-ORIGIN 'OpenDS Directory Server' )
-
+objectClasses: ( 1.3.6.1.4.1.26027.1.2.77 NAME 'ds-monitor-entry' SUP top
+  STRUCTURAL MUST cn X-ORIGIN 'OpenDS Directory Server' )
 
diff --git a/opends/src/server/org/opends/server/backends/MonitorBackend.java b/opends/src/server/org/opends/server/backends/MonitorBackend.java
index 15b1089..9e4850e 100644
--- a/opends/src/server/org/opends/server/backends/MonitorBackend.java
+++ b/opends/src/server/org/opends/server/backends/MonitorBackend.java
@@ -222,21 +222,16 @@
 
 
     // Construct the set of objectclasses to include in the base monitor entry.
-    monitorObjectClasses = new HashMap<ObjectClass,String>(2);
-    ObjectClass topOC = DirectoryServer.getObjectClass(OC_TOP);
-    if (topOC == null)
-    {
-      topOC = DirectoryServer.getDefaultObjectClass(OC_TOP);
-    }
+    monitorObjectClasses = new LinkedHashMap<ObjectClass,String>(3);
+    ObjectClass topOC = DirectoryServer.getObjectClass(OC_TOP, true);
     monitorObjectClasses.put(topOC, OC_TOP);
 
+    ObjectClass monitorOC = DirectoryServer.getObjectClass(OC_MONITOR_ENTRY,
+                                                           true);
+    monitorObjectClasses.put(monitorOC, OC_MONITOR_ENTRY);
+
     ObjectClass extensibleObjectOC =
-         DirectoryServer.getObjectClass(OC_EXTENSIBLE_OBJECT);
-    if (extensibleObjectOC == null)
-    {
-      extensibleObjectOC =
-           DirectoryServer.getDefaultObjectClass(OC_EXTENSIBLE_OBJECT);
-    }
+         DirectoryServer.getObjectClass(OC_EXTENSIBLE_OBJECT_LC, true);
     monitorObjectClasses.put(extensibleObjectOC, OC_EXTENSIBLE_OBJECT);
 
 
diff --git a/opends/src/server/org/opends/server/util/ServerConstants.java b/opends/src/server/org/opends/server/util/ServerConstants.java
index 34bf7c6..3cb85e8 100644
--- a/opends/src/server/org/opends/server/util/ServerConstants.java
+++ b/opends/src/server/org/opends/server/util/ServerConstants.java
@@ -536,6 +536,14 @@
 
 
   /**
+   * The name of the objectclass that will be used as the structural class for
+   * monitor entries.
+   */
+  public static final String OC_MONITOR_ENTRY = "ds-monitor-entry";
+
+
+
+  /**
    * The name of the standard objectclass, formatted in all lowercase, that is
    * used to indicate that an entry describes an organization.
    */

--
Gitblit v1.10.0