f5bbd7023cc96dccff382d0f7911d356fcd9769d 2061 |
|
08-Jun-2007 |
kenneth_suter |
This commit address several related issues regarding the upgrader CLI:
- After discussing the previously noninteractive option with Brian, I changed the CLI options somewhat. The new CLI design is to specify an interactive option (if interactivity is desired) rather than to have to specify non-interactivity. Additionally interactivity is only supposed to apply to gathering of required information and not whether or not and application is allowed to prompt for such things as continuation following an error. To suppress these sort of prompts you should specify the silent option. So the common plumbing (currently not used by setup or uninstall) now operates as described above and the upgrader now has a both silent and interactive options as described.
- Make BuildExtractor a Launcher. BuildExtractor is a simple program used by the CLI for unzipping an OpenDS .zip file. Previously is was not very smart, relying on the Upgrader to report status and make sure the unzipping went OK. This had the unfortunate side-effect of making the scripts overly complicated resulting in issue 1772, and made it difficult to support interactivity. So the BuildExtractor has been made smarter so that it is capable of parsing the complete command line invocation, printing usage, and performing verification that it performed properly.
- Addresses issue 1772 by simplifying and correcting the upgrade and upgrade.bat scripts. |
94b1b3b04f5639d91b38abd6ee672e325f5f50ad 1752 |
|
30-Apr-2007 |
kenneth_suter |
This commit is mainly intended to prevent the sort of false positives that occur when the upgrader assumes the server has been upgraded properly but leaves the server in a corrupt state (see issues 1546 and 1559). The following changes are introduced:
- An additional stipulation is put on successful completion of the upgrade process: early on in the process the server is started to see if it logs and severe messages upon startup. If there are any severe messages the upgrade tool won't run. Later when the upgraded server is being verified, the messages are checked again to see if there are any severe messages. If so the upgrade is aborted and any changes are backed out. The error message are returned from startServer methods in a new class OperationOutput.
- The upgrade tool no longer allows a reversion to an older version and now checks to make sure the current version is older than the proposed version by comparing the major, minor, point, and SVN revision numbers obtained by running start-ds -F and storing the values in a new class BuildInformation.
- The choose version screen now takes web proxy host and port from that standard system properties if they are set. |
0877596da3b90efc5fd39171cef80a2fb8ec395e 1537 |
|
29-Mar-2007 |
kenneth_suter |
These refactorings are essential in anticipation of a new quicksetup application for the upgrader feature (issue 598). These changes were reviewed by Josu.
1. Establish the concept of an Application (Install, Uninstall, Upgrade, Revert etc.) so that common drudgery (progress notification, message formatting, look and feel, user input, file management etc.) can be handled by a common base class (newly created AbstractApplication).
2. Establish clearly defined interface between the framework (QuickSetup) and the applications.
3. Replace classes currently defined in each application's package having lots of commonality with common classes (see new classes in org.opends.quicksetup).
4. Miscellaneous cleanup mostly handled by my IDE (fix Javadoc problems, optimize import statements etc.)
This commit also:
- made ProgressSteps an interface that the application specific enums implement.
- moved the uninstaller specific user data back into a UninstallUserData object. For now I've left the installer's UserData to be more of a default since it has lots of properties I imagine would be useful for the upgrader.
- added a new system property org.opends.quickstart.Application.class for specifying the application class of the Application to be instantiated. I've done this to remove some of the logic involved in determining which application to create in QuickSetup (if (isWebStart())..., if (isInstaller())...). The create-webstart-standalone script now generates this property as do the *Launcher classes. Applications are now created in the Application.create() method.
- QuickSetup now creates the application during the init phase rather than waiting until the launch*. This so that the application can supply the user data necessary (specialized user data if necessary as is done by the uninstaller application). |