Revert "[Title] Remove code about partner and public from installmanager source....
authordonghee yang <donghee.yang@samsung.com>
Tue, 6 Aug 2013 03:17:00 +0000 (12:17 +0900)
committerGerrit Code Review <gerrit2@system.s-core.co.kr>
Tue, 6 Aug 2013 03:17:00 +0000 (12:17 +0900)
This reverts commit e5503c1ea484b2bc119f9efee64eccc141640aae

InstallManager_java/src/org/tizen/installmanager/core/Config.java
InstallManager_java/src/org/tizen/installmanager/core/Options.java
InstallManager_java/src/org/tizen/installmanager/pkg/lib/PackageManager.java
InstallManager_java/src/org/tizen/installmanager/pkg/model/Package.java
InstallManager_java/src/org/tizen/installmanager/ui/InstallManagerWindow.java
InstallManager_java/src/org/tizen/installmanager/ui/page/ViewController.java

index 2146ec2..630a226 100644 (file)
@@ -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/"
index 5e03966..355e86e 100644 (file)
@@ -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);
index 9aefb43..13a214d 100644 (file)
@@ -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);
                                }
                        }
index 5cb11e2..069b390 100644 (file)
@@ -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 <code>true</code> 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 <code>true</code> 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 <code>true</code> 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 <code>true</code> if this meta package is a install meta package.
         */
        public boolean isInstallMeta() {
index 025f308..08bf95e 100644 (file)
@@ -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());
index 967534c..de5417d 100644 (file)
@@ -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