diff options
Diffstat (limited to 'javainstaller2/src/JavaSetup/org/openoffice/setup/Controller/InstallationOngoingCtrl.java')
-rwxr-xr-x | javainstaller2/src/JavaSetup/org/openoffice/setup/Controller/InstallationOngoingCtrl.java | 28 |
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!"); |