summaryrefslogtreecommitdiff
path: root/javainstaller2/src/JavaSetup/org/openoffice/setup/Controller/InstallationOngoingCtrl.java
diff options
context:
space:
mode:
Diffstat (limited to 'javainstaller2/src/JavaSetup/org/openoffice/setup/Controller/InstallationOngoingCtrl.java')
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Controller/InstallationOngoingCtrl.java28
1 files changed, 28 insertions, 0 deletions
diff --git a/javainstaller2/src/JavaSetup/org/openoffice/setup/Controller/InstallationOngoingCtrl.java b/javainstaller2/src/JavaSetup/org/openoffice/setup/Controller/InstallationOngoingCtrl.java
index cb08fb41bbe8..412eae3fdabf 100755
--- a/javainstaller2/src/JavaSetup/org/openoffice/setup/Controller/InstallationOngoingCtrl.java
+++ b/javainstaller2/src/JavaSetup/org/openoffice/setup/Controller/InstallationOngoingCtrl.java
@@ -85,6 +85,14 @@ public class InstallationOngoingCtrl extends PanelController {
PackageCollector.sortPackages(installPackages, sortedPackages, "install");
installData.setInstallPackages(sortedPackages);
+ if ( installData.isMajorUpgrade() ) {
+ // PackageCollector.findOldPackages(installData);
+ // Sorting for correct order of uninstallation
+ Vector sortedUninstallPackages = new Vector();
+ PackageCollector.sortPackages(installData.getOldPackages(), sortedUninstallPackages, "uninstall");
+ installData.setOldPackages(sortedUninstallPackages);
+ }
+
Installer installer = InstallerFactory.getInstance();
installer.preInstallationOngoing();
}
@@ -96,6 +104,7 @@ public class InstallationOngoingCtrl extends PanelController {
InstallData installData = InstallData.getInstance();
InstallationOngoing panel = (InstallationOngoing)getPanel();
Vector installPackages = installData.getInstallPackages();
+ Vector removePackages = installData.getOldPackages();
private Vector installedPackages = new Vector();
public void run() {
@@ -110,6 +119,18 @@ public class InstallationOngoingCtrl extends PanelController {
panel.setProgressValue(progress);
panel.setProgressText(packageData.getPackageName());
+ // Creating an upgrade process for Solaris packages
+ if ( installData.getOSType().equalsIgnoreCase("SunOS") ) {
+ if ( installer.isPackageInstalled(packageData, installData) ) {
+ if ( installer.isInstalledPackageOlder(packageData, installData) ) {
+ packageData.setIgnoreDependsForUninstall(true);
+ installer.uninstallPackage(packageData);
+ } else {
+ continue; // no downgrading
+ }
+ }
+ }
+
installer.installPackage(packageData);
installedPackages.add(packageData);
@@ -118,6 +139,13 @@ public class InstallationOngoingCtrl extends PanelController {
}
}
+ if ( installData.isMajorUpgrade() ) {
+ for (int i = 0; i < removePackages.size(); i++) {
+ PackageDescription packageData = (PackageDescription) removePackages.get(i);
+ installer.uninstallPackage(packageData);
+ }
+ }
+
if ( installData.isAbortedInstallation() ) {
// undoing the installation
LogManager.setCommandsHeaderLine("Installation aborted!");