From c38f72900e121badd214396309a318991940f01d Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 01 Jun 2016 20:24:40 +0000
Subject: [PATCH] OPENDJ-3037 remove two register*() methods from Schema class

---
 opendj-server-legacy/src/test/java/org/opends/server/plugins/LastModPluginTestCase.java    |   24 ++++++------
 opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java           |    4 +-
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/SchemaLoader.java |    5 +-
 opendj-server-legacy/src/main/java/org/opends/server/tasks/AddSchemaFileTask.java          |   21 +---------
 opendj-server-legacy/src/test/java/org/opends/server/plugins/EntryUUIDPluginTestCase.java  |    8 ++--
 opendj-server-legacy/src/main/java/org/opends/server/backends/NullBackend.java             |    5 +-
 opendj-server-legacy/src/main/java/org/opends/server/types/Schema.java                     |   45 ----------------------
 7 files changed, 25 insertions(+), 87 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/SchemaLoader.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/SchemaLoader.java
index 71dfc43..53de9f6 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/SchemaLoader.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/SchemaLoader.java
@@ -194,12 +194,11 @@
       {
         builder.buildAttributeType(attr).addToSchemaOverwrite();
       }
-      Schema schema = new Schema(builder.toSchema());
       for (ObjectClass oc : objectclassesToKeep)
       {
-        schema.registerObjectClass(oc, true);
+        builder.buildObjectClass(oc).addToSchemaOverwrite();
       }
-      return schema;
+      return new Schema(builder.toSchema());
     }
     catch (LocalizedIllegalArgumentException e)
     {
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 533f4a6..afb92e7 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
@@ -33,6 +33,7 @@
 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.ObjectClass;
 import org.forgerock.opendj.server.config.server.BackendCfg;
 import org.opends.server.api.Backend;
 import org.opends.server.controls.PagedResultsControl;
@@ -43,6 +44,7 @@
 import org.opends.server.core.ModifyOperation;
 import org.opends.server.core.SearchOperation;
 import org.opends.server.core.ServerContext;
+import org.opends.server.schema.ServerSchemaElement;
 import org.opends.server.types.BackupConfig;
 import org.opends.server.types.BackupDirectory;
 import org.opends.server.types.DirectoryException;
@@ -52,7 +54,6 @@
 import org.opends.server.types.LDIFExportConfig;
 import org.opends.server.types.LDIFImportConfig;
 import org.opends.server.types.LDIFImportResult;
-import org.forgerock.opendj.ldap.schema.ObjectClass;
 import org.opends.server.types.RestoreConfig;
 import org.opends.server.util.CollectionUtils;
 import org.opends.server.util.LDIFException;
@@ -148,7 +149,7 @@
     String nulOCName = "nullbackendobject";
     ObjectClass nulOC = DirectoryServer.getObjectClass(nulOCName);
     try {
-      DirectoryServer.getSchema().registerObjectClass(nulOC, false);
+      DirectoryServer.getSchema().registerObjectClass(nulOC, new ServerSchemaElement(nulOC).getSchemaFile(), false);
     } catch (DirectoryException de) {
       logger.traceException(de);
       throw new InitializationException(de.getMessageObject());
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 82a9b38..006e8ad 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
@@ -2987,7 +2987,7 @@
           AttributeType oldAttrType = schema.getAttributeType(attrType.getOID());
           if (oldAttrType == null || !oldAttrType.toString().equals(attrType.toString()))
           {
-            newSchema.registerAttributeType(attrType, true);
+            newSchema.registerAttributeType(attrType, schemaFile, true);
 
             if (schemaFile != null)
             {
@@ -3054,7 +3054,7 @@
           ObjectClass oldObjectClass = schema.getObjectClass(newObjectClass.getOID());
           if (oldObjectClass.isPlaceHolder() || !oldObjectClass.toString().equals(newObjectClass.toString()))
           {
-            newSchema.registerObjectClass(newObjectClass, true);
+            newSchema.registerObjectClass(newObjectClass, schemaFile, true);
 
             if (schemaFile != null)
             {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tasks/AddSchemaFileTask.java b/opendj-server-legacy/src/main/java/org/opends/server/tasks/AddSchemaFileTask.java
index 516fa78..f499920 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tasks/AddSchemaFileTask.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tasks/AddSchemaFileTask.java
@@ -48,7 +48,6 @@
 import static org.opends.messages.TaskMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.core.DirectoryServer.*;
-import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
 /**
@@ -187,26 +186,10 @@
           for (Modification m : modList)
           {
             Attribute a = m.getAttribute();
-            AttributeType attrType = a.getAttributeDescription().getAttributeType();
-            AttributeBuilder builder = new AttributeBuilder(attrType);
+            AttributeBuilder builder = new AttributeBuilder(a.getAttributeDescription());
             for (ByteString v : a)
             {
-              String s = v.toString();
-              if (!s.contains(SCHEMA_PROPERTY_FILENAME))
-              {
-                if (s.endsWith(" )"))
-                {
-                 s = s.substring(0, s.length()-1) + SCHEMA_PROPERTY_FILENAME +
-                     " '" + schemaFile + "' )";
-                }
-                else if (s.endsWith(")"))
-                {
-                 s = s.substring(0, s.length()-1) + " " +
-                     SCHEMA_PROPERTY_FILENAME + " '" + schemaFile + "' )";
-                }
-              }
-
-              builder.add(s);
+              builder.add(Schema.addSchemaFileToElementDefinitionIfAbsent(v.toString(), schemaFile));
             }
 
             mods.add(new Modification(m.getModificationType(), builder.toAttribute()));
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/types/Schema.java b/opendj-server-legacy/src/main/java/org/opends/server/types/Schema.java
index 545ab64..9664d40 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/types/Schema.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/types/Schema.java
@@ -67,7 +67,6 @@
 import org.forgerock.opendj.ldap.schema.NameForm;
 import org.forgerock.opendj.ldap.schema.ObjectClass;
 import org.forgerock.opendj.ldap.schema.SchemaBuilder;
-import org.forgerock.opendj.ldap.schema.SchemaElement;
 import org.forgerock.opendj.ldap.schema.Syntax;
 import org.forgerock.opendj.ldap.schema.UnknownSchemaElementException;
 import org.forgerock.util.Option;
@@ -75,7 +74,6 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.SchemaConfigManager;
 import org.opends.server.util.Base64;
-import org.opends.server.util.ServerConstants;
 
 /**
  * This class defines a data structure that holds information about
@@ -496,25 +494,6 @@
    *
    * @param attributeType
    *          The attribute type to register with this schema.
-   * @param overwriteExisting
-   *          Indicates whether to overwrite an existing mapping if there are
-   *          any conflicts (i.e., another attribute type with the same OID or
-   *          name).
-   * @throws DirectoryException
-   *           If a conflict is encountered and the
-   *           <CODE>overwriteExisting</CODE> flag is set to <CODE>false</CODE>
-   */
-  public void registerAttributeType(final AttributeType attributeType, final boolean overwriteExisting)
-      throws DirectoryException
-  {
-    registerAttributeType(attributeType, null, overwriteExisting);
-  }
-
-  /**
-   * Registers the provided attribute type definition with this schema.
-   *
-   * @param attributeType
-   *          The attribute type to register with this schema.
    * @param schemaFile
    *          The schema file where this definition belongs, maybe {@code null}
    * @param overwriteExisting
@@ -841,24 +820,6 @@
    *
    * @param objectClass
    *          The objectclass to register with this schema.
-   * @param overwriteExisting
-   *          Indicates whether to overwrite an existing mapping if there are any conflicts (i.e.,
-   *          another objectclass with the same OID or name).
-   * @throws DirectoryException
-   *           If a conflict is encountered and the {@code overwriteExisting} flag is set to
-   *           {@code false}.
-   */
-  public void registerObjectClass(ObjectClass objectClass, boolean overwriteExisting) throws DirectoryException
-  {
-    String schemaFile = getSchemaFileName(objectClass);
-    registerObjectClass(objectClass, schemaFile, overwriteExisting);
-  }
-
-  /**
-   * Registers the provided objectclass definition with this schema.
-   *
-   * @param objectClass
-   *          The objectclass to register with this schema.
    * @param schemaFile
    *          The schema file where this definition belongs, maybe {@code null}
    * @param overwriteExisting
@@ -1985,12 +1946,6 @@
     registerObjectClasses(Collections.singletonList(definition), schemaFile, overwriteExisting);
   }
 
-  private String getSchemaFileName(SchemaElement element)
-  {
-    List<String> values = element.getExtraProperties().get(ServerConstants.SCHEMA_PROPERTY_FILENAME);
-    return values != null && ! values.isEmpty() ? values.get(0) : null;
-  }
-
   /**
    * Creates a new {@link Schema} object that is a duplicate of this one. It elements may be added
    * and removed from the duplicate without impacting this version.
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/plugins/EntryUUIDPluginTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/plugins/EntryUUIDPluginTestCase.java
index efc1214..3919fea 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/plugins/EntryUUIDPluginTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/plugins/EntryUUIDPluginTestCase.java
@@ -24,13 +24,13 @@
 import java.util.UUID;
 
 import org.forgerock.opendj.config.server.ConfigException;
-import org.opends.server.TestCaseUtils;
+import org.forgerock.opendj.ldap.DN;
+import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.forgerock.opendj.server.config.meta.EntryUUIDPluginCfgDefn;
+import org.opends.server.TestCaseUtils;
 import org.opends.server.api.plugin.PluginType;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.extensions.InitializationUtils;
-import org.forgerock.opendj.ldap.schema.AttributeType;
-import org.forgerock.opendj.ldap.DN;
 import org.opends.server.types.Entry;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.LDIFImportConfig;
@@ -145,7 +145,7 @@
     plugin.finalizePlugin();
 
 
-    DirectoryServer.getSchema().registerAttributeType(entryUUIDType, false);
+    DirectoryServer.getSchema().registerAttributeType(entryUUIDType, null, false);
   }
 
 
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/plugins/LastModPluginTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/plugins/LastModPluginTestCase.java
index 6bd451b..febec70 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/plugins/LastModPluginTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/plugins/LastModPluginTestCase.java
@@ -24,24 +24,24 @@
 import java.util.List;
 
 import org.forgerock.opendj.config.server.ConfigException;
+import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.ModificationType;
+import org.forgerock.opendj.ldap.RDN;
 import org.forgerock.opendj.ldap.ResultCode;
-import org.opends.server.TestCaseUtils;
+import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.forgerock.opendj.server.config.meta.LastModPluginCfgDefn;
+import org.opends.server.TestCaseUtils;
 import org.opends.server.api.plugin.PluginType;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.ModifyDNOperation;
 import org.opends.server.core.ModifyOperation;
 import org.opends.server.extensions.InitializationUtils;
 import org.opends.server.protocols.internal.InternalClientConnection;
-import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.opends.server.types.Attributes;
-import org.forgerock.opendj.ldap.DN;
 import org.opends.server.types.DirectoryConfig;
 import org.opends.server.types.Entry;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.Modification;
-import org.forgerock.opendj.ldap.RDN;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
@@ -138,11 +138,11 @@
   public void testInitializeWithValidConfigs(Entry e)
          throws Exception
   {
-    LastModPlugin plugin = pp(e);
+    LastModPlugin plugin = initializePlugin(e);
     plugin.finalizePlugin();
   }
 
-  private LastModPlugin pp(Entry e) throws ConfigException, InitializationException {
+  private LastModPlugin initializePlugin(Entry e) throws ConfigException, InitializationException {
     return InitializationUtils.initializePlugin(new LastModPlugin(), e, LastModPluginCfgDefn.getInstance());
   }
 
@@ -169,14 +169,14 @@
     DirectoryServer.getSchema().deregisterAttributeType(mnType);
 
 
-    LastModPlugin plugin = pp(e);
+    LastModPlugin plugin = initializePlugin(e);
     plugin.finalizePlugin();
 
 
-    DirectoryServer.getSchema().registerAttributeType(ctType, false);
-    DirectoryServer.getSchema().registerAttributeType(cnType, false);
-    DirectoryServer.getSchema().registerAttributeType(mtType, false);
-    DirectoryServer.getSchema().registerAttributeType(mnType, false);
+    DirectoryServer.getSchema().registerAttributeType(ctType, null, false);
+    DirectoryServer.getSchema().registerAttributeType(cnType, null, false);
+    DirectoryServer.getSchema().registerAttributeType(mtType, null, false);
+    DirectoryServer.getSchema().registerAttributeType(mnType, null, false);
   }
 
 
@@ -236,7 +236,7 @@
   public void testInitializeWithInvalidConfigs(Entry e)
          throws Exception
   {
-    LastModPlugin plugin = pp(e);
+    LastModPlugin plugin = initializePlugin(e);
     plugin.finalizePlugin();
   }
 

--
Gitblit v1.10.0