From 30370aa1fc4d363f07023059f330e9a1ec9f2313 Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 04 Feb 2016 16:43:42 +0000
Subject: [PATCH] Removed Attribute.getAttributeType()

---
 opendj-server-legacy/src/main/java/org/opends/server/config/JMXMBean.java                                            |    4 
 opendj-server-legacy/src/main/java/org/opends/server/backends/RootDSEBackend.java                                    |    6 
 opendj-server-legacy/src/main/java/org/opends/server/tasks/AddSchemaFileTask.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                     |   10 +-
 opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/EntryHistorical.java                         |    6 
 opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java      |    6 
 opendj-server-legacy/src/test/java/org/opends/server/util/TestAddChangeRecordEntry.java                              |    2 
 opendj-server-legacy/src/main/java/org/opends/server/types/CollectiveVirtualAttribute.java                           |    6 -
 opendj-server-legacy/src/test/java/org/opends/server/core/AddOperationTestCase.java                                  |    4 
 opendj-server-legacy/src/main/java/org/opends/server/types/SubEntry.java                                             |    4 
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java                          |    2 
 opendj-server-legacy/src/main/java/org/opends/server/core/PasswordPolicyState.java                                   |    4 
 opendj-server-legacy/src/main/java/org/opends/server/replication/protocol/ModifyCommonMsg.java                       |    2 
 opendj-server-legacy/src/main/java/org/opends/server/types/AbstractAttribute.java                                    |   13 -
 opendj-server-legacy/src/main/java/org/opends/server/types/VirtualAttribute.java                                     |    2 
 opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciHandler.java                        |    5 
 opendj-server-legacy/src/main/java/org/opends/server/tools/makeldif/Branch.java                                      |    4 
 opendj-server-legacy/src/main/java/org/opends/server/protocols/internal/InternalClientConnection.java                |    2 
 opendj-server-legacy/src/main/java/org/opends/server/backends/task/TaskBackend.java                                  |    2 
 opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java   |   26 ++--
 opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java |    4 
 opendj-server-legacy/src/main/java/org/opends/server/plugins/ReferentialIntegrityPlugin.java                         |    2 
 opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/AttrHistoricalMultipleTest.java              |    2 
 opendj-server-legacy/src/main/java/org/opends/server/types/Entry.java                                                |    8 
 opendj-server-legacy/src/main/java/org/opends/server/backends/task/Task.java                                         |   16 +-
 opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/LDAPReplicationDomain.java                   |    4 
 opendj-server-legacy/src/main/java/org/opends/server/extensions/EntityTagVirtualAttributeProvider.java               |    4 
 opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciListenerManager.java                |    3 
 opendj-server-legacy/src/main/java/org/opends/server/plugins/SevenBitCleanPlugin.java                                |    4 
 opendj-server-legacy/src/test/java/org/opends/server/replication/protocol/ProtocolCompatibilityTest.java             |    4 
 opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/AttrHistoricalSingle.java                    |    2 
 opendj-server-legacy/src/main/java/org/opends/server/backends/MonitorBackend.java                                    |   18 +--
 opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/AttrHistoricalMultiple.java                  |    2 
 opendj-server-legacy/src/main/java/org/opends/server/backends/ChangelogBackend.java                                  |   12 +-
 opendj-server-legacy/src/main/java/org/opends/server/core/SchemaConfigManager.java                                   |    2 
 opendj-server-legacy/src/main/java/org/opends/server/tools/LDIFModify.java                                           |    2 
 opendj-server-legacy/src/main/java/org/opends/server/backends/task/TaskScheduler.java                                |    2 
 opendj-server-legacy/src/test/java/org/opends/server/plugins/UpdatePreOpPlugin.java                                  |    2 
 opendj-server-legacy/src/main/java/org/opends/server/types/AttributeBuilder.java                                     |   17 +--
 opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java                                     |   20 ++--
 opendj-server-legacy/src/main/java/org/opends/server/plugins/UniqueAttributePlugin.java                              |    6 
 opendj-server-legacy/src/test/java/org/opends/server/types/AttributeBuilderTest.java                                 |   14 +-
 opendj-server-legacy/src/main/java/org/opends/server/extensions/StaticGroup.java                                     |    2 
 opendj-server-legacy/src/main/java/org/opends/server/core/ModifyOperationBasis.java                                  |    2 
 opendj-server-legacy/src/test/java/org/opends/server/replication/protocol/SynchronizationMsgTest.java                |    8 
 opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/AttrHistoricalSingleTest.java                |    4 
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VLVIndex.java                                |    2 
 opendj-server-legacy/src/main/java/org/opends/server/extensions/ConfigFileHandler.java                               |    2 
 opendj-server-legacy/src/main/java/org/opends/server/types/Attribute.java                                            |    8 -
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2URI.java                                  |    2 
 opendj-server-legacy/src/main/java/org/opends/server/extensions/AttributeValuePasswordValidator.java                 |    2 
 opendj-server-legacy/src/main/java/org/opends/server/core/GroupManager.java                                          |    2 
 53 files changed, 132 insertions(+), 168 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciHandler.java b/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciHandler.java
index 21eac1b..1c5902f 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciHandler.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciHandler.java
@@ -710,7 +710,7 @@
     for (Modification m : modifications)
     {
       Attribute modAttr = m.getAttribute();
-      AttributeType modAttrType = modAttr.getAttributeType();
+      AttributeType modAttrType = modAttr.getAttributeDescription().getAttributeType();
 
       if (modAttrType.equals(aciType)
           /*
@@ -988,8 +988,7 @@
     final Attribute attr = e.getObjectClassAttribute();
     if (attr != null)
     {
-      AttributeType ocType = attr.getAttributeType();
-      typeList.add(ocType);
+      typeList.add(attr.getAttributeDescription().getAttributeType());
     }
     typeList.addAll(e.getUserAttributes().keySet());
     typeList.addAll(e.getOperationalAttributes().keySet());
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciListenerManager.java b/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciListenerManager.java
index 0e8fe74..f0e4806 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciListenerManager.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciListenerManager.java
@@ -271,8 +271,7 @@
       boolean hasAci = false, hasGlobalAci = false;
       for (Modification mod : mods)
       {
-        AttributeType attributeType = mod.getAttribute()
-            .getAttributeType();
+        AttributeType attributeType = mod.getAttribute().getAttributeDescription().getAttributeType();
         if (attributeType.equals(AciHandler.aciType))
         {
           hasAci = true;
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 c3e8767..6809312 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
@@ -28,6 +28,7 @@
 import static org.opends.messages.BackendMessages.*;
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
+import static org.opends.server.core.DirectoryServer.*;
 import static org.opends.server.replication.plugin.MultimasterReplication.*;
 import static org.opends.server.replication.server.changelog.api.DBCursor.KeyMatchingStrategy.*;
 import static org.opends.server.replication.server.changelog.api.DBCursor.PositionStrategy.*;
@@ -177,7 +178,6 @@
   private static final long CHANGE_NUMBER_FOR_EMPTY_CURSOR = 0L;
 
   private static final String CHANGE_NUMBER_ATTR = "changeNumber";
-  private static final String CHANGE_NUMBER_ATTR_LC = CHANGE_NUMBER_ATTR.toLowerCase();
   private static final String ENTRY_SENDER_ATTACHMENT = OID_ECL_COOKIE_EXCHANGE_CONTROL + ".entrySender";
 
   /** The set of objectclasses that will be used in root entry. */
@@ -199,11 +199,9 @@
   }
 
   /** The attribute type for the "creatorsName" attribute. */
-  private static final AttributeType CREATORS_NAME_TYPE =
-      DirectoryServer.getAttributeType(OP_ATTR_CREATORS_NAME_LC);
+  private static final AttributeType CREATORS_NAME_TYPE = getAttributeType(OP_ATTR_CREATORS_NAME);
   /** The attribute type for the "modifiersName" attribute. */
-  private static final AttributeType MODIFIERS_NAME_TYPE =
-      DirectoryServer.getAttributeType(OP_ATTR_MODIFIERS_NAME_LC);
+  private static final AttributeType MODIFIERS_NAME_TYPE = getAttributeType(OP_ATTR_MODIFIERS_NAME);
 
   /** The base DN for the external change log. */
   public static final DN CHANGELOG_BASE_DN;
@@ -1196,7 +1194,7 @@
       final StringBuilder builder = new StringBuilder(256);
       for (Attribute attr : addMsg.getAttributes())
       {
-        if (attr.getAttributeType().equals(CREATORS_NAME_TYPE) && !attr.isEmpty())
+        if (attr.getAttributeDescription().getAttributeType().equals(CREATORS_NAME_TYPE) && !attr.isEmpty())
         {
           // This attribute is not multi-valued.
           changeInitiatorsName = attr.iterator().next().toString();
@@ -1239,7 +1237,7 @@
       {
         final Attribute attr = mod.getAttribute();
         if (mod.getModificationType() == ModificationType.REPLACE
-            && attr.getAttributeType().equals(MODIFIERS_NAME_TYPE)
+            && attr.getAttributeDescription().getAttributeType().equals(MODIFIERS_NAME_TYPE)
             && !attr.isEmpty())
         {
           // This attribute is not multi-valued.
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 2a095ae..b8285ba 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
@@ -68,24 +68,16 @@
 {
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
-  /**
-   * The set of user-defined attributes that will be included in the base
-   * monitor entry.
-   */
+  /** The set of user-defined attributes that will be included in the base monitor entry.   */
   private ArrayList<Attribute> userDefinedAttributes;
-
   /** The set of objectclasses that will be used in monitor entries. */
   private final HashMap<ObjectClass, String> monitorObjectClasses = new LinkedHashMap<>(2);
-
   /** The DN of the configuration entry for this backend. */
   private DN configEntryDN;
-
   /** The current configuration state. */
   private MonitorBackendCfg currentConfig;
-
   /** The DN for the base monitor entry. */
   private DN baseMonitorDN;
-
   /** The set of base DNs for this backend. */
   private DN[] baseDNs;
 
@@ -627,7 +619,7 @@
     // Add all the user-defined attributes.
     for (final Attribute a : userDefinedAttributes)
     {
-      final AttributeType type = a.getAttributeType();
+      final AttributeType type = a.getAttributeDescription().getAttributeType();
 
       final HashMap<AttributeType, List<Attribute>> attrsMap =
           type.isOperational() ? monitorOperationalAttrs : monitorUserAttrs;
@@ -657,7 +649,7 @@
 
   private void put(final HashMap<AttributeType, List<Attribute>> attrsMap, final Attribute attr)
   {
-    attrsMap.put(attr.getAttributeType(), newArrayList(attr));
+    attrsMap.put(attr.getAttributeDescription().getAttributeType(), newArrayList(attr));
   }
 
   /**
@@ -782,7 +774,7 @@
     // Take the rest of the information from the monitor data.
     for (final Attribute a : monitorAttrs)
     {
-      final AttributeType type = a.getAttributeType();
+      final AttributeType type = a.getAttributeDescription().getAttributeType();
 
       List<Attribute> attrs = attrMap.get(type);
       if (attrs == null)
@@ -823,7 +815,7 @@
    */
   private boolean isMonitorConfigAttribute(final Attribute attribute)
   {
-    final AttributeType attrType = attribute.getAttributeType();
+    final AttributeType attrType = attribute.getAttributeDescription().getAttributeType();
     return attrType.hasName(ATTR_COMMON_NAME)
         || attrType.hasName(ATTR_BACKEND_ENABLED.toLowerCase())
         || attrType.hasName(ATTR_BACKEND_CLASS.toLowerCase())
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 23ed22d..ae31832 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
@@ -292,7 +292,7 @@
    */
   private boolean isDSEConfigAttribute(Attribute attribute)
   {
-    AttributeType attrType = attribute.getAttributeType();
+    AttributeType attrType = attribute.getAttributeDescription().getAttributeType();
     return attrType.hasName(ATTR_ROOT_DSE_SUBORDINATE_BASE_DN.toLowerCase())
         || attrType.hasName(ATTR_ROOTDSE_SHOW_ALL_ATTRIBUTES.toLowerCase())
         || attrType.hasName(ATTR_COMMON_NAME);
@@ -537,7 +537,7 @@
   {
     for (Attribute a : attributes)
     {
-      AttributeType type = a.getAttributeType();
+      AttributeType type = a.getAttributeDescription().getAttributeType();
 
       final Map<AttributeType, List<Attribute>> attrsMap = type.isOperational() && !showAllAttributes
           ? operationalAttrs
@@ -559,7 +559,7 @@
     if (!attribute.isEmpty())
     {
       List<Attribute> attrs = newArrayList(attribute);
-      final AttributeType attrType = attribute.getAttributeType();
+      final AttributeType attrType = attribute.getAttributeDescription().getAttributeType();
       if (showAllAttributes || !attrType.isOperational())
       {
         userAttrs.put(attrType, attrs);
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 6989716..94224ac 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
@@ -440,7 +440,7 @@
    */
   private boolean isSchemaConfigAttribute(Attribute attribute)
   {
-    AttributeType attrType = attribute.getAttributeType();
+    AttributeType attrType = attribute.getAttributeDescription().getAttributeType();
     return attrType.hasName(ATTR_SCHEMA_ENTRY_DN.toLowerCase()) ||
         attrType.hasName(ATTR_BACKEND_ENABLED.toLowerCase()) ||
         attrType.hasName(ATTR_BACKEND_CLASS.toLowerCase()) ||
@@ -637,7 +637,7 @@
       Map<AttributeType, List<Attribute>> userAttrs,
       Map<AttributeType, List<Attribute>> operationalAttrs)
   {
-    AttributeType type = attribute.getAttributeType();
+    AttributeType type = attribute.getAttributeDescription().getAttributeType();
     Map<AttributeType, List<Attribute>> attrsMap = type.isOperational() ? operationalAttrs : userAttrs;
     List<Attribute> attrs = attrsMap.get(type);
     if (attrs == null)
@@ -688,14 +688,14 @@
 
     Attribute attribute = builder.toAttribute();
     ArrayList<Attribute> attrList = newArrayList(attribute);
-    if (attribute.getAttributeType().isOperational()
+    if (attribute.getAttributeDescription().getAttributeType().isOperational()
         && (ignoreShowAllOption || !showAllAttributes))
     {
-      operationalAttrs.put(attribute.getAttributeType(), attrList);
+      operationalAttrs.put(attribute.getAttributeDescription().getAttributeType(), attrList);
     }
     else
     {
-      userAttrs.put(attribute.getAttributeType(), attrList);
+      userAttrs.put(attribute.getAttributeDescription().getAttributeType(), attrList);
     }
   }
 
@@ -766,7 +766,7 @@
       // to add a schema element that already exists and treat it as a
       // replacement of that existing element.
       Attribute a = m.getAttribute();
-      AttributeType at = a.getAttributeType();
+      AttributeType at = a.getAttributeDescription().getAttributeType();
       switch (m.getModificationType().asEnum())
       {
         case ADD:
@@ -1640,7 +1640,7 @@
       Attribute    a = m.getAttribute();
 
       if (m.getModificationType() != ModificationType.ADD ||
-          !a.getAttributeType().equals(objectClassesType))
+          !a.getAttributeDescription().getAttributeType().equals(objectClassesType))
       {
         continue;
       }
@@ -1908,7 +1908,7 @@
       Attribute    a = m.getAttribute();
 
       if (m.getModificationType() != ModificationType.ADD ||
-          !a.getAttributeType().equals(nameFormsType))
+          !a.getAttributeDescription().getAttributeType().equals(nameFormsType))
       {
         continue;
       }
@@ -2377,7 +2377,7 @@
       Attribute    a = m.getAttribute();
 
       if (m.getModificationType() != ModificationType.ADD ||
-          !a.getAttributeType().equals(ditStructureRulesType))
+          !a.getAttributeDescription().getAttributeType().equals(ditStructureRulesType))
       {
         continue;
       }
@@ -2916,7 +2916,7 @@
       for (Attribute attribute : attributes.values())
       {
         ArrayList<Attribute> attrList = newArrayList(attribute);
-        schemaEntry.putAttribute(attribute.getAttributeType(), attrList);
+        schemaEntry.putAttribute(attribute.getAttributeDescription().getAttributeType(), attrList);
       }
     }
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2URI.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2URI.java
index d4fe4e6..c28045c 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2URI.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2URI.java
@@ -314,7 +314,7 @@
     for (Modification mod : mods)
     {
       Attribute modAttr = mod.getAttribute();
-      AttributeType modAttrType = modAttr.getAttributeType();
+      AttributeType modAttrType = modAttr.getAttributeDescription().getAttributeType();
       if (modAttrType.equals(referralType))
       {
         Attribute a = mod.getAttribute();
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java
index 7622af0..d380364 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java
@@ -2505,7 +2505,7 @@
     for (Modification mod : mods)
     {
       Attribute modAttr = mod.getAttribute();
-      AttributeType modAttrType = modAttr.getAttributeType();
+      AttributeType modAttrType = modAttr.getAttributeDescription().getAttributeType();
       if (modAttrType.equals(indexAttributeType)
           || subTypes.contains(modAttrType))
       {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VLVIndex.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VLVIndex.java
index b674f3f..2677d81 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VLVIndex.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/VLVIndex.java
@@ -427,7 +427,7 @@
       final List<AttributeType> subTypes = DirectoryServer.getSchema().getSubTypes(attributeType);
       for (final Modification mod : mods)
       {
-        final AttributeType modAttrType = mod.getAttribute().getAttributeType();
+        final AttributeType modAttrType = mod.getAttribute().getAttributeDescription().getAttributeType();
         if (modAttrType.equals(attributeType)
             || subTypes.contains(modAttrType))
         {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/task/Task.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/task/Task.java
index e4b9a5a..6cb6689 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/task/Task.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/task/Task.java
@@ -510,8 +510,7 @@
     try
     {
       this.taskState = taskState;
-      Attribute attr = Attributes.create(ATTR_TASK_STATE, taskState.toString());
-      taskEntry.putAttribute(attr.getAttributeType(), newArrayList(attr));
+      putAttribute(ATTR_TASK_STATE, taskState.toString());
     }
     finally
     {
@@ -522,6 +521,12 @@
     }
   }
 
+  private void putAttribute(String attrName, String attrValue)
+  {
+    Attribute attr = Attributes.create(attrName, attrValue);
+    taskEntry.putAttribute(attr.getAttributeDescription().getAttributeType(), newArrayList(attr));
+  }
+
   /**
    * Sets a state for this task that is the result of a call to
    * {@link #interruptTask(TaskState, LocalizableMessage)}.
@@ -651,9 +656,7 @@
     {
       this.actualStartTime = actualStartTime;
       Date d = new Date(actualStartTime);
-      String startTimeStr = StaticUtils.formatDateTimeString(d);
-      Attribute attr = Attributes.create(ATTR_TASK_ACTUAL_START_TIME, startTimeStr);
-      taskEntry.putAttribute(attr.getAttributeType(), newArrayList(attr));
+      putAttribute(ATTR_TASK_ACTUAL_START_TIME, StaticUtils.formatDateTimeString(d));
     }
     finally
     {
@@ -701,8 +704,7 @@
       SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT_GMT_TIME);
       dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
       Date d = new Date(completionTime);
-      Attribute attr = Attributes.create(ATTR_TASK_COMPLETION_TIME, dateFormat.format(d));
-      taskEntry.putAttribute(attr.getAttributeType(), newArrayList(attr));
+      putAttribute(ATTR_TASK_COMPLETION_TIME, dateFormat.format(d));
     }
     finally
     {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/task/TaskBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/task/TaskBackend.java
index 1f687ec..c0ce643 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/task/TaskBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/task/TaskBackend.java
@@ -744,7 +744,7 @@
       }
 
       Attribute a = m.getAttribute();
-      AttributeType at = a.getAttributeType();
+      AttributeType at = a.getAttributeDescription().getAttributeType();
       if (!at.hasName(ATTR_TASK_STATE)) {
         return false;
       }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/task/TaskScheduler.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/task/TaskScheduler.java
index a49102e..6986511 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/task/TaskScheduler.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/task/TaskScheduler.java
@@ -202,7 +202,7 @@
 
       Attribute attr = Attributes.create(ATTR_TASK_STATE, TaskState.RECURRING.toString());
       Entry recurringTaskEntry = recurringTask.getRecurringTaskEntry();
-      recurringTaskEntry.putAttribute(attr.getAttributeType(), newArrayList(attr));
+      recurringTaskEntry.putAttribute(attr.getAttributeDescription().getAttributeType(), newArrayList(attr));
 
       if (scheduleIteration)
       {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/config/JMXMBean.java b/opendj-server-legacy/src/main/java/org/opends/server/config/JMXMBean.java
index 813b269..8ab3324 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/config/JMXMBean.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/config/JMXMBean.java
@@ -404,7 +404,7 @@
     {
       for (org.opends.server.types.Attribute a : monitor.getMonitorData())
       {
-        if (attrType.equals(a.getAttributeType()))
+        if (attrType.equals(a.getAttributeDescription().getAttributeType()))
         {
           if (a.isEmpty())
           {
@@ -589,7 +589,7 @@
       {
         for (org.opends.server.types.Attribute a : monitor.getMonitorData())
         {
-          if (attrType.equals(a.getAttributeType()))
+          if (attrType.equals(a.getAttributeDescription().getAttributeType()))
           {
             if (a.isEmpty())
             {
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 89ebb3a..7e19f0c 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
@@ -298,7 +298,7 @@
         try
         {
           Attribute attr = a.toAttribute();
-          AttributeType attrType = attr.getAttributeType();
+          AttributeType attrType = attr.getAttributeDescription().getAttributeType();
 
           // If the attribute type is marked "NO-USER-MODIFICATION" then fail
           // unless this is an internal operation or is related to
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/GroupManager.java b/opendj-server-legacy/src/main/java/org/opends/server/core/GroupManager.java
index 8088a3d..d88a2a4 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/GroupManager.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/GroupManager.java
@@ -780,7 +780,7 @@
   {
     for (Modification mod : modifications)
     {
-      if (mod.getAttribute().getAttributeType().isObjectClass())
+      if (mod.getAttribute().getAttributeDescription().getAttributeType().isObjectClass())
       {
         return true;
       }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/ModifyOperationBasis.java b/opendj-server-legacy/src/main/java/org/opends/server/core/ModifyOperationBasis.java
index efa327b..f1cd62b 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/ModifyOperationBasis.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/ModifyOperationBasis.java
@@ -217,7 +217,7 @@
         {
            Modification mod = m.toModification();
            Attribute attr = mod.getAttribute();
-           AttributeType type = attr.getAttributeType();
+           AttributeType type = attr.getAttributeDescription().getAttributeType();
 
            if(type.getSyntax().isBEREncodingRequired())
            {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/PasswordPolicyState.java b/opendj-server-legacy/src/main/java/org/opends/server/core/PasswordPolicyState.java
index 046ec90..e4c9bff 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/PasswordPolicyState.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/PasswordPolicyState.java
@@ -2370,7 +2370,7 @@
 
           if (removeAttrs != null)
           {
-            removeAttrs.add(Attributes.create(a.getAttributeType(), v));
+            removeAttrs.add(Attributes.create(a.getAttributeDescription().getAttributeType(), v));
           }
         }
         else
@@ -2392,7 +2392,7 @@
 
             if (removeAttrs != null)
             {
-              removeAttrs.add(Attributes.create(a.getAttributeType(), v));
+              removeAttrs.add(Attributes.create(a.getAttributeDescription().getAttributeType(), v));
             }
           }
         }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/SchemaConfigManager.java b/opendj-server-legacy/src/main/java/org/opends/server/core/SchemaConfigManager.java
index 0a06942..f5bf13e 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/SchemaConfigManager.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/SchemaConfigManager.java
@@ -1053,7 +1053,7 @@
    */
   public static boolean isSchemaAttribute(Attribute attribute)
   {
-    String attributeOid = attribute.getAttributeType().getOID();
+    String attributeOid = attribute.getAttributeDescription().getAttributeType().getOID();
     return attributeOid.equals("2.5.21.1") ||
         attributeOid.equals("2.5.21.2") ||
         attributeOid.equals("2.5.21.4") ||
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/AttributeValuePasswordValidator.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/AttributeValuePasswordValidator.java
index abdb16f..37362e8 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/AttributeValuePasswordValidator.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/AttributeValuePasswordValidator.java
@@ -109,7 +109,7 @@
     {
       for (int j = i + minSubstringLength; j <= passwordLength; j++)
       {
-        Attribute substring = Attributes.create(a.getAttributeType(),
+        Attribute substring = Attributes.create(a.getAttributeDescription().getAttributeType(),
             password.substring(i, j));
         for (ByteString val : a)
         {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/ConfigFileHandler.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/ConfigFileHandler.java
index ba0af0d..71268a7 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/ConfigFileHandler.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/ConfigFileHandler.java
@@ -1131,7 +1131,7 @@
            DirectoryServer.getAttributeType(ATTR_DEFAULT_ROOT_PRIVILEGE_NAME);
       for (Modification m : modifyOperation.getModifications())
       {
-        if (m.getAttribute().getAttributeType().equals(privType))
+        if (m.getAttribute().getAttributeDescription().getAttributeType().equals(privType))
         {
           if (! clientConnection.hasPrivilege(Privilege.PRIVILEGE_CHANGE,
                                               modifyOperation))
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/EntityTagVirtualAttributeProvider.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/EntityTagVirtualAttributeProvider.java
index 3cb6b3f..679a681 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/EntityTagVirtualAttributeProvider.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/EntityTagVirtualAttributeProvider.java
@@ -21,7 +21,7 @@
  * CDDL HEADER END
  *
  *
- *      Portions Copyright 2012-2015 ForgeRock AS.
+ *      Portions Copyright 2012-2016 ForgeRock AS.
  */
 package org.opends.server.extensions;
 
@@ -263,7 +263,7 @@
     }
 
     // Ignore excluded attributes.
-    if (cfg.getExcludedAttribute().contains(attribute.getAttributeType()))
+    if (cfg.getExcludedAttribute().contains(attribute.getAttributeDescription().getAttributeType()))
     {
       return;
     }
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 22d9f1d..7a6e403 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
@@ -555,7 +555,7 @@
       for (Modification mod : modifications)
       {
         Attribute attribute = mod.getAttribute();
-        if (attribute.getAttributeType().equals(memberAttributeType))
+        if (attribute.getAttributeDescription().getAttributeType().equals(memberAttributeType))
         {
           switch (mod.getModificationType().asEnum())
           {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/plugins/ReferentialIntegrityPlugin.java b/opendj-server-legacy/src/main/java/org/opends/server/plugins/ReferentialIntegrityPlugin.java
index 27c9658..8737f0b 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/plugins/ReferentialIntegrityPlugin.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/plugins/ReferentialIntegrityPlugin.java
@@ -1179,7 +1179,7 @@
         }
 
         // Verify that the value entry conforms to the filter.
-        SearchFilter filter = attrFiltMap.get(attr.getAttributeType());
+        SearchFilter filter = attrFiltMap.get(attr.getAttributeDescription().getAttributeType());
         if (filter != null && !filter.matchesEntry(valueEntry))
         {
           return PluginResult.PreOperation.stopProcessing(ResultCode.CONSTRAINT_VIOLATION,
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/plugins/SevenBitCleanPlugin.java b/opendj-server-legacy/src/main/java/org/opends/server/plugins/SevenBitCleanPlugin.java
index 00ab2d6..e426837 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/plugins/SevenBitCleanPlugin.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/plugins/SevenBitCleanPlugin.java
@@ -201,7 +201,7 @@
                   rawAttr.getAttributeType(), le.getErrorMessage()));
         }
 
-        if (! config.getAttributeType().contains(a.getAttributeType()))
+        if (!config.getAttributeType().contains(a.getAttributeDescription().getAttributeType()))
         {
           continue;
         }
@@ -277,7 +277,7 @@
                   rawAttr.getAttributeType(), le.getErrorMessage()));
         }
 
-        if (! config.getAttributeType().contains(a.getAttributeType()))
+        if (!config.getAttributeType().contains(a.getAttributeDescription().getAttributeType()))
         {
           continue;
         }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/plugins/UniqueAttributePlugin.java b/opendj-server-legacy/src/main/java/org/opends/server/plugins/UniqueAttributePlugin.java
index 3f22cda..825b916 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/plugins/UniqueAttributePlugin.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/plugins/UniqueAttributePlugin.java
@@ -252,7 +252,7 @@
     for (Modification m : modifyOperation.getModifications())
     {
       Attribute a = m.getAttribute();
-      AttributeType t = a.getAttributeType();
+      AttributeType t = a.getAttributeDescription().getAttributeType();
       if (! config.getType().contains(t))
       {
         // This modification isn't for a unique attribute.
@@ -441,7 +441,7 @@
     for (Modification m : modifyOperation.getModifications())
     {
       Attribute a = m.getAttribute();
-      AttributeType t = a.getAttributeType();
+      AttributeType t = a.getAttributeDescription().getAttributeType();
       if (! config.getType().contains(t))
       {
         // This modification isn't for a unique attribute.
@@ -829,7 +829,7 @@
     for (Modification m : modifyOperation.getModifications())
     {
       Attribute a = m.getAttribute();
-      AttributeType t = a.getAttributeType();
+      AttributeType t = a.getAttributeDescription().getAttributeType();
       if (! config.getType().contains(t))
       {
         // This modification isn't for a unique attribute.
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 2ba2c0a..8d585aa 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
@@ -844,7 +844,7 @@
     ArrayList<ByteString> duplicateValues = new ArrayList<>();
     for (Attribute a : addRecord.getAttributes())
     {
-      if (a.getAttributeType().isObjectClass())
+      if (a.getAttributeDescription().getAttributeType().isObjectClass())
       {
         for (ByteString v : a)
         {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/AttrHistoricalMultiple.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/AttrHistoricalMultiple.java
index 08cce09..c59b8dc 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/AttrHistoricalMultiple.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/AttrHistoricalMultiple.java
@@ -330,7 +330,7 @@
      */
 
     Attribute modAttr = mod.getAttribute();
-    AttributeType type = modAttr.getAttributeType();
+    AttributeType type = modAttr.getAttributeDescription().getAttributeType();
 
     switch (mod.getModificationType().asEnum())
     {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/AttrHistoricalSingle.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/AttrHistoricalSingle.java
index 5cc4904..4109695 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/AttrHistoricalSingle.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/AttrHistoricalSingle.java
@@ -163,7 +163,7 @@
           {
             deleteTime = csn;
           }
-          AttributeType type = modAttr.getAttributeType();
+          AttributeType type = modAttr.getAttributeDescription().getAttributeType();
           if (!modifiedEntry.hasAttribute(type))
           {
             conflict = true;
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/EntryHistorical.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/EntryHistorical.java
index 980a537..181af27 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/EntryHistorical.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/EntryHistorical.java
@@ -241,7 +241,7 @@
     // to the current modifications of the operation
     mods.add(new Modification(ModificationType.REPLACE, attr));
     // - update the already modified entry
-    modifiedEntry.removeAttribute(attr.getAttributeType());
+    modifiedEntry.removeAttribute(attr.getAttributeDescription().getAttributeType());
     modifiedEntry.addAttribute(attr, null);
   }
 
@@ -319,7 +319,7 @@
     AttrHistorical attrHist = attributesHistorical.get(attrDesc);
     if (attrHist == null)
     {
-      attrHist = AttrHistorical.createAttributeHistorical(modAttr.getAttributeType());
+      attrHist = AttrHistorical.createAttributeHistorical(modAttr.getAttributeDescription().getAttributeType());
       attributesHistorical.put(attrDesc, attrHist);
     }
     return attrHist;
@@ -714,7 +714,7 @@
    */
   public static boolean isHistoricalAttribute(Attribute attr)
   {
-    AttributeType attrType = attr.getAttributeType();
+    AttributeType attrType = attr.getAttributeDescription().getAttributeType();
     return HISTORICAL_ATTRIBUTE_NAME.equals(attrType.getNameOrOID());
   }
 
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 022888e..f8aa4e6 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
@@ -1436,7 +1436,7 @@
     {
       Modification mod = modsIt.next();
       Attribute attr = mod.getAttribute();
-      AttributeType attrType = attr.getAttributeType();
+      AttributeType attrType = attr.getAttributeDescription().getAttributeType();
       // Fractional replication ignores operational attributes
       if (attrType.isOperational()
           || isMandatoryAttribute(entryClasses, attrType)
@@ -2619,7 +2619,7 @@
       List<Modification> mods = op.getModifications();
       for (Modification mod : mods)
       {
-        AttributeType modAttrType = mod.getAttribute().getAttributeType();
+        AttributeType modAttrType = mod.getAttribute().getAttributeDescription().getAttributeType();
         if ((mod.getModificationType() == ModificationType.DELETE
               || mod.getModificationType() == ModificationType.REPLACE)
             && currentRDN.hasAttributeType(modAttrType))
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/protocol/ModifyCommonMsg.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/protocol/ModifyCommonMsg.java
index 55f2841..4ff0282 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/protocol/ModifyCommonMsg.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/protocol/ModifyCommonMsg.java
@@ -133,7 +133,7 @@
     for (Modification mod : mods)
     {
       Attribute attr = mod.getAttribute();
-      AttributeType type = attr.getAttributeType();
+      AttributeType type = attr.getAttributeDescription().getAttributeType();
       if (type != null
           && AttributeUsage.DSA_OPERATION.equals(type.getUsage()) )
       {
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 509b05f..a505c0d 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
@@ -189,8 +189,8 @@
           for (Modification m : modList)
           {
             Attribute a = m.getAttribute();
-            AttributeBuilder builder = new AttributeBuilder(a
-                .getAttributeType(), a.getName());
+            AttributeType attrType = a.getAttributeDescription().getAttributeType();
+            AttributeBuilder builder = new AttributeBuilder(attrType, attrType.getNameOrOID());
             for (ByteString v : a)
             {
               String s = v.toString();
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 a07a87a..5b8ca29 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
@@ -316,7 +316,7 @@
 
       for (Attribute a : add.getAttributes())
       {
-        AttributeType t = a.getAttributeType();
+        AttributeType t = a.getAttributeDescription().getAttributeType();
         if (t.isObjectClass())
         {
           for (ByteString v : a)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/makeldif/Branch.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/makeldif/Branch.java
index 218fb01..239a18e 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/makeldif/Branch.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/makeldif/Branch.java
@@ -151,7 +151,7 @@
             String[] valueStrings = new String[] { v.toString() };
             Tag[] tags = new Tag[] { new StaticTextTag() };
             tags[0].initializeForBranch(templateFile, this, valueStrings, 0, warnings);
-            lineList.add(new TemplateLine(a.getAttributeType(), 0, tags));
+            lineList.add(new TemplateLine(a.getAttributeDescription().getAttributeType(), 0, tags));
           }
           catch (Exception e)
           {
@@ -173,7 +173,7 @@
             String[] valueStrings = new String[] { v.toString() };
             Tag[] tags = new Tag[] { new StaticTextTag() };
             tags[0].initializeForBranch(templateFile, this, valueStrings, 0, warnings);
-            lineList.add(new TemplateLine(a.getAttributeType(), 0, tags));
+            lineList.add(new TemplateLine(a.getAttributeDescription().getAttributeType(), 0, tags));
           }
           catch (Exception e)
           {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/types/AbstractAttribute.java b/opendj-server-legacy/src/main/java/org/opends/server/types/AbstractAttribute.java
index 8a60fa2..0396866 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/types/AbstractAttribute.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/types/AbstractAttribute.java
@@ -110,13 +110,7 @@
   @Override
   public String getName()
   {
-    return getAttributeType().getNameOrOID();
-  }
-
-  @Override
-  public AttributeType getAttributeType()
-  {
-    return getAttributeDescription().getAttributeType();
+    return getAttributeDescription().getAttributeType().getNameOrOID();
   }
 
   /**
@@ -148,12 +142,13 @@
   @Override
   public int hashCode()
   {
-    int hashCode = getAttributeType().hashCode();
+    AttributeType attrType = getAttributeDescription().getAttributeType();
+    int hashCode = attrType.hashCode();
     for (ByteString value : this)
     {
       try
       {
-        MatchingRule eqRule = getAttributeType().getEqualityMatchingRule();
+        MatchingRule eqRule = attrType.getEqualityMatchingRule();
         hashCode += eqRule.normalizeAttributeValue(value).hashCode();
       }
       catch (DecodeException e)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/types/Attribute.java b/opendj-server-legacy/src/main/java/org/opends/server/types/Attribute.java
index 968113e..9c69305 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/types/Attribute.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/types/Attribute.java
@@ -33,7 +33,6 @@
 import org.forgerock.opendj.ldap.AttributeDescription;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ConditionResult;
-import org.forgerock.opendj.ldap.schema.AttributeType;
 
 /**
  * This class defines a data structure for storing and interacting
@@ -116,13 +115,6 @@
   boolean equals(Object o);
 
   /**
-   * Retrieves the attribute type for this attribute.
-   *
-   * @return The attribute type for this attribute.
-   */
-  AttributeType getAttributeType();
-
-  /**
    * Retrieves the attribute description for this attribute.
    *
    * @return The attribute description for this attribute.
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/types/AttributeBuilder.java b/opendj-server-legacy/src/main/java/org/opends/server/types/AttributeBuilder.java
index e21e760..ea9762e 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/types/AttributeBuilder.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/types/AttributeBuilder.java
@@ -31,7 +31,6 @@
 import java.util.AbstractSet;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.List;
@@ -152,6 +151,10 @@
       this.values = values;
     }
 
+    private AttributeType getAttributeType()
+    {
+      return getAttributeDescription().getAttributeType();
+    }
 
     @Override
     public final ConditionResult approximatelyEqualTo(ByteString assertionValue)
@@ -235,16 +238,6 @@
       return attributeDescription.hasOption(option);
     }
 
-    private Set<String> toSet(Iterable<String> options)
-    {
-      Set<String> results = new HashSet<>();
-      for (String option : options)
-      {
-        results.add(option);
-      }
-      return results;
-    }
-
     @Override
     public boolean hasOptions()
     {
@@ -957,7 +950,7 @@
    */
   public AttributeBuilder(Attribute attribute, boolean omitValues)
   {
-    this(attribute.getAttributeType(), attribute.getName());
+    this(attribute.getAttributeDescription().getAttributeType(), attribute.getName());
 
     setOptions(attribute.getAttributeDescription().getOptions());
     if (!omitValues)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/types/CollectiveVirtualAttribute.java b/opendj-server-legacy/src/main/java/org/opends/server/types/CollectiveVirtualAttribute.java
index 94d1fc8..86350d8 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/types/CollectiveVirtualAttribute.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/types/CollectiveVirtualAttribute.java
@@ -32,7 +32,6 @@
 import org.forgerock.opendj.ldap.AttributeDescription;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ConditionResult;
-import org.forgerock.opendj.ldap.schema.AttributeType;
 
 /**
  * This class defines a collective virtual attribute, which is a
@@ -77,11 +76,6 @@
   }
 
   @Override
-  public AttributeType getAttributeType() {
-    return attribute.getAttributeType();
-  }
-
-  @Override
   public ConditionResult greaterThanOrEqualTo(ByteString assertionValue) {
     return attribute.greaterThanOrEqualTo(assertionValue);
   }
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 eca0c70..f5a5a26 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
@@ -1350,7 +1350,7 @@
          throws DirectoryException
   {
     Attribute     a = mod.getAttribute();
-    AttributeType t = a.getAttributeType();
+    AttributeType t = a.getAttributeDescription().getAttributeType();
 
     if (t.isObjectClass())
     {
@@ -2937,7 +2937,7 @@
         List<Attribute> collectiveAttrList = subEntry.getCollectiveAttributes();
         for (Attribute collectiveAttr : collectiveAttrList)
         {
-          AttributeType attributeType = collectiveAttr.getAttributeType();
+          AttributeType attributeType = collectiveAttr.getAttributeDescription().getAttributeType();
           if (exclusionsNameSet.contains(attributeType.getNormalizedNameOrOID()))
           {
             continue;
@@ -3549,11 +3549,11 @@
         }
         // Decode the attribute.
         Attribute a = config.getCompressedSchema().decodeAttribute(entryBuffer);
-        List<Attribute> attrList = attributes.get(a.getAttributeType());
+        List<Attribute> attrList = attributes.get(a.getAttributeDescription().getAttributeType());
         if (attrList == null)
         {
           attrList = new ArrayList<>(1);
-          attributes.put(a.getAttributeType(), attrList);
+          attributes.put(a.getAttributeDescription().getAttributeType(), attrList);
         }
         attrList.add(a);
       }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/types/SubEntry.java b/opendj-server-legacy/src/main/java/org/opends/server/types/SubEntry.java
index 916e510..fc4ae40 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/types/SubEntry.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/types/SubEntry.java
@@ -256,7 +256,7 @@
       List<Attribute> subAttrList = entry.getAttributes();
       for (Attribute subAttr : subAttrList)
       {
-        AttributeType attrType = subAttr.getAttributeType();
+        AttributeType attrType = subAttr.getAttributeDescription().getAttributeType();
         if (attrType.isCollective())
         {
           CollectiveVirtualAttribute collectiveAttr =
@@ -265,7 +265,7 @@
         }
         else if (subAttr.hasOption(ATTR_OPTION_COLLECTIVE))
         {
-          AttributeBuilder builder = new AttributeBuilder(subAttr.getAttributeType());
+          AttributeBuilder builder = new AttributeBuilder(subAttr.getAttributeDescription().getAttributeType());
           builder.addAll(subAttr);
           for (String option : subAttr.getAttributeDescription().getOptions())
           {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/types/VirtualAttribute.java b/opendj-server-legacy/src/main/java/org/opends/server/types/VirtualAttribute.java
index 944f671..2ded510 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/types/VirtualAttribute.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/types/VirtualAttribute.java
@@ -192,7 +192,7 @@
   public void toString(StringBuilder buffer)
   {
     buffer.append("VirtualAttribute(");
-    buffer.append(getAttributeType().getNameOrOID());
+    buffer.append(getAttributeDescription().getAttributeType().getNameOrOID());
     buffer.append(", {");
     Utils.joinAsString(buffer, ", ", this);
     buffer.append("})");
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java
index 3bccf1f..58301f7 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java
@@ -838,7 +838,7 @@
     // Set the password changed time attribute.
     Attribute changedTime = Attributes.create(
         OP_ATTR_PWPOLICY_CHANGED_TIME, TimeThread.getGeneralizedTime());
-    entry.putAttribute(changedTime.getAttributeType(), newArrayList(changedTime));
+    entry.putAttribute(changedTime.getAttributeDescription().getAttributeType(), newArrayList(changedTime));
 
 
     // If we should force change on add, then set the appropriate flag.
@@ -847,7 +847,7 @@
       addPWPolicyControl(PasswordPolicyErrorType.CHANGE_AFTER_RESET);
 
       Attribute reset = Attributes.create(OP_ATTR_PWPOLICY_RESET_REQUIRED, "TRUE");
-      entry.putAttribute(reset.getAttributeType(), newArrayList(reset));
+      entry.putAttribute(reset.getAttributeDescription().getAttributeType(), newArrayList(reset));
     }
   }
 
@@ -932,7 +932,7 @@
     {
       for (Attribute a : attrList)
       {
-        Syntax syntax = a.getAttributeType().getSyntax();
+        Syntax syntax = a.getAttributeDescription().getAttributeType().getSyntax();
         if (syntax != null)
         {
           for (ByteString v : a)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java
index da12a94..baabf0f 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java
@@ -641,7 +641,7 @@
 
         // If the associated attribute type is marked NO-USER-MODIFICATION, then
         // refuse the update.
-        if (a.getAttributeType().isNoUserModification()
+        if (a.getAttributeDescription().getAttributeType().isNoUserModification()
             && !isInternalOperation()
             && !isSynchronizationOperation())
         {
@@ -676,7 +676,7 @@
       {
         // If the associated attribute type is marked NO-USER-MODIFICATION, then
         // refuse the update.
-        if (a.getAttributeType().isNoUserModification())
+        if (a.getAttributeDescription().getAttributeType().isNoUserModification())
         {
           if (!isInternalOperation() && !isSynchronizationOperation())
           {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
index df4ac33..f35fde0 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
@@ -726,7 +726,7 @@
     for (Modification m : modifications)
     {
       Attribute     a = m.getAttribute();
-      AttributeType t = a.getAttributeType();
+      AttributeType t = a.getAttributeDescription().getAttributeType();
 
 
       // If the attribute type is marked "NO-USER-MODIFICATION" then fail unless
@@ -808,7 +808,7 @@
 
     for (Modification m : modifications)
     {
-      AttributeType t = m.getAttribute().getAttributeType();
+      AttributeType t = m.getAttribute().getAttributeDescription().getAttributeType();
 
       // If the modification is updating the password attribute, then perform
       // any necessary password policy processing.  This processing should be
@@ -863,7 +863,7 @@
   {
     for (Modification m : modifications)
     {
-      if (isPassword(m.getAttribute().getAttributeType()))
+      if (isPassword(m.getAttribute().getAttributeDescription().getAttributeType()))
       {
         if (!selfChange && !clientConnection.hasPrivilege(Privilege.PASSWORD_RESET, this))
         {
@@ -1058,7 +1058,7 @@
 
         // We still need to check if the pre-encoded password matches
         // an existing value, to decrease the number of passwords.
-        List<Attribute> attrList = currentEntry.getAttribute(pwAttr.getAttributeType());
+        List<Attribute> attrList = currentEntry.getAttribute(pwAttr.getAttributeDescription().getAttributeType());
         if (attrList.isEmpty())
         {
           throw new DirectoryException(ResultCode.NO_SUCH_ATTRIBUTE, ERR_MODIFY_NO_EXISTING_VALUES.get());
@@ -1071,7 +1071,7 @@
       }
       else
       {
-        List<Attribute> attrList = currentEntry.getAttribute(pwAttr.getAttributeType());
+        List<Attribute> attrList = currentEntry.getAttribute(pwAttr.getAttributeDescription().getAttributeType());
         if (attrList.isEmpty())
         {
           throw new DirectoryException(ResultCode.NO_SUCH_ATTRIBUTE, ERR_MODIFY_NO_EXISTING_VALUES.get());
@@ -1181,7 +1181,7 @@
 
     // If the attribute to be added is the object class attribute
     // then make sure that all the object classes are known and not obsoleted.
-    if (attr.getAttributeType().isObjectClass())
+    if (attr.getAttributeDescription().getAttributeType().isObjectClass())
     {
       validateObjectClasses(attr);
     }
@@ -1217,7 +1217,7 @@
       Arg3<Object, Object, Object> invalidSyntaxNoValueErrorMsg) throws DirectoryException
   {
     AcceptRejectWarn syntaxPolicy = DirectoryServer.getSyntaxEnforcementPolicy();
-    Syntax syntax = attr.getAttributeType().getSyntax();
+    Syntax syntax = attr.getAttributeDescription().getAttributeType().getSyntax();
 
     LocalizableMessageBuilder invalidReason = new LocalizableMessageBuilder();
     for (ByteString v : attr)
@@ -1262,7 +1262,7 @@
    */
   private void validateObjectClasses(Attribute attr) throws DirectoryException
   {
-    final AttributeType attrType = attr.getAttributeType();
+    final AttributeType attrType = attr.getAttributeDescription().getAttributeType();
     Reject.ifFalse(attrType.isObjectClass());
     final MatchingRule eqRule = attrType.getEqualityMatchingRule();
 
@@ -1320,7 +1320,7 @@
     {
       if (missingValues.isEmpty())
       {
-        AttributeType t = attr.getAttributeType();
+        AttributeType t = attr.getAttributeDescription().getAttributeType();
 
         RDN rdn = modifiedEntry.getName().rdn();
         if (rdn != null
@@ -1367,7 +1367,7 @@
 
     // If the attribute to be replaced is the object class attribute
     // then make sure that all the object classes are known and not obsoleted.
-    if (attr.getAttributeType().isObjectClass())
+    if (attr.getAttributeDescription().getAttributeType().isObjectClass())
     {
       validateObjectClasses(attr);
     }
@@ -1376,7 +1376,7 @@
     modifiedEntry.replaceAttribute(attr);
 
     // Make sure that the RDN attribute value(s) has not been removed.
-    AttributeType t = attr.getAttributeType();
+    AttributeType t = attr.getAttributeDescription().getAttributeType();
     RDN rdn = modifiedEntry.getName().rdn();
     if (rdn != null
         && rdn.hasAttributeType(t)
@@ -1398,7 +1398,7 @@
   private void processIncrementModification(Attribute attr) throws DirectoryException
   {
     // The specified attribute type must not be an RDN attribute.
-    AttributeType t = attr.getAttributeType();
+    AttributeType t = attr.getAttributeDescription().getAttributeType();
     RDN rdn = modifiedEntry.getName().rdn();
     if (rdn != null && rdn.hasAttributeType(t))
     {
@@ -1418,7 +1418,7 @@
           ERR_MODIFY_INCREMENT_REQUIRES_SINGLE_VALUE.get(entryDN, attr.getName()));
     }
 
-    MatchingRule eqRule = attr.getAttributeType().getEqualityMatchingRule();
+    MatchingRule eqRule = attr.getAttributeDescription().getAttributeType().getEqualityMatchingRule();
     ByteString v = attr.iterator().next();
 
     long incrementValue;
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 7540b18..8217b03 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
@@ -271,7 +271,7 @@
         org.forgerock.opendj.ldap.Attribute attribute = new LinkedAttribute("test", "value1");
 
         org.opends.server.types.Attribute srvAttribute = toAttribute(attribute);
-        assertThat(srvAttribute.getAttributeType().getNameOrOID()).isEqualTo("test");
+        assertThat(srvAttribute.getAttributeDescription().getAttributeType().getNameOrOID()).isEqualTo("test");
         assertThat(srvAttribute.size()).isEqualTo(1);
         assertThat(srvAttribute.iterator().next().toString()).isEqualTo("value1");
 
@@ -279,7 +279,7 @@
                 new LinkedAttribute("Another", ByteString.valueOfUtf8("myValue"));
 
         org.opends.server.types.Attribute srvAttribute2 = toAttribute(attribute2);
-        assertThat(srvAttribute2.getAttributeType().getNameOrOID()).isEqualTo("Another");
+        assertThat(srvAttribute2.getAttributeDescription().getAttributeType().getNameOrOID()).isEqualTo("Another");
         assertThat(srvAttribute2.size()).isEqualTo(1);
         assertThat(srvAttribute2.iterator().next().toString()).isEqualTo("myValue");
     }
@@ -319,7 +319,7 @@
                 new LinkedAttribute("testMultiValuedAttribute", "value1", "value2");
 
         org.opends.server.types.Attribute srvAttribute = toAttribute(attribute);
-        assertThat(srvAttribute.getAttributeType().getNameOrOID())
+        assertThat(srvAttribute.getAttributeDescription().getAttributeType().getNameOrOID())
             .isEqualTo("testMultiValuedAttribute");
         assertThat(srvAttribute.size()).isEqualTo(2);
         Iterator<ByteString> iter = srvAttribute.iterator();
@@ -331,7 +331,7 @@
                         "value4");
 
         org.opends.server.types.Attribute srvAttribute2 = toAttribute(attribute2);
-        assertThat(srvAttribute2.getAttributeType().getNameOrOID())
+        assertThat(srvAttribute2.getAttributeDescription().getAttributeType().getNameOrOID())
             .isEqualTo("AnotherMultiValuedAttribute");
         assertThat(srvAttribute2.size()).isEqualTo(4);
         iter = srvAttribute2.iterator();
@@ -372,7 +372,7 @@
 
         org.opends.server.types.Modification srvModification = toModification(mod);
         assertThat(srvModification.getModificationType()).isEqualTo(ModificationType.ADD);
-        assertThat(srvModification.getAttribute().getAttributeType().getNameOrOID()).isEqualTo("test");
+        assertThat(srvModification.getAttribute().getAttributeDescription().getAttributeType().getNameOrOID()).isEqualTo("test");
         assertThat(srvModification.getAttribute().size()).isEqualTo(2);
 
         mod = new Modification(ModificationType.INCREMENT, attribute);
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 85b55d8..5cdb541 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
@@ -381,7 +381,7 @@
     retrieveCompletedOperationElements(addOperation);
 
     Entry e = DirectoryServer.getEntry(DN.valueOf("ou=People,o=test"));
-    List<Attribute> attrList = e.getAttribute(a.getAttributeType());
+    List<Attribute> attrList = e.getAttribute(a.getAttributeDescription());
     assertFalse(attrList.isEmpty());
 
     boolean foundFoo = false;
@@ -432,7 +432,7 @@
     retrieveCompletedOperationElements(addOperation);
 
     Entry e = DirectoryServer.getEntry(DN.valueOf("ou=People,o=test"));
-    assertThat(e.getAttribute(a.getAttributeType())).isNotEmpty();
+    assertThat(e.getAttribute(a.getAttributeDescription().getAttributeType())).isNotEmpty();
 
     UpdatePreOpPlugin.reset();
   }
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/plugins/UpdatePreOpPlugin.java b/opendj-server-legacy/src/test/java/org/opends/server/plugins/UpdatePreOpPlugin.java
index 1f31b01..e4dc410 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/plugins/UpdatePreOpPlugin.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/plugins/UpdatePreOpPlugin.java
@@ -141,7 +141,7 @@
 
     for (Attribute a : setAttributes)
     {
-      addOperation.setAttribute(a.getAttributeType(), newArrayList(a));
+      addOperation.setAttribute(a.getAttributeDescription().getAttributeType(), newArrayList(a));
     }
 
     for (ObjectClass oc : removeObjectClasses)
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/AttrHistoricalMultipleTest.java b/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/AttrHistoricalMultipleTest.java
index d7ef9a7..875f865 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/AttrHistoricalMultipleTest.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/AttrHistoricalMultipleTest.java
@@ -436,7 +436,7 @@
 
   private List<ByteString> getValues(Entry entry, Modification mod)
   {
-    return getValues(entry.getAttribute(mod.getAttribute().getAttributeType()));
+    return getValues(entry.getAttribute(mod.getAttribute().getAttributeDescription()));
   }
 
   private List<ByteString> getValues(List<Attribute> attributes)
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/AttrHistoricalSingleTest.java b/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/AttrHistoricalSingleTest.java
index cec073d..b7875b0 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/AttrHistoricalSingleTest.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/AttrHistoricalSingleTest.java
@@ -20,7 +20,7 @@
  *
  * CDDL HEADER END
  *
- *      Copyright 2015 ForgeRock AS
+ *      Copyright 2015-2016 ForgeRock AS
  */
 package org.opends.server.replication.plugin;
 
@@ -363,7 +363,7 @@
 
   private ByteString getActualValue(Entry entry, Modification mod)
   {
-    return getActualValue(entry.getAttribute(mod.getAttribute().getAttributeType()));
+    return getActualValue(entry.getAttribute(mod.getAttribute().getAttributeDescription()));
   }
 
   private ByteString getActualValue(List<Attribute> attributes)
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/replication/protocol/ProtocolCompatibilityTest.java b/opendj-server-legacy/src/test/java/org/opends/server/replication/protocol/ProtocolCompatibilityTest.java
index 364464d..e40b00e 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/replication/protocol/ProtocolCompatibilityTest.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/replication/protocol/ProtocolCompatibilityTest.java
@@ -202,13 +202,13 @@
     Attribute attr = Attributes.create("o", "com");
     List<Attribute> userAttributes = newArrayList(attr);
     HashMap<AttributeType, List<Attribute>> userAttList = new HashMap<>();
-    userAttList.put(attr.getAttributeType(), userAttributes);
+    userAttList.put(attr.getAttributeDescription().getAttributeType(), userAttributes);
 
 
     attr = Attributes.create("creatorsName", "dc=creator");
     List<Attribute> operationalAttributes = newArrayList(attr);
     HashMap<AttributeType, List<Attribute>> opList = new HashMap<>();
-    opList.put(attr.getAttributeType(), operationalAttributes);
+    opList.put(attr.getAttributeDescription().getAttributeType(), operationalAttributes);
 
     CSN csn = new CSN(TimeThread.getTime(), 123, 45);
 
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 06c483d..3d0df7f 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
@@ -447,13 +447,13 @@
     Attribute attr = Attributes.create("o", "com");
     List<Attribute> userAttributes = newArrayList(attr);
     Map<AttributeType, List<Attribute>> userAttList = new HashMap<>();
-    userAttList.put(attr.getAttributeType(), userAttributes);
+    userAttList.put(attr.getAttributeDescription().getAttributeType(), userAttributes);
 
 
     attr = Attributes.create("creatorsname", "dc=creator");
     List<Attribute> operationalAttributes = newArrayList(attr);
     Map<AttributeType, List<Attribute>> opList = new HashMap<>();
-    opList.put(attr.getAttributeType(), operationalAttributes);
+    opList.put(attr.getAttributeDescription().getAttributeType(), operationalAttributes);
 
     CSN csn = new CSN(TimeThread.getTime(), 123,  45);
 
@@ -1176,12 +1176,12 @@
 
     Attribute attr = Attributes.create("o", "com");
     Map<AttributeType, List<Attribute>> userAttList = new HashMap<>();
-    userAttList.put(attr.getAttributeType(), newArrayList(attr));
+    userAttList.put(attr.getAttributeDescription().getAttributeType(), newArrayList(attr));
 
 
     attr = Attributes.create("creatorsname", "dc=creator");
     Map<AttributeType, List<Attribute>> opList = new HashMap<>();
-    opList.put(attr.getAttributeType(), newArrayList(attr));
+    opList.put(attr.getAttributeDescription().getAttributeType(), newArrayList(attr));
 
     CSN csn = new CSN(TimeThread.getTime(), 123, 45);
     DN dn = DN.valueOf(rawDN);
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/types/AttributeBuilderTest.java b/opendj-server-legacy/src/test/java/org/opends/server/types/AttributeBuilderTest.java
index ce10e66..ffaa7dd 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/types/AttributeBuilderTest.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/types/AttributeBuilderTest.java
@@ -1050,7 +1050,7 @@
     Assert.assertEquals(builder.getAttributeType(), cnType);
 
     Attribute a = builder.toAttribute();
-    Assert.assertEquals(a.getAttributeType(), cnType);
+    Assert.assertEquals(a.getAttributeDescription().getAttributeType(), cnType);
     Assert.assertEquals(a.getName(), "cn");
   }
 
@@ -1070,7 +1070,7 @@
     Assert.assertEquals(builder.getAttributeType(), cnType);
 
     Attribute a = builder.toAttribute();
-    Assert.assertEquals(a.getAttributeType(), cnType);
+    Assert.assertEquals(a.getAttributeDescription().getAttributeType(), cnType);
     Assert.assertEquals(a.getName(), "cn");
   }
 
@@ -1090,7 +1090,7 @@
     Assert.assertEquals(builder.getAttributeType(), cnType);
 
     Attribute a = builder.toAttribute();
-    Assert.assertEquals(a.getAttributeType(), cnType);
+    Assert.assertEquals(a.getAttributeDescription().getAttributeType(), cnType);
     Assert.assertEquals(a.getName(), "CN");
   }
 
@@ -1111,7 +1111,7 @@
     Assert.assertEquals(builder.getAttributeType(), cnType);
 
     Attribute a = builder.toAttribute();
-    Assert.assertEquals(a.getAttributeType(), cnType);
+    Assert.assertEquals(a.getAttributeDescription().getAttributeType(), cnType);
     Assert.assertEquals(a.getName(), "CN");
   }
 
@@ -1264,7 +1264,7 @@
 
 
   /**
-   * Tests {@link Attribute#getAttributeType()}.
+   * Tests {@link AttributeDescription#getAttributeType()}.
    *
    * @param testCase
    *          Test case index (useful for debugging).
@@ -1285,7 +1285,7 @@
       throws Exception
   {
     // Check type and provided name.
-    Assert.assertEquals(a.getAttributeType(), type);
+    Assert.assertEquals(a.getAttributeDescription().getAttributeType(), type);
   }
 
 
@@ -1622,7 +1622,7 @@
         Assert.assertTrue(i.hasNext());
 
         ByteString v = i.next();
-        ByteString nv = a.getAttributeType().getEqualityMatchingRule().normalizeAttributeValue(v);
+        ByteString nv = a.getAttributeDescription().getAttributeType().getEqualityMatchingRule().normalizeAttributeValue(v);
         Assert.assertEquals(nv, ByteString.valueOfUtf8(value));
 
         try
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/util/TestAddChangeRecordEntry.java b/opendj-server-legacy/src/test/java/org/opends/server/util/TestAddChangeRecordEntry.java
index 20809c2..fb27096 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/util/TestAddChangeRecordEntry.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/util/TestAddChangeRecordEntry.java
@@ -71,7 +71,7 @@
 
     attribute = Attributes.create("cn", "hello world");
     attributes = new HashMap<>();
-    attributes.put(attribute.getAttributeType(), newArrayList(attribute));
+    attributes.put(attribute.getAttributeDescription().getAttributeType(), newArrayList(attribute));
   }
 
   /**

--
Gitblit v1.10.0