From 3fa56f675fdf8c49c9cb2abcfd478172e5acfe53 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Fri, 09 Sep 2016 09:45:24 +0000
Subject: [PATCH] OPENDJ-3089 Remove all remaining references to server Schema class

---
 opendj-server-legacy/src/test/java/org/opends/server/tasks/AddSchemaFileTaskTestCase.java |   81 ++++++++++++++++++++++------------------
 1 files changed, 45 insertions(+), 36 deletions(-)

diff --git a/opendj-server-legacy/src/test/java/org/opends/server/tasks/AddSchemaFileTaskTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/tasks/AddSchemaFileTaskTestCase.java
index 0888784..195e27c 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/tasks/AddSchemaFileTaskTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/tasks/AddSchemaFileTaskTestCase.java
@@ -32,6 +32,8 @@
 import org.opends.server.TestCaseUtils;
 import org.opends.server.backends.SchemaTestMatchingRuleImpl;
 import org.opends.server.core.DirectoryServer;
+import org.opends.server.core.SchemaHandler;
+import org.opends.server.core.SchemaHandler.SchemaUpdater;
 import org.opends.server.types.DirectoryException;
 import org.testng.annotations.AfterClass;
 import org.testng.annotations.BeforeClass;
@@ -46,7 +48,7 @@
 @SuppressWarnings("javadoc")
 public class AddSchemaFileTaskTestCase extends TasksTestCase
 {
-  private static List<MatchingRule> matchingRulesToRemove = new ArrayList<>();
+  private static List<String> matchingRulesToRemove = new ArrayList<>();
 
   /**
    * Make sure that the Directory Server is running.
@@ -59,29 +61,49 @@
     TestCaseUtils.startServer();
   }
 
+  private SchemaHandler getSchemaHandler()
+  {
+    return DirectoryServer.getInstance().getServerContext().getSchemaHandler();
+  }
+
   @AfterClass
   public void deregisterMatchingRules() throws Exception
   {
-    for (MatchingRule matchingRule : matchingRulesToRemove)
+    getSchemaHandler().updateSchema(new SchemaUpdater()
     {
-      org.opends.server.types.Schema schema = DirectoryServer.getSchema();
-      schema.deregisterMatchingRuleUse(schema.getMatchingRuleUse(matchingRule));
-      schema.deregisterMatchingRule(matchingRule);
-    }
+      @Override
+      public void update(SchemaBuilder builder) throws DirectoryException
+      {
+        for (String mrOid : matchingRulesToRemove)
+        {
+          builder.removeMatchingRule(mrOid);
+          builder.removeMatchingRuleUse(mrOid);
+        }
+      }
+    });
   }
 
-  private void registerNewMatchingRule(String name, String oid) throws DirectoryException
+  private void registerNewMatchingRule(final String name, final String oid) throws DirectoryException
   {
-    MatchingRule matchingRule = new SchemaBuilder(Schema.getCoreSchema())
-        .buildMatchingRule(oid)
-        .syntaxOID(CoreSchema.getDirectoryStringSyntax().getOID())
-        .names(name)
-        .implementation(new SchemaTestMatchingRuleImpl())
-        .addToSchema()
-        .toSchema()
-        .getMatchingRule(oid);
-    DirectoryServer.getSchema().registerMatchingRules(Arrays.asList(matchingRule), false);
-    matchingRulesToRemove.add(matchingRule);
+    getSchemaHandler().updateSchema(new SchemaUpdater()
+    {
+      @Override
+      public void update(SchemaBuilder builder) throws DirectoryException
+      {
+          builder
+            .buildMatchingRule(oid)
+            .syntaxOID(CoreSchema.getDirectoryStringSyntax().getOID())
+            .names(name)
+            .implementation(new SchemaTestMatchingRuleImpl())
+            .addToSchema();
+      }
+    });
+    matchingRulesToRemove.add(oid);
+  }
+
+  private String getSchemaDirectory()
+  {
+    return DirectoryServer.getEnvironmentConfig().getSchemaDirectory().getPath();
   }
 
   /**
@@ -98,14 +120,11 @@
     // milliseconds to make sure that any potential updates to the last
     // modification time that it won't have any chance of happening in the same
     // millisecond as the last update.
-    long beforeModifyTimestamp =
-              DirectoryServer.getSchema().getYoungestModificationTime();
+    long beforeModifyTimestamp = getSchemaHandler().getYoungestModificationTime();
     Thread.sleep(2);
 
-
     registerNewMatchingRule("testAddValidSchemaFileMatch", "1.3.6.1.4.1.26027.1.999.23");
 
-
     String schemaDirectory = getSchemaDirectory();
 
     String[] fileLines =
@@ -147,8 +166,7 @@
     assertEquals(resultCode, 0);
 
     waitTaskCompletedSuccessfully(DN.valueOf(taskDNStr));
-    assertFalse(DirectoryServer.getSchema().getYoungestModificationTime() ==
-                     beforeModifyTimestamp);
+    assertFalse(getSchemaHandler().getYoungestModificationTime() == beforeModifyTimestamp);
   }
 
   /**
@@ -165,8 +183,7 @@
     // milliseconds to make sure that any potential updates to the last
     // modification time that it won't have any chance of happening in the same
     // millisecond as the last update.
-    long beforeModifyTimestamp =
-              DirectoryServer.getSchema().getYoungestModificationTime();
+    long beforeModifyTimestamp = getSchemaHandler().getYoungestModificationTime();
     Thread.sleep(2);
 
     registerNewMatchingRule("testAddMultipleValidSchemaFiles1Match", "1.3.6.1.4.1.26027.1.999.24");
@@ -246,8 +263,7 @@
     assertEquals(resultCode, 0);
 
     waitTaskCompletedSuccessfully(DN.valueOf(taskDNStr));
-    assertFalse(DirectoryServer.getSchema().getYoungestModificationTime() ==
-                     beforeModifyTimestamp);
+    assertFalse(getSchemaHandler().getYoungestModificationTime() == beforeModifyTimestamp);
   }
 
   private void writeLines(File file, String[] lines) throws IOException
@@ -326,8 +342,7 @@
     // milliseconds to make sure that any potential updates to the last
     // modification time that it won't have any chance of happening in the same
     // millisecond as the last update.
-    long beforeModifyTimestamp =
-              DirectoryServer.getSchema().getYoungestModificationTime();
+    long beforeModifyTimestamp = getSchemaHandler().getYoungestModificationTime();
     Thread.sleep(2);
 
 
@@ -349,8 +364,7 @@
     assertEquals(resultCode, 0);
 
     waitTaskCompletedSuccessfully(DN.valueOf(taskDNStr));
-    assertFalse(DirectoryServer.getSchema().getYoungestModificationTime() ==
-                     beforeModifyTimestamp);
+    assertFalse(getSchemaHandler().getYoungestModificationTime() == beforeModifyTimestamp);
   }
 
   /**
@@ -385,9 +399,4 @@
     assertFalse(resultCode == 0);
     invalidFile.delete();
   }
-
-  private String getSchemaDirectory()
-  {
-    return DirectoryServer.getEnvironmentConfig().getSchemaDirectory().getPath();
-  }
 }

--
Gitblit v1.10.0