[Title] Support compatibility for old SDK.
authoryongsung1.kim <yongsung1.kim@samsung.com>
Wed, 19 Jun 2013 04:30:57 +0000 (13:30 +0900)
committeryongsung1.kim <yongsung1.kim@samsung.com>
Wed, 19 Jun 2013 04:30:57 +0000 (13:30 +0900)
[Desc.] When installation old SDK using new installmanager, user cannot
select sdk data path and installmanager create a tizensdkpah file in
'tizen-sdk-data' directory.
[Issue] redmine#9684

Change-Id: I8d4b86cabe8cd5cee99734787d6ee6b245603d38

InstallManager_java/src/org/tizen/installmanager/core/Config.java
InstallManager_java/src/org/tizen/installmanager/core/InstallManager.java
InstallManager_java/src/org/tizen/installmanager/lib/Registry.java
InstallManager_java/src/org/tizen/installmanager/ui/page/SetInstallDirectoryPage.java
InstallManager_java/src/org/tizen/installmanager/util/PathUtil.java

index e4f7365..37765f0 100644 (file)
@@ -178,6 +178,9 @@ public class Config {
        public static Status status = Status.INSTALL;
        public static boolean isSupportMultiSDK = false;
        
+       // If SDK package server is new(multi SDK support), value is true, not false.
+       public static boolean isNewPackageServer = true;
+       
        /**
         * This enumeration where does information come from in configuration dialog.</br>
         * NORMAL is just push 'next' button.</br>
index 2c8eeea..203f7ed 100644 (file)
@@ -197,6 +197,20 @@ public class InstallManager {
                }
                initPackageList();
                initConfigurationFile();
+               checkNewPackageServer();
+       }
+       
+       /**
+        * If packageServer has multi SDK packages, set Config.isNewPackageServer true. otherwise false.
+        * InstallManager can be used old SDK installation.
+        */
+       private void checkNewPackageServer() {
+               if (!packageManager.existsPackage(InstallManagerConstants.INSTALLMANAGER_PACKAGE_NAME)) {
+                       Config.isNewPackageServer = false;
+                       Log.log("PackageServer has old SDK packages.");
+               } else {
+                       Log.log("PackageServer has new SDK packages(Multi SDK).");
+               }
        }
        
        private void initConfigurationFile() {
@@ -398,7 +412,7 @@ public class InstallManager {
                // Make sdk.info file into target directory for compatibility.
                Registry.saveSDKInfo(targetPath);
                // Remove tizensdkpath file in 'tizen-sdk-data'.
-               Registry.removeOldRegistry();
+//             Registry.removeOldRegistry();
        }
 
        /**
index 2bd4e67..4fb544c 100644 (file)
@@ -123,6 +123,17 @@ public class Registry {
                                }
                        }
                }
+               
+               if (!Config.isNewPackageServer) {
+                       Log.log("PackageServer does not have Multi SDK packages. so, InstallManager should support old SDK.");
+                       File oldDefaultRegistryFile = new File(OLD_REGISTRY_FILE_PATH);
+                       try {
+                               PathUtil.copy(installedPathFile, oldDefaultRegistryFile);
+                       } catch (IOException e) {
+                               Log.err("Cannot copy 'tizensdkpath' file to old data path." + oldDefaultRegistryFile);
+                               Log.ExceptionLog(e);
+                       }
+               }
        }
        
        public static void exportMultiInstallPath(String targetPath, boolean isInstall) {
index 38e4e90..5f17261 100644 (file)
@@ -121,7 +121,11 @@ public class SetInstallDirectoryPage extends PageTemplate {
                if (Platform.isLinux() || Platform.isMacOS()) {
                        sdkWorkSpaceText.setText(Config.getConfigHome());
                } else {
-                       sdkWorkSpaceText.setText(WINDOWS_DEFAULT_DATA_PATH);                    
+                       if (Config.isNewPackageServer) {
+                               sdkWorkSpaceText.setText(WINDOWS_DEFAULT_DATA_PATH);                            
+                       } else {
+                               sdkWorkSpaceText.setText(Config.getConfigHome());
+                       }
                }
        }
 
@@ -203,11 +207,16 @@ public class SetInstallDirectoryPage extends PageTemplate {
        private void setWorkSpaceLabel() {
                sdkWorkSpaceLabel = new Label(customComposite, SWT.NONE);
                sdkWorkSpaceLabel.setBounds(20, 100, 220, 17);
-               sdkWorkSpaceLabel.setText(Config.SDK_NAME + " configuration data to :");
+               sdkWorkSpaceLabel.setText(Config.SDK_NAME + " data to :");
                sdkWorkSpaceLabel.setBackground(InstallManagerWindow.getBackgroundColor());
 
                sdkWorkSpaceText = new Text(customComposite, SWT.BORDER);
                sdkWorkSpaceText.setBounds(10, 125, 390, 27);
+               
+               if (!Config.isNewPackageServer) {
+                       sdkWorkSpaceText.setEnabled(false);
+               }
+               
                sdkWorkSpaceText.addModifyListener(new ModifyListener() {
                        @Override
                        public void modifyText(ModifyEvent arg0) {
@@ -232,6 +241,11 @@ public class SetInstallDirectoryPage extends PageTemplate {
                selectDataPathBtn = new Button(customComposite, SWT.NONE);
                selectDataPathBtn.setImage(PathUtil.getImageFromResource("/res/icons/icon_directory_open.png"));
                selectDataPathBtn.setBounds(408, 125, 35, 29);
+               
+               if (!Config.isNewPackageServer) {
+                       selectDataPathBtn.setEnabled(false);
+               }
+               
                selectDataPathBtn.addSelectionListener(new SelectionAdapter() {
                        @Override
                        public void widgetSelected(SelectionEvent e) {
index 272055d..c9fa604 100644 (file)
@@ -241,7 +241,7 @@ public class PathUtil {
                                if (toFile.delete()) {
                                        Log.log("Success to delete " + toFile);
                                } else {
-                                       Log.err("Fail to create " + toFile);
+                                       Log.err("Fail to delete " + toFile);
                                }
                        }
                        
@@ -285,10 +285,15 @@ public class PathUtil {
                }
                
                if (!to.exists()) {
-                       if (to.createNewFile()) {
-                               Log.log("Success to create " + to);
-                       } else {
-                               Log.err("Fail to create " + to);
+                       try {
+                               if (to.createNewFile()) {
+                                       Log.log("Success to create " + to);
+                               } else {
+                                       Log.err("Fail to create " + to);
+                               }                               
+                       } catch (IOException e) {
+                               Log.err("Exception occurs while create file. => " + to);
+                               Log.ExceptionLog(e);
                        }
                }