From a36a3ad7a7cae7dffd8460aa4826ecdf50cd5751 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Mon, 30 May 2016 10:43:10 +0000
Subject: [PATCH] OPENDJ-2987 Fix retrieval of object classes names

---
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/BrowseSchemaPanel.java        |   23 +++++++++--
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/SchemaElementPanel.java       |   20 ++++-----
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/ServerDescriptor.java  |    9 ++--
 opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java                     |   12 ++---
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/StandardObjectClassPanel.java |    7 ++-
 5 files changed, 40 insertions(+), 31 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/ServerDescriptor.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/ServerDescriptor.java
index 665224d..9d49019 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/ServerDescriptor.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/ServerDescriptor.java
@@ -27,13 +27,13 @@
 import java.util.Map;
 import java.util.Set;
 
+import org.forgerock.opendj.ldap.DN;
+import org.forgerock.opendj.ldap.schema.AttributeType;
+import org.forgerock.opendj.ldap.schema.ObjectClass;
 import org.opends.guitools.controlpanel.util.ConfigFromDirContext;
 import org.opends.quicksetup.UserData;
 import org.opends.server.schema.SomeSchemaElement;
 import org.opends.server.tools.tasks.TaskEntry;
-import org.forgerock.opendj.ldap.schema.AttributeType;
-import org.forgerock.opendj.ldap.DN;
-import org.forgerock.opendj.ldap.schema.ObjectClass;
 import org.opends.server.types.Schema;
 
 import com.forgerock.opendj.util.OperatingSystem;
@@ -643,8 +643,7 @@
         && areEqual(oc1.getDeclaredRequiredAttributes(), oc2.getDeclaredRequiredAttributes())
         && areEqual(oc1.getSuperiorClasses(), oc2.getSuperiorClasses())
         && areEqual(oc1.getExtraProperties().keySet(), oc2.getExtraProperties().keySet())
-        && areEqual(toSet(oc1.getNormalizedNames()), toSet(oc2.getNormalizedNames()))
-        && areEqual(toSet(oc1.getUserDefinedNames()), toSet(oc2.getUserDefinedNames()));
+        && areEqual(toSet(oc1.getNames()), toSet(oc2.getNames()));
   }
 
   private static Set<Object> toSet(Iterable<?> iterable)
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/BrowseSchemaPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/BrowseSchemaPanel.java
index bf91659..90e0ebf 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/BrowseSchemaPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/BrowseSchemaPanel.java
@@ -68,24 +68,37 @@
 import org.forgerock.i18n.LocalizableMessageBuilder;
 import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.forgerock.opendj.ldap.schema.MatchingRule;
+import org.forgerock.opendj.ldap.schema.ObjectClass;
 import org.forgerock.opendj.ldap.schema.Syntax;
 import org.opends.guitools.controlpanel.browser.IconPool;
 import org.opends.guitools.controlpanel.datamodel.ControlPanelInfo;
 import org.opends.guitools.controlpanel.datamodel.ServerDescriptor;
-import org.opends.guitools.controlpanel.event.*;
+import org.opends.guitools.controlpanel.event.ConfigurationChangeEvent;
+import org.opends.guitools.controlpanel.event.ConfigurationElementCreatedEvent;
+import org.opends.guitools.controlpanel.event.ConfigurationElementCreatedListener;
+import org.opends.guitools.controlpanel.event.SchemaElementSelectionEvent;
+import org.opends.guitools.controlpanel.event.SchemaElementSelectionListener;
 import org.opends.guitools.controlpanel.task.DeleteSchemaElementsTask;
 import org.opends.guitools.controlpanel.task.Task;
 import org.opends.guitools.controlpanel.ui.components.CustomTree;
 import org.opends.guitools.controlpanel.ui.components.FilterTextField;
 import org.opends.guitools.controlpanel.ui.components.TreePanel;
-import org.opends.guitools.controlpanel.ui.nodes.*;
+import org.opends.guitools.controlpanel.ui.nodes.AttributeSyntaxTreeNode;
+import org.opends.guitools.controlpanel.ui.nodes.CategoryTreeNode;
+import org.opends.guitools.controlpanel.ui.nodes.ConfigurationAttributeTreeNode;
+import org.opends.guitools.controlpanel.ui.nodes.ConfigurationObjectClassTreeNode;
+import org.opends.guitools.controlpanel.ui.nodes.CustomAttributeTreeNode;
+import org.opends.guitools.controlpanel.ui.nodes.CustomObjectClassTreeNode;
+import org.opends.guitools.controlpanel.ui.nodes.MatchingRuleTreeNode;
+import org.opends.guitools.controlpanel.ui.nodes.SchemaElementTreeNode;
+import org.opends.guitools.controlpanel.ui.nodes.StandardAttributeTreeNode;
+import org.opends.guitools.controlpanel.ui.nodes.StandardObjectClassTreeNode;
 import org.opends.guitools.controlpanel.ui.renderer.CustomListCellRenderer;
 import org.opends.guitools.controlpanel.ui.renderer.TreeCellRenderer;
 import org.opends.guitools.controlpanel.util.LowerCaseComparator;
 import org.opends.guitools.controlpanel.util.Utilities;
 import org.opends.guitools.controlpanel.util.ViewPositions;
 import org.opends.server.schema.SomeSchemaElement;
-import org.forgerock.opendj.ldap.schema.ObjectClass;
 import org.opends.server.types.Schema;
 
 /** The pane that is displayed when the user clicks on 'Browse Schema'. */
@@ -1154,11 +1167,11 @@
 
   private boolean mustAddObjectClassName(ObjectClass oc, String ocName)
   {
-    return mustAdd(ocName, oc.getOID(), oc.getNameOrOID(), oc.getNormalizedNames());
+    return mustAdd(ocName, oc.getOID(), oc.getNameOrOID(), oc.getNames());
   }
 
   /** Provided names may not be normalized. */
-  private boolean mustAdd(String name, String oid, String primaryNameOrOID, Set<String> names)
+  private boolean mustAdd(String name, String oid, String primaryNameOrOID, Collection<String> names)
   {
     List<String> values = new ArrayList<>(names.size() + 2);
     values.add(oid);
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/SchemaElementPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/SchemaElementPanel.java
index a45e0e5..34215f5 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/SchemaElementPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/SchemaElementPanel.java
@@ -27,9 +27,9 @@
 import javax.swing.border.EmptyBorder;
 
 import org.forgerock.opendj.ldap.schema.AttributeType;
+import org.forgerock.opendj.ldap.schema.ObjectClass;
 import org.opends.guitools.controlpanel.event.SchemaElementSelectionEvent;
 import org.opends.guitools.controlpanel.event.SchemaElementSelectionListener;
-import org.forgerock.opendj.ldap.schema.ObjectClass;
 import org.opends.server.types.Schema;
 
 /**
@@ -107,7 +107,7 @@
    * Method called when there is an object class selected in a list.
    * @param list the list.
    */
-  protected void objectClassSelected(JList list)
+  protected void objectClassSelected(JList<?> list)
   {
     String o = (String)list.getSelectedValue();
     if (o != null)
@@ -131,7 +131,7 @@
    */
   protected Set<String> getAliases(AttributeType attr)
   {
-    return getAliases(attr.getNames(), toLowerCase(attr.getNameOrOID()));
+    return getAliases(attr.getNames(), attr.getNameOrOID());
   }
 
   /**
@@ -141,19 +141,17 @@
    */
   protected Set<String> getAliases(ObjectClass oc)
   {
-    return getAliases(oc.getNormalizedNames(), oc.getNameOrOID());
+    return getAliases(oc.getNames(), oc.getNameOrOID());
   }
 
-  private Set<String> getAliases(Iterable<String> names, String primaryName)
+  private Set<String> getAliases(Iterable<String> names, String nameOrOid)
   {
-    Set<String> aliases = new LinkedHashSet<>();
-    if (primaryName == null)
-    {
-      primaryName = "";
-    }
+    nameOrOid = nameOrOid != null ? nameOrOid : "";
+
+    final Set<String> aliases = new LinkedHashSet<>();
     for (String name : names)
     {
-      if (!name.equalsIgnoreCase(primaryName))
+      if (!name.equalsIgnoreCase(nameOrOid))
       {
         aliases.add(toLowerCase(name));
       }
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/StandardObjectClassPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/StandardObjectClassPanel.java
index 0d01100..949b069 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/StandardObjectClassPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/StandardObjectClassPanel.java
@@ -18,6 +18,7 @@
 package org.opends.guitools.controlpanel.ui;
 
 import static org.opends.messages.AdminToolMessages.*;
+import static org.opends.server.util.StaticUtils.*;
 
 import java.awt.Component;
 import java.awt.Container;
@@ -42,12 +43,12 @@
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageBuilder;
 import org.forgerock.opendj.ldap.schema.AttributeType;
+import org.forgerock.opendj.ldap.schema.ObjectClass;
 import org.opends.guitools.controlpanel.event.ConfigurationChangeEvent;
 import org.opends.guitools.controlpanel.ui.components.TitlePanel;
 import org.opends.guitools.controlpanel.util.LowerCaseComparator;
 import org.opends.guitools.controlpanel.util.Utilities;
 import org.opends.server.schema.SomeSchemaElement;
-import org.forgerock.opendj.ldap.schema.ObjectClass;
 import org.opends.server.types.Schema;
 
 /** The panel that displays a standard object class definition. */
@@ -294,7 +295,7 @@
     }
     description.setText(n);
     ArrayList<String> otherNames = new ArrayList<>();
-    Iterable<String> ocNames = oc.getNormalizedNames();
+    Iterable<String> ocNames = oc.getNames();
     String primaryName = oc.getNameOrOID();
     if (primaryName == null)
     {
@@ -304,7 +305,7 @@
     {
       if (!name.equalsIgnoreCase(primaryName))
       {
-        otherNames.add(name);
+        otherNames.add(toLowerCase(name));
       }
     }
     if (!otherNames.isEmpty())
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 341fa3b..03e8fef 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
@@ -65,6 +65,7 @@
 import org.forgerock.opendj.ldap.schema.CoreSchema;
 import org.forgerock.opendj.ldap.schema.MatchingRule;
 import org.forgerock.opendj.ldap.schema.MatchingRuleUse;
+import org.forgerock.opendj.ldap.schema.ObjectClass;
 import org.forgerock.opendj.ldap.schema.ObjectClassType;
 import org.forgerock.opendj.ldap.schema.SchemaElement;
 import org.forgerock.opendj.server.config.server.SchemaBackendCfg;
@@ -107,7 +108,6 @@
 import org.opends.server.types.LDIFImportResult;
 import org.opends.server.types.Modification;
 import org.opends.server.types.NameForm;
-import org.forgerock.opendj.ldap.schema.ObjectClass;
 import org.opends.server.types.Privilege;
 import org.opends.server.types.RestoreConfig;
 import org.opends.server.types.Schema;
@@ -1465,13 +1465,11 @@
   {
     // First, see if the specified objectclass already exists.  We'll check the
     // OID and all of the names, which means that it's possible there could be
-    // more than one match (although if there is, then we'll refuse the
-    // operation).
-    ObjectClass existingClass =
-         schema.getObjectClass(objectClass.getOID());
-    for (String name : objectClass.getNormalizedNames())
+    // more than one match (although if there is, then we'll refuse the operation).
+    ObjectClass existingClass = schema.getObjectClass(objectClass.getOID());
+    for (String name : objectClass.getNames())
     {
-      ObjectClass oc = schema.getObjectClass(name);
+      ObjectClass oc = schema.getObjectClass(toLowerCase(name));
       if (oc == null)
       {
         continue;

--
Gitblit v1.10.0