From 34eeb0f7371dcd4fb24dae2c25918a96d9a65f32 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Thu, 22 Nov 2007 11:52:59 +0000
Subject: [PATCH] Fix for issue 2613

---
 opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/upgrader/MigrationManager.java |  136 ++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 122 insertions(+), 14 deletions(-)

diff --git a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/upgrader/MigrationManager.java b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/upgrader/MigrationManager.java
index c32c544..f2ec21f 100644
--- a/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/upgrader/MigrationManager.java
+++ b/opendj-sdk/opends/src/quicksetup/org/opends/quicksetup/upgrader/MigrationManager.java
@@ -38,6 +38,7 @@
 import org.opends.quicksetup.Constants;
 
 import org.opends.quicksetup.util.ExternalTools;
+import org.opends.quicksetup.util.FileManager;
 import org.opends.quicksetup.util.Utils;
 import org.opends.quicksetup.util.OperationOutput;
 import org.opends.quicksetup.util.InProcessServerController;
@@ -184,6 +185,59 @@
   }
 
   /**
+   * Tells whether the ADS backend file must be migrated or not.
+   * This method assumes that the ADS backend file in the original install
+   * has not been overwritten.
+   * @return <CODE>true</CODE> if the tools properties file must be migrated
+   * and <CODE>false</CODE> otherwise.
+   * @throws IOException if there is an error accessing the installation
+   * information.
+   */
+  public boolean mustMigrateADS() throws IOException {
+    return !installation.getADSBackendFile().exists();
+  }
+
+  /**
+   * Migrates the ADS backend file.
+   * @param newADSFile the new ADS backend file.
+   * @throws ApplicationException if there is an error copying the new
+   * ADS backend file.
+   */
+  public void migrateADS(File newADSFile) throws ApplicationException
+  {
+    FileManager fileManager = new FileManager();
+    fileManager.copy(newADSFile, installation.getConfigurationDirectory(),
+        true);
+  }
+
+
+  /**
+   * Tells whether the tools properties file must be migrated or not.
+   * This method assumes that the tools properties file in the original install
+   * has not been overwritten.
+   * @return <CODE>true</CODE> if the tools properties file must be migrated
+   * and <CODE>false</CODE> otherwise.
+   */
+  public boolean mustMigrateToolProperties()
+  {
+   return !installation.getToolsPropertiesFile().exists();
+  }
+
+  /**
+   * Migrates the tools properties file.
+   * @param newPropertiesFile the new properties file.
+   * @throws ApplicationException if there is an error copying the new
+   * properties file.
+   */
+  public void migrateToolPropertiesFile(File newPropertiesFile)
+  throws ApplicationException
+  {
+    FileManager fileManager = new FileManager();
+    fileManager.copy(newPropertiesFile,
+        installation.getConfigurationDirectory(), true);
+  }
+
+  /**
    * Migrates a schema using the diff file generated by a call
    * to {@link MigrationManager#calculateSchemaCustomizations()}.
    * @throws ApplicationException if there is an error migrating the
@@ -223,7 +277,7 @@
    * {@link #calculateConfigCustomizations()} must first be made in
    * order for this value to be valid.
    *
-   * @return boolean where true indicates schema customization
+   * @return boolean where true indicates configuration customization
    * @throws java.io.IOException if there was a problem reading the
    *         current configuration file.
    */
@@ -231,6 +285,7 @@
     return installation.getCurrentConfiguration().hasBeenModified();
   }
 
+
   /**
    * Applies modifications contained in an LDIF file to the server.
    *
@@ -301,32 +356,82 @@
 
   private Message getModificationErrorMessage(ChangeRecordEntry cre) {
     MessageBuilder msg = new MessageBuilder();
-    msg.append(Constants.HTML_LINE_BREAK);
+    if (Utils.isCli())
+    {
+      msg.append(Constants.LINE_SEPARATOR);
+    }
+    else
+    {
+      msg.append(Constants.HTML_LINE_BREAK);
+    }
     if (cre != null) {
       switch (cre.getChangeOperationType()) {
         case MODIFY:
-          msg.append(INFO_ERROR_UPGRADE_MIGRATION_MODIFY.get(
-                  cre.getDN().toNormalizedString()));
+          if (Utils.isCli())
+          {
+            msg.append(INFO_ERROR_UPGRADE_MIGRATION_MODIFY_CLI.get(
+                cre.getDN().toNormalizedString()));
+          }
+          else
+          {
+            msg.append(INFO_ERROR_UPGRADE_MIGRATION_MODIFY.get(
+                cre.getDN().toNormalizedString()));
+          }
           break;
         case ADD:
-          msg.append(INFO_ERROR_UPGRADE_MIGRATION_ADD.get(
-                  cre.getDN().toNormalizedString()));
+          if (Utils.isCli())
+          {
+            msg.append(INFO_ERROR_UPGRADE_MIGRATION_ADD_CLI.get(
+                cre.getDN().toNormalizedString()));
+          }
+          else
+          {
+            msg.append(INFO_ERROR_UPGRADE_MIGRATION_ADD.get(
+                cre.getDN().toNormalizedString()));
+          }
           break;
         case DELETE:
-          msg.append(INFO_ERROR_UPGRADE_MIGRATION_DELETE.get(
-                  cre.getDN().toNormalizedString()));
+          if (Utils.isCli())
+          {
+            msg.append(INFO_ERROR_UPGRADE_MIGRATION_DELETE_CLI.get(
+                cre.getDN().toNormalizedString()));
+          }
+          else
+          {
+            msg.append(INFO_ERROR_UPGRADE_MIGRATION_DELETE.get(
+                cre.getDN().toNormalizedString()));
+          }
           break;
         default:
           LOG.log(Level.INFO, "Unexpected change operation type " +
-                cre.getChangeOperationType());
+              cre.getChangeOperationType());
+        if (Utils.isCli())
+        {
+          msg.append(INFO_ERROR_UPGRADE_MIGRATION_UNEXPECTED_CLI.get(
+              cre.getDN().toNormalizedString()));
+        }
+        else
+        {
           msg.append(INFO_ERROR_UPGRADE_MIGRATION_UNEXPECTED.get(
-                  cre.getDN().toNormalizedString()));
-          break;
+              cre.getDN().toNormalizedString()));
+        }
+        break;
       }
     }
-    msg.append(Constants.HTML_LINE_BREAK);
-    msg.append(Constants.HTML_LINE_BREAK);
-    msg.append(INFO_ERROR_UPGRADE_MIGRATION_NOTE.get(Utils.getPath(backupDir)));
+    if (Utils.isCli())
+    {
+      msg.append(Constants.LINE_SEPARATOR);
+      msg.append(Constants.LINE_SEPARATOR);
+      msg.append(INFO_ERROR_UPGRADE_MIGRATION_NOTE_CLI.get(
+          Utils.getPath(backupDir)));
+    }
+    else
+    {
+      msg.append(Constants.HTML_LINE_BREAK);
+      msg.append(Constants.HTML_LINE_BREAK);
+      msg.append(INFO_ERROR_UPGRADE_MIGRATION_NOTE.get(
+          Utils.getPath(backupDir)));
+    }
     return msg.toMessage();
   }
 
@@ -355,4 +460,7 @@
     return new File(backupDir, "schema.custom.diff");
   }
 
+  private File getCustomADSDiffFile() throws IOException {
+    return new File(backupDir, "admin-backend.custom.diff");
+  }
 }

--
Gitblit v1.10.0