From 08a8540072a370b4e7e9604eb97818dcfd4d74c6 Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Mon, 31 Oct 2016 14:00:38 +0000
Subject: [PATCH] OPENDJ-2773 Remove duplicated server tools

---
 opendj-server-legacy/src/main/java/org/opends/server/config/ConfigurationHandler.java |   40 +++++++++++-----------------------------
 1 files changed, 11 insertions(+), 29 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/config/ConfigurationHandler.java b/opendj-server-legacy/src/main/java/org/opends/server/config/ConfigurationHandler.java
index 2644cad..fdd8b96 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/config/ConfigurationHandler.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/config/ConfigurationHandler.java
@@ -26,6 +26,7 @@
 import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.FileReader;
+import java.io.FileWriter;
 import java.io.IOException;
 import java.io.InputStream;
 import java.security.MessageDigest;
@@ -36,7 +37,6 @@
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -80,6 +80,8 @@
 import org.forgerock.opendj.ldap.schema.Schema;
 import org.forgerock.opendj.ldap.schema.SchemaBuilder;
 import org.forgerock.opendj.ldif.EntryReader;
+import org.forgerock.opendj.ldif.LDIF;
+import org.forgerock.opendj.ldif.LDIFChangeRecordReader;
 import org.forgerock.opendj.ldif.LDIFEntryReader;
 import org.forgerock.opendj.ldif.LDIFEntryWriter;
 import org.forgerock.util.Utils;
@@ -89,16 +91,12 @@
 import org.opends.server.core.SearchOperation;
 import org.opends.server.core.ServerContext;
 import org.opends.server.schema.GeneralizedTimeSyntax;
-import org.opends.server.tools.LDIFModify;
 import org.opends.server.types.DirectoryEnvironmentConfig;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.ExistingFileBehavior;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.LDIFExportConfig;
-import org.opends.server.types.LDIFImportConfig;
 import org.opends.server.util.LDIFException;
-import org.opends.server.util.LDIFReader;
-import org.opends.server.util.LDIFWriter;
 import org.opends.server.util.TimeThread;
 
 /**
@@ -1576,33 +1574,17 @@
    */
   private void applyChangesFile(File sourceFile, File changesFile) throws IOException, LDIFException
   {
-    // Create the appropriate LDIF readers and writer.
-    LDIFImportConfig sourceImportCfg = new LDIFImportConfig(sourceFile.getAbsolutePath());
-    sourceImportCfg.setValidateSchema(false);
 
-    LDIFImportConfig changesImportCfg = new LDIFImportConfig(changesFile.getAbsolutePath());
-    changesImportCfg.setValidateSchema(false);
-
-    String tempFile = changesFile.getAbsolutePath() + ".tmp";
-    LDIFExportConfig exportConfig = new LDIFExportConfig(tempFile, ExistingFileBehavior.OVERWRITE);
-
-    List<LocalizableMessage> errorList = new LinkedList<>();
-    boolean successful;
-    try (LDIFReader sourceReader = new LDIFReader(sourceImportCfg);
-        LDIFReader changesReader = new LDIFReader(changesImportCfg);
-        LDIFWriter targetWriter = new LDIFWriter(exportConfig))
+    final String tempFilePath = changesFile.getAbsolutePath() + ".tmp";
+    try (final LDIFEntryReader sourceReader = new LDIFEntryReader(new FileReader(sourceFile));
+         final LDIFChangeRecordReader changeRecordReader = new LDIFChangeRecordReader(new FileReader(changesFile));
+         final LDIFEntryWriter ldifWriter = new LDIFEntryWriter(new FileWriter(tempFilePath)))
     {
-      // Apply the changes and make sure there were no errors.
-      successful = LDIFModify.modifyLDIF(sourceReader, changesReader, targetWriter, errorList);
+      LDIF.copyTo(LDIF.patch(sourceReader, changeRecordReader), ldifWriter);
     }
-
-    if (!successful)
+    catch (final IOException e)
     {
-      for (LocalizableMessage s : errorList)
-      {
-        logger.error(ERR_CONFIG_ERROR_APPLYING_STARTUP_CHANGE, s);
-      }
-      throw new LDIFException(ERR_CONFIG_UNABLE_TO_APPLY_CHANGES_FILE.get(Utils.joinAsString("; ", errorList)));
+      throw new LDIFException(ERR_CONFIG_UNABLE_TO_APPLY_CHANGES_FILE.get(e.getLocalizedMessage()));
     }
 
     // Move the current config file out of the way and replace it with the updated version.
@@ -1612,7 +1594,7 @@
       oldSource.delete();
     }
     sourceFile.renameTo(oldSource);
-    new File(tempFile).renameTo(sourceFile);
+    new File(tempFilePath).renameTo(sourceFile);
 
     // Move the changes file out of the way so it doesn't get applied again.
     File newChanges = new File(changesFile.getAbsolutePath() + ".applied");

--
Gitblit v1.10.0