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

---
 opendj-server-legacy/src/main/java/org/opends/server/schema/CollationMatchingRuleFactory.java |   20 +++++++++++++++++---
 1 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/schema/CollationMatchingRuleFactory.java b/opendj-server-legacy/src/main/java/org/opends/server/schema/CollationMatchingRuleFactory.java
index 77f7f7d..ecdc0bb 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/schema/CollationMatchingRuleFactory.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/schema/CollationMatchingRuleFactory.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2008-2009 Sun Microsystems, Inc.
- *      Portions Copyright 2012-2015 ForgeRock AS
+ *      Portions Copyright 2012-2016 ForgeRock AS
  */
 package org.opends.server.schema;
 
@@ -45,6 +45,7 @@
 import org.opends.server.admin.std.server.CollationMatchingRuleCfg;
 import org.opends.server.api.MatchingRuleFactory;
 import org.opends.server.core.DirectoryServer;
+import org.opends.server.core.ServerContext;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.InitializationException;
 import org.opends.server.util.CollectionUtils;
@@ -70,6 +71,8 @@
   /** Map of OID and the Matching Rule. */
   private final Map<String, MatchingRule> matchingRules = new HashMap<>();
 
+  private ServerContext serverContext;
+
 
   /** Creates a new instance of CollationMatchingRuleFactory. */
   public CollationMatchingRuleFactory()
@@ -77,6 +80,17 @@
     super();
   }
 
+  /**
+   * Sets the server context.
+   *
+   * @param serverContext
+   *            The server context.
+   */
+  public void setServerContext(ServerContext serverContext)
+  {
+    this.serverContext = serverContext;
+  }
+
   /** {@inheritDoc} */
   @Override
   public final Collection<org.forgerock.opendj.ldap.schema.MatchingRule> getMatchingRules()
@@ -196,13 +210,13 @@
     // Clear the associated matching rules.
     resetRules();
 
-    final Schema coreSchema = CoreSchema.getInstance();
+    final Schema schema = serverContext.getSchemaNG();
     for (String collation : configuration.getCollation())
     {
       // validation has already been performed in isConfigurationChangeAcceptable()
       CollationMapper mapper = new CollationMapper(collation);
       String nOID = mapper.getNumericOID();
-      addMatchingRule(nOID, coreSchema.getMatchingRule(nOID));
+      addMatchingRule(nOID, schema.getMatchingRule(nOID));
     }
 
     try

--
Gitblit v1.10.0