NetBeansMajorVersionUpgrade
Contents |
NetBeans IDE/NetBeans platform applications upgrade
This page describes a few possible ways of resolving the NetBeans IDE/platform applications upgrade issue. See also AutoupdateSupportsMajorReleaseUpgrade.
New major version notification
Overview
In brief, this functionality boils down to the necessity of automatic and background downloading the file with information about the latest (stable) NetBeans IDE release. In case the latest release version differs from the current IDE version, show the message to the user about that fact and open the page in the browser, where the user can download the new version of IDE.
Implementations details
From the technical standpoint, that can be solved e.g. in the following way:
- Add functionality to the autoupdate.ui which will be capable of :
- downloading the file from the certain URL set in the Bundle.properties and that can be overridden in properties. For NetBeans IDE, it can be hosted on the public servers at certain places e.g.
http://www.netbeans.org/downloads/version.jar
http://updates.netbeans.org/netbeans/updates/latest_stable_uc/version.jar (which, at this moment -> http://updates.netbeans.org/netbeans/updates/6.5/uc/final/stable/version.jar) - parsing this file and obtaining the following information:
- version
- message to show (maybe with the download and/or release info URLs)
- ...
- check the current platform/IDE version with the one from the downloaded file, and, if it differs, show the message with ability to open the URLs by clicking on them
- downloading the file from the certain URL set in the Bundle.properties and that can be overridden in properties. For NetBeans IDE, it can be hosted on the public servers at certain places e.g.
Pros and Cons
Pros:
- Easy to implement
- Suitable for any NB platform applications
- Lightweight
Cons:
- User still has to do manual download, installation, and settings/plugins/etc import and previous version uninstallation.
- Not clear how to handle "bundle" downloads (e.g. Java EE Tools bundle, NetBeans/JDK bundle, JavaFX bundle) and package distributions (deb, rpm, ips).
Have special "latest version" URL for each bundle?
New distribution download, installation and exporting information from the previous version
Overview
In brief, this solution takes into account the information about current platform version, modules installed, and the distributions with the new NB version available.
After collecting all the information, the most suitable distribution is downloaded and installed silently. Then the modules, existing in the current applications and missing in the new distribution, are identified and are imported to the new IDE and then checked for updates. Then the "old" version is removed (by uninstaller or by "rm -rf").
Implementation details
TBD.
Pros and Cons
Pros:
- Transparent for the user i.e. easy-to-use
Cons:
- Strong dependency between AU and installer.
- Need to take into account the fact that not all NBs are installed using the NB installer: it can be other NB bundles (EE/JDK/...), or Linux packages, or OpenSolaris/IPS, or zips, or whatever)
- Not applicable for other NB platform-based applications though this funcitonality is also very often requested by those applications developers.
Platform "direct" upgrade support
Overview
This possibility means that all important IDE parts (autoupdate/platform/launchers/cluster system/etc) are enhanced to support "direct" upgrade from one major version to another. This method also affects the installer/packages/... since they should be able to identify and handle the fact that the folder structure has been significantly changed.

