From e18cf3c2426ad2fb89f7f54645a7066934bcbb42 Mon Sep 17 00:00:00 2001 From: donghee yang Date: Tue, 6 Aug 2013 12:17:00 +0900 Subject: [PATCH] Revert "[Title] Remove code about partner and public from installmanager source. [Desc.] [Issue] redmine #10145" This reverts commit e5503c1ea484b2bc119f9efee64eccc141640aae --- .../src/org/tizen/installmanager/core/Config.java | 15 +++++++ .../src/org/tizen/installmanager/core/Options.java | 9 +++++ .../installmanager/pkg/lib/PackageManager.java | 36 ++++++++++++++++- .../tizen/installmanager/pkg/model/Package.java | 46 ++++++++++++++++++++-- .../installmanager/ui/InstallManagerWindow.java | 30 ++++++++++++-- .../installmanager/ui/page/ViewController.java | 15 +++++++ 6 files changed, 143 insertions(+), 8 deletions(-) diff --git a/InstallManager_java/src/org/tizen/installmanager/core/Config.java b/InstallManager_java/src/org/tizen/installmanager/core/Config.java index 2146ec2..630a226 100644 --- a/InstallManager_java/src/org/tizen/installmanager/core/Config.java +++ b/InstallManager_java/src/org/tizen/installmanager/core/Config.java @@ -67,6 +67,8 @@ public class Config { public static final String INSTALL_MANAGER_BINARY = "InstallManager.jar"; public static final String INSTALL_MANAGER_UPDATER_BINARY = "InstallManagerUpdater.jar"; public static final String EXECUTE_FILE_NAME_OF_INSTALL_MANAGER = getExecuteFileNameOfInstallManager(); + public static final String EXECUTE_FILE_NAME_OF_INSTALL_MANAGER_PARTNER = + getExecuteFileNameOfInstallManagerPartner(); public static final String EXECUTE_FILE_PATH_OF_INSTALL_MANAGER = PathUtil .get(INSTALL_MANAGER_DIRECTORY, EXECUTE_FILE_NAME_OF_INSTALL_MANAGER); @@ -247,6 +249,19 @@ public class Config { } } + /** + * @return filename of install manager executable for Partner SDK + */ + private static String getExecuteFileNameOfInstallManagerPartner() { + if (Platform.isLinux() || Platform.isMacOS() ) { + return "InstallManagerP"; + } else if ( Platform.isWindows() ) { + return "InstManager.exe"; + } else { + throw new IMFatalException(ErrorCode.UNSUPPORTED_PLATFORM); + } + } + private static String getInstallManagerShortcutPath() { if (Platform.isUbuntu()) { return PathUtil.getFromHome(".local/share/applications/" diff --git a/InstallManager_java/src/org/tizen/installmanager/core/Options.java b/InstallManager_java/src/org/tizen/installmanager/core/Options.java index 5e03966..355e86e 100644 --- a/InstallManager_java/src/org/tizen/installmanager/core/Options.java +++ b/InstallManager_java/src/org/tizen/installmanager/core/Options.java @@ -145,6 +145,7 @@ public class Options { /** * Use only download for making SDK image. */ + public static String boundary = "public"; // all, public, partner public static String platForm = null; public static int platFormBit = 0; @@ -154,6 +155,12 @@ public class Options { public static boolean allSnapshots = false; /** + * Support Partner SDK + */ + public static boolean partnerSdk = false; + public static String purposeOfInstalling = "public"; + + /** * Display InstallManager Version */ public static boolean showVersion = false; @@ -290,8 +297,10 @@ public class Options { } else if (arg.equals("-onlyDownload")) { if(iter.hasNext()) { onlyDownload = true; + boundary = iter.next(); platForm = iter.next().toLowerCase(); platFormBit = Integer.parseInt(iter.next()); + Log.log("Only download boundary : "+ boundary); } else { Log.err("-onlyDownload requires packageList description"); throw new IMFatalException(ErrorCode.REPOSITORY_NOT_PROVIDED); diff --git a/InstallManager_java/src/org/tizen/installmanager/pkg/lib/PackageManager.java b/InstallManager_java/src/org/tizen/installmanager/pkg/lib/PackageManager.java index 9aefb43..13a214d 100644 --- a/InstallManager_java/src/org/tizen/installmanager/pkg/lib/PackageManager.java +++ b/InstallManager_java/src/org/tizen/installmanager/pkg/lib/PackageManager.java @@ -768,6 +768,38 @@ public abstract class PackageManager { } /** + * @return partner meta packages among all meta packages. + */ + public PackageSet getPartnerMetaPackages() { + PackageSet allMetas = meta(recentPackages); + + PackageSet partnerMeta = new PackageSet(); + for (Package meta : allMetas) { + if (meta.isPartnerMeta()) { + partnerMeta.add(meta); + } + } + + return partnerMeta; + } + + /** + * @return public meta packages among all meta packages. + */ + public PackageSet getPublicMetaPackages() { + PackageSet allMetas = meta(recentPackages); + + PackageSet publicMeta = new PackageSet(); + for (Package meta : allMetas) { + if (meta.isPublicMeta()) { + publicMeta.add(meta); + } + } + + return publicMeta; + } + + /** * Get dependency packages of installable package. * @param pkgs installable packages. * @return @@ -1043,11 +1075,11 @@ public abstract class PackageManager { PackageSet metas = new PackageSet(); for(Package p : pset) { if (!Options.doTest) { - if(p.isRootMeta() || p.isExtraMeta()) { + if(p.isRootMeta() || p.isExtraMeta() || p.isPublicMeta()) { metas.add(p); } } else { - if(p.isRootMeta() || p.isExtraMeta() || p.isTestMeta()) { + if(p.isRootMeta() || p.isExtraMeta() || p.isPublicMeta() || p.isTestMeta()) { metas.add(p); } } diff --git a/InstallManager_java/src/org/tizen/installmanager/pkg/model/Package.java b/InstallManager_java/src/org/tizen/installmanager/pkg/model/Package.java index 5cb11e2..069b390 100644 --- a/InstallManager_java/src/org/tizen/installmanager/pkg/model/Package.java +++ b/InstallManager_java/src/org/tizen/installmanager/pkg/model/Package.java @@ -73,6 +73,9 @@ public class Package { // fields of ordering for UI public static final String FIELD_ORDER = "C-Order"; + // field of Partner SDK + public static final String FIELD_PARTNER = "C-Partner"; + // fields of script public static final String INSTALL_SCRIPT_LINUX = "install.sh"; public static final String REMOVE_SCRIPT_LINUX = "remove.sh"; @@ -91,6 +94,8 @@ public class Package { private static final String ATTRIBUTE_INSTALL_META = "install"; private static final String ATTRIBUTE_TEST_META = "test"; private static final String ATTRIBUTE_MANDATORY = "mandatory"; + private static final String ATTRIBUTE_PARTNER = "partner"; + private static final String ATTRIBUTE_PUBLIC = "public"; //dependency information private static final String START_OF_OS_DEPENDENCY = "["; @@ -203,6 +208,10 @@ public class Package { return url; } + public String getPartner() { + return getValue(FIELD_PARTNER); + } + /** * @return Extension server of this package. */ @@ -326,8 +335,11 @@ public class Package { * @return true if this package is a meta package. */ public boolean isMeta() { + // onlyDownload option, in this case, do not need separate public meta package + // to partner meta package because installmanager should download all meta packages. if (Options.onlyDownload) { - if (isRootMeta() || isInstallMeta() || isExtraMeta() || isMandatory() || isTestMeta()) { + if (isRootMeta() || isInstallMeta() || isExtraMeta() || + isPublicMeta() || isPartnerMeta() || isMandatory()) { return true; } else { return false; @@ -335,13 +347,13 @@ public class Package { } if (Options.doTest) { // include test packages for SDK testing - if (isRootMeta() || isInstallMeta() || isExtraMeta() || isMandatory() || isTestMeta()) { + if (isRootMeta() || isInstallMeta() || isExtraMeta() || isMandatory() || isPublicMeta() || isTestMeta()) { return true; } else { return false; } } else { // except test packages for normal SDK. - if (isRootMeta() || isInstallMeta() || isExtraMeta() || isMandatory()) { + if (isRootMeta() || isInstallMeta() || isExtraMeta() || isMandatory() || isPublicMeta()) { return true; } else { return false; @@ -376,6 +388,34 @@ public class Package { } /** + * Check to belong to partner sdk given package + * @return true if this package is a partner package. + */ + public boolean isPartnerMeta() { + String attributeValue = getAttribute().trim(); + + if (attributeValue.equalsIgnoreCase(ATTRIBUTE_PARTNER)) { + return true; + } else { + return false; + } + } + + /** + * Check to belong to partner sdk given package + * @return true if this package is a partner package. + */ + public boolean isPublicMeta() { + String attributeValue = getAttribute().trim(); + + if (attributeValue.equalsIgnoreCase(ATTRIBUTE_PUBLIC)) { + return true; + } else { + return false; + } + } + + /** * @return true if this meta package is a install meta package. */ public boolean isInstallMeta() { diff --git a/InstallManager_java/src/org/tizen/installmanager/ui/InstallManagerWindow.java b/InstallManager_java/src/org/tizen/installmanager/ui/InstallManagerWindow.java index 025f308..08bf95e 100644 --- a/InstallManager_java/src/org/tizen/installmanager/ui/InstallManagerWindow.java +++ b/InstallManager_java/src/org/tizen/installmanager/ui/InstallManagerWindow.java @@ -463,7 +463,7 @@ public class InstallManagerWindow extends ApplicationWindow { boolean installable = compositeSetInstallDirectoryPage.isInstallablePath(); Config.USER_CONFIG_HOME_PATH = compositeSetInstallDirectoryPage.getSDKWorkSpacePath(); - Registry.sdkDataPath = controller.getSDKWorkSpacePath(); + Registry.sdkWorkSpacePath = controller.getSDKWorkSpacePath(); Registry.targetPath = controller.getInstallPath(); Registry.saveSDKInfo(Registry.targetPath); @@ -729,8 +729,9 @@ public class InstallManagerWindow extends ApplicationWindow { InstallManager installManager = InstallManager.getInstance(); PackageManager packageManager = installManager.getPackageManager(); - PackageSet downloadPackageList = packageManager.getLeafMetaPackages(); - PackageSet downloadablePkgs = packageManager.getDependsPackagesFromRepository(downloadPackageList); + // Get all meta packages list by boundary.(eg. public, partner, all....) + PackageSet filteredMeta = filterPackageSet(); + PackageSet downloadablePkgs = packageManager.getDependsPackagesFromRepository(filteredMeta); // Download all meta packages. boolean filteredPackages = false; @@ -750,6 +751,29 @@ public class InstallManagerWindow extends ApplicationWindow { } } + private static PackageSet filterPackageSet() { + PackageManager pm = PackageManager.getInstance(); + + PackageSet downloadPackageList = pm.getLeafMetaPackages(); + + String boundary = Options.boundary; + if (boundary.equalsIgnoreCase("public")) { + PackageSet partnerMetaPackages = pm.getPartnerMetaPackages(); + + if (!partnerMetaPackages.isEmpty()) { + downloadPackageList.removeAll(partnerMetaPackages); + } + } else if (boundary.equalsIgnoreCase("partner")) { + PackageSet publicMetaPackages = pm.getPublicMetaPackages(); + + if (!publicMetaPackages.isEmpty()) { + downloadPackageList.removeAll(publicMetaPackages); + } + } + + return downloadPackageList; + } + private static void showInstallManagerVersion() { System.out.println("InstallManager Version : " + Config.getInstance().getInstallManagerVersion().toString()); diff --git a/InstallManager_java/src/org/tizen/installmanager/ui/page/ViewController.java b/InstallManager_java/src/org/tizen/installmanager/ui/page/ViewController.java index 967534c..de5417d 100644 --- a/InstallManager_java/src/org/tizen/installmanager/ui/page/ViewController.java +++ b/InstallManager_java/src/org/tizen/installmanager/ui/page/ViewController.java @@ -361,6 +361,21 @@ public class ViewController { return packageManager.getInstallablePackages(selectedMetas); } + private PackageSet getMetaPackagesByPurpose(PackageSet metaPackages) { + String userAttribute = Options.purposeOfInstalling; + for (Package pkg : metaPackages) { + String attribute = pkg.getAttribute(); + + if (!pkg.isRootMeta() && !pkg.isExtraMeta() && !pkg.isMandatory()) { + if (!attribute.equalsIgnoreCase(userAttribute)) { + metaPackages.remove(pkg); + } + } + } + + return metaPackages; + } + /** * Start to uninstall * @param uninstallList -- 2.7.4