From 5b42ca5a24a7b30dff7ed246ba104c64389607c9 Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 14 Jun 2016 08:47:39 +0000
Subject: [PATCH] Schema: code cleanup

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java |  104 +++++++++++++++++++---------------------------------
 1 files changed, 38 insertions(+), 66 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java
index d62ad64..0d5c8ff 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/SchemaBackend.java
@@ -22,6 +22,8 @@
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.messages.SchemaMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
+import static org.opends.server.core.DirectoryServer.*;
+import static org.opends.server.schema.GeneralizedTimeSyntax.*;
 import static org.opends.server.types.CommonSchemaElements.*;
 import static org.opends.server.util.CollectionUtils.*;
 import static org.opends.server.util.ServerConstants.*;
@@ -84,7 +86,6 @@
 import org.opends.server.core.SearchOperation;
 import org.opends.server.core.ServerContext;
 import org.opends.server.schema.AttributeTypeSyntax;
-import org.opends.server.schema.GeneralizedTimeSyntax;
 import org.opends.server.types.Attribute;
 import org.opends.server.types.AttributeBuilder;
 import org.opends.server.types.Attributes;
@@ -218,41 +219,21 @@
     creatorsName = newBaseDN;
     modifiersName = newBaseDN;
 
-    long createTime = DirectoryServer.getSchema().getOldestModificationTime();
-    createTimestamp =
-         GeneralizedTimeSyntax.createGeneralizedTimeValue(createTime);
-
-    long newModifyTime =
-        DirectoryServer.getSchema().getYoungestModificationTime();
-    modifyTimestamp =
-         GeneralizedTimeSyntax.createGeneralizedTimeValue(newModifyTime);
+    createTimestamp = createGeneralizedTimeValue(getSchema().getOldestModificationTime());
+    modifyTimestamp = createGeneralizedTimeValue(getSchema().getYoungestModificationTime());
 
     // Get the set of user-defined attributes for the configuration entry.  Any
     // attributes that we don't recognize will be included directly in the
     // schema entry.
     userDefinedAttributes = new ArrayList<>();
-    addAll(configEntry.getUserAttributes().values());
-    addAll(configEntry.getOperationalAttributes().values());
+    addAllNonSchemaConfigAttributes(userDefinedAttributes, configEntry.getUserAttributes().values());
+    addAllNonSchemaConfigAttributes(userDefinedAttributes, configEntry.getOperationalAttributes().values());
 
     showAllAttributes = cfg.isShowAllAttributes();
 
     currentConfig = cfg;
   }
 
-  private void addAll(Collection<List<Attribute>> attrsList)
-  {
-    for (List<Attribute> attrs : attrsList)
-    {
-      for (Attribute a : attrs)
-      {
-        if (! isSchemaConfigAttribute(a))
-        {
-          userDefinedAttributes.add(a);
-        }
-      }
-    }
-  }
-
   @Override
   public void openBackend() throws ConfigException, InitializationException
   {
@@ -290,42 +271,7 @@
       // Next, generate lists of elements from the previous concatenated schema.
       // If there isn't a previous concatenated schema, then use the base
       // schema for the current revision.
-      String concatFilePath;
-      File configFile       = new File(DirectoryServer.getConfigFile());
-      File configDirectory  = configFile.getParentFile();
-      File upgradeDirectory = new File(configDirectory, "upgrade");
-      File concatFile       = new File(upgradeDirectory, SCHEMA_CONCAT_FILE_NAME);
-      if (concatFile.exists())
-      {
-        concatFilePath = concatFile.getAbsolutePath();
-      }
-      else
-      {
-        concatFile = new File(upgradeDirectory, SCHEMA_BASE_FILE_NAME_WITHOUT_REVISION +
-            BuildVersion.instanceVersion().getRevision());
-        if (concatFile.exists())
-        {
-          concatFilePath = concatFile.getAbsolutePath();
-        }
-        else
-        {
-          String runningUnitTestsStr =
-               System.getProperty(PROPERTY_RUNNING_UNIT_TESTS);
-          if ("true".equalsIgnoreCase(runningUnitTestsStr))
-          {
-            Schema.writeConcatenatedSchema();
-            concatFile = new File(upgradeDirectory, SCHEMA_CONCAT_FILE_NAME);
-            concatFilePath = concatFile.getAbsolutePath();
-          }
-          else
-          {
-            LocalizableMessage message = ERR_SCHEMA_CANNOT_FIND_CONCAT_FILE.
-                get(upgradeDirectory.getAbsolutePath(), SCHEMA_CONCAT_FILE_NAME,
-                    concatFile.getName());
-            throw new InitializationException(message);
-          }
-        }
-      }
+      File concatFile = getConcatFile();
 
       Set<String> oldATs  = new LinkedHashSet<>();
       Set<String> oldOCs  = new LinkedHashSet<>();
@@ -334,7 +280,7 @@
       Set<String> oldDSRs = new LinkedHashSet<>();
       Set<String> oldMRUs = new LinkedHashSet<>();
       Set<String> oldLSs = new LinkedHashSet<>();
-      Schema.readConcatenatedSchema(concatFilePath, oldATs, oldOCs, oldNFs,
+      Schema.readConcatenatedSchema(concatFile, oldATs, oldOCs, oldNFs,
                                     oldDCRs, oldDSRs, oldMRUs,oldLSs);
 
       // Create a list of modifications and add any differences between the old
@@ -373,6 +319,34 @@
     currentConfig.addSchemaChangeListener(this);
   }
 
+  private File getConcatFile() throws InitializationException
+  {
+    File configDirectory  = new File(DirectoryServer.getConfigFile()).getParentFile();
+    File upgradeDirectory = new File(configDirectory, "upgrade");
+    File concatFile       = new File(upgradeDirectory, SCHEMA_CONCAT_FILE_NAME);
+    if (concatFile.exists())
+    {
+      return concatFile.getAbsoluteFile();
+    }
+
+    String fileName = SCHEMA_BASE_FILE_NAME_WITHOUT_REVISION + BuildVersion.instanceVersion().getRevision();
+    concatFile = new File(upgradeDirectory, fileName);
+    if (concatFile.exists())
+    {
+      return concatFile.getAbsoluteFile();
+    }
+
+    String runningUnitTestsStr = System.getProperty(PROPERTY_RUNNING_UNIT_TESTS);
+    if ("true".equalsIgnoreCase(runningUnitTestsStr))
+    {
+      Schema.writeConcatenatedSchema();
+      concatFile = new File(upgradeDirectory, SCHEMA_CONCAT_FILE_NAME);
+      return concatFile.getAbsoluteFile();
+    }
+    throw new InitializationException(ERR_SCHEMA_CANNOT_FIND_CONCAT_FILE.get(
+        upgradeDirectory.getAbsolutePath(), SCHEMA_CONCAT_FILE_NAME, concatFile.getName()));
+  }
+
   @Override
   public void closeBackend()
   {
@@ -556,8 +530,7 @@
       synchronized (this)
       {
         modifyTime = DirectoryServer.getSchema().getYoungestModificationTime();
-        modifyTimestamp = GeneralizedTimeSyntax
-            .createGeneralizedTimeValue(modifyTime);
+        modifyTimestamp = createGeneralizedTimeValue(modifyTime);
       }
     }
     addAttributeToSchemaEntry(
@@ -749,8 +722,7 @@
     }
 
     modifiersName = ByteString.valueOfUtf8(authzDN.toString());
-    modifyTimestamp = GeneralizedTimeSyntax.createGeneralizedTimeValue(
-                           System.currentTimeMillis());
+    modifyTimestamp = createGeneralizedTimeValue(System.currentTimeMillis());
   }
 
   private void addAttribute(Schema newSchema, Attribute a, Set<String> modifiedSchemaFiles) throws DirectoryException

--
Gitblit v1.10.0