From 24fc3f1bec00d45b2950774b88940a5f558f763b Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Fri, 12 Jun 2009 13:35:23 +0000
Subject: [PATCH] Frontport of fix for issue 4047 ( Uninstall deletes systematically resources and classes directories).
---
opends/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java | 53 +++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 41 insertions(+), 12 deletions(-)
diff --git a/opends/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java b/opends/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java
index f1b59eb..e15a21f 100644
--- a/opends/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java
+++ b/opends/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java
@@ -649,26 +649,43 @@
Message successMsg;
Installation installation = getInstallation();
String libPath = getPath(installation.getLibrariesDirectory());
+ String resourcesPath = getPath(installation.getResourcesDirectory());
+ String classesPath = getPath(installation.getClassesDirectory());
+ boolean resourcesDefined =
+ Utils.directoryExistsAndIsNotEmpty(resourcesPath);
+ boolean classesDefined =
+ Utils.directoryExistsAndIsNotEmpty(classesPath);
+ ArrayList<String> paths = new ArrayList<String>();
+ paths.add(libPath);
+ if (resourcesDefined)
+ {
+ paths.add(resourcesPath);
+ }
+ if (classesDefined)
+ {
+ paths.add(classesPath);
+ }
if (isCli()) {
if (getUninstallUserData().getRemoveLibrariesAndTools()) {
String arg;
if (isWindows()) {
arg = installation.getUninstallBatFile() + getLineBreak().toString() +
- getTab() + libPath;
+ getTab() + getStringFromCollection(paths,
+ getLineBreak().toString());
} else {
- arg = libPath;
+ arg = getStringFromCollection(paths, getLineBreak().toString());
}
successMsg =
- INFO_SUMMARY_UNINSTALL_FINISHED_SUCCESSFULLY_REMOVE_JARFILES_CLI
- .get(arg);
+ INFO_SUMMARY_UNINSTALL_FINISHED_SUCCESSFULLY_REMOVE_JARFILES_CLI
+ .get(arg);
} else {
successMsg = INFO_SUMMARY_UNINSTALL_FINISHED_SUCCESSFULLY_CLI.get();
}
} else {
if (getUninstallUserData().getRemoveLibrariesAndTools()) {
successMsg =
- INFO_SUMMARY_UNINSTALL_FINISHED_SUCCESSFULLY_REMOVE_JARFILES
- .get(libPath);
+ INFO_SUMMARY_UNINSTALL_FINISHED_SUCCESSFULLY_REMOVE_JARFILES
+ .get(getStringFromCollection(paths, getLineBreak().toString()));
} else {
successMsg = INFO_SUMMARY_UNINSTALL_FINISHED_SUCCESSFULLY.get();
}
@@ -1376,10 +1393,16 @@
File quicksetupFile = installation.getQuicksetupJarFile();
File openDSFile = installation.getOpenDSJarFile();
File librariesFile = installation.getLibrariesDirectory();
- File activationFile = new File(librariesFile, "activation.jar");
- File aspectRuntimeFile = new File(librariesFile, "aspectjrt.jar");
+ File resourcesDir = installation.getResourcesDirectory();
+ File classesDir = installation.getClassesDirectory();
File uninstallBatFile = installation.getUninstallBatFile();
+ boolean canDeleteResourcesDir =
+ !Utils.directoryExistsAndIsNotEmpty(resourcesDir.getAbsolutePath());
+ boolean canDeleteClassesDir =
+ !Utils.directoryExistsAndIsNotEmpty(classesDir.getAbsolutePath());
+
+
File installationPath = installation.getRootDirectory();
/**
@@ -1390,6 +1413,8 @@
boolean[] uData = {
userData.getRemoveLibrariesAndTools(),
userData.getRemoveLibrariesAndTools(),
+ userData.getRemoveLibrariesAndTools(),
+ userData.getRemoveLibrariesAndTools(),
userData.getRemoveDatabases(),
userData.getRemoveLogs(),
userData.getRemoveConfigurationAndSchema(),
@@ -1403,6 +1428,8 @@
File[] tmp = {
installation.getLibrariesDirectory().getCanonicalFile(),
installation.getBinariesDirectory().getCanonicalFile(),
+ installation.getResourcesDirectory().getCanonicalFile(),
+ installation.getClassesDirectory().getCanonicalFile(),
installation.getDatabasesDirectory().getCanonicalFile(),
installation.getLogsDirectory().getCanonicalFile(),
installation.getConfigurationDirectory().getCanonicalFile(),
@@ -1417,10 +1444,12 @@
}
boolean accept =
- !installationPath.equals(file)
- && !equalsOrDescendant(file, librariesFile)
- && !quicksetupFile.equals(file)
- && !openDSFile.equals(file);
+ !installationPath.equals(file)
+ && !equalsOrDescendant(file, librariesFile)
+ && (canDeleteClassesDir || !equalsOrDescendant(file, classesDir))
+ && (canDeleteResourcesDir || !equalsOrDescendant(file, resourcesDir))
+ && !quicksetupFile.equals(file)
+ && !openDSFile.equals(file);
if (accept && isWindows() && isCli()) {
accept = !uninstallBatFile.equals(file);
--
Gitblit v1.10.0