From 8b3cd28204e15e0a98ce038b355f100cd7c44e3c Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <capponi.nicolas@gmail.com>
Date: Thu, 28 Jan 2016 08:28:20 +0000
Subject: [PATCH] OPENDJ-1632 (PR-201) Migrate AttributeType in one shot

---
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/ServerDescriptor.java |   25 ++++++++++++++-----------
 1 files changed, 14 insertions(+), 11 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 ab4d60a..daa4f83 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
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2008-2010 Sun Microsystems, Inc.
- *      Portions Copyright 2014-2015 ForgeRock AS
+ *      Portions Copyright 2014-2016 ForgeRock AS
  */
 package org.opends.guitools.controlpanel.datamodel;
 
@@ -39,8 +39,9 @@
 
 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.opends.server.types.AttributeType;
+import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.opends.server.types.DN;
 import org.opends.server.types.ObjectClass;
 import org.opends.server.types.OpenDsException;
@@ -563,17 +564,19 @@
 
   private static boolean areAttributeTypesEqual(Schema schema1, Schema schema2)
   {
-    final Map<String, AttributeType> attrs1 = schema1.getAttributeTypes();
-    final Map<String, AttributeType> attrs2 = schema2.getAttributeTypes();
+    final List<AttributeType> attrs1 = new ArrayList<>(schema1.getAttributeTypes());
+    final List<AttributeType> attrs2 = new ArrayList<>(schema2.getAttributeTypes());
     if (attrs1.size() != attrs2.size())
     {
       return false;
     }
-    for (String name : attrs1.keySet())
+    Collections.sort(attrs1);
+    Collections.sort(attrs2);
+    for (int i = 0; i < attrs1.size(); i++)
     {
-      AttributeType attr1 = attrs1.get(name);
-      AttributeType attr2 = attrs2.get(name);
-      if (attr2 == null && !areAttributesEqual(attr1, attr2))
+      AttributeType attr1 = attrs1.get(i);
+      AttributeType attr2 = attrs2.get(i);
+      if (attr2 == null || !areAttributesEqual(attr1, attr2))
       {
         return false;
       }
@@ -620,7 +623,8 @@
         && attr1.isOperational() == attr2.isOperational()
         && attr1.isSingleValue() == attr2.isSingleValue()
         && areEqual(attr1.getApproximateMatchingRule(), attr2.getApproximateMatchingRule())
-        && areEqual(getDefinitionWithFileName(attr1), getDefinitionWithFileName(attr2))
+        && areEqual(new SomeSchemaElement(attr1).getDefinitionWithFileName(),
+            new SomeSchemaElement(attr2).getDefinitionWithFileName())
         && areEqual(attr1.getDescription(), attr2.getDescription())
         && areEqual(attr1.getEqualityMatchingRule(), attr2.getEqualityMatchingRule())
         && areEqual(attr1.getOrderingMatchingRule(), attr2.getOrderingMatchingRule())
@@ -629,8 +633,7 @@
         && areEqual(attr1.getSyntax(), attr2.getSyntax())
         && areEqual(attr1.getSyntax().getOID(), attr2.getSyntax().getOID())
         && areEqual(attr1.getExtraProperties().keySet(), attr2.getExtraProperties().keySet())
-        && areEqual(toSet(attr1.getNormalizedNames()), toSet(attr2.getNormalizedNames()))
-        && areEqual(toSet(attr1.getUserDefinedNames()), toSet(attr2.getUserDefinedNames()));
+        && areEqual(toSet(attr1.getNames()), toSet(attr2.getNames()));
   }
 
   /**

--
Gitblit v1.10.0