From 356fb0aa8e4afbc8615a29b48082340905781268 Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Mon, 28 Nov 2016 15:37:15 +0000
Subject: [PATCH] OPENDJ-2773 Fix upgrade

---
 opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/Upgrade.java      |    3 +++
 opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/UpgradeTasks.java |   20 +++++++++++++++-----
 opendj-server-legacy/src/main/java/org/opends/server/tools/upgrade/UpgradeUtils.java |   10 ++++++++++
 3 files changed, 28 insertions(+), 5 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 d640356..c142d82 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
@@ -611,6 +611,9 @@
             "objectClass: ds-cfg-local-backend")
     );
     register("4.0.0", moveSubordinateBaseDnToGlobalConfiguration());
+    register("4.0.0",
+             removeTools("ldif-diff", "make-ldif")
+    );
 
     /* All upgrades will refresh the server configuration schema and generate a new upgrade folder. */
     registerLast(
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 930312b..5741fbe 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
@@ -1337,11 +1337,7 @@
       {
         for (final String jarFileName : jarFileNames)
         {
-          final File f = new File(libDirectory, jarFileName + ".jar");
-          if (f.exists())
-          {
-            f.delete();
-          }
+          deleteFileIfExists(new File(libDirectory, jarFileName + ".jar"));
         }
       }
 
@@ -1516,6 +1512,20 @@
     };
   }
 
+  static UpgradeTask removeTools(final String... toolNames)
+  {
+    return new AbstractUpgradeTask() {
+      @Override
+      public void perform(final UpgradeContext context) throws ClientException {
+        for (final String toolName : toolNames)
+        {
+          deleteFileIfExists(new File(binDirectory, toolName));
+          deleteFileIfExists(new File(batDirectory, toolName +  ".bat"));
+        }
+      }
+    };
+  }
+
   /** Prevent instantiation. */
   private UpgradeTasks()
   {
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 b3072f9..8d96700 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
@@ -53,6 +53,7 @@
 import org.forgerock.opendj.ldif.LDIF;
 import org.forgerock.opendj.ldif.LDIFEntryReader;
 import org.forgerock.opendj.ldif.LDIFEntryWriter;
+import org.forgerock.util.Reject;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.util.ChangeOperationType;
 import org.opends.server.util.SchemaUtils;
@@ -744,6 +745,15 @@
     }
   }
 
+  static void deleteFileIfExists(final File f)
+  {
+    Reject.ifNull(f);
+    if (f.exists())
+    {
+      f.delete();
+    }
+  }
+
   /** Prevent instantiation. */
   private UpgradeUtils()
   {

--
Gitblit v1.10.0