From 632fa6abb85ff8534ac46f0ce356536a838a0b2e Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Fri, 14 Mar 2014 15:06:25 +0000
Subject: [PATCH] Checkpoint commit for OPENDJ-1308 Migrate schema support

---
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/FaxSyntax.java                                                                     |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/MatchingRuleUseSyntax.java                                                         |    5 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/NameFormSyntax.java                                                                |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/MatchingRuleConfigManager.java                                                       |    5 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/EnhancedGuideSyntax.java                                                           |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/AttributeTypeSyntax.java                                                           |   12 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/TeletexTerminalIdentifierSyntax.java                                               |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CountryStringSyntax.java                                                           |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/AciSyntax.java                                                                     |    6 
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/UserPasswordEqualityMatchingRuleTest.java                  |    4 
 opendj-sdk/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/NewAttributePanel.java                                                |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DistinguishedNameSyntax.java                                                       |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/GuideSyntax.java                                                                   |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/GeneralizedTimeSyntax.java                                                         |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/DirectoryConfig.java                                                                |    5 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/api/AuthenticationPolicyState.java                                                        |    2 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/SupportedAlgorithmSyntax.java                                                      |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EqualityIndexer.java                                                         |    4 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/TelexNumberSyntax.java                                                             |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/BitStringSyntax.java                                                               |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VerifyJob.java                                                               |    7 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/NumSubordinatesVirtualAttributeProvider.java                                   |    4 
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/DistinguishedNameEqualityMatchingRuleTest.java             |    4 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/OtherMailboxSyntax.java                                                            |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/PostalAddressSyntax.java                                                           |    6 
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/types/TestAttributeType.java                                      |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java                                                                 |    9 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/ObjectClassSyntax.java                                                             |    6 
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseExactEqualityMatchingRuleTest.java                     |    5 
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/IntegerEqualityMatchingRuleTest.java                       |    4 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/AttributeValues.java                                                                |    7 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/FaxNumberSyntax.java                                                               |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DeliveryMethodSyntax.java                                                          |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/PrintableStringSyntax.java                                                         |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java                             |    4 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CertificateListSyntax.java                                                         |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/AuthPasswordSyntax.java                                                            |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CertificateSyntax.java                                                             |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/controls/MatchedValuesFilter.java                                                         |    5 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/OIDSyntax.java                                                                     |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/UserPasswordSyntax.java                                                            |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/RDN.java                                                                            |    3 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/LDAPSyntaxDescriptionSyntax.java                                                   |   14 
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseExactIA5EqualityMatchingRuleTest.java                  |    5 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/Schema.java                                                                         |   22 -
 opendj-sdk/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/MatchingRulePanel.java                                                |    9 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/BooleanSyntax.java                                                                 |    6 
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/BitStringEqualityMatchingRuleTest.java                     |    5 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CertificateExactAssertionSyntax.java                                               |    6 
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/NumericStringEqualityMatchingRuleTest.java                 |    5 
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/DirectoryStringFirstComponentEqualityMatchingRuleTest.java |    5 
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/ProtocolInformationEqualityMatchingRuleTest.java           |    5 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/IntegerSyntax.java                                                                 |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/SubtreeSpecificationSyntax.java                                                    |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/IA5StringSyntax.java                                                               |    6 
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/BooleanEqualityMatchingRuleTest.java                       |    4 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/OctetStringSyntax.java                                                             |    6 
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/EqualityMatchingRuleTest.java                              |   30 --
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/AuthPasswordEqualityMatchingRuleTest.java                  |    4 
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/StringPrepProfileTestCase.java                             |   31 +-
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DirectoryStringSyntax.java                                                         |    6 
 opendj-sdk/opendj3-server-dev/replace.rb                                                                                                             |   63 +++++
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/UUIDEqualityMatchingRuleTest.java                          |    5 
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/UniqueMemberEqualityMatchingRuleTest.java                  |    4 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/api/AttributeSyntax.java                                                                  |    2 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/AttributeType.java                                                                  |    8 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/PresentationAddressSyntax.java                                                     |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/SubstringAssertionSyntax.java                                                      |    6 
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/WordEqualityMatchingRuleTest.java                          |    5 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/JPEGSyntax.java                                                                    |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CertificatePairSyntax.java                                                         |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/UTCTimeSyntax.java                                                                 |    6 
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseIgnoreIA5EqualityMatchingRuleTest.java                 |    5 
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseIgnoreEqualityMatchingRuleTest.java                    |    5 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/NumericStringSyntax.java                                                           |    6 
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/GeneralizedTimeEqualityMatchingRuleTest.java               |    5 
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CertificateExactMatchingRuleTest.java                      |   13 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/UUIDSyntax.java                                                                    |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/AttributeIndex.java                                                          |    4 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/ProtocolInformationSyntax.java                                                     |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/NameAndOptionalUIDSyntax.java                                                      |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/MatchingRuleSyntax.java                                                            |   12 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/TelephoneNumberSyntax.java                                                         |    6 
 opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/PresentationAddressEqualityMatchingRuleTest.java           |    5 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/PatternRDN.java                                                  |    4 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/BinarySyntax.java                                                                  |    4 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DITContentRuleSyntax.java                                                          |    6 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DITStructureRuleSyntax.java                                                        |    6 
 opendj-sdk/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/CustomAttributePanel.java                                             |    7 
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/StaticGroup.java                                                               |    4 
 90 files changed, 343 insertions(+), 304 deletions(-)

diff --git a/opendj-sdk/opendj3-server-dev/replace.rb b/opendj-sdk/opendj3-server-dev/replace.rb
index 26dbd93..25c6087 100755
--- a/opendj-sdk/opendj3-server-dev/replace.rb
+++ b/opendj-sdk/opendj3-server-dev/replace.rb
@@ -29,22 +29,73 @@
 
   # All directories that contains java code
   JAVA_DIRS = ["src/server", "src/quicksetup", "src/ads", "src/guitools", "tests/unit-tests-testng/src"]
+  TOOLS_DIR = ["src/server/org/opends/server/tools", "src/quicksetup", "src/ads", "src/guitools",
+    "tests/unit-tests-testng/src/server/org/opends/server/tools" ]
   SNMP_DIR = ["src/snmp/src"]
   DSML_DIR = ["src/dsml/org"]
 
- # Replacement for new config framework
-  CONFIG_EXC = {
+  # Replacement for matching rules
+  MRULES = {
+    :dirs => JAVA_DIRS + SNMP_DIR,
+    :extensions => ["java"],
+    :stopwords => ["MatchingRule"],
+    :replacements =>
+      [
+
+        /import org.opends.server.api.EqualityMatchingRule;/,
+        'import org.opends.server.api.MatchingRule;',
+
+        /\bEqualityMatchingRule\b/,
+        "MatchingRule",
+
+       ]
+  }
+
+ # Replacement for syntaxes
+  SYNTAX = {
+    :dirs => JAVA_DIRS + SNMP_DIR,
+    :extensions => ["java"],
+    :stopwords => ["Syntax"],
+    :replacements =>
+      [
+
+        /import org.opends.server.api.AttributeSyntax;/,
+        'import org.forgerock.opendj.ldap.schema.Syntax;',
+
+        /package org.opends.server.api;/,
+        "package org.opends.server.api;\n\nimport org.forgerock.opendj.ldap.schema.Syntax;",
+
+        /import org.opends.server.api.\*;/,
+        "import org.forgerock.opendj.ldap.schema.Syntax;\nimport org.opends.server.api.*;",
+
+        /\bAttributeSyntax\b<[^>]+>/,
+        'Syntax',
+
+        /\bAttributeSyntax\b/,
+        'Syntax'
+       ]
+  }
+
+ # Replacement for attribute type
+  ATTRTYPE = {
     :dirs => JAVA_DIRS + SNMP_DIR,
     :extensions => ["java"],
     :stopwords => [],
     :replacements =>
       [
-        /import org.opends.server.config.ConfigException;/,
-        'import org.forgerock.opendj.config.server.ConfigException;',
+
+        /import org.opends.server.types.AttributeType;/,
+        'import org.forgerock.opendj.ldap.schema.AttributeType;',
+
+        /package org.opends.server.types;/,
+        "package org.opends.server.types;\n\nimport org.forgerock.opendj.ldap.schema.AttributeType;",
+
+        /import org.opends.server.types.\*;/,
+        "import org.forgerock.opendj.ldap.schema.AttributeType;\nimport org.opends.server.types.*;",
+
        ]
   }
 
-
   # Replacement for new config framework
   NEW_CONFIG = {
     :dirs => JAVA_DIRS + SNMP_DIR,
@@ -273,7 +324,7 @@
   }
 
   # List of replacements to run
-  REPLACEMENTS = [ CONFIG_EXC ]
+  REPLACEMENTS = [ MRULES ]
 
 
   ################################### Processing methods ########################################
diff --git a/opendj-sdk/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/CustomAttributePanel.java b/opendj-sdk/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/CustomAttributePanel.java
index 2d35a35..4eb3f82 100644
--- a/opendj-sdk/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/CustomAttributePanel.java
+++ b/opendj-sdk/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/CustomAttributePanel.java
@@ -87,7 +87,6 @@
 import org.forgerock.i18n.LocalizableMessageBuilder;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
 import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
@@ -770,7 +769,7 @@
         {
           approximateElements.add(matchingRule);
         }
-        else if (matchingRule instanceof EqualityMatchingRule)
+        else if (matchingRule instanceof MatchingRule)
         {
           equalityElements.add(matchingRule);
         }
@@ -1193,7 +1192,7 @@
     }
   }
 
-  private EqualityMatchingRule getEqualityMatchingRule()
+  private MatchingRule getEqualityMatchingRule()
   {
     if (equality.getSelectedIndex() == 0)
     {
@@ -1201,7 +1200,7 @@
     }
     else
     {
-      return (EqualityMatchingRule)equality.getSelectedItem();
+      return (MatchingRule)equality.getSelectedItem();
     }
   }
 
diff --git a/opendj-sdk/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/MatchingRulePanel.java b/opendj-sdk/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/MatchingRulePanel.java
index 1444528..a1e845a 100644
--- a/opendj-sdk/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/MatchingRulePanel.java
+++ b/opendj-sdk/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/MatchingRulePanel.java
@@ -273,19 +273,20 @@
   static LocalizableMessage getTypeValue(MatchingRule matchingRule)
   {
     LocalizableMessage text;
-    if (matchingRule instanceof EqualityMatchingRule)
+    String matchingRuleName = matchingRule.getClass().getSimpleName().toLowerCase();
+    if (matchingRuleName.contains("equality"))
     {
       text = INFO_CTRL_PANEL_INDEX_EQUALITY.get();
     }
-    else if (matchingRule instanceof OrderingMatchingRule)
+    else if (matchingRuleName.contains("ordering"))
     {
       text = INFO_CTRL_PANEL_INDEX_ORDERING.get();
     }
-    else if (matchingRule instanceof SubstringMatchingRule)
+    else if (matchingRuleName.contains("substring"))
     {
       text = INFO_CTRL_PANEL_INDEX_SUBSTRING.get();
     }
-    else if (matchingRule instanceof ApproximateMatchingRule)
+    else if (matchingRuleName.contains("approximate"))
     {
       text = INFO_CTRL_PANEL_INDEX_APPROXIMATE.get();
     }
diff --git a/opendj-sdk/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/NewAttributePanel.java b/opendj-sdk/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/NewAttributePanel.java
index 0e69b5f..8f57a62 100644
--- a/opendj-sdk/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/NewAttributePanel.java
+++ b/opendj-sdk/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/NewAttributePanel.java
@@ -261,7 +261,7 @@
         {
           approximateElements.add(matchingRule);
         }
-        else if (matchingRule instanceof EqualityMatchingRule)
+        else if (matchingRule instanceof MatchingRule)
         {
           equalityElements.add(matchingRule);
         }
@@ -789,7 +789,7 @@
     }
   }
 
-  private EqualityMatchingRule getEqualityMatchingRule()
+  private MatchingRule getEqualityMatchingRule()
   {
     if (equality.getSelectedIndex() == 0)
     {
@@ -797,7 +797,7 @@
     }
     else
     {
-      return (EqualityMatchingRule)equality.getSelectedItem();
+      return (MatchingRule)equality.getSelectedItem();
     }
   }
 
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/api/AttributeSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/api/AttributeSyntax.java
index b423aab..ceb4672 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/api/AttributeSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/api/AttributeSyntax.java
@@ -153,7 +153,7 @@
    *          attributes with this syntax, or {@code null} if equality
    *          matches will not be allowed for this type by default.
    */
-  public abstract EqualityMatchingRule getEqualityMatchingRule();
+  public abstract MatchingRule getEqualityMatchingRule();
 
 
 
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/api/AuthenticationPolicyState.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/api/AuthenticationPolicyState.java
index eeeccce..0c9f27d 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/api/AuthenticationPolicyState.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/api/AuthenticationPolicyState.java
@@ -201,7 +201,7 @@
         final AttributeValue v = a.iterator().next();
         try
         {
-          EqualityMatchingRule rule = attributeType.getEqualityMatchingRule();
+          MatchingRule rule = attributeType.getEqualityMatchingRule();
           ByteString normValue = rule.normalizeAttributeValue(v.getValue());
           timeValue = GeneralizedTimeSyntax.decodeGeneralizedTimeValue(normValue);
         }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/PatternRDN.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/PatternRDN.java
index 09eb7f2..8e911ed 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/PatternRDN.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/authorization/dseecompat/PatternRDN.java
@@ -37,7 +37,7 @@
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.DecodeException;
 import org.forgerock.opendj.ldap.ResultCode;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.types.*;
 
@@ -276,7 +276,7 @@
       if (pattern.size() == 1)
       {
         // Handle this just like an equality filter.
-        EqualityMatchingRule rule = type.getEqualityMatchingRule();
+        MatchingRule rule = type.getEqualityMatchingRule();
         ByteString thatNormValue = rule.normalizeAttributeValue(value.getValue());
         return rule.getAssertion(pattern.get(0)).matches(thatNormValue).toBoolean();
       }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/AttributeIndex.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/AttributeIndex.java
index 6740516..53c3b07 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/AttributeIndex.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/AttributeIndex.java
@@ -801,7 +801,7 @@
     try
     {
       // Make a key from the normalized assertion value.
-      EqualityMatchingRule equalityRule = equalityFilter.getAttributeType().
+      MatchingRule equalityRule = equalityFilter.getAttributeType().
         getEqualityMatchingRule();
       byte[] keyBytes = equalityRule.normalizeAssertionValue(equalityFilter.
         getAssertionValue().getValue()).toByteArray();
@@ -2255,7 +2255,7 @@
      * 1. There is no matching rule provided
      * 2. The matching rule specified is actually the default equality.
      */
-    EqualityMatchingRule eqRule =
+    MatchingRule eqRule =
             indexConfig.getAttribute().getEqualityMatchingRule();
     if (nOID == null
         || nOID.equals(eqRule.getOID())
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EqualityIndexer.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EqualityIndexer.java
index fe443a1..a1b9d33 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EqualityIndexer.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/EqualityIndexer.java
@@ -33,7 +33,7 @@
 import org.forgerock.opendj.ldap.DecodeException;
 import org.forgerock.opendj.ldap.schema.Schema;
 import org.forgerock.opendj.ldap.spi.IndexingOptions;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.ExtensibleIndexer;
 import org.opends.server.types.AttributeType;
 
@@ -47,7 +47,7 @@
    * The attribute type equality matching rule which is also the
    * comparator for the index keys generated by this class.
    */
-  private EqualityMatchingRule equalityRule;
+  private MatchingRule equalityRule;
 
   /**
    * Create a new attribute equality indexer for the given index configuration.
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VerifyJob.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VerifyJob.java
index 497350e..394d630 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VerifyJob.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/backends/jeb/VerifyJob.java
@@ -34,7 +34,6 @@
 import org.forgerock.opendj.ldap.ConditionResult;
 import org.forgerock.opendj.ldap.DecodeException;
 import org.forgerock.opendj.ldap.ResultCode;
-import org.opends.server.api.EqualityMatchingRule;
 import org.opends.server.api.MatchingRule;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.types.*;
@@ -670,8 +669,10 @@
         }
 
         EntryIDSet entryIDList;
+
         try
         {
+          JebFormat.entryIDListFromDatabase(data.getData());
           entryIDList = new EntryIDSet(key.getData(), data.getData());
         }
         catch (Exception e)
@@ -803,6 +804,7 @@
         EntryIDSet entryIDList;
         try
         {
+          JebFormat.entryIDListFromDatabase(data.getData());
           entryIDList = new EntryIDSet(key.getData(), data.getData());
         }
         catch (Exception e)
@@ -1092,6 +1094,7 @@
         EntryIDSet entryIDList;
         try
         {
+          JebFormat.entryIDListFromDatabase(data.getData());
           entryIDList = new EntryIDSet(key.getData(), data.getData());
         }
         catch (Exception e)
@@ -1627,7 +1630,7 @@
     for (Attribute attr : attrList)
     {
       final AttributeType attrType = attr.getAttributeType();
-      EqualityMatchingRule equalityRule = attrType.getEqualityMatchingRule();
+      MatchingRule equalityRule = attrType.getEqualityMatchingRule();
       for (AttributeValue value : attr)
       {
         final ByteString bsValue = value.getValue();
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/controls/MatchedValuesFilter.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/controls/MatchedValuesFilter.java
index 96f4340..7e74a72 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/controls/MatchedValuesFilter.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/controls/MatchedValuesFilter.java
@@ -42,7 +42,6 @@
 import org.forgerock.opendj.ldap.DecodeException;
 import org.forgerock.util.Reject;
 import org.opends.server.api.ApproximateMatchingRule;
-import org.opends.server.api.EqualityMatchingRule;
 import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
@@ -150,7 +149,7 @@
   private final byte matchType;
 
   // The equality matching rule for this matched values filter.
-  private EqualityMatchingRule equalityMatchingRule;
+  private MatchingRule equalityMatchingRule;
 
   // The set of normalized subAny values for this matched values filter.
   private List<ByteString> normalizedSubAny;
@@ -1190,7 +1189,7 @@
    * @return  The equality matching rule that should be used for this matched
    *          values filter, or <CODE>null</CODE> if there is none.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     if (equalityMatchingRule == null)
     {
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java
index 689e9d9..1eb234c 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java
@@ -108,7 +108,6 @@
 import org.opends.server.api.ConnectionHandler;
 import org.opends.server.api.DirectoryServerMBean;
 import org.opends.server.api.EntryCache;
-import org.opends.server.api.EqualityMatchingRule;
 import org.opends.server.api.ExportTaskListener;
 import org.opends.server.api.ExtendedOperationHandler;
 import org.opends.server.api.ExtensibleMatchingRule;
@@ -3199,7 +3198,7 @@
    * @return  The set of equality matching rules registered with the Directory
    *          Server.
    */
-  public static ConcurrentMap<String, EqualityMatchingRule>
+  public static ConcurrentMap<String, MatchingRule>
                      getEqualityMatchingRules()
   {
     return directoryServer.schema.getEqualityMatchingRules();
@@ -3216,7 +3215,7 @@
    * @return  The requested equality matching rule, or <CODE>null</CODE> if no
    *          such matching rule has been defined in the server.
    */
-  public static EqualityMatchingRule getEqualityMatchingRule(String lowerName)
+  public static MatchingRule getEqualityMatchingRule(String lowerName)
   {
     return directoryServer.schema.getEqualityMatchingRule(lowerName);
   }
@@ -3236,7 +3235,7 @@
    *                              <CODE>overwriteExisting</CODE> flag is set to
    *                              <CODE>false</CODE>
    */
-  public static void registerEqualityMatchingRule(EqualityMatchingRule
+  public static void registerEqualityMatchingRule(MatchingRule
                                                        matchingRule,
                                                   boolean overwriteExisting)
          throws DirectoryException
@@ -3252,7 +3251,7 @@
    *
    * @param  matchingRule  The matching rule to deregister with the server.
    */
-  public static void deregisterEqualityMatchingRule(EqualityMatchingRule
+  public static void deregisterEqualityMatchingRule(MatchingRule
                                                     matchingRule)
   {
     directoryServer.schema.deregisterEqualityMatchingRule(matchingRule);
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/MatchingRuleConfigManager.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/MatchingRuleConfigManager.java
index a24ecc3..b356a15 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/MatchingRuleConfigManager.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/MatchingRuleConfigManager.java
@@ -43,7 +43,6 @@
 import org.opends.server.admin.server.ServerManagementContext;
 import org.opends.server.admin.std.meta.MatchingRuleCfgDefn;
 import org.opends.server.api.ApproximateMatchingRule;
-import org.opends.server.api.EqualityMatchingRule;
 import org.opends.server.api.MatchingRule;
 import org.opends.server.api.MatchingRuleFactory;
 import org.opends.server.api.OrderingMatchingRule;
@@ -277,7 +276,7 @@
             continue;
           }
 
-          EqualityMatchingRule emr = at.getEqualityMatchingRule();
+          MatchingRule emr = at.getEqualityMatchingRule();
           if ((emr != null) && oid.equals(emr.getOID()))
           {
             LocalizableMessage message =
@@ -414,7 +413,7 @@
               continue;
             }
 
-            EqualityMatchingRule emr = at.getEqualityMatchingRule();
+            MatchingRule emr = at.getEqualityMatchingRule();
             if ((emr != null) && oid.equals(emr.getOID()))
             {
               LocalizableMessage message =
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/NumSubordinatesVirtualAttributeProvider.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/NumSubordinatesVirtualAttributeProvider.java
index 36e8ab6..6e73a22 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/NumSubordinatesVirtualAttributeProvider.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/NumSubordinatesVirtualAttributeProvider.java
@@ -38,7 +38,7 @@
 import org.forgerock.opendj.ldap.ResultCode;
 import org.opends.server.admin.std.server.NumSubordinatesVirtualAttributeCfg;
 import org.opends.server.api.Backend;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.VirtualAttributeProvider;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.SearchOperation;
@@ -123,7 +123,7 @@
                           AttributeValue value)
   {
     Backend backend = DirectoryServer.getBackend(entry.getName());
-    EqualityMatchingRule eqRule = rule.getAttributeType().getEqualityMatchingRule();
+    MatchingRule eqRule = rule.getAttributeType().getEqualityMatchingRule();
 
     try
     {
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/StaticGroup.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/StaticGroup.java
index 5ca58a3..8335df1 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/StaticGroup.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/extensions/StaticGroup.java
@@ -44,7 +44,7 @@
 import org.forgerock.opendj.ldap.SearchScope;
 import org.opends.server.admin.std.server.GroupImplementationCfg;
 import org.opends.server.admin.std.server.StaticGroupImplementationCfg;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.Group;
 import org.opends.server.core.ModifyOperationBasis;
 import org.opends.server.core.DirectoryServer;
@@ -237,7 +237,7 @@
     {
       for (Attribute a : memberAttrList)
       {
-        EqualityMatchingRule eqRule =
+        MatchingRule eqRule =
             a.getAttributeType().getEqualityMatchingRule();
         for (AttributeValue v : a)
         {
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/AciSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/AciSyntax.java
index 0481ec2..4f4c1db 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/AciSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/AciSyntax.java
@@ -31,7 +31,7 @@
 import org.opends.server.admin.std.server.AttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -58,7 +58,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default substring matching rule for this syntax.
   private SubstringMatchingRule defaultSubstringMatchingRule;
@@ -145,7 +145,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/AttributeTypeSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/AttributeTypeSyntax.java
index b5139df..aee76e2 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/AttributeTypeSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/AttributeTypeSyntax.java
@@ -41,7 +41,7 @@
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -75,7 +75,7 @@
 
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -188,7 +188,7 @@
    * {@inheritDoc}
    */
   @Override
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
@@ -442,7 +442,7 @@
     AttributeType superiorType = null;
     AttributeSyntax<?> syntax = DirectoryServer.getDefaultAttributeSyntax();
     ApproximateMatchingRule approximateMatchingRule = null;
-    EqualityMatchingRule equalityMatchingRule = null;
+    MatchingRule equalityMatchingRule = null;
     OrderingMatchingRule orderingMatchingRule = null;
     SubstringMatchingRule substringMatchingRule = null;
     AttributeUsage attributeUsage = AttributeUsage.USER_APPLICATIONS;
@@ -656,8 +656,8 @@
         // for this attribute type.
         StringBuilder woidBuffer = new StringBuilder();
         pos = readWOID(lowerStr, woidBuffer, pos);
-        EqualityMatchingRule emr =
-             schema.getEqualityMatchingRule(woidBuffer.toString());
+        MatchingRule emr =
+             schema.getMatchingRule(woidBuffer.toString());
         if (emr == null)
         {
           // This is bad because we have no idea what the equality matching
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/AuthPasswordSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/AuthPasswordSyntax.java
index cccc523..12cc801 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/AuthPasswordSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/AuthPasswordSyntax.java
@@ -33,7 +33,7 @@
 import org.opends.server.admin.std.server.AttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -61,7 +61,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
 
 
@@ -144,7 +144,7 @@
    *          matches will not be allowed for this type by default.
    */
   @Override
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/BinarySyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/BinarySyntax.java
index fa57459..bb6b9f1 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/BinarySyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/BinarySyntax.java
@@ -49,7 +49,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -150,7 +150,7 @@
    *          matches will not be allowed for this type by default.
    */
   @Override
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/BitStringSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/BitStringSyntax.java
index 673a17d..c35e4d9 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/BitStringSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/BitStringSyntax.java
@@ -32,7 +32,7 @@
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -57,7 +57,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
 
 
@@ -134,7 +134,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/BooleanSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/BooleanSyntax.java
index 197c508..9f16c7e 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/BooleanSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/BooleanSyntax.java
@@ -34,7 +34,7 @@
 import org.opends.server.admin.std.server.AttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.opends.server.core.DirectoryServer;
@@ -59,7 +59,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
 
 
@@ -141,7 +141,7 @@
    *          matches will not be allowed for this type by default.
    */
   @Override
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CertificateExactAssertionSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CertificateExactAssertionSyntax.java
index 6092395..4d2998b 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CertificateExactAssertionSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CertificateExactAssertionSyntax.java
@@ -33,7 +33,7 @@
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -57,7 +57,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -146,7 +146,7 @@
   /**
    * {@inheritDoc}
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CertificateListSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CertificateListSyntax.java
index 12b7872..9200692 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CertificateListSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CertificateListSyntax.java
@@ -32,7 +32,7 @@
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -58,7 +58,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -155,7 +155,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CertificatePairSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CertificatePairSyntax.java
index f6aeb68..46c190f 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CertificatePairSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CertificatePairSyntax.java
@@ -32,7 +32,7 @@
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -58,7 +58,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -155,7 +155,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CertificateSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CertificateSyntax.java
index 822aed6..27f556b 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CertificateSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CertificateSyntax.java
@@ -37,7 +37,7 @@
 import org.opends.server.admin.std.server.CertificateAttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -69,7 +69,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -200,7 +200,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CountryStringSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CountryStringSyntax.java
index bb8e03a..244131e 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CountryStringSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/CountryStringSyntax.java
@@ -35,7 +35,7 @@
 import org.opends.server.admin.std.server.CountryStringAttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -69,7 +69,7 @@
   private ApproximateMatchingRule defaultApproximateMatchingRule;
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -211,7 +211,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DITContentRuleSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DITContentRuleSyntax.java
index d31d1f6..08b99d0 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DITContentRuleSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DITContentRuleSyntax.java
@@ -39,7 +39,7 @@
 import org.opends.server.admin.std.server.AttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -65,7 +65,7 @@
 
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -162,7 +162,7 @@
    * {@inheritDoc}
    */
   @Override
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DITStructureRuleSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DITStructureRuleSyntax.java
index 8c01b81..946618c 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DITStructureRuleSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DITStructureRuleSyntax.java
@@ -37,7 +37,7 @@
 import org.opends.server.admin.std.server.AttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -68,7 +68,7 @@
 
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -160,7 +160,7 @@
   /**
    * {@inheritDoc}
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DeliveryMethodSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DeliveryMethodSyntax.java
index e5f4de2..c1bb576 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DeliveryMethodSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DeliveryMethodSyntax.java
@@ -35,7 +35,7 @@
 import org.opends.server.admin.std.server.AttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -101,7 +101,7 @@
   private ApproximateMatchingRule defaultApproximateMatchingRule;
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -215,7 +215,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DirectoryStringSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DirectoryStringSyntax.java
index ee53e5c..5844b07 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DirectoryStringSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DirectoryStringSyntax.java
@@ -37,7 +37,7 @@
 import org.opends.server.admin.std.server.DirectoryStringAttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.opends.server.core.DirectoryServer;
@@ -70,7 +70,7 @@
   private DirectoryStringAttributeSyntaxCfg currentConfig;
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -207,7 +207,7 @@
    *          matches will not be allowed for this type by default.
    */
   @Override
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DistinguishedNameSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DistinguishedNameSyntax.java
index f2888a1..74c3d0d 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DistinguishedNameSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/DistinguishedNameSyntax.java
@@ -35,7 +35,7 @@
 import org.opends.server.admin.std.server.AttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.opends.server.core.DirectoryServer;
@@ -59,7 +59,7 @@
 
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default substring matching rule for this syntax.
   private SubstringMatchingRule defaultSubstringMatchingRule;
@@ -151,7 +151,7 @@
    *          matches will not be allowed for this type by default.
    */
   @Override
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/EnhancedGuideSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/EnhancedGuideSyntax.java
index d1fb216..5aba98f 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/EnhancedGuideSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/EnhancedGuideSyntax.java
@@ -32,7 +32,7 @@
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -58,7 +58,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -158,7 +158,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/FaxNumberSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/FaxNumberSyntax.java
index 3ceba51..feeb3bc 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/FaxNumberSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/FaxNumberSyntax.java
@@ -34,7 +34,7 @@
 import org.opends.server.admin.std.server.AttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -91,7 +91,7 @@
 
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -188,7 +188,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/FaxSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/FaxSyntax.java
index 77b6aa9..be3e2db 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/FaxSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/FaxSyntax.java
@@ -32,7 +32,7 @@
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -57,7 +57,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -154,7 +154,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/GeneralizedTimeSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/GeneralizedTimeSyntax.java
index 47d7175..63dc2fe 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/GeneralizedTimeSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/GeneralizedTimeSyntax.java
@@ -39,7 +39,7 @@
 import org.opends.server.admin.std.server.AttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -74,7 +74,7 @@
 
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -179,7 +179,7 @@
    *          matches will not be allowed for this type by default.
    */
   @Override
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/GuideSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/GuideSyntax.java
index 1375107..26d541c 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/GuideSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/GuideSyntax.java
@@ -32,7 +32,7 @@
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -58,7 +58,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -155,7 +155,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/IA5StringSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/IA5StringSyntax.java
index c3b7af0..0c3d437 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/IA5StringSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/IA5StringSyntax.java
@@ -31,7 +31,7 @@
 import org.opends.server.admin.std.server.AttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -58,7 +58,7 @@
   private ApproximateMatchingRule defaultApproximateMatchingRule;
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -166,7 +166,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/IntegerSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/IntegerSyntax.java
index 14abf7b..337c052 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/IntegerSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/IntegerSyntax.java
@@ -33,7 +33,7 @@
 import org.opends.server.admin.std.server.AttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.opends.server.core.DirectoryServer;
@@ -54,7 +54,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -155,7 +155,7 @@
    *          matches will not be allowed for this type by default.
    */
   @Override
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/JPEGSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/JPEGSyntax.java
index ce3a1b9..77efab2 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/JPEGSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/JPEGSyntax.java
@@ -36,7 +36,7 @@
 import org.opends.server.admin.std.server.JPEGAttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -67,7 +67,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -170,7 +170,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/LDAPSyntaxDescriptionSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/LDAPSyntaxDescriptionSyntax.java
index 551c278..85e8c75 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/LDAPSyntaxDescriptionSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/LDAPSyntaxDescriptionSyntax.java
@@ -68,7 +68,7 @@
 
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -170,7 +170,7 @@
    *          matches will not be allowed for this type by default.
    */
   @Override
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
@@ -1024,7 +1024,7 @@
      *          matches will not be allowed for this type by default.
      */
     @Override
-    public EqualityMatchingRule getEqualityMatchingRule()
+    public MatchingRule getEqualityMatchingRule()
     {
       return subSyntax.getEqualityMatchingRule();
     }
@@ -1101,7 +1101,7 @@
     private String definition;
 
     //The equality matching rule.
-    private EqualityMatchingRule equalityMatchingRule;
+    private MatchingRule equalityMatchingRule;
 
     //The substring matching rule.
     private SubstringMatchingRule substringMatchingRule;
@@ -1201,7 +1201,7 @@
      *          matches will not be allowed for this type by default.
      */
     @Override
-    public EqualityMatchingRule getEqualityMatchingRule()
+    public MatchingRule getEqualityMatchingRule()
     {
       if(equalityMatchingRule == null)
       {
@@ -1297,7 +1297,7 @@
     private String oid;
 
     //The equality matching rule.
-    private EqualityMatchingRule equalityMatchingRule;
+    private MatchingRule equalityMatchingRule;
 
     //The substring matching rule.
     private SubstringMatchingRule substringMatchingRule;
@@ -1410,7 +1410,7 @@
      *          matches will not be allowed for this type by default.
      */
     @Override
-    public EqualityMatchingRule getEqualityMatchingRule()
+    public MatchingRule getEqualityMatchingRule()
     {
       if(equalityMatchingRule == null)
       {
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/MatchingRuleSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/MatchingRuleSyntax.java
index 0e87d29..f2f6253 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/MatchingRuleSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/MatchingRuleSyntax.java
@@ -29,25 +29,27 @@
 
 
 
+
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.CopyOnWriteArrayList;
 
 import org.opends.server.admin.std.server.AttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
 import org.opends.server.core.DirectoryServer;
-
-
 import org.opends.server.types.*;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.forgerock.opendj.ldap.ByteSequence;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+
 import static org.opends.messages.SchemaMessages.*;
+
 import org.forgerock.i18n.LocalizableMessageBuilder;
+
 import static org.opends.server.schema.SchemaConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
@@ -66,7 +68,7 @@
 
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -168,7 +170,7 @@
    *          matches will not be allowed for this type by default.
    */
   @Override
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/MatchingRuleUseSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/MatchingRuleUseSyntax.java
index 08b798c..6c62fb7 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/MatchingRuleUseSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/MatchingRuleUseSyntax.java
@@ -37,7 +37,6 @@
 import org.opends.server.admin.std.server.AttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
 import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
@@ -69,7 +68,7 @@
 
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -161,7 +160,7 @@
   /**
    * {@inheritDoc}
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/NameAndOptionalUIDSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/NameAndOptionalUIDSyntax.java
index e1ec46f..f608f2d 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/NameAndOptionalUIDSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/NameAndOptionalUIDSyntax.java
@@ -31,7 +31,7 @@
 import org.opends.server.admin.std.server.AttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -61,7 +61,7 @@
 
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default substring matching rule for this syntax.
   private SubstringMatchingRule defaultSubstringMatchingRule;
@@ -150,7 +150,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/NameFormSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/NameFormSyntax.java
index cd1bf74..ead0863 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/NameFormSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/NameFormSyntax.java
@@ -39,7 +39,7 @@
 import org.opends.server.admin.std.server.AttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -64,7 +64,7 @@
 
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -161,7 +161,7 @@
    * {@inheritDoc}
    */
   @Override
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/NumericStringSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/NumericStringSyntax.java
index d09d826..914c8c5 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/NumericStringSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/NumericStringSyntax.java
@@ -32,7 +32,7 @@
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -58,7 +58,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -158,7 +158,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/OIDSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/OIDSyntax.java
index 67d848d..3fb483e 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/OIDSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/OIDSyntax.java
@@ -32,7 +32,7 @@
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -57,7 +57,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default substring matching rule for this syntax.
   private SubstringMatchingRule defaultSubstringMatchingRule;
@@ -144,7 +144,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/ObjectClassSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/ObjectClassSyntax.java
index ca972bf..41f8819 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/ObjectClassSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/ObjectClassSyntax.java
@@ -41,7 +41,7 @@
 import org.opends.server.admin.std.server.AttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -68,7 +68,7 @@
 
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -165,7 +165,7 @@
    * {@inheritDoc}
    */
   @Override
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/OctetStringSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/OctetStringSyntax.java
index 6b37aaa..a0e0536 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/OctetStringSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/OctetStringSyntax.java
@@ -32,7 +32,7 @@
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -57,7 +57,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -154,7 +154,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/OtherMailboxSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/OtherMailboxSyntax.java
index 7cad718..6072645 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/OtherMailboxSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/OtherMailboxSyntax.java
@@ -32,7 +32,7 @@
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -58,7 +58,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default substring matching rule for this syntax.
   private SubstringMatchingRule defaultSubstringMatchingRule;
@@ -147,7 +147,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/PostalAddressSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/PostalAddressSyntax.java
index a51fe5a..b46c8d2 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/PostalAddressSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/PostalAddressSyntax.java
@@ -32,7 +32,7 @@
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -59,7 +59,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default substring matching rule for this syntax.
   private SubstringMatchingRule defaultSubstringMatchingRule;
@@ -148,7 +148,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/PresentationAddressSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/PresentationAddressSyntax.java
index 7adc26a..5587d8a 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/PresentationAddressSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/PresentationAddressSyntax.java
@@ -32,7 +32,7 @@
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -60,7 +60,7 @@
   private ApproximateMatchingRule defaultApproximateMatchingRule;
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -168,7 +168,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/PrintableStringSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/PrintableStringSyntax.java
index 6e970a8..a250f67 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/PrintableStringSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/PrintableStringSyntax.java
@@ -32,7 +32,7 @@
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -62,7 +62,7 @@
   private ApproximateMatchingRule defaultApproximateMatchingRule;
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -170,7 +170,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/ProtocolInformationSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/ProtocolInformationSyntax.java
index 2730101..2e0e694 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/ProtocolInformationSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/ProtocolInformationSyntax.java
@@ -32,7 +32,7 @@
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -60,7 +60,7 @@
   private ApproximateMatchingRule defaultApproximateMatchingRule;
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -168,7 +168,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/SubstringAssertionSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/SubstringAssertionSyntax.java
index b37de33..5656c91 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/SubstringAssertionSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/SubstringAssertionSyntax.java
@@ -32,7 +32,7 @@
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -58,7 +58,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -158,7 +158,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/SubtreeSpecificationSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/SubtreeSpecificationSyntax.java
index 208a032..15d0225 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/SubtreeSpecificationSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/SubtreeSpecificationSyntax.java
@@ -36,7 +36,7 @@
 import org.opends.server.admin.std.server.AttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.opends.server.core.DirectoryServer;
@@ -55,7 +55,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -145,7 +145,7 @@
    *         default.
    */
   @Override
-  public EqualityMatchingRule getEqualityMatchingRule() {
+  public MatchingRule getEqualityMatchingRule() {
 
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/SupportedAlgorithmSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/SupportedAlgorithmSyntax.java
index 31a4c34..8f02e77 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/SupportedAlgorithmSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/SupportedAlgorithmSyntax.java
@@ -32,7 +32,7 @@
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -58,7 +58,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -158,7 +158,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/TelephoneNumberSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/TelephoneNumberSyntax.java
index a319440..3112693 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/TelephoneNumberSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/TelephoneNumberSyntax.java
@@ -36,7 +36,7 @@
 import org.opends.server.admin.std.server.TelephoneNumberAttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -74,7 +74,7 @@
   private boolean strictMode;
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default substring matching rule for this syntax.
   private SubstringMatchingRule defaultSubstringMatchingRule;
@@ -186,7 +186,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/TeletexTerminalIdentifierSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/TeletexTerminalIdentifierSyntax.java
index f1e7d60..f5871e3 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/TeletexTerminalIdentifierSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/TeletexTerminalIdentifierSyntax.java
@@ -34,7 +34,7 @@
 import org.opends.server.admin.std.server.AttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -89,7 +89,7 @@
 
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -189,7 +189,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/TelexNumberSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/TelexNumberSyntax.java
index 90a04bd..aea3c92 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/TelexNumberSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/TelexNumberSyntax.java
@@ -32,7 +32,7 @@
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -57,7 +57,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -154,7 +154,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/UTCTimeSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/UTCTimeSyntax.java
index 844d16f..039c6f3 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/UTCTimeSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/UTCTimeSyntax.java
@@ -38,7 +38,7 @@
 import org.opends.server.admin.std.server.AttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -91,7 +91,7 @@
 
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -212,7 +212,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/UUIDSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/UUIDSyntax.java
index eef80db..c07f1d2 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/UUIDSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/UUIDSyntax.java
@@ -32,7 +32,7 @@
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -56,7 +56,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   // The default ordering matching rule for this syntax.
   private OrderingMatchingRule defaultOrderingMatchingRule;
@@ -143,7 +143,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/UserPasswordSyntax.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/UserPasswordSyntax.java
index 4e627e5..aab0803 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/UserPasswordSyntax.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/schema/UserPasswordSyntax.java
@@ -33,7 +33,7 @@
 import org.opends.server.admin.std.server.AttributeSyntaxCfg;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -72,7 +72,7 @@
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
 
   // The default equality matching rule for this syntax.
-  private EqualityMatchingRule defaultEqualityMatchingRule;
+  private MatchingRule defaultEqualityMatchingRule;
 
   /**
    * Creates a new instance of this syntax.  Note that the only thing that
@@ -148,7 +148,7 @@
    *          attributes with this syntax, or <CODE>null</CODE> if equality
    *          matches will not be allowed for this type by default.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return defaultEqualityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/AttributeType.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/AttributeType.java
index 8e73b71..f14be6a 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/AttributeType.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/AttributeType.java
@@ -34,7 +34,7 @@
 import org.forgerock.opendj.ldap.schema.AttributeUsage;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.opends.server.core.DirectoryServer;
@@ -105,7 +105,7 @@
   private boolean mayHaveSubordinateTypes;
 
   // The equality matching rule for this attribute type.
-  private final EqualityMatchingRule equalityMatchingRule;
+  private final MatchingRule equalityMatchingRule;
 
   // The ordering matching rule for this attribute type.
   private final OrderingMatchingRule orderingMatchingRule;
@@ -253,7 +253,7 @@
                        AttributeSyntax<?> syntax,
                        ApproximateMatchingRule
                             approximateMatchingRule,
-                       EqualityMatchingRule equalityMatchingRule,
+                       MatchingRule equalityMatchingRule,
                        OrderingMatchingRule orderingMatchingRule,
                        SubstringMatchingRule substringMatchingRule,
                        AttributeUsage attributeUsage,
@@ -463,7 +463,7 @@
    * @return  The matching rule that should be used for equality
    *          matching with this attribute type.
    */
-  public EqualityMatchingRule getEqualityMatchingRule()
+  public MatchingRule getEqualityMatchingRule()
   {
     return equalityMatchingRule;
   }
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/AttributeValues.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/AttributeValues.java
index 18432ec..fbddf0b 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/AttributeValues.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/AttributeValues.java
@@ -32,6 +32,7 @@
 import org.forgerock.opendj.ldap.DecodeException;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 
 import static org.opends.messages.CoreMessages.*;
 
@@ -169,7 +170,7 @@
     {
       if (normalizedValue == null)
       {
-        EqualityMatchingRule equalityMatchingRule = attributeType
+        MatchingRule equalityMatchingRule = attributeType
             .getEqualityMatchingRule();
         if (equalityMatchingRule == null)
         {
@@ -242,8 +243,8 @@
     @Override
     public int hashCode()
     {
-      EqualityMatchingRule equalityMatchingRule = attributeType
-          .getEqualityMatchingRule();
+      EqualityMatchingRule equalityMatchingRule =
+          (EqualityMatchingRule) attributeType.getEqualityMatchingRule();
 
       ByteString valueToHash;
       try
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/DirectoryConfig.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/DirectoryConfig.java
index 1924fbc..f8bebac 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/DirectoryConfig.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/DirectoryConfig.java
@@ -37,14 +37,13 @@
 import org.opends.server.api.AttributeSyntax;
 import org.opends.server.api.ChangeNotificationListener;
 import org.opends.server.api.ConfigHandler;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.ExtendedOperationHandler;
 import org.opends.server.api.InvokableComponent;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SASLMechanismHandler;
 import org.opends.server.api.ServerShutdownListener;
 import org.opends.server.api.SubstringMatchingRule;
-import org.opends.server.api.MatchingRule;
 import org.opends.server.config.ConfigEntry;
 import org.forgerock.opendj.config.server.ConfigException;
 import org.opends.server.core.DirectoryServer;
@@ -244,7 +243,7 @@
    *          <CODE>null</CODE> if no such matching rule has been
    *          defined in the server.
    */
-  public static EqualityMatchingRule
+  public static MatchingRule
        getEqualityMatchingRule(String lowerName)
   {
     return DirectoryServer.getEqualityMatchingRule(lowerName);
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/RDN.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/RDN.java
index 7134035..c2337e5 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/RDN.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/RDN.java
@@ -34,7 +34,6 @@
 import org.forgerock.opendj.ldap.ByteStringBuilder;
 import org.forgerock.opendj.ldap.DecodeException;
 import org.forgerock.opendj.ldap.ResultCode;
-import org.opends.server.api.EqualityMatchingRule;
 import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.core.DirectoryServer;
@@ -1194,7 +1193,7 @@
       AttributeType type)
   {
     final OrderingMatchingRule omr = type.getOrderingMatchingRule();
-    final EqualityMatchingRule emr = type.getEqualityMatchingRule();
+    final MatchingRule emr = type.getEqualityMatchingRule();
 
     ByteString val1;
     ByteString val2;
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/Schema.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/Schema.java
index b3d75b2..6cfaae9 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/Schema.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/types/Schema.java
@@ -48,8 +48,8 @@
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
 import org.opends.server.api.EqualityMatchingRule;
-import org.opends.server.api.ExtensibleMatchingRule;
 import org.opends.server.api.MatchingRule;
+import org.opends.server.api.ExtensibleMatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.opends.server.core.DirectoryServer;
@@ -150,7 +150,7 @@
    * The set of equality matching rules for this schema, mapped between the
    * lowercase names and OID for the definition and the matching rule itself.
    */
-  private ConcurrentHashMap<String,EqualityMatchingRule>
+  private ConcurrentHashMap<String,MatchingRule>
                equalityMatchingRules;
 
   /**
@@ -276,7 +276,7 @@
     approximateMatchingRules =
          new ConcurrentHashMap<String,ApproximateMatchingRule>();
     equalityMatchingRules =
-         new ConcurrentHashMap<String,EqualityMatchingRule>();
+         new ConcurrentHashMap<String,MatchingRule>();
     orderingMatchingRules =
          new ConcurrentHashMap<String,OrderingMatchingRule>();
     substringMatchingRules =
@@ -1193,7 +1193,7 @@
     else if (matchingRule instanceof EqualityMatchingRule)
     {
       registerEqualityMatchingRule(
-           (EqualityMatchingRule) matchingRule, overwriteExisting);
+           matchingRule, overwriteExisting);
     }
     else if (matchingRule instanceof OrderingMatchingRule)
     {
@@ -1279,10 +1279,10 @@
       deregisterApproximateMatchingRule(
            (ApproximateMatchingRule) matchingRule);
     }
-    else if (matchingRule instanceof EqualityMatchingRule)
+    else if (matchingRule instanceof MatchingRule)
     {
       deregisterEqualityMatchingRule(
-           (EqualityMatchingRule) matchingRule);
+           matchingRule);
     }
     else if (matchingRule instanceof OrderingMatchingRule)
     {
@@ -1469,7 +1469,7 @@
    *
    * @return  The equality matching rule definitions for this schema.
    */
-  public ConcurrentHashMap<String,EqualityMatchingRule>
+  public ConcurrentHashMap<String,MatchingRule>
               getEqualityMatchingRules()
   {
     return equalityMatchingRules;
@@ -1489,7 +1489,7 @@
    *          equality matching rule is registered with the provided
    *          name or OID.
    */
-  public EqualityMatchingRule getEqualityMatchingRule(
+  public MatchingRule getEqualityMatchingRule(
                                    String lowerName)
   {
     return equalityMatchingRules.get(lowerName);
@@ -1511,9 +1511,7 @@
    *                              <CODE>overwriteExisting</CODE> flag
    *                              is set to <CODE>false</CODE>
    */
-  public void registerEqualityMatchingRule(
-                   EqualityMatchingRule matchingRule,
-                   boolean overwriteExisting)
+  public void registerEqualityMatchingRule(MatchingRule matchingRule, boolean overwriteExisting)
          throws DirectoryException
   {
     synchronized (matchingRules)
@@ -1580,7 +1578,7 @@
    *                       with this schema.
    */
   public void deregisterEqualityMatchingRule(
-                   EqualityMatchingRule matchingRule)
+                   MatchingRule matchingRule)
   {
     synchronized (matchingRules)
     {
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
index c6b4d1e..2eda84f 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
@@ -1471,7 +1471,7 @@
   {
     final AttributeType attrType = attr.getAttributeType();
     Reject.ifFalse(attrType.isObjectClass());
-    final EqualityMatchingRule eqRule = attrType.getEqualityMatchingRule();
+    final MatchingRule eqRule = attrType.getEqualityMatchingRule();
 
     for (AttributeValue v : attr)
     {
@@ -1700,7 +1700,7 @@
           ERR_MODIFY_INCREMENT_REQUIRES_SINGLE_VALUE.get(entryDN, attr.getName()));
     }
 
-    EqualityMatchingRule eqRule = attr.getAttributeType().getEqualityMatchingRule();
+    MatchingRule eqRule = attr.getAttributeType().getEqualityMatchingRule();
     AttributeValue v = attr.iterator().next();
 
     long incrementValue;
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/AuthPasswordEqualityMatchingRuleTest.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/AuthPasswordEqualityMatchingRuleTest.java
index 931be27..6ed444f 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/AuthPasswordEqualityMatchingRuleTest.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/AuthPasswordEqualityMatchingRuleTest.java
@@ -29,7 +29,7 @@
 import org.opends.server.admin.server.AdminTestCaseUtils;
 import org.opends.server.admin.std.meta.SaltedMD5PasswordStorageSchemeCfgDefn;
 import org.opends.server.admin.std.server.SaltedMD5PasswordStorageSchemeCfg;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.config.ConfigEntry;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.extensions.SaltedMD5PasswordStorageScheme;
@@ -125,7 +125,7 @@
    * {@inheritDoc}
    */
   @Override
-  protected EqualityMatchingRule getRule()
+  protected MatchingRule getRule()
   {
     return new AuthPasswordEqualityMatchingRule();
   }
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/BitStringEqualityMatchingRuleTest.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/BitStringEqualityMatchingRuleTest.java
index 031656f..d048e6c 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/BitStringEqualityMatchingRuleTest.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/BitStringEqualityMatchingRuleTest.java
@@ -22,10 +22,11 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.schema;
 
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.testng.annotations.DataProvider;
 
 /**
@@ -68,7 +69,7 @@
    * {@inheritDoc}
    */
   @Override
-  protected EqualityMatchingRule getRule()
+  protected MatchingRule getRule()
   {
     return new BitStringEqualityMatchingRule();
   }
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/BooleanEqualityMatchingRuleTest.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/BooleanEqualityMatchingRuleTest.java
index c92143e..7468109 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/BooleanEqualityMatchingRuleTest.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/BooleanEqualityMatchingRuleTest.java
@@ -26,7 +26,7 @@
  */
 package org.opends.server.schema;
 
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.schema.BooleanEqualityMatchingRuleTest;
 import org.testng.annotations.DataProvider;
 
@@ -72,7 +72,7 @@
    * {@inheritDoc}
    */
   @Override
-  protected EqualityMatchingRule getRule()
+  protected MatchingRule getRule()
   {
     return new BooleanEqualityMatchingRule();
   }
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseExactEqualityMatchingRuleTest.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseExactEqualityMatchingRuleTest.java
index 09f470d..506dcfa 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseExactEqualityMatchingRuleTest.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseExactEqualityMatchingRuleTest.java
@@ -22,10 +22,11 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.schema;
 
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.testng.annotations.DataProvider;
 
 /**
@@ -69,7 +70,7 @@
    * {@inheritDoc}
    */
   @Override
-  protected EqualityMatchingRule getRule()
+  protected MatchingRule getRule()
   {
     return new CaseExactEqualityMatchingRule();
   }
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseExactIA5EqualityMatchingRuleTest.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseExactIA5EqualityMatchingRuleTest.java
index 06c7401..88a76f8 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseExactIA5EqualityMatchingRuleTest.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseExactIA5EqualityMatchingRuleTest.java
@@ -22,10 +22,11 @@
  *
  *
  *      Copyright 2006-2009 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.schema;
 
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.testng.annotations.DataProvider;
 
 /**
@@ -71,7 +72,7 @@
    * {@inheritDoc}
    */
   @Override
-  protected EqualityMatchingRule getRule()
+  protected MatchingRule getRule()
   {
     return new CaseExactIA5EqualityMatchingRule();
   }
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseIgnoreEqualityMatchingRuleTest.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseIgnoreEqualityMatchingRuleTest.java
index 49c49f8..3ec09d2 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseIgnoreEqualityMatchingRuleTest.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseIgnoreEqualityMatchingRuleTest.java
@@ -22,10 +22,11 @@
  *
  *
  *      Copyright 2006-2009 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.schema;
 
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.testng.annotations.DataProvider;
 
 /**
@@ -74,7 +75,7 @@
    * {@inheritDoc}
    */
   @Override
-  protected EqualityMatchingRule getRule()
+  protected MatchingRule getRule()
   {
     return new CaseIgnoreEqualityMatchingRule();
   }
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseIgnoreIA5EqualityMatchingRuleTest.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseIgnoreIA5EqualityMatchingRuleTest.java
index 3308d19..fb4dcf8 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseIgnoreIA5EqualityMatchingRuleTest.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CaseIgnoreIA5EqualityMatchingRuleTest.java
@@ -22,10 +22,11 @@
  *
  *
  *      Copyright 2006-2009 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.schema;
 
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.testng.annotations.DataProvider;
 
 /**
@@ -66,7 +67,7 @@
    * {@inheritDoc}
    */
   @Override
-  protected EqualityMatchingRule getRule()
+  protected MatchingRule getRule()
   {
     return new CaseIgnoreIA5EqualityMatchingRule();
   }
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CertificateExactMatchingRuleTest.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CertificateExactMatchingRuleTest.java
index aa2d10f..bbf27ce 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CertificateExactMatchingRuleTest.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/CertificateExactMatchingRuleTest.java
@@ -27,7 +27,9 @@
  */
 package org.opends.server.schema;
 
+import org.forgerock.opendj.ldap.Assertion;
 import org.forgerock.opendj.ldap.ByteString;
+import org.forgerock.opendj.ldap.ConditionResult;
 import org.forgerock.opendj.ldap.DecodeException;
 import org.opends.server.util.Base64;
 import org.testng.annotations.DataProvider;
@@ -181,15 +183,10 @@
   {
     CertificateExactMatchingRule rule = getRule();
 
-    // normalize the 2 provided values and check that they are equals
-    ByteString normalizedAttributeValue =
-      rule.normalizeAttributeValue(attributeValue);
-    ByteString normalizedAssertionValue =
-      rule.normalizeAssertionValue(assertionValue);
+    Assertion assertion = rule.getAssertion(assertionValue);
+    ConditionResult condResult = assertion.matches(rule.normalizeAttributeValue(attributeValue));
 
-    Boolean liveResult = rule.areEqual(normalizedAttributeValue,
-                                       normalizedAssertionValue);
-    assertEquals(result, liveResult);
+    assertEquals(condResult, ConditionResult.valueOf(result));
   }
 
 
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/DirectoryStringFirstComponentEqualityMatchingRuleTest.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/DirectoryStringFirstComponentEqualityMatchingRuleTest.java
index 612cfab..9dd5a8d 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/DirectoryStringFirstComponentEqualityMatchingRuleTest.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/DirectoryStringFirstComponentEqualityMatchingRuleTest.java
@@ -22,10 +22,11 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.schema;
 
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.testng.annotations.DataProvider;
 
 /**
@@ -62,7 +63,7 @@
    * {@inheritDoc}
    */
   @Override
-  protected EqualityMatchingRule getRule()
+  protected MatchingRule getRule()
   {
     return new DirectoryStringFirstComponentEqualityMatchingRule();
   }
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/DistinguishedNameEqualityMatchingRuleTest.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/DistinguishedNameEqualityMatchingRuleTest.java
index 1aee3b3..d349c40 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/DistinguishedNameEqualityMatchingRuleTest.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/DistinguishedNameEqualityMatchingRuleTest.java
@@ -26,7 +26,7 @@
  */
 package org.opends.server.schema;
 
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.testng.annotations.DataProvider;
 
 /**
@@ -94,7 +94,7 @@
    * {@inheritDoc}
    */
   @Override
-  protected EqualityMatchingRule getRule()
+  protected MatchingRule getRule()
   {
     return new DistinguishedNameEqualityMatchingRule();
   }
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/EqualityMatchingRuleTest.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/EqualityMatchingRuleTest.java
index 12bc077..aedd26c 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/EqualityMatchingRuleTest.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/EqualityMatchingRuleTest.java
@@ -30,7 +30,7 @@
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ConditionResult;
 import org.forgerock.opendj.ldap.DecodeException;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.types.AcceptRejectWarn;
 import org.testng.annotations.DataProvider;
@@ -65,27 +65,7 @@
    *
    * @return An instance of the matching rule to test.
    */
-  protected abstract EqualityMatchingRule getRule();
-
-  /**
-   * Test the normalization and the comparison of valid values.
-   */
-  @Test(dataProvider= "equalitymatchingrules")
-  public void equalityMatchingRules(String value1,
-                             String value2, Boolean result) throws Exception
-  {
-    EqualityMatchingRule rule = getRule();
-
-    // normalize the 2 provided values and check that they are equals
-    ByteString normalizedValue1 =
-      rule.normalizeAttributeValue(ByteString.valueOf(value1));
-    ByteString normalizedValue2 =
-      rule.normalizeAttributeValue(ByteString.valueOf(value2));
-
-    Boolean liveResult = rule.areEqual(normalizedValue1, normalizedValue2);
-    assertEquals(result, liveResult);
-  }
-
+  protected abstract MatchingRule getRule();
 
   /**
    * Generate data for the EqualityMatching Rule test in warn mode.
@@ -110,7 +90,7 @@
     DirectoryServer.setSyntaxEnforcementPolicy(AcceptRejectWarn.WARN);
     try
     {
-      equalityMatchingRules(value1, value2, result);
+      testValuesMatch(value1, value2, result);
     }
     finally
     {
@@ -125,7 +105,7 @@
   public void equalityMatchingRulesInvalidValues(String value) throws Exception
     {
     // Get the instance of the rule to be tested.
-    EqualityMatchingRule rule = getRule();
+    MatchingRule rule = getRule();
 
     // normalize the 2 provided values
     try
@@ -157,7 +137,7 @@
   public void testValuesMatch(String value1,
                              String value2, Boolean result) throws Exception
   {
-    EqualityMatchingRule rule = getRule();
+    MatchingRule rule = getRule();
 
     // normalize the 2 provided values and check that they are equals
     ByteString normalizedValue1 =
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/GeneralizedTimeEqualityMatchingRuleTest.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/GeneralizedTimeEqualityMatchingRuleTest.java
index f5912d6..d5adb43 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/GeneralizedTimeEqualityMatchingRuleTest.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/GeneralizedTimeEqualityMatchingRuleTest.java
@@ -22,10 +22,11 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.schema;
 
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.testng.annotations.DataProvider;
 
 /**
@@ -92,7 +93,7 @@
    * {@inheritDoc}
    */
   @Override
-  protected EqualityMatchingRule getRule()
+  protected MatchingRule getRule()
   {
     return new GeneralizedTimeEqualityMatchingRule();
   }
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/IntegerEqualityMatchingRuleTest.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/IntegerEqualityMatchingRuleTest.java
index c887d05..1accc66 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/IntegerEqualityMatchingRuleTest.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/IntegerEqualityMatchingRuleTest.java
@@ -26,7 +26,7 @@
  */
 package org.opends.server.schema;
 
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.testng.annotations.DataProvider;
 
 /**
@@ -71,7 +71,7 @@
    * {@inheritDoc}
    */
   @Override
-  protected EqualityMatchingRule getRule()
+  protected MatchingRule getRule()
   {
     return new IntegerEqualityMatchingRule();
   }
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/NumericStringEqualityMatchingRuleTest.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/NumericStringEqualityMatchingRuleTest.java
index 3cac026..939dc4f 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/NumericStringEqualityMatchingRuleTest.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/NumericStringEqualityMatchingRuleTest.java
@@ -22,10 +22,11 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.schema;
 
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.testng.annotations.DataProvider;
 
 /**
@@ -67,7 +68,7 @@
    * {@inheritDoc}
    */
   @Override
-  protected EqualityMatchingRule getRule()
+  protected MatchingRule getRule()
   {
     return new NumericStringEqualityMatchingRule();
   }
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/PresentationAddressEqualityMatchingRuleTest.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/PresentationAddressEqualityMatchingRuleTest.java
index e04269c..f843f7a 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/PresentationAddressEqualityMatchingRuleTest.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/PresentationAddressEqualityMatchingRuleTest.java
@@ -22,10 +22,11 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.schema;
 
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.testng.annotations.DataProvider;
 
 /**
@@ -65,7 +66,7 @@
    * {@inheritDoc}
    */
   @Override
-  protected EqualityMatchingRule getRule()
+  protected MatchingRule getRule()
   {
     return new PresentationAddressEqualityMatchingRule();
   }
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/ProtocolInformationEqualityMatchingRuleTest.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/ProtocolInformationEqualityMatchingRuleTest.java
index 85b23d4..a279940 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/ProtocolInformationEqualityMatchingRuleTest.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/ProtocolInformationEqualityMatchingRuleTest.java
@@ -22,10 +22,11 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.schema;
 
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.testng.annotations.DataProvider;
 
 /**
@@ -65,7 +66,7 @@
    * {@inheritDoc}
    */
   @Override
-  protected EqualityMatchingRule getRule()
+  protected MatchingRule getRule()
   {
     return new ProtocolInformationEqualityMatchingRule();
   }
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/StringPrepProfileTestCase.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/StringPrepProfileTestCase.java
index 2163e97..0b383d9 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/StringPrepProfileTestCase.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/StringPrepProfileTestCase.java
@@ -28,7 +28,9 @@
 
 package org.opends.server.schema;
 
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
+import org.opends.server.api.MatchingRule;
+
 import static org.testng.Assert.*;
 
 import java.util.List;
@@ -37,7 +39,9 @@
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.protocols.ldap.LDAPFilter;
+import org.forgerock.opendj.ldap.Assertion;
 import org.forgerock.opendj.ldap.ByteString;
+import org.forgerock.opendj.ldap.ConditionResult;
 import org.forgerock.opendj.ldap.DereferenceAliasesPolicy;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.opends.server.types.SearchResultEntry;
@@ -137,14 +141,13 @@
                              String value2, Boolean result) throws Exception
   {
     //Take any caseExact matching rule.
-    EqualityMatchingRule rule = new CaseExactIA5EqualityMatchingRule();
-    ByteString normalizedValue1 =
-      rule.normalizeAttributeValue(ByteString.valueOf(value1));
-    ByteString normalizedValue2 =
-      rule.normalizeAttributeValue(ByteString.valueOf(value2));
+    MatchingRule rule = new CaseExactIA5EqualityMatchingRule();
 
-    Boolean liveResult = rule.areEqual(normalizedValue1, normalizedValue2);
-    assertEquals(result, liveResult);
+    Assertion assertion = rule.getAssertion(ByteString.valueOf(value2));
+    ConditionResult condResult = assertion.matches(rule.normalizeAttributeValue(ByteString.valueOf(value1)));
+
+    assertEquals(condResult, ConditionResult.valueOf(result));
+
   }
 
 
@@ -173,14 +176,12 @@
                              String value2, Boolean result) throws Exception
   {
     //Take any caseExact matching rule.
-    EqualityMatchingRule rule = new CaseIgnoreEqualityMatchingRule();
-    ByteString normalizedValue1 =
-      rule.normalizeAttributeValue(ByteString.valueOf(value1));
-    ByteString normalizedValue2 =
-      rule.normalizeAttributeValue(ByteString.valueOf(value2));
+    MatchingRule rule = new CaseIgnoreEqualityMatchingRule();
 
-    Boolean liveResult = rule.areEqual(normalizedValue1, normalizedValue2);
-    assertEquals(result, liveResult);
+    Assertion assertion = rule.getAssertion(ByteString.valueOf(value2));
+    ConditionResult condResult = assertion.matches(rule.normalizeAttributeValue(ByteString.valueOf(value1)));
+
+    assertEquals(condResult, ConditionResult.valueOf(result));
   }
 
 
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/UUIDEqualityMatchingRuleTest.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/UUIDEqualityMatchingRuleTest.java
index 06dcf40..f03343d 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/UUIDEqualityMatchingRuleTest.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/UUIDEqualityMatchingRuleTest.java
@@ -22,10 +22,11 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.schema;
 
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.testng.annotations.DataProvider;
 
 
@@ -72,7 +73,7 @@
    * {@inheritDoc}
    */
   @Override
-  protected EqualityMatchingRule getRule()
+  protected MatchingRule getRule()
   {
     return new UUIDEqualityMatchingRule();
   }
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/UniqueMemberEqualityMatchingRuleTest.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/UniqueMemberEqualityMatchingRuleTest.java
index 407b405..fc2c8fb 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/UniqueMemberEqualityMatchingRuleTest.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/UniqueMemberEqualityMatchingRuleTest.java
@@ -26,7 +26,7 @@
  */
 package org.opends.server.schema;
 
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.testng.annotations.DataProvider;
 
 /**
@@ -68,7 +68,7 @@
    * {@inheritDoc}
    */
   @Override
-  protected EqualityMatchingRule getRule()
+  protected MatchingRule getRule()
   {
     return new UniqueMemberEqualityMatchingRule();
   }
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/UserPasswordEqualityMatchingRuleTest.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/UserPasswordEqualityMatchingRuleTest.java
index 3348bbd..40d09b5 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/UserPasswordEqualityMatchingRuleTest.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/UserPasswordEqualityMatchingRuleTest.java
@@ -29,7 +29,7 @@
 import org.opends.server.admin.server.AdminTestCaseUtils;
 import org.opends.server.admin.std.meta.SaltedMD5PasswordStorageSchemeCfgDefn;
 import org.opends.server.admin.std.server.SaltedMD5PasswordStorageSchemeCfg;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.config.ConfigEntry;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.extensions.SaltedMD5PasswordStorageScheme;
@@ -118,7 +118,7 @@
    * {@inheritDoc}
    */
   @Override
-  protected EqualityMatchingRule getRule()
+  protected MatchingRule getRule()
   {
     return new UserPasswordEqualityMatchingRule();
   }
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/WordEqualityMatchingRuleTest.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/WordEqualityMatchingRuleTest.java
index fe48469..80f59a7 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/WordEqualityMatchingRuleTest.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/schema/WordEqualityMatchingRuleTest.java
@@ -22,10 +22,11 @@
  *
  *
  *      Copyright 2006-2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.schema;
 
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.testng.annotations.DataProvider;
 
 /**
@@ -38,7 +39,7 @@
    * {@inheritDoc}
    */
   @Override
-  protected EqualityMatchingRule getRule()
+  protected MatchingRule getRule()
   {
     return new WordEqualityMatchingRule();
   }
diff --git a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/types/TestAttributeType.java b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/types/TestAttributeType.java
index 882c6e6..8621436 100644
--- a/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/types/TestAttributeType.java
+++ b/opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/types/TestAttributeType.java
@@ -35,7 +35,7 @@
 import org.forgerock.util.Utils;
 import org.opends.server.api.ApproximateMatchingRule;
 import org.opends.server.api.AttributeSyntax;
-import org.opends.server.api.EqualityMatchingRule;
+import org.opends.server.api.MatchingRule;
 import org.opends.server.api.OrderingMatchingRule;
 import org.opends.server.api.SubstringMatchingRule;
 import org.opends.server.core.DirectoryServer;
@@ -64,7 +64,7 @@
     private ApproximateMatchingRule approximateMatchingRule;
 
     // The equality matching rule for this attribute type.
-    private EqualityMatchingRule equalityMatchingRule;
+    private MatchingRule equalityMatchingRule;
 
     // The ordering matching rule for this attribute type.
     private OrderingMatchingRule orderingMatchingRule;
@@ -313,7 +313,7 @@
      *          The equalityMatchingRule.
      */
     public void setEqualityMatchingRule(
-        EqualityMatchingRule equalityMatchingRule) {
+        MatchingRule equalityMatchingRule) {
       this.equalityMatchingRule = equalityMatchingRule;
     }
 

--
Gitblit v1.10.0