From: yongsung1.kim Date: Fri, 30 Aug 2013 07:56:45 +0000 (+0900) Subject: [Title] InstallManager can manage invaild package version. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=381fdf1dcde9703cf200743f958d7a6b6b588312;p=sdk%2Finstaller%2Finstall-manager.git [Title] InstallManager can manage invaild package version. [Issue] redmine #10310, 13014 Change-Id: Id0123c68f8a61ca9a3876844e0363ac50b3723f7 --- 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 05fb210..d7c06c6 100644 --- a/InstallManager_java/src/org/tizen/installmanager/pkg/lib/PackageManager.java +++ b/InstallManager_java/src/org/tizen/installmanager/pkg/lib/PackageManager.java @@ -287,6 +287,7 @@ public abstract class PackageManager { props.add(new Property(Package.FIELD_PACKAGE, "EXTRAS")); props.add(new Property(Package.FIELD_LABEL, "Extras")); props.add(new Property(Package.FIELD_ATTRIBUTE, "root")); + props.add(new Property(Package.FIELD_PACKAGE_SIZE, "0")); props.add(new Property(Package.FIELD_UNCOMPRESSED_SIZE, "0")); Package extraPackage = new Package(props); 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 ebb375a..e71942e 100644 --- a/InstallManager_java/src/org/tizen/installmanager/pkg/model/Package.java +++ b/InstallManager_java/src/org/tizen/installmanager/pkg/model/Package.java @@ -127,17 +127,25 @@ public class Package { throw new IMFatalException(ErrorCode.WRONG_PACKAGE_URL); } } + + public void setProperties(List properties) { + mProperties = properties; + } /** - * @return version of this package + * @return version of this package. If package does not have version, set version to 0.0.0 */ public Version getVersion() { - try { - return new Version(getValue(FIELD_VERSION)); - } catch (IMFatalException e) { - Log.log("Invalid version package. => " + this.getPackageName()); - throw e; + String version = getValue(FIELD_VERSION); + if (version == null || version.isEmpty()) { + List props = this.getProperties(); + for (Property p : props) { + if (p.getName().equalsIgnoreCase(Package.FIELD_VERSION)) { + p.setValue("0.0.0"); + } + } } + return new Version(getValue(FIELD_VERSION)); } /** diff --git a/InstallManager_java/src/org/tizen/installmanager/pkg/model/Version.java b/InstallManager_java/src/org/tizen/installmanager/pkg/model/Version.java index bd62c06..9b9e644 100644 --- a/InstallManager_java/src/org/tizen/installmanager/pkg/model/Version.java +++ b/InstallManager_java/src/org/tizen/installmanager/pkg/model/Version.java @@ -52,18 +52,11 @@ public class Version { * @param version string representation of version */ public Version(String version) { - checkValidVersion(version); - dividedVersion = version.split("\\."); - } - - public static void checkValidVersion(String version) { - if (version == null || version.isEmpty()) { - Log.err("Package version not found. ==> "); - throw new IMFatalException(ErrorCode.CANNOT_FIND_PACKAGE_VERSION); - } else if (version.endsWith(".")){ - Log.err("Invalid package version : " + version); - throw new IMFatalException(ErrorCode.INVALID_PACKAGE_VERSION); + if (version.endsWith(".")){ + Log.err("Invalid package version format : " + version); } + + dividedVersion = version.split("\\."); } public static Version create(String aVersion) { diff --git a/InstallManager_java/src/org/tizen/installmanager/ui/InstallManagerWindow.java b/InstallManager_java/src/org/tizen/installmanager/ui/InstallManagerWindow.java index 6390774..a09872a 100644 --- a/InstallManager_java/src/org/tizen/installmanager/ui/InstallManagerWindow.java +++ b/InstallManager_java/src/org/tizen/installmanager/ui/InstallManagerWindow.java @@ -75,6 +75,7 @@ import org.tizen.installmanager.lib.exception.IMNetworkException; import org.tizen.installmanager.pkg.lib.PackageManager; import org.tizen.installmanager.pkg.model.ConfigFile; import org.tizen.installmanager.pkg.model.PackageSet; +import org.tizen.installmanager.pkg.model.Property; import org.tizen.installmanager.ui.dialog.AddExtraRepositoryDialog; import org.tizen.installmanager.ui.dialog.IndeterminateProgressDialog; import org.tizen.installmanager.ui.dialog.MessageBoxDlg; @@ -94,6 +95,7 @@ import org.tizen.installmanager.ui.page.WelcomePage; import org.tizen.installmanager.ui.page.InstallingPage.InstallProgressMonitor; import org.tizen.installmanager.ui.page.WelcomePage.RADIO_ACTION; import org.tizen.installmanager.util.PathUtil; +import org.tizen.installmanager.pkg.model.Package; /** @@ -322,6 +324,10 @@ public class InstallManagerWindow extends ApplicationWindow { addExtraButton.setVisible(false); btnSettings.setVisible(false); if (compositeWelcomePage.getSelectedRadioButton() == RADIO_ACTION.INSTALL) { + if (!checkVaildPkgVersion()) { + btnSettings.setVisible(true); + return; + } btnNext.setEnabled(compositeLicensePage.getAcceptButton().getSelection()); if (Config.isSupportMultiSDK()) { showComposite(compositeLicensePage); @@ -1041,6 +1047,35 @@ public class InstallManagerWindow extends ApplicationWindow { } /** + * Installed packages do not have package version, installmanager will show warning dialog. + * @return + */ + private boolean checkVaildPkgVersion() { + PackageSet installedPkgs = controller.getInstalledPackages(); + if (!installedPkgs.isEmpty()) { + for (Package pkg : installedPkgs) { + String vs = pkg.getVersion().toString(); + if (vs != "" && vs.equals("0.0.0")) { + Log.err("Package version not found. ==> " + pkg.getPackageName()); + int confirm = MessageBoxDlg.showDlg(getShell(), + "WARNING", + "'" + pkg.getPackageName() + "'" + " package version is not found.\n" + + "If you keep installing Tizen SDK, some unexpected may occur.\n" + + "Do you want to continue?", + DialogType.WARNING, false); + if (confirm == MessageBoxDlg.YES) { + return true; + } else { + return false; + } + } + } + } + + return true; + } + + /** * Get install manager window object. * @return install manager window object. */ diff --git a/InstallManager_java/src/org/tizen/installmanager/ui/model/Item.java b/InstallManager_java/src/org/tizen/installmanager/ui/model/Item.java index 253ccf9..0198ace 100644 --- a/InstallManager_java/src/org/tizen/installmanager/ui/model/Item.java +++ b/InstallManager_java/src/org/tizen/installmanager/ui/model/Item.java @@ -456,7 +456,9 @@ public class Item implements Comparable { */ public void getTerminalPackages(List installList, boolean checked) { if (getCheckState() == CheckState.CHECKED) { - installList.add(getPackageName()); + if (!getPackageName().equalsIgnoreCase("EXTRAS")) { + installList.add(getPackageName()); + } } else if (getCheckState() == CheckState.GRAYED) { for (Item childItem : getChildren()) { childItem.getTerminalPackages(installList, checked); 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 03f4193..ccc11c0 100644 --- a/InstallManager_java/src/org/tizen/installmanager/ui/page/ViewController.java +++ b/InstallManager_java/src/org/tizen/installmanager/ui/page/ViewController.java @@ -434,6 +434,10 @@ public class ViewController { return packageManager.getInstalledPackageByName(pkgName); } + public PackageSet getInstalledPackages() { + return packageManager.getInstalledPackages(); + } + /** * Get items of tree * @return