From 6276e230cb3cfcbb25f8dfe8123fcfd81d13d83c Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 07 Jun 2016 13:50:18 +0000
Subject: [PATCH] OPENDJ-3037 inlined DirectoryServer methods that delegate to the schema

---
 opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java                         |   35 ------
 opendj-server-legacy/src/main/java/org/opends/server/backends/RootDSEBackend.java                      |    2 
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/ManageTasksPanel.java           |    2 
 opendj-server-legacy/src/main/java/org/opends/server/backends/MonitorBackend.java                      |    4 
 opendj-server-legacy/src/main/java/org/opends/server/core/AddOperationBasis.java                       |    2 
 opendj-server-legacy/src/test/java/org/forgerock/opendj/adapter/server3x/ConvertersTestCase.java       |    2 
 opendj-server-legacy/src/main/java/org/opends/server/backends/ChangelogBackend.java                    |    4 
 opendj-server-legacy/src/main/java/org/opends/server/util/StaticUtils.java                             |    2 
 opendj-server-legacy/src/test/java/org/opends/server/tasks/TestBackupAndRestore.java                   |    2 
 opendj-server-legacy/src/main/java/org/opends/server/tools/LDIFModify.java                             |    2 
 opendj-server-legacy/src/main/java/org/opends/server/util/LDIFReader.java                              |    2 
 opendj-server-legacy/src/main/java/org/opends/server/extensions/DynamicGroup.java                      |    2 
 opendj-server-legacy/src/main/java/org/opends/server/tools/makeldif/TemplateEntry.java                 |    2 
 opendj-server-legacy/src/test/java/org/opends/server/core/AddOperationTestCase.java                    |    8 
 opendj-server-legacy/src/main/java/org/opends/server/monitors/BackendMonitor.java                      |    2 
 opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/SearchResultEntryProtocolOp.java   |    2 
 opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/LDAPStatistics.java                |    2 
 opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java                       |    8 
 opendj-server-legacy/src/main/java/org/opends/server/backends/BackupBackend.java                       |    6 
 opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/TestDnKeyFormat.java           |    2 
 opendj-server-legacy/src/main/java/org/opends/server/api/MonitorData.java                              |    2 
 opendj-server-legacy/src/main/java/org/opends/server/extensions/StaticGroup.java                       |    2 
 opendj-server-legacy/src/main/java/org/opends/server/plugins/LDAPADListPlugin.java                     |    2 
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/CustomSearchResult.java  |    2 
 opendj-server-legacy/src/main/java/org/opends/server/protocols/internal/InternalClientConnection.java  |   12 +-
 opendj-server-legacy/src/main/java/org/opends/server/tools/LDIFSearch.java                             |    2 
 opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerImpl.java                     |   19 ++-
 opendj-server-legacy/src/main/java/org/opends/server/extensions/VirtualStaticGroup.java                |    2 
 opendj-server-legacy/src/main/java/org/opends/server/core/SubentryPasswordPolicy.java                  |    4 
 opendj-server-legacy/src/main/java/org/opends/server/backends/NullBackend.java                         |   15 --
 opendj-server-legacy/src/test/java/org/opends/server/replication/protocol/SynchronizationMsgTest.java  |    2 
 opendj-server-legacy/src/test/java/org/opends/server/backends/SchemaBackendTestCase.java               |    8 
 opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/FractionalReplicationTest.java |   45 ++++----
 opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/ModifyConflictTest.java        |    3 
 opendj-server-legacy/src/test/java/org/opends/server/core/ModifyOperationTestCase.java                 |    4 
 opendj-server-legacy/src/main/java/org/forgerock/opendj/adapter/server3x/Converters.java               |    2 
 opendj-server-legacy/src/main/java/org/opends/server/tools/ConfigureDS.java                            |    2 
 opendj-server-legacy/src/test/java/org/opends/server/util/TestLDIFWriter.java                          |    2 
 opendj-server-legacy/src/main/java/org/opends/server/types/Entry.java                                  |   12 +-
 opendj-server-legacy/src/test/java/org/opends/server/tasks/TestImportAndExport.java                    |    3 
 opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/LDAPReplicationDomain.java     |    2 
 opendj-server-legacy/src/main/java/org/opends/server/api/CompressedSchema.java                         |    2 
 opendj-server-legacy/src/main/java/org/opends/server/types/SubtreeSpecification.java                   |    2 
 opendj-server-legacy/src/main/java/org/opends/server/backends/TrustStoreBackend.java                   |    6 
 opendj-server-legacy/src/main/java/org/opends/server/monitors/ConnectionHandlerMonitor.java            |    2 
 opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerSync.java                     |    6 
 46 files changed, 108 insertions(+), 150 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/forgerock/opendj/adapter/server3x/Converters.java b/opendj-server-legacy/src/main/java/org/forgerock/opendj/adapter/server3x/Converters.java
index f79eac7..1eb037d 100644
--- a/opendj-server-legacy/src/main/java/org/forgerock/opendj/adapter/server3x/Converters.java
+++ b/opendj-server-legacy/src/main/java/org/forgerock/opendj/adapter/server3x/Converters.java
@@ -89,7 +89,7 @@
                 if (attribute.getAttributeDescription().getAttributeType().isObjectClass()) {
                     for (ByteString attrName : attribute) {
                         try {
-                            entry.addObjectClass(DirectoryServer.getObjectClass(attrName.toString()));
+                            entry.addObjectClass(DirectoryServer.getSchema().getObjectClass(attrName.toString()));
                         } catch (DirectoryException e) {
                             throw new IllegalStateException(e.getMessage(), e);
                         }
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/CustomSearchResult.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/CustomSearchResult.java
index cdcfae2..13c6a54 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/CustomSearchResult.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/CustomSearchResult.java
@@ -277,7 +277,7 @@
         for (Object value : getAttributeValues(attrType.getNameOrOID()))
         {
           String ocName = value.toString().trim();
-          objectClasses.put(DirectoryServer.getObjectClass(ocName), ocName);
+          objectClasses.put(DirectoryServer.getSchema().getObjectClass(ocName), ocName);
         }
       }
       else
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/ManageTasksPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/ManageTasksPanel.java
index a0a5991..c5c5f38 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/ManageTasksPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/ManageTasksPanel.java
@@ -651,7 +651,7 @@
         for (Object value : csr.getAttributeValues(attrType.getNameOrOID()))
         {
           String ocName = value.toString().trim();
-          objectClasses.put(DirectoryServer.getObjectClass(ocName), ocName);
+          objectClasses.put(DirectoryServer.getSchema().getObjectClass(ocName), ocName);
         }
       }
       else
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/api/CompressedSchema.java b/opendj-server-legacy/src/main/java/org/opends/server/api/CompressedSchema.java
index ecb07a8..255d577 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/api/CompressedSchema.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/api/CompressedSchema.java
@@ -603,7 +603,7 @@
     final LinkedHashMap<ObjectClass, String> ocMap = new LinkedHashMap<>(objectClassNames.size());
     for (final String name : objectClassNames)
     {
-      ocMap.put(DirectoryServer.getObjectClass(name), name);
+      ocMap.put(DirectoryServer.getSchema().getObjectClass(name), name);
     }
     if (sync)
     {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/api/MonitorData.java b/opendj-server-legacy/src/main/java/org/opends/server/api/MonitorData.java
index 16d400c..37a9125 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/api/MonitorData.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/api/MonitorData.java
@@ -132,7 +132,7 @@
 
   private void add(String attrName, Syntax syntax, Object attrValue)
   {
-    AttributeType attrType = getAttributeType(attrName, syntax);
+    AttributeType attrType = getSchema().getAttributeType(attrName, syntax);
     attrs.add(Attributes.create(attrType, String.valueOf(attrValue)));
   }
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/BackupBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/BackupBackend.java
index 6981250..b3bcade 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/BackupBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/BackupBackend.java
@@ -213,7 +213,7 @@
     // Construct the backup base entry.
     LinkedHashMap<ObjectClass,String> objectClasses = new LinkedHashMap<>(2);
     objectClasses.put(CoreSchema.getTopObjectClass(), OC_TOP);
-    objectClasses.put(DirectoryServer.getObjectClass(OC_UNTYPED_OBJECT_LC), OC_UNTYPED_OBJECT);
+    objectClasses.put(DirectoryServer.getSchema().getObjectClass(OC_UNTYPED_OBJECT_LC), OC_UNTYPED_OBJECT);
 
     LinkedHashMap<AttributeType,List<Attribute>> opAttrs = new LinkedHashMap<>(0);
     LinkedHashMap<AttributeType,List<Attribute>> userAttrs = new LinkedHashMap<>(1);
@@ -503,7 +503,7 @@
     // Construct the backup directory entry to return.
     LinkedHashMap<ObjectClass,String> ocMap = new LinkedHashMap<>(2);
     ocMap.put(CoreSchema.getTopObjectClass(), OC_TOP);
-    ocMap.put(DirectoryServer.getObjectClass(OC_BACKUP_DIRECTORY), OC_BACKUP_DIRECTORY);
+    ocMap.put(DirectoryServer.getSchema().getObjectClass(OC_BACKUP_DIRECTORY), OC_BACKUP_DIRECTORY);
 
     LinkedHashMap<AttributeType,List<Attribute>> opAttrs = new LinkedHashMap<>(0);
     LinkedHashMap<AttributeType,List<Attribute>> userAttrs = new LinkedHashMap<>(3);
@@ -579,7 +579,7 @@
     // Construct the backup entry to return.
     LinkedHashMap<ObjectClass, String> ocMap = new LinkedHashMap<>(3);
     ocMap.put(CoreSchema.getTopObjectClass(), OC_TOP);
-    ocMap.put(DirectoryServer.getObjectClass(OC_BACKUP_INFO), OC_BACKUP_INFO);
+    ocMap.put(DirectoryServer.getSchema().getObjectClass(OC_BACKUP_INFO), OC_BACKUP_INFO);
     ocMap.put(CoreSchema.getExtensibleObjectObjectClass(), OC_EXTENSIBLE_OBJECT);
 
     LinkedHashMap<AttributeType, List<Attribute>> opAttrs = new LinkedHashMap<>(0);
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/ChangelogBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/ChangelogBackend.java
index 48fb9fc..115d221 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/ChangelogBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/ChangelogBackend.java
@@ -178,7 +178,7 @@
   static
   {
     CHANGELOG_ROOT_OBJECT_CLASSES.put(CoreSchema.getTopObjectClass(), OC_TOP);
-    CHANGELOG_ROOT_OBJECT_CLASSES.put(DirectoryServer.getObjectClass("container"), "container");
+    CHANGELOG_ROOT_OBJECT_CLASSES.put(DirectoryServer.getSchema().getObjectClass("container"), "container");
   }
 
   /** The set of objectclasses that will be used in ECL entries. */
@@ -187,7 +187,7 @@
   static
   {
     CHANGELOG_ENTRY_OBJECT_CLASSES.put(CoreSchema.getTopObjectClass(), OC_TOP);
-    CHANGELOG_ENTRY_OBJECT_CLASSES.put(DirectoryServer.getObjectClass(OC_CHANGELOG_ENTRY), OC_CHANGELOG_ENTRY);
+    CHANGELOG_ENTRY_OBJECT_CLASSES.put(getSchema().getObjectClass(OC_CHANGELOG_ENTRY), OC_CHANGELOG_ENTRY);
   }
 
   /** The attribute type for the "creatorsName" attribute. */
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/MonitorBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/MonitorBackend.java
index eb5952d..2f65fef 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/MonitorBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/MonitorBackend.java
@@ -195,7 +195,7 @@
 
     // Construct the set of objectclasses to include in the base monitor entry.
     monitorObjectClasses.put(CoreSchema.getTopObjectClass(), OC_TOP);
-    monitorObjectClasses.put(DirectoryServer.getObjectClass(OC_MONITOR_ENTRY), OC_MONITOR_ENTRY);
+    monitorObjectClasses.put(DirectoryServer.getSchema().getObjectClass(OC_MONITOR_ENTRY), OC_MONITOR_ENTRY);
 
     // Create the set of base DNs that we will handle. In this case, it's just
     // the DN of the base monitor entry.
@@ -632,7 +632,7 @@
    */
   private Entry getBranchMonitorEntry(final DN dn)
   {
-    final ObjectClass monitorOC = DirectoryServer.getObjectClass(OC_MONITOR_BRANCH);
+    final ObjectClass monitorOC = DirectoryServer.getSchema().getObjectClass(OC_MONITOR_BRANCH);
     final HashMap<ObjectClass, String> monitorClasses = newObjectClasses(monitorOC, OC_MONITOR_BRANCH);
 
     final HashMap<AttributeType, List<Attribute>> monitorUserAttrs = new LinkedHashMap<>();
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/NullBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/NullBackend.java
index b530bff..b72707e 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/NullBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/NullBackend.java
@@ -16,6 +16,7 @@
  */
 package org.opends.server.backends;
 
+import static org.forgerock.opendj.ldap.schema.CoreSchema.*;
 import static org.opends.messages.BackendMessages.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -33,7 +34,6 @@
 import org.forgerock.opendj.ldap.ResultCode;
 import org.forgerock.opendj.ldap.SearchScope;
 import org.forgerock.opendj.ldap.schema.AttributeType;
-import org.forgerock.opendj.ldap.schema.CoreSchema;
 import org.forgerock.opendj.ldap.schema.ObjectClass;
 import org.forgerock.opendj.server.config.server.BackendCfg;
 import org.opends.server.api.Backend;
@@ -144,10 +144,11 @@
 
     // Initialize null entry object classes.
     objectClasses = new HashMap<>();
-    objectClasses.put(CoreSchema.getTopObjectClass(), OC_TOP);
+    objectClasses.put(getTopObjectClass(), OC_TOP);
+    objectClasses.put(getExtensibleObjectObjectClass(), "extensibleobject");
 
     String nulOCName = "nullbackendobject";
-    ObjectClass nulOC = DirectoryServer.getObjectClass(nulOCName);
+    ObjectClass nulOC = DirectoryServer.getSchema().getObjectClass(nulOCName);
     try {
       DirectoryServer.getSchema().registerObjectClass(nulOC, new ServerSchemaElement(nulOC).getSchemaFile(), false);
     } catch (DirectoryException de) {
@@ -155,14 +156,6 @@
       throw new InitializationException(de.getMessageObject());
     }
     objectClasses.put(nulOC, nulOCName);
-
-    String extOCName = "extensibleobject";
-    ObjectClass extOC = DirectoryServer.getObjectClass(extOCName);
-    if (extOC.isPlaceHolder()) {
-      throw new InitializationException(LocalizableMessage.raw("Unable to locate " + extOCName +
-        " objectclass in the current server schema"));
-    }
-    objectClasses.put(extOC, extOCName);
   }
 
   @Override
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/RootDSEBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/RootDSEBackend.java
index 3dc35de..a38558a 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/RootDSEBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/RootDSEBackend.java
@@ -222,7 +222,7 @@
     // Construct the set of objectclasses to include in the root DSE entry.
     dseObjectClasses = new HashMap<>(2);
     dseObjectClasses.put(getTopObjectClass(), OC_TOP);
-    dseObjectClasses.put(DirectoryServer.getObjectClass(OC_ROOT_DSE), OC_ROOT_DSE);
+    dseObjectClasses.put(DirectoryServer.getSchema().getObjectClass(OC_ROOT_DSE), OC_ROOT_DSE);
 
     // Set the backend ID for this backend. The identifier needs to be
     // specific enough to avoid conflict with user backend identifiers.
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java
index 772d6c2..39e30f1 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java
@@ -241,8 +241,8 @@
     // Construct the set of objectclasses to include in the schema entry.
     schemaObjectClasses = new LinkedHashMap<>(3);
     schemaObjectClasses.put(CoreSchema.getTopObjectClass(), OC_TOP);
-    schemaObjectClasses.put(DirectoryServer.getObjectClass(OC_LDAP_SUBENTRY_LC), OC_LDAP_SUBENTRY);
-    schemaObjectClasses.put(DirectoryServer.getObjectClass(OC_SUBSCHEMA), OC_SUBSCHEMA);
+    schemaObjectClasses.put(DirectoryServer.getSchema().getObjectClass(OC_LDAP_SUBENTRY_LC), OC_LDAP_SUBENTRY);
+    schemaObjectClasses.put(DirectoryServer.getSchema().getObjectClass(OC_SUBSCHEMA), OC_SUBSCHEMA);
 
     configEntryDN = configEntry.getName();
     baseDNs = cfg.getBaseDN();
@@ -2203,8 +2203,8 @@
   {
     Map<ObjectClass,String> objectClasses = new LinkedHashMap<>();
     objectClasses.put(CoreSchema.getTopObjectClass(), OC_TOP);
-    objectClasses.put(DirectoryServer.getObjectClass(OC_LDAP_SUBENTRY_LC), OC_LDAP_SUBENTRY);
-    objectClasses.put(DirectoryServer.getObjectClass(OC_SUBSCHEMA), OC_SUBSCHEMA);
+    objectClasses.put(DirectoryServer.getSchema().getObjectClass(OC_LDAP_SUBENTRY_LC), OC_LDAP_SUBENTRY);
+    objectClasses.put(DirectoryServer.getSchema().getObjectClass(OC_SUBSCHEMA), OC_SUBSCHEMA);
 
     Map<AttributeType,List<Attribute>> userAttributes = new LinkedHashMap<>();
     Map<AttributeType,List<Attribute>> operationalAttributes = new LinkedHashMap<>();
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/TrustStoreBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/TrustStoreBackend.java
index b66f09e..8f76c7a 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/TrustStoreBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/TrustStoreBackend.java
@@ -191,7 +191,7 @@
     // Construct the trust store base entry.
     LinkedHashMap<ObjectClass,String> objectClasses = new LinkedHashMap<>(2);
     objectClasses.put(CoreSchema.getTopObjectClass(), OC_TOP);
-    objectClasses.put(DirectoryServer.getObjectClass("ds-cfg-branch"), "ds-cfg-branch");
+    objectClasses.put(DirectoryServer.getSchema().getObjectClass("ds-cfg-branch"), "ds-cfg-branch");
 
     LinkedHashMap<AttributeType,List<Attribute>> userAttrs = new LinkedHashMap<>(1);
     for (AVA ava : getBaseDN().rdn())
@@ -415,7 +415,7 @@
     // Construct the certificate entry to return.
     LinkedHashMap<ObjectClass,String> ocMap = new LinkedHashMap<>(2);
     ocMap.put(CoreSchema.getTopObjectClass(), OC_TOP);
-    ocMap.put(DirectoryServer.getObjectClass(OC_CRYPTO_INSTANCE_KEY), OC_CRYPTO_INSTANCE_KEY);
+    ocMap.put(DirectoryServer.getSchema().getObjectClass(OC_CRYPTO_INSTANCE_KEY), OC_CRYPTO_INSTANCE_KEY);
 
     LinkedHashMap<AttributeType,List<Attribute>> opAttrs = new LinkedHashMap<>(0);
     LinkedHashMap<AttributeType,List<Attribute>> userAttrs = new LinkedHashMap<>(3);
@@ -1056,7 +1056,7 @@
         throw new DirectoryException(ResultCode.ENTRY_ALREADY_EXISTS, message);
       }
 
-      if (entry.hasObjectClass(DirectoryServer.getObjectClass(OC_SELF_SIGNED_CERT_REQUEST)))
+      if (entry.hasObjectClass(DirectoryServer.getSchema().getObjectClass(OC_SELF_SIGNED_CERT_REQUEST)))
       {
         try
         {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/AddOperationBasis.java b/opendj-server-legacy/src/main/java/org/opends/server/core/AddOperationBasis.java
index 46986f1..8ef1ab0 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/AddOperationBasis.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/AddOperationBasis.java
@@ -326,7 +326,7 @@
             for (ByteString os : a.getValues())
             {
               String ocName = os.toString();
-              objectClasses.put(getObjectClass(ocName), ocName);
+              objectClasses.put(getSchema().getObjectClass(ocName), ocName);
             }
           }
           else if (attrType.isOperational())
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java b/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java
index 3a3ac42..d7f6f2b 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java
@@ -70,8 +70,6 @@
 import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.forgerock.opendj.ldap.schema.AttributeType;
-import org.forgerock.opendj.ldap.schema.ObjectClass;
-import org.forgerock.opendj.ldap.schema.Syntax;
 import org.forgerock.opendj.server.config.server.AlertHandlerCfg;
 import org.forgerock.opendj.server.config.server.ConnectionHandlerCfg;
 import org.forgerock.opendj.server.config.server.CryptoManagerCfg;
@@ -2277,20 +2275,6 @@
   }
 
   /**
-   * Retrieves the objectclass for the provided name or OID. It can optionally return a generated
-   * "default" version if the requested objectclass is not defined in the schema.
-   *
-   * @param nameOrOid
-   *          The name or OID for the objectclass to retrieve.
-   * @return The objectclass type, or {@code null} if there is no objectclass with the specified
-   *         name or OID defined in the server schema and a default class should not be returned.
-   */
-  public static ObjectClass getObjectClass(String nameOrOid)
-  {
-    return directoryServer.schema.getObjectClass(nameOrOid);
-  }
-
-  /**
    * Retrieves the attribute type for the provided name or OID. It can optionally return a generated
    * placeholder version if the requested attribute type is not defined in the schema.
    *
@@ -2301,24 +2285,7 @@
    */
   public static AttributeType getAttributeType(String nameOrOid)
   {
-    return getAttributeType(nameOrOid, getSchema().getDefaultSyntax());
-  }
-
-  /**
-   * Retrieves the attribute type for the provided name or OID. It will return a generated
-   * placeholder version with the name or OID if the requested attribute type is not defined in the
-   * schema.
-   *
-   * @param nameOrOid
-   *          The name or OID for the attribute type to look for.
-   * @param syntax
-   *          The syntax for the attribute type to generate.
-   * @return The requested attribute type, or a generated placeholder version if there is no
-   *         attribute with the specified type defined in the server schema
-   */
-  public static AttributeType getAttributeType(String nameOrOid, Syntax syntax)
-  {
-    return directoryServer.schema.getAttributeType(nameOrOid, syntax);
+    return getSchema().getAttributeType(nameOrOid, getSchema().getDefaultSyntax());
   }
 
   /**
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/SubentryPasswordPolicy.java b/opendj-server-legacy/src/main/java/org/opends/server/core/SubentryPasswordPolicy.java
index 258f6ca..de25261 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/SubentryPasswordPolicy.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/SubentryPasswordPolicy.java
@@ -140,7 +140,7 @@
   public SubentryPasswordPolicy(SubEntry subentry) throws DirectoryException
   {
     // Determine if this is a password policy subentry.
-    ObjectClass pwdPolicyOC = DirectoryServer.getObjectClass(PWD_OC_POLICY);
+    ObjectClass pwdPolicyOC = DirectoryServer.getSchema().getObjectClass(PWD_OC_POLICY);
     Entry entry = subentry.getEntry();
     Map<ObjectClass, String> objectClasses = entry.getObjectClasses();
     if (pwdPolicyOC.isPlaceHolder())
@@ -245,7 +245,7 @@
 
     // Now check for the pwdValidatorPolicy OC and its attribute.
     // Determine if this is a password validator policy object class.
-    ObjectClass pwdValidatorPolicyOC = DirectoryServer.getObjectClass(PWD_OC_VALIDATORPOLICY);
+    ObjectClass pwdValidatorPolicyOC = DirectoryServer.getSchema().getObjectClass(PWD_OC_VALIDATORPOLICY);
     if (!pwdValidatorPolicyOC.isPlaceHolder() &&
         objectClasses.containsKey(pwdValidatorPolicyOC))
     {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerImpl.java b/opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerImpl.java
index eccbdf3..0e4f548 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerImpl.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerImpl.java
@@ -60,12 +60,11 @@
 import javax.net.ssl.SSLContext;
 import javax.net.ssl.TrustManager;
 
-import net.jcip.annotations.GuardedBy;
-
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.config.server.ConfigChangeResult;
 import org.forgerock.opendj.config.server.ConfigException;
+import org.forgerock.opendj.config.server.ConfigurationChangeListener;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.ModificationType;
@@ -74,10 +73,10 @@
 import org.forgerock.opendj.ldap.SearchScope;
 import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.forgerock.opendj.ldap.schema.CoreSchema;
+import org.forgerock.opendj.ldap.schema.ObjectClass;
+import org.forgerock.opendj.server.config.server.CryptoManagerCfg;
 import org.forgerock.util.Reject;
 import org.opends.admin.ads.ADSContext;
-import org.forgerock.opendj.config.server.ConfigurationChangeListener;
-import org.forgerock.opendj.server.config.server.CryptoManagerCfg;
 import org.opends.server.api.Backend;
 import org.opends.server.backends.TrustStoreBackend;
 import org.opends.server.core.AddOperation;
@@ -106,13 +105,14 @@
 import org.opends.server.types.IdentifiedException;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.Modification;
-import org.forgerock.opendj.ldap.schema.ObjectClass;
 import org.opends.server.types.SearchResultEntry;
 import org.opends.server.util.Base64;
 import org.opends.server.util.SelectableCertificateKeyManager;
 import org.opends.server.util.ServerConstants;
 import org.opends.server.util.StaticUtils;
 
+import net.jcip.annotations.GuardedBy;
+
 import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.protocols.internal.InternalClientConnection.*;
@@ -295,10 +295,11 @@
       attrInitVectorLength = DirectoryServer.getAttributeType(ATTR_CRYPTO_INIT_VECTOR_LENGTH_BITS);
       attrKeyLength = DirectoryServer.getAttributeType(ATTR_CRYPTO_KEY_LENGTH_BITS);
       attrCompromisedTime = DirectoryServer.getAttributeType(ATTR_CRYPTO_KEY_COMPROMISED_TIME);
-      ocCertRequest = DirectoryServer.getObjectClass("ds-cfg-self-signed-cert-request"); // TODO: ConfigConstants
-      ocInstanceKey = DirectoryServer.getObjectClass(OC_CRYPTO_INSTANCE_KEY);
-      ocCipherKey = DirectoryServer.getObjectClass(OC_CRYPTO_CIPHER_KEY);
-      ocMacKey = DirectoryServer.getObjectClass(OC_CRYPTO_MAC_KEY);
+      // TODO: ConfigConstants
+      ocCertRequest = DirectoryServer.getSchema().getObjectClass("ds-cfg-self-signed-cert-request");
+      ocInstanceKey = DirectoryServer.getSchema().getObjectClass(OC_CRYPTO_INSTANCE_KEY);
+      ocCipherKey = DirectoryServer.getSchema().getObjectClass(OC_CRYPTO_CIPHER_KEY);
+      ocMacKey = DirectoryServer.getSchema().getObjectClass(OC_CRYPTO_MAC_KEY);
 
       localTruststoreDN = DN.valueOf(DN_TRUST_STORE_ROOT);
       DN adminSuffixDN = DN.valueOf(ADSContext.getAdministrationSuffixDN());
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerSync.java b/opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerSync.java
index 983f297..3d2eb1d 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerSync.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerSync.java
@@ -155,9 +155,9 @@
     {
     }
 
-    ocInstanceKey = DirectoryServer.getObjectClass(OC_CRYPTO_INSTANCE_KEY);
-    ocCipherKey = DirectoryServer.getObjectClass(OC_CRYPTO_CIPHER_KEY);
-    ocMacKey = DirectoryServer.getObjectClass(OC_CRYPTO_MAC_KEY);
+    ocInstanceKey = DirectoryServer.getSchema().getObjectClass(OC_CRYPTO_INSTANCE_KEY);
+    ocCipherKey = DirectoryServer.getSchema().getObjectClass(OC_CRYPTO_CIPHER_KEY);
+    ocMacKey = DirectoryServer.getSchema().getObjectClass(OC_CRYPTO_MAC_KEY);
 
     attrCert = getAttributeType(ATTR_CRYPTO_PUBLIC_KEY_CERTIFICATE);
     attrAlias = getAttributeType(ATTR_CRYPTO_KEY_ID);
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/DynamicGroup.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/DynamicGroup.java
index 4c421cb..6cc8540 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/DynamicGroup.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/DynamicGroup.java
@@ -147,7 +147,7 @@
     ifNull(entry);
 
     // FIXME -- This needs to exclude enhanced groups once we have support for them.
-    return entry.hasObjectClass(DirectoryServer.getObjectClass(OC_GROUP_OF_URLS_LC));
+    return entry.hasObjectClass(DirectoryServer.getSchema().getObjectClass(OC_GROUP_OF_URLS_LC));
   }
 
   @Override
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/StaticGroup.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/StaticGroup.java
index 1a9ff65..04bd9d7 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/StaticGroup.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/StaticGroup.java
@@ -261,7 +261,7 @@
 
   private boolean hasObjectClass(Entry entry, String ocName)
   {
-    return entry.hasObjectClass(DirectoryServer.getObjectClass(ocName));
+    return entry.hasObjectClass(DirectoryServer.getSchema().getObjectClass(ocName));
   }
 
   @Override
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/VirtualStaticGroup.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/VirtualStaticGroup.java
index e01e0fa..3333f18 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/VirtualStaticGroup.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/VirtualStaticGroup.java
@@ -158,7 +158,7 @@
     ifNull(entry);
 
     // FIXME -- This needs to exclude enhanced groups once we have support for them.
-    return entry.hasObjectClass(DirectoryServer.getObjectClass(OC_VIRTUAL_STATIC_GROUP));
+    return entry.hasObjectClass(DirectoryServer.getSchema().getObjectClass(OC_VIRTUAL_STATIC_GROUP));
   }
 
   @Override
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/monitors/BackendMonitor.java b/opendj-server-legacy/src/main/java/org/opends/server/monitors/BackendMonitor.java
index 9aed664..46ba78e 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/monitors/BackendMonitor.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/monitors/BackendMonitor.java
@@ -81,7 +81,7 @@
   @Override
   public ObjectClass getMonitorObjectClass()
   {
-    return DirectoryServer.getObjectClass(OC_MONITOR_BACKEND);
+    return DirectoryServer.getSchema().getObjectClass(OC_MONITOR_BACKEND);
   }
 
   @Override
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/monitors/ConnectionHandlerMonitor.java b/opendj-server-legacy/src/main/java/org/opends/server/monitors/ConnectionHandlerMonitor.java
index 895f6bb..627ade3 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/monitors/ConnectionHandlerMonitor.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/monitors/ConnectionHandlerMonitor.java
@@ -91,7 +91,7 @@
   @Override
   public ObjectClass getMonitorObjectClass()
   {
-    return DirectoryServer.getObjectClass(OC_MONITOR_CONNHANDLER);
+    return DirectoryServer.getSchema().getObjectClass(OC_MONITOR_CONNHANDLER);
   }
 
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/plugins/LDAPADListPlugin.java b/opendj-server-legacy/src/main/java/org/opends/server/plugins/LDAPADListPlugin.java
index ab972db..26b5dc8 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/plugins/LDAPADListPlugin.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/plugins/LDAPADListPlugin.java
@@ -89,7 +89,7 @@
         if (attrName.startsWith("@"))
         {
           final String ocName = attrName.substring(1);
-          final ObjectClass oc = getObjectClass(ocName);
+          final ObjectClass oc = getSchema().getObjectClass(ocName);
           if (oc.isPlaceHolder())
           {
             logger.trace("Cannot replace unknown objectclass %s", ocName);
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/protocols/internal/InternalClientConnection.java b/opendj-server-legacy/src/main/java/org/opends/server/protocols/internal/InternalClientConnection.java
index b1f64a1..f7ff2a5 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/protocols/internal/InternalClientConnection.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/protocols/internal/InternalClientConnection.java
@@ -18,6 +18,7 @@
 
 import static org.forgerock.opendj.adapter.server3x.Converters.*;
 import static org.forgerock.opendj.ldap.ByteString.*;
+import static org.forgerock.opendj.ldap.schema.CoreSchema.*;
 import static org.opends.messages.ProtocolMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.util.CollectionUtils.*;
@@ -44,7 +45,7 @@
 import org.forgerock.opendj.ldap.requests.ModifyDNRequest;
 import org.forgerock.opendj.ldap.requests.ModifyRequest;
 import org.forgerock.opendj.ldap.schema.AttributeType;
-import org.forgerock.opendj.ldap.schema.CoreSchema;
+import org.forgerock.opendj.ldap.schema.ObjectClass;
 import org.opends.server.api.ClientConnection;
 import org.opends.server.api.ConnectionHandler;
 import org.opends.server.core.AddOperation;
@@ -75,7 +76,6 @@
 import org.opends.server.types.Entry;
 import org.opends.server.types.IntermediateResponse;
 import org.opends.server.types.Modification;
-import org.forgerock.opendj.ldap.schema.ObjectClass;
 import org.opends.server.types.Operation;
 import org.opends.server.types.Privilege;
 import org.opends.server.types.RawAttribute;
@@ -153,9 +153,9 @@
     try
     {
       LinkedHashMap<ObjectClass,String> objectClasses = new LinkedHashMap<>();
-      put(objectClasses, CoreSchema.getTopObjectClass());
-      put(objectClasses, DirectoryServer.getObjectClass(OC_PERSON));
-      put(objectClasses, DirectoryServer.getObjectClass(OC_ROOT_DN));
+      put(objectClasses, getTopObjectClass());
+      put(objectClasses, getPersonObjectClass());
+      put(objectClasses, DirectoryServer.getSchema().getObjectClass(OC_ROOT_DN));
 
       LinkedHashMap<AttributeType,List<Attribute>> userAttrs = new LinkedHashMap<>();
       put(userAttrs, ATTR_COMMON_NAME, commonName);
@@ -883,7 +883,7 @@
         for (ByteString v : a)
         {
           String ocName = v.toString();
-          objectClasses.put(DirectoryServer.getObjectClass(ocName), ocName);
+          objectClasses.put(DirectoryServer.getSchema().getObjectClass(ocName), ocName);
         }
       }
       else
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/LDAPStatistics.java b/opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/LDAPStatistics.java
index 08d5710..c14290e 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/LDAPStatistics.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/LDAPStatistics.java
@@ -156,7 +156,7 @@
   @Override
   public ObjectClass getMonitorObjectClass()
   {
-    return DirectoryServer.getObjectClass(OC_MONITOR_CONNHANDLERSTATS);
+    return DirectoryServer.getSchema().getObjectClass(OC_MONITOR_CONNHANDLERSTATS);
   }
 
   @Override
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/SearchResultEntryProtocolOp.java b/opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/SearchResultEntryProtocolOp.java
index 0b42750..db0cd80 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/SearchResultEntryProtocolOp.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/protocols/ldap/SearchResultEntryProtocolOp.java
@@ -547,7 +547,7 @@
         for (ByteString os : a.getValues())
         {
           String ocName = os.toString();
-          ObjectClass oc = DirectoryServer.getObjectClass(ocName);
+          ObjectClass oc = DirectoryServer.getSchema().getObjectClass(ocName);
           objectClasses.put(oc, ocName);
         }
       }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/LDAPReplicationDomain.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/LDAPReplicationDomain.java
index f842a5e..b2706c2 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/LDAPReplicationDomain.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/LDAPReplicationDomain.java
@@ -4437,7 +4437,7 @@
       if (name.startsWith("@"))
       {
         String ocName = name.substring(1);
-        ObjectClass objectClass = DirectoryServer.getObjectClass(ocName);
+        ObjectClass objectClass = DirectoryServer.getSchema().getObjectClass(ocName);
         if (!objectClass.isPlaceHolder())
         {
           for (AttributeType at : objectClass.getRequiredAttributes())
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/ConfigureDS.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/ConfigureDS.java
index 9aeb6a4..1b97c6b 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/ConfigureDS.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/ConfigureDS.java
@@ -1139,7 +1139,7 @@
       org.forgerock.opendj.ldap.Entry configEntry, String attrName, Syntax syntax, Object...values)
   {
     org.forgerock.opendj.ldap.Entry newEntry = LinkedHashMapEntry.deepCopyOfEntry(configEntry);
-    AttributeType attrType = DirectoryServer.getAttributeType(attrName, syntax);
+    AttributeType attrType = DirectoryServer.getSchema().getAttributeType(attrName, syntax);
     newEntry.replaceAttribute(new LinkedAttribute(AttributeDescription.create(attrType), values));
     return newEntry;
   }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/LDIFModify.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/LDIFModify.java
index 4cc5ad3..7c96fe7 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/LDIFModify.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/LDIFModify.java
@@ -309,7 +309,7 @@
           for (ByteString v : a)
           {
             String ocName = v.toString();
-            objectClasses.put(DirectoryServer.getObjectClass(ocName), ocName);
+            objectClasses.put(DirectoryServer.getSchema().getObjectClass(ocName), ocName);
           }
         }
         else if (t.isOperational())
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/LDIFSearch.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/LDIFSearch.java
index a59e2e7..d494a57 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/LDIFSearch.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/LDIFSearch.java
@@ -485,7 +485,7 @@
 
     for (String objectClassName : objectClassNames)
     {
-      ObjectClass c = DirectoryServer.getObjectClass(objectClassName);
+      ObjectClass c = DirectoryServer.getSchema().getObjectClass(objectClassName);
       for (AttributeType t : c.getRequiredAttributes())
       {
         if (t.isOperational())
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/makeldif/TemplateEntry.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/makeldif/TemplateEntry.java
index 81a0c78..e8941b9 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/makeldif/TemplateEntry.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/makeldif/TemplateEntry.java
@@ -248,7 +248,7 @@
         for (TemplateValue v : valueList)
         {
           String ocName = v.getValue().toString();
-          objectClasses.put(DirectoryServer.getObjectClass(ocName), ocName);
+          objectClasses.put(DirectoryServer.getSchema().getObjectClass(ocName), ocName);
         }
       }
       else if (t.isOperational())
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/types/Entry.java b/opendj-server-legacy/src/main/java/org/opends/server/types/Entry.java
index 6a34ada..cf229a0 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/types/Entry.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/types/Entry.java
@@ -1290,7 +1290,7 @@
     for (ByteString v : a)
     {
       String ocName = v.toString();
-      ocs.put(DirectoryServer.getObjectClass(ocName), ocName);
+      ocs.put(DirectoryServer.getSchema().getObjectClass(ocName), ocName);
     }
 
     AttributeDescription attrDesc = a.getAttributeDescription();
@@ -1648,7 +1648,7 @@
     // all attributes required by the object classes are present.
     for (ObjectClass o : objectClasses.keySet())
     {
-      if (DirectoryServer.getObjectClass(o.getOID()).isPlaceHolder())
+      if (DirectoryServer.getSchema().getObjectClass(o.getOID()).isPlaceHolder())
       {
         invalidReason.append(ERR_ENTRY_SCHEMA_UNKNOWN_OC.get(dn, o.getNameOrOID()));
         return false;
@@ -2405,7 +2405,7 @@
    */
   private boolean hasObjectClassOrAttribute(String objectClassName, String attrTypeName)
   {
-    ObjectClass oc = DirectoryServer.getObjectClass(objectClassName);
+    ObjectClass oc = DirectoryServer.getSchema().getObjectClass(objectClassName);
     if (oc.isPlaceHolder())
     {
       // This should not happen
@@ -2580,7 +2580,7 @@
    */
   private boolean hasObjectClass(String objectClassLowerCase)
   {
-    ObjectClass oc = DirectoryServer.getObjectClass(objectClassLowerCase);
+    ObjectClass oc = DirectoryServer.getSchema().getObjectClass(objectClassLowerCase);
     if (oc.isPlaceHolder())
     {
       // This should not happen
@@ -3421,7 +3421,7 @@
   {
     entryBuffer.position(startPos);
     final String ocName = entryBuffer.readStringUtf8(endPos - startPos);
-    objectClasses.put(DirectoryServer.getObjectClass(ocName), ocName);
+    objectClasses.put(DirectoryServer.getSchema().getObjectClass(ocName), ocName);
   }
 
   /**
@@ -4156,7 +4156,7 @@
         String lowerName = toLowerName(rule, v);
 
         // Create a default object class if necessary.
-        ObjectClass oc = DirectoryServer.getObjectClass(lowerName);
+        ObjectClass oc = DirectoryServer.getSchema().getObjectClass(lowerName);
 
         if (replace)
         {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/types/SubtreeSpecification.java b/opendj-server-legacy/src/main/java/org/opends/server/types/SubtreeSpecification.java
index 5b4c9ce..50ab0c4 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/types/SubtreeSpecification.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/types/SubtreeSpecification.java
@@ -271,7 +271,7 @@
     @Override
     public boolean matches(final Entry entry)
     {
-      final ObjectClass oc = DirectoryServer.getObjectClass(normalizedObjectClass);
+      final ObjectClass oc = DirectoryServer.getSchema().getObjectClass(normalizedObjectClass);
       return !oc.isPlaceHolder() && entry.hasObjectClass(oc);
     }
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/util/LDIFReader.java b/opendj-server-legacy/src/main/java/org/opends/server/util/LDIFReader.java
index d7e826e..b074724 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/util/LDIFReader.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/util/LDIFReader.java
@@ -757,7 +757,7 @@
       }
 
       String ocName      = value.toString().trim();
-      ObjectClass objectClass = DirectoryServer.getObjectClass(ocName);
+      ObjectClass objectClass = DirectoryServer.getSchema().getObjectClass(ocName);
       if (objectClasses.containsKey(objectClass))
       {
         logger.warn(WARN_LDIF_DUPLICATE_OBJECTCLASS, entryDN, lastEntryLineNumber, ocName);
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/util/StaticUtils.java b/opendj-server-legacy/src/main/java/org/opends/server/util/StaticUtils.java
index fc0d4d9..03c835c 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/util/StaticUtils.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/util/StaticUtils.java
@@ -1949,7 +1949,7 @@
     RDN rdn = dn.rdn();
 
     // If there is only one RDN attribute, then see which objectclass we should use.
-    ObjectClass structuralClass = DirectoryServer.getObjectClass(getObjectClassName(rdn));
+    ObjectClass structuralClass = DirectoryServer.getSchema().getObjectClass(getObjectClassName(rdn));
 
     // Get the top and untypedObject classes to include in the entry.
     LinkedHashMap<ObjectClass,String> objectClasses = new LinkedHashMap<>(3);
diff --git a/opendj-server-legacy/src/test/java/org/forgerock/opendj/adapter/server3x/ConvertersTestCase.java b/opendj-server-legacy/src/test/java/org/forgerock/opendj/adapter/server3x/ConvertersTestCase.java
index 8bb9781..427714a 100644
--- a/opendj-server-legacy/src/test/java/org/forgerock/opendj/adapter/server3x/ConvertersTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/forgerock/opendj/adapter/server3x/ConvertersTestCase.java
@@ -146,7 +146,7 @@
         assertThat(result.getName().toString()).isEqualTo(entry.getName().toString());
         List<ObjectClass> ocs = new ArrayList<>(result.getObjectClasses().keySet());
         assertThat(ocs).hasSize(2);
-        assertThat(ocs.get(0).getOID()).isEqualTo(DirectoryServer.getObjectClass("ds-cfg-backend").getOID());
+        assertThat(ocs.get(0).getOID()).isEqualTo(DirectoryServer.getSchema().getObjectClass("ds-cfg-backend").getOID());
         assertThat(ocs.get(1).getOID()).as("This should be a placeholder").endsWith("-oid");
     }
 
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/backends/SchemaBackendTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/backends/SchemaBackendTestCase.java
index 0117c3f..5984473 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/backends/SchemaBackendTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/backends/SchemaBackendTestCase.java
@@ -4537,8 +4537,8 @@
       "  MAY ( street $ c) X-ORIGIN 'user defined' )");
     assertEquals(resultCode, 0);
 
-    assertFalse(getObjectClass("testaddanddeletedefinitionwithextraspaces").isPlaceHolder());
-    assertFalse(getObjectClass("testaddanddeletedefinitionwithextraspaces-oid").isPlaceHolder());
+    assertFalse(getSchema().getObjectClass("testaddanddeletedefinitionwithextraspaces").isPlaceHolder());
+    assertFalse(getSchema().getObjectClass("testaddanddeletedefinitionwithextraspaces-oid").isPlaceHolder());
 
     resultCode = TestCaseUtils.applyModifications(false,
       "dn: cn=schema",
@@ -4549,8 +4549,8 @@
       "  MAY ( street $ c) X-ORIGIN 'user defined' )");
     assertEquals(resultCode, 0);
 
-    assertTrue(getObjectClass("testaddanddeletedefinitionwithextraspaces").isPlaceHolder());
-    assertTrue(getObjectClass("testaddanddeletedefinitionwithextraspaces-oid").isPlaceHolder());
+    assertTrue(getSchema().getObjectClass("testaddanddeletedefinitionwithextraspaces").isPlaceHolder());
+    assertTrue(getSchema().getObjectClass("testaddanddeletedefinitionwithextraspaces-oid").isPlaceHolder());
   }
 
   /**
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/TestDnKeyFormat.java b/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/TestDnKeyFormat.java
index 15e6614..d07653f 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/TestDnKeyFormat.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/backends/pluggable/TestDnKeyFormat.java
@@ -376,7 +376,7 @@
 
         // check the object classes were not changed
         for (String ocBefore : entryBefore.getObjectClasses().values()) {
-          ObjectClass objectClass = DirectoryServer.getObjectClass(ocBefore);
+          ObjectClass objectClass = DirectoryServer.getSchema().getObjectClass(ocBefore);
           String ocAfter = entryAfter.getObjectClasses().get(objectClass);
           assertEquals(ocBefore, ocAfter);
         }
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/core/AddOperationTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/core/AddOperationTestCase.java
index c3cc9a6..af8041c 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/core/AddOperationTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/core/AddOperationTestCase.java
@@ -18,6 +18,7 @@
 
 import static org.assertj.core.api.Assertions.*;
 import static org.forgerock.opendj.ldap.requests.Requests.*;
+import static org.forgerock.opendj.ldap.schema.CoreSchema.*;
 import static org.opends.server.TestCaseUtils.*;
 import static org.opends.server.protocols.internal.InternalClientConnection.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
@@ -35,7 +36,6 @@
 import org.forgerock.opendj.ldap.ResultCode;
 import org.forgerock.opendj.ldap.requests.AddRequest;
 import org.forgerock.opendj.ldap.schema.AttributeType;
-import org.forgerock.opendj.ldap.schema.CoreSchema;
 import org.forgerock.opendj.ldap.schema.ObjectClass;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.api.Backend;
@@ -285,7 +285,7 @@
 
     UpdatePreOpPlugin.reset();
 
-    ObjectClass oc = DirectoryServer.getObjectClass("extensibleobject");
+    ObjectClass oc = getExtensibleObjectObjectClass();
     UpdatePreOpPlugin.addObjectClassToAdd(oc);
 
     AddOperation addOperation = getRootConnection().processAdd(entry);
@@ -317,7 +317,7 @@
 
     UpdatePreOpPlugin.reset();
 
-    ObjectClass oc = DirectoryServer.getObjectClass("extensibleobject");
+    ObjectClass oc = getExtensibleObjectObjectClass();
     UpdatePreOpPlugin.addObjectClassToRemove(oc);
 
     AddOperation addOperation = getRootConnection().processAdd(entry);
@@ -846,7 +846,7 @@
     retrieveCompletedOperationElements(addOperation);
 
     Entry e = DirectoryServer.getEntry(DN.valueOf("uid=test.user,o=test"));
-    List<Attribute> attrList = e.getAttribute(CoreSchema.getObjectClassAttributeType());
+    List<Attribute> attrList = e.getAttribute(getObjectClassAttributeType());
     assertTrue(findAttributeValueIgnoreCase(attrList, "top"));
   }
 
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/core/ModifyOperationTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/core/ModifyOperationTestCase.java
index 5e884d3..ec23be9 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/core/ModifyOperationTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/core/ModifyOperationTestCase.java
@@ -2124,7 +2124,7 @@
     retrieveSuccessfulOperationElements(modifyOperation);
 
     Entry e = DirectoryServer.getEntry(DN.valueOf("uid=test.user," + baseDN));
-    assertFalse(e.hasObjectClass(DirectoryServer.getObjectClass("extensibleobject")));
+    assertFalse(e.hasObjectClass(getExtensibleObjectObjectClass()));
   }
 
 
@@ -2161,7 +2161,7 @@
 
     Entry e = DirectoryServer.getEntry(DN.valueOf("uid=test.user," + baseDN));
     assertTrue(e.hasObjectClass(getExtensibleObjectObjectClass()));
-    assertTrue(e.hasObjectClass(DirectoryServer.getObjectClass("inetOrgPerson")));
+    assertTrue(e.hasObjectClass(DirectoryServer.getSchema().getObjectClass("inetOrgPerson")));
     assertTrue(e.hasObjectClass(getOrganizationalPersonObjectClass()));
     assertTrue(e.hasObjectClass(getPersonObjectClass()));
     assertTrue(e.hasObjectClass(getTopObjectClass()));
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/FractionalReplicationTest.java b/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/FractionalReplicationTest.java
index 1c254a0..e428ed1 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/FractionalReplicationTest.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/FractionalReplicationTest.java
@@ -16,6 +16,12 @@
  */
 package org.opends.server.replication.plugin;
 
+import static org.assertj.core.api.Assertions.*;
+import static org.opends.server.TestCaseUtils.*;
+import static org.opends.server.util.CollectionUtils.*;
+import static org.testng.Assert.fail;
+import static org.testng.Assert.*;
+
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -52,12 +58,6 @@
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
 
-import static org.testng.Assert.fail;
-import static org.assertj.core.api.Assertions.*;
-import static org.opends.server.TestCaseUtils.*;
-import static org.opends.server.util.CollectionUtils.*;
-import static org.testng.Assert.*;
-
 /** Various tests around fractional replication */
 @SuppressWarnings("javadoc")
 public class FractionalReplicationTest extends ReplicationTestCase {
@@ -655,7 +655,7 @@
       String objectClassStr = fractionalConf[0];
       if (!objectClassStr.equals("*"))
       {
-        ObjectClass objectClass = DirectoryServer.getObjectClass(objectClassStr);
+        ObjectClass objectClass = DirectoryServer.getSchema().getObjectClass(objectClassStr);
         assertTrue(newEntry.hasObjectClass(objectClass));
       }
 
@@ -708,7 +708,7 @@
       String objectClassStr = fractionalConf[0];
       if (!objectClassStr.equals("*"))
       {
-        ObjectClass objectClass = DirectoryServer.getObjectClass(objectClassStr);
+        ObjectClass objectClass = DirectoryServer.getSchema().getObjectClass(objectClassStr);
         assertTrue(entry.hasObjectClass(objectClass));
       }
 
@@ -1235,8 +1235,7 @@
       Entry newEntry = getEntry(entry.getName(), TIMEOUT, true);
       assertNotNull(newEntry);
       assertEquals(entry.getName(), newEntry.getName());
-      ObjectClass objectClass = DirectoryServer.getObjectClass("inetOrgPerson");
-      assertTrue(newEntry.hasObjectClass(objectClass));
+      assertTrue(newEntry.hasObjectClass(getInetOrgPersonObjectClass()));
       checkEntryAttributeValue(newEntry, "displayName", "ValueToBeKept");
 
       /**
@@ -1270,8 +1269,7 @@
       newEntry = getEntry(entry.getName(), TIMEOUT, true);
       assertNotNull(newEntry);
       assertEquals(entry.getName(), newEntry.getName());
-      objectClass = DirectoryServer.getObjectClass("inetOrgPerson");
-      assertTrue(newEntry.hasObjectClass(objectClass));
+      assertTrue(newEntry.hasObjectClass(getInetOrgPersonObjectClass()));
       checkEntryAttributeValue(newEntry, "displayName", "ValueToBeKept");
       checkEntryAttributeValue(newEntry, "givenName", "ValueToBeKeptToo");
     }
@@ -1326,8 +1324,7 @@
       Entry newEntry = getEntry(entry.getName(), TIMEOUT, true);
       assertNotNull(newEntry);
       assertEquals(entry.getName(), newEntry.getName());
-      ObjectClass objectClass = DirectoryServer.getObjectClass("inetOrgPerson");
-      assertTrue(newEntry.hasObjectClass(objectClass));
+      assertTrue(newEntry.hasObjectClass(getInetOrgPersonObjectClass()));
       checkEntryAttributeValue(newEntry, "displayName", "ValueToBeKept");
       checkEntryAttributeValue(newEntry, "carLicense", "cirLicenseValue");
 
@@ -1363,8 +1360,7 @@
       newEntry = getEntry(entry.getName(), TIMEOUT, true);
       assertNotNull(newEntry);
       assertEquals(entry.getName(), newEntry.getName());
-      objectClass = DirectoryServer.getObjectClass("inetOrgPerson");
-      assertTrue(newEntry.hasObjectClass(objectClass));
+      assertTrue(newEntry.hasObjectClass(getInetOrgPersonObjectClass()));
       checkEntryAttributeValue(newEntry, "displayName", "ValueToBeKept");
       checkEntryAttributeValue(newEntry, "description", "ValueToBeKeptToo");
       checkEntryAttributeValue(newEntry, "carLicense", "cirLicenseValue");
@@ -1418,8 +1414,7 @@
       Entry newEntry = getEntry(entry.getName(), TIMEOUT, true);
       assertNotNull(newEntry);
       assertEquals(entry.getName(), newEntry.getName());
-      ObjectClass objectClass = DirectoryServer.getObjectClass("inetOrgPerson");
-      assertTrue(newEntry.hasObjectClass(objectClass));
+      assertTrue(newEntry.hasObjectClass(getInetOrgPersonObjectClass()));
       checkEntryAttributeValue(newEntry, "displayName", "ValueToBeKept");
       checkEntryAttributeValue(newEntry, "givenName", "ValueToBeRemoved");
 
@@ -1441,8 +1436,7 @@
       newEntry = getEntry(newEntryDn, TIMEOUT, true);
       assertNotNull(newEntry);
       assertEquals(newEntryDn, newEntry.getName());
-      objectClass = DirectoryServer.getObjectClass("inetOrgPerson");
-      assertTrue(newEntry.hasObjectClass(objectClass));
+      assertTrue(newEntry.hasObjectClass(getInetOrgPersonObjectClass()));
       checkEntryAttributeValue(newEntry, "displayName", "ValueToBeKept");
       assertThat(newEntry.getAttribute("givenName")).isEmpty();
     }
@@ -1500,8 +1494,7 @@
       Entry newEntry = getEntry(entry.getName(), TIMEOUT, true);
       assertNotNull(newEntry);
       assertEquals(entry.getName(), newEntry.getName());
-      ObjectClass objectClass = DirectoryServer.getObjectClass("inetOrgPerson");
-      assertTrue(newEntry.hasObjectClass(objectClass));
+      assertTrue(newEntry.hasObjectClass(getInetOrgPersonObjectClass()));
       checkEntryAttributeValue(newEntry, "displayName", "ValueToBeKept");
       checkEntryAttributeValue(newEntry, "description", "ValueToBeRemoved");
 
@@ -1523,8 +1516,7 @@
       newEntry = getEntry(newEntryDn, TIMEOUT, true);
       assertNotNull(newEntry);
       assertEquals(newEntryDn, newEntry.getName());
-      objectClass = DirectoryServer.getObjectClass("inetOrgPerson");
-      assertTrue(newEntry.hasObjectClass(objectClass));
+      assertTrue(newEntry.hasObjectClass(getInetOrgPersonObjectClass()));
       checkEntryAttributeValue(newEntry, "displayName", "ValueToBeKept");
       assertThat(newEntry.getAttribute("description")).isEmpty();
     }
@@ -1533,4 +1525,9 @@
       endTest();
     }
   }
+
+  private ObjectClass getInetOrgPersonObjectClass()
+  {
+    return DirectoryServer.getSchema().getObjectClass("inetOrgPerson");
+  }
 }
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/ModifyConflictTest.java b/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/ModifyConflictTest.java
index 974e27b..3108888 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/ModifyConflictTest.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/ModifyConflictTest.java
@@ -27,6 +27,7 @@
 import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.ModificationType;
 import org.forgerock.opendj.ldap.schema.AttributeType;
+import org.forgerock.opendj.ldap.schema.CoreSchema;
 import org.forgerock.opendj.ldap.schema.ObjectClass;
 import org.opends.server.core.ModifyOperationBasis;
 import org.opends.server.replication.ReplicationTestCase;
@@ -1065,7 +1066,7 @@
      */
     DN dn = DN.valueOf(TEST_ROOT_DN_STRING);
     Map<ObjectClass, String> objectClasses = new HashMap<>();
-    objectClasses.put(getObjectClass(ORGANIZATION), ORGANIZATION);
+    objectClasses.put(CoreSchema.getOrganizationObjectClass(), ORGANIZATION);
 
     // start with a new entry with an empty attribute
     Entry entry = new Entry(dn, objectClasses, null, null);
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/replication/protocol/SynchronizationMsgTest.java b/opendj-server-legacy/src/test/java/org/opends/server/replication/protocol/SynchronizationMsgTest.java
index 96dee00..eaf28c1 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/replication/protocol/SynchronizationMsgTest.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/replication/protocol/SynchronizationMsgTest.java
@@ -1189,7 +1189,7 @@
       byte safeDataLevel, List<Attribute> entryAttrList) throws Exception
   {
     Map<ObjectClass, String> objectClassList = new HashMap<>();
-    objectClassList.put(DirectoryServer.getObjectClass("organization"), "organization");
+    objectClassList.put(getOrganizationObjectClass(), "organization");
 
     Attribute attr = Attributes.create("o", "com");
     Map<AttributeType, List<Attribute>> userAttList = new HashMap<>();
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/tasks/TestBackupAndRestore.java b/opendj-server-legacy/src/test/java/org/opends/server/tasks/TestBackupAndRestore.java
index 39c4fa2..2674ba5 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/tasks/TestBackupAndRestore.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/tasks/TestBackupAndRestore.java
@@ -188,7 +188,7 @@
     final int restoreBeginCountStart = restoreBeginCount.get();
     final int restoreEndCountStart = restoreEndCount.get();
 
-    ObjectClass backupClass = DirectoryServer.getObjectClass("ds-task-backup");
+    ObjectClass backupClass = DirectoryServer.getSchema().getObjectClass("ds-task-backup");
 
     testTask(taskEntry, expectedState, 30);
     if (expectedState == TaskState.COMPLETED_SUCCESSFULLY ||
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/tasks/TestImportAndExport.java b/opendj-server-legacy/src/test/java/org/opends/server/tasks/TestImportAndExport.java
index 096f7f1..9e769db 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/tasks/TestImportAndExport.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/tasks/TestImportAndExport.java
@@ -356,8 +356,7 @@
     int importBeginCount = TestTaskListener.importBeginCount.get();
     int importEndCount   = TestTaskListener.importEndCount.get();
 
-    ObjectClass exportClass =
-         DirectoryServer.getObjectClass("ds-task-export");
+    ObjectClass exportClass = DirectoryServer.getSchema().getObjectClass("ds-task-export");
 
     // Use a big timeout since this test is sensitive to host environment (e.g.
     // low memory, etc). See issue OPENDJ-256.
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/util/TestLDIFWriter.java b/opendj-server-legacy/src/test/java/org/opends/server/util/TestLDIFWriter.java
index 3ebfc5b..54ec123 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/util/TestLDIFWriter.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/util/TestLDIFWriter.java
@@ -304,7 +304,7 @@
         String avalue = toLowerCase(s[i+1]);
 
         if (atype.equals("objectclass")) {
-          entry.addObjectClass(DirectoryServer.getObjectClass(avalue));
+          entry.addObjectClass(DirectoryServer.getSchema().getObjectClass(avalue));
         } else {
           Attribute attr = Attributes.create(atype, avalue);
 

--
Gitblit v1.10.0