diff options
Diffstat (limited to 'javainstaller2/src/JavaSetup/org/openoffice/setup/InstallData.java')
-rwxr-xr-x | javainstaller2/src/JavaSetup/org/openoffice/setup/InstallData.java | 722 |
1 files changed, 722 insertions, 0 deletions
diff --git a/javainstaller2/src/JavaSetup/org/openoffice/setup/InstallData.java b/javainstaller2/src/JavaSetup/org/openoffice/setup/InstallData.java new file mode 100755 index 000000000000..476669c0617f --- /dev/null +++ b/javainstaller2/src/JavaSetup/org/openoffice/setup/InstallData.java @@ -0,0 +1,722 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: InstallData.java,v $ + * $Revision: 1.9 $ + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +package org.openoffice.setup; + +import org.openoffice.setup.SetupData.PackageDescription; +import org.openoffice.setup.Util.Controller; +import org.openoffice.setup.Util.SystemManager; +import java.io.File; +import java.util.HashMap; +import java.util.Locale; +import java.util.Vector; + +public class InstallData +{ + public static final String ACTION_TYPICAL = "ActionTypical"; + public static final String ACTION_CUSTOM = "ActionCustom"; + + private static InstallData instance = null; + + static private boolean isUserInstallation; /* root or user installation? */ + static private boolean isRootInstallation; /* root or user installation? */ + static private boolean isInstallationMode; /* installation or uninstallation? */ + static private boolean isUninstallationMode; /* installation or uninstallation? */ + static private boolean isCustomInstallation = false; /* custom or typical? */ + static private boolean isTypicalInstallation = true; /* custom or typical? */ + static private boolean isSolarisUserInstallation = false; + static private boolean isChangeInstallation = false; + static private boolean stillRunning = false; + static private boolean stillAnalyzing = true; + static private boolean databaseAnalyzed = false; /* the database was already analyzed? */ + static private boolean moduleSizeSet = false; /* the database was already analyzed? */ + static private boolean preInstallDone = false; /* preInstall script already executed? */ + static private boolean isAbortedInstallation = false; + static private boolean isErrorInstallation = false; + static private boolean logModuleStates = false; /* logging the current state of modules */ + static private boolean visibleModulesChecked = false; /* checking, if the user selected modules */ + static private boolean languageModulesChecked = false; /* checking, if the user selected language modules */ + static private boolean applicationModulesChecked = false; /* checking, if the user selected application modules */ + static private boolean isMaskedCompleteUninstallation = false; /* checking if all visible modules are uninstalled */ + static private boolean typicalSelectionStateSaved = false; + static private boolean customSelectionStateSaved = false; + static private boolean startSelectionStateSaved = false; + static private boolean olderVersionExists = false; + static private boolean sameVersionExists = false; + static private boolean newerVersionExists = false; + static private boolean majorUpgrade = false; + static private boolean isMultiLingual = false; + static private boolean dontUpdate = false; + static private boolean hideEula = false; + static private boolean databaseQueried = false; + static private boolean useRtl = false; + static private boolean installedProductMinorSet = false; + static private String installType; /* custom or typical installation */ + static private String osType; /* Linux, SunOS, ... */ + static private String installDir = null; + static private String defaultDir = "/opt"; + static private String installDefaultDir = null; + static private String productDir = null; + static private String packageFormat = null; + static private String architecture = null; + static private String packagePath = null; + static private String packageSubdir = "packages"; + static private String adminFileNameReloc = null; + static private String adminFileNameRelocNoDepends = null; + static private String adminFileNameNoReloc = null; + static private String adminFileNameNoRelocNoDepends = null; + static private String databasePath = null; + static private String getUidPath = null; + static private String installationPrivileges = null; + static private String storedInstallationPrivileges = null; /* privileges saved in file */ + static private String localTempPath = null; + static private String installDirName = "installdata"; + static private String uninstallDirName = "uninstalldata"; + static private int availableDiscSpace = 0; + static private int preselectedLanguages = 0; + static private int productMinor = 0; + static private int installedProductMinor = 0; + static private File jarFilePath = null; + static private File resourceRoot; + static private File infoRoot; + static private HashMap shellEnvironment = null; /* Solaris environment for user install */ + static private HashMap databaseMap = null; + static private PackageDescription updatePackage = null; + static private Vector removeFiles = new Vector(); /* Files to remove, if installation is aborted */ + static private Vector installPackages = new Vector(); + static private Vector oldPackages = new Vector(); + static private Vector systemLanguages = new Vector(); + + public static InstallData getInstance() + { + if (instance == null) { + instance = new InstallData(); + } + return instance; + } + + private InstallData() + { + installType = ACTION_TYPICAL; // default installation type + isUserInstallation = SystemManager.isUserInstallation(); + isRootInstallation = !isUserInstallation; + setInstallationPrivileges(isUserInstallation); + osType = SystemManager.getOSType(); + resourceRoot = SystemManager.getResourceRoot(); + setInstallationMode(); + setSolarisUserInstall(); + setHtmlFileExistence(); + setBidiSupport(); + } + + public void setInstallationType(String installationtype) { + installType = installationtype; + + if ( installType.equals(this.getCustomActionCommand())) { + isCustomInstallation = true; + isTypicalInstallation = false; + } + + if ( installType.equals(this.getTypicalActionCommand())) { + isCustomInstallation = false; + isTypicalInstallation = true; + } + } + + private void setInstallationMode() { + // Exists a directory "uninstalldata" below the resource root? + File uninstallDir = new File(resourceRoot, uninstallDirName); + File installDir = new File(resourceRoot, installDirName); + + if ( SystemManager.exists_directory(uninstallDir.getPath())) { + isInstallationMode = false; + isUninstallationMode = true; + infoRoot = uninstallDir; + System.err.println("Mode: uninstallation"); + } else if ( SystemManager.exists_directory(installDir.getPath())) { + isInstallationMode = true; + isUninstallationMode = false; + infoRoot = installDir; + System.err.println("Mode: installation"); + } else { + // isInstallationMode = null; + // isUninstallationMode = null; + infoRoot = null; + System.err.println("Error: Did not find info path"); + System.err.println("Error: No info about installation or uninstallation"); + System.exit(1); + } + } + + private void setSolarisUserInstall() { + if (( isUserInstallation ) && (osType.equalsIgnoreCase("SunOS"))) { + isSolarisUserInstallation = true; + if ( isInstallationMode ) { + Controller.checkForUidFile(this); + } + } + } + + private void setHtmlFileExistence() { + // After inforoot is determined, the existence of files in subdirectory "html" can be checked + File htmlDirectory = getInfoRoot("html"); + ResourceManager.checkFileExistence(htmlDirectory); + } + + private void setBidiSupport() { + Locale locale = Locale.getDefault(); + if (( locale.getLanguage().equals(new Locale("he", "", "").getLanguage()) ) + || ( locale.getLanguage().equals(new Locale("ar", "", "").getLanguage()) )) { + useRtl = true; + } + } + + private void setInstallationPrivileges(boolean isUserInstallation) { + if ( isUserInstallation ) { + installationPrivileges = "user"; + } else { + installationPrivileges = "root"; + } + } + + public String getInstallationType() { + return installType; + } + + public String getCustomActionCommand() { + return ACTION_CUSTOM; + } + + public String getTypicalActionCommand() { + return ACTION_TYPICAL; + } + + public String getInstallationPrivileges() { + return installationPrivileges; + } + + public String getOSType() { + return osType; + } + + public File getResourceRoot() { + return resourceRoot; + } + + public File getResourceRoot(String subDirectory) { + + File dir = getResourceRoot(); + + if (dir != null) { + dir = new File(dir, subDirectory); + if (!dir.exists()) { + dir = null; + } + } + + return dir; + } + + public File getInfoRoot() { + return infoRoot; + } + + public File getInfoRoot(String subDirectory) { + File dir = new File(infoRoot, subDirectory); + if (!dir.exists()) { + dir = null; + } + + return dir; + } + + public boolean isUserInstallation() { + return isUserInstallation; + } + + public boolean isRootInstallation() { + return isRootInstallation; + } + + public boolean isInstallationMode() { + return isInstallationMode; + } + + public boolean isUninstallationMode() { + return isUninstallationMode; + } + + public boolean isSolarisUserInstallation() { + return isSolarisUserInstallation; + } + + public boolean useRtl() { + return useRtl; + } + + public String getDefaultDir() { + return defaultDir; + } + + public void setDefaultDir(String dir) { + defaultDir = dir; + } + + public String getProductDir() { + return productDir; + } + + public void setProductDir(String dir) { + productDir = dir; + } + + public int getProductMinor() { + return productMinor; + } + + public void setProductMinor(int minor) { + productMinor = minor; + } + + public int getInstalledProductMinor() { + return installedProductMinor; + } + + public void setInstalledProductMinor(int minor) { + installedProductMinor = minor; + } + + public String getInstallDirName() { + return installDirName; + } + + public String getUninstallDirName() { + return uninstallDirName; + } + + public String getInstallDir() { + return installDir; + } + + public void setInstallDir(String dir) { + installDir = dir; + } + + public String getInstallDefaultDir() { + return installDefaultDir; + } + + public void setInstallDefaultDir(String dir) { + installDefaultDir = dir; + } + + public String getDatabasePath() { + return databasePath; + } + + public void setDatabasePath(String path) { + databasePath = path; + } + + public String getPackagePath() { + if ( packagePath == null ) { + packagePath = SystemManager.getPackagePath(packageSubdir); + } + return packagePath; + } + + public void setPackagePath(String path) { + packagePath = path; + } + + public String getPackageSubdir() { + return packageSubdir; + } + + public void setPackageSubdir(String dir) { + packageSubdir = dir; + } + + public String getPackageFormat() { + return packageFormat; + } + + public void setPackageFormat(String format) { + packageFormat = format; + } + + public String getArchitecture() { + return architecture; + } + + public void setArchitecture(String arch) { + architecture = arch; + } + + public String getLocalTempPath() { + return localTempPath; + } + + public void setLocalTempPath(String path) { + localTempPath = path; + } + + public int getAvailableDiscSpace() { + return availableDiscSpace; + } + + public void setAvailableDiscSpace(int space) { + availableDiscSpace = space; + } + + public int getPreselectedLanguages() { + return preselectedLanguages; + } + + public void setPreselectedLanguages(int count) { + preselectedLanguages = count; + } + + public String getAdminFileNameReloc() { + return adminFileNameReloc; + } + + public void setAdminFileNameReloc(String fileName) { + adminFileNameReloc = fileName; + } + + public String getAdminFileNameRelocNoDepends() { + return adminFileNameRelocNoDepends; + } + + public void setAdminFileNameRelocNoDepends(String fileName) { + adminFileNameRelocNoDepends = fileName; + } + + public String getAdminFileNameNoReloc() { + return adminFileNameNoReloc; + } + + public void setAdminFileNameNoReloc(String fileName) { + adminFileNameNoReloc = fileName; + } + + public String getAdminFileNameNoRelocNoDepends() { + return adminFileNameNoRelocNoDepends; + } + + public void setAdminFileNameNoRelocNoDepends(String fileName) { + adminFileNameNoRelocNoDepends = fileName; + } + + public String getGetUidPath() { + return getUidPath; + } + + public void setGetUidPath(String filePath) { + getUidPath = filePath; + } + + public String getStoredInstallationPrivileges() { + return storedInstallationPrivileges; + } + + public void setStoredInstallationPrivileges(String privileges) { + storedInstallationPrivileges = privileges; + } + + public void setStillRunning(boolean running) { + stillRunning = running; + } + + public boolean stillRunning() { + return stillRunning; + } + + public void setStillAnalyzing(boolean running) { + stillAnalyzing = running; + } + + public boolean stillAnalyzing() { + return stillAnalyzing; + } + + public void setDatabaseAnalyzed(boolean analyzed) { + databaseAnalyzed = analyzed; + } + + public boolean databaseAnalyzed() { + return databaseAnalyzed; + } + + public void setModuleSizeSet(boolean set) { + moduleSizeSet = set; + } + + public boolean moduleSizeSet() { + return moduleSizeSet; + } + + public void setPreInstallDone(boolean done) { + preInstallDone = done; + } + + public boolean preInstallDone() { + return preInstallDone; + } + + public boolean isChangeInstallation() { + return isChangeInstallation; + } + + public void setIsChangeInstallation(boolean changeInstallation) { + isChangeInstallation = changeInstallation; + } + + public boolean isTypicalInstallation() { + return isTypicalInstallation; + } + + public boolean isCustomInstallation() { + return isCustomInstallation; + } + + public boolean isAbortedInstallation() { + return isAbortedInstallation; + } + + public void setIsAbortedInstallation(boolean abortedInstallation) { + isAbortedInstallation = abortedInstallation; + } + + public boolean isErrorInstallation() { + return isErrorInstallation; + } + + public void setIsErrorInstallation(boolean errorInstallation) { + isErrorInstallation = errorInstallation; + } + + public boolean isMultiLingual() { + return isMultiLingual; + } + + public void setIsMultiLingual(boolean multiLingual) { + isMultiLingual = multiLingual; + } + + public boolean logModuleStates() { + return logModuleStates; + } + + public void setLogModuleStates(boolean log) { + logModuleStates = log; + } + + public boolean visibleModulesChecked() { + return visibleModulesChecked; + } + + public void setVisibleModulesChecked(boolean checked) { + visibleModulesChecked = checked; + } + + public boolean languageModulesChecked() { + return languageModulesChecked; + } + + public void setLanguageModulesChecked(boolean checked) { + languageModulesChecked = checked; + } + + public boolean applicationModulesChecked() { + return applicationModulesChecked; + } + + public void setApplicationModulesChecked(boolean checked) { + applicationModulesChecked = checked; + } + + public boolean isMaskedCompleteUninstallation() { + return isMaskedCompleteUninstallation; + } + + public void setMaskedCompleteUninstallation(boolean masked) { + isMaskedCompleteUninstallation = masked; + } + + public boolean typicalSelectionStateSaved() { + return typicalSelectionStateSaved; + } + + public void setTypicalSelectionStateSaved(boolean saved) { + typicalSelectionStateSaved = saved; + } + + public boolean customSelectionStateSaved() { + return customSelectionStateSaved; + } + + public void setCustomSelectionStateSaved(boolean saved) { + customSelectionStateSaved = saved; + } + + public boolean startSelectionStateSaved() { + return startSelectionStateSaved; + } + + public void setStartSelectionStateSaved(boolean saved) { + startSelectionStateSaved = saved; + } + + public boolean olderVersionExists() { + return olderVersionExists; + } + + public void setOlderVersionExists(boolean exists) { + olderVersionExists = exists; + } + + public boolean isMajorUpgrade() { + return majorUpgrade; + } + + public void setMajorUpgrade(boolean upgrade) { + majorUpgrade = upgrade; + } + + public boolean sameVersionExists() { + return sameVersionExists; + } + + public void setSameVersionExists(boolean exists) { + sameVersionExists = exists; + } + + public boolean newerVersionExists() { + return newerVersionExists; + } + + public void setNewerVersionExists(boolean exists) { + newerVersionExists = exists; + } + + public boolean dontUpdate() { + return dontUpdate; + } + + public void setDontUpdate(boolean value) { + dontUpdate = value; + } + + public boolean hideEula() { + return hideEula; + } + + public void setHideEula(boolean value) { + hideEula = value; + } + + public boolean installedProductMinorSet() { + return installedProductMinorSet; + } + + public void setInstalledProductMinorSet(boolean value) { + installedProductMinorSet = value; + } + + public boolean databaseQueried() { + return databaseQueried; + } + + public void setDatabaseQueried(boolean value) { + databaseQueried = value; + } + + public PackageDescription getUpdatePackage() { + return updatePackage; + } + + public void setUpdatePackage(PackageDescription onePackage) { + updatePackage = onePackage; + } + + public HashMap getShellEnvironment() { + return shellEnvironment; + } + + public HashMap getDatabaseMap() { + return databaseMap; + } + + public void setDatabaseMap(HashMap map) { + databaseMap = map; + } + + public Vector getRemoveFiles() { + return removeFiles; + } + + public Vector getInstallPackages() { + return installPackages; + } + + public void setInstallPackages(Vector packages) { + installPackages = packages; + } + + public Vector getOldPackages() { + return oldPackages; + } + + public void setOldPackages(Vector packages) { + oldPackages = packages; + } + + public Vector getSystemLanguages() { + return systemLanguages; + } + + public void setSystemLanguages(Vector languages) { + systemLanguages = languages; + } + + public void setShellEnvironment(HashMap environment) { + shellEnvironment = environment; + } + + public File getJarFilePath() { + if ( jarFilePath == null ) { + jarFilePath = SystemManager.getJarFilePath(); + } + return jarFilePath; + } + +} |