From f2ed2687b95fc639e35208731e0968957b9204f6 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Tue, 09 Jun 2015 17:12:59 +0000
Subject: [PATCH] OPENDJ-2054: Remove dsframework tool during 2.6.x to 2.8.0 upgrade

---
 opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/Upgrade.java      |    7 +++++++
 opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/UpgradeTasks.java |   31 +++++++++++++++++++++++++++++++
 opendj-server-legacy/src/messages/org/opends/messages/tool.properties                |    1 +
 opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/UpgradeUtils.java |    7 ++++++-
 4 files changed, 45 insertions(+), 1 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/Upgrade.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/Upgrade.java
index aca4732..78b1221 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/Upgrade.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/Upgrade.java
@@ -51,6 +51,8 @@
 import static org.opends.server.tools.upgrade.FormattedNotificationCallback.*;
 import static org.opends.server.tools.upgrade.LicenseFile.*;
 import static org.opends.server.tools.upgrade.UpgradeTasks.*;
+import static org.opends.server.tools.upgrade.UpgradeUtils.batDirectory;
+import static org.opends.server.tools.upgrade.UpgradeUtils.binDirectory;
 
 /**
  * This class contains the table of upgrade tasks that need performing when
@@ -398,6 +400,11 @@
             "(objectclass=ds-cfg-root-config)",
             "delete: ds-cfg-entry-cache-preload"));
 
+    /** See OPENDJ-2054 */
+    register("2.8.0.12451",
+        deleteFile(new File(binDirectory, "dsframework")),
+        deleteFile(new File(batDirectory, "dsframework.bat")));
+
     /*
      * All upgrades will refresh the server configuration schema and generate
      * a new upgrade folder.
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/UpgradeTasks.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/UpgradeTasks.java
index d9929c4..6d2ab34 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/UpgradeTasks.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/UpgradeTasks.java
@@ -737,6 +737,37 @@
     };
   }
 
+  /**
+   * Removes the specified file from the file-system.
+   *
+   * @param file
+   *          The file to be removed.
+   * @return An upgrade task which removes the specified file from the file-system.
+   */
+  public static UpgradeTask deleteFile(final File file)
+  {
+    return new AbstractUpgradeTask()
+    {
+      @Override
+      public void perform(UpgradeContext context) throws ClientException
+      {
+        LocalizableMessage msg = UPGRADE_TASK_DELETE_FILE.get(file);
+        ProgressNotificationCallback pnc = new ProgressNotificationCallback(0, msg, 0);
+        context.notifyProgress(pnc);
+        try
+        {
+          FileManager.deleteRecursively(file);
+          context.notifyProgress(pnc.setProgress(100));
+        }
+        catch (Exception e)
+        {
+          logger.error(LocalizableMessage.raw(e.getMessage()));
+          context.notifyProgress(pnc.setProgress(-1));
+        }
+      }
+    };
+  }
+
   private static void displayChangeCount(final String fileName,
       final int changeCount)
   {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/UpgradeUtils.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/UpgradeUtils.java
index c931294..2fc3e61 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/UpgradeUtils.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/UpgradeUtils.java
@@ -31,7 +31,6 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
-
 import org.forgerock.opendj.ldap.*;
 import org.forgerock.opendj.ldap.requests.AddRequest;
 import org.forgerock.opendj.ldap.requests.ModifyRequest;
@@ -92,6 +91,12 @@
       configDirectory + File.separator + Installation.SNMP_PATH_RELATIVE
           + File.separator + Installation.SECURITY_PATH_RELATIVE);
 
+  /** The bin folder of the current installation. */
+  static final File binDirectory = new File(getInstallationPath(), Installation.UNIX_BINARIES_PATH_RELATIVE);
+
+  /** The bat folder of the current installation. */
+  static final File batDirectory = new File(getInstallationPath(), Installation.WINDOWS_BINARIES_PATH_RELATIVE);
+
   /**
    * Returns the path of the installation of the directory server. Note that
    * this method assumes that this code is being run locally.
diff --git a/opendj-server-legacy/src/messages/org/opends/messages/tool.properties b/opendj-server-legacy/src/messages/org/opends/messages/tool.properties
index 468ed8d..9daf209 100644
--- a/opendj-server-legacy/src/messages/org/opends/messages/tool.properties
+++ b/opendj-server-legacy/src/messages/org/opends/messages/tool.properties
@@ -2649,6 +2649,7 @@
 REF_SHORT_DESC_UPGRADE_15028=upgrade OpenDJ configuration and application data
 REF_SHORT_DESC_VERIFY_INDEX_15029=check index for consistency or errors
 REF_SHORT_DESC_WINDOWS_SERVICE_15030=register OpenDJ as a Windows Service
+UPGRADE_TASK_DELETE_FILE_10035=Removing file '%s'
 
 # Supplements to descriptions for generated reference documentation.
 SUPPLEMENT_DESCRIPTION_DBTEST_SUBCMD_LIST_INDEX_STATUS_20001=\

--
Gitblit v1.10.0