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