GlassFish Server Open Source Edition 3.1 - Upgrade

Introduction

In the GlassFish v3 and later time period, "upgrade" refers to upgrading a domain from one version of GlassFish to a newer version. This is in contrast to the Update Center, which can alter the app server installation itself to a newer version. The GF server actually performs the upgrade, not a separate tool as in version 2.X. Each module owner is responsible for handling the upgrade requirements of that module.

For a user to perform an upgrade, simply run asadmin start-domain along with the -upgrade option and options for domain dir, domain name, etc if needed. Without the -upgrade option, the server will still perform an upgrade when needed. Thus, you can simply start a v3.X server with an earlier domain and the rest "just happens."

There is still an upgrade tool, but it is mostly a convenience for end users. It is important to note that the upgrade tool does not actually perform an upgrade – it calls asadmin to do the work. See one-pager

Scope

Feature ID Priority Description Eng Response Owner(s) Estimate (Man Days) Source of Requirement Status / Comments
UPGRADE-001 P1 Side-by-side upgrade from version 2.1.X Yes Bobby/Leads ??? Feature parity Schedule depends on all module leads
UPGRADE-002 P1 Side-by-side upgrade from version 3.0.X Yes Bobby/Leads ??? Feature parity Schedule depends on all module leads
UPGRADE-003 P2 In-place upgrade from version 3.0.X using Update Center Yes ??? ??? Feature parity If the update center supports it, the upgrade happens automatically as long as UPGRADE-002 is done
UPGRADE-004 P3 Upgrade Tool Yes Bobby 10 days (maintenance only) Feature parity (The world would be simpler without this tool.)

Feature Overview

None of the features in upgrade are new. Much of the work has already been done; modules that implemented upgrade in 3.0 may have little or no work to do. New modules will have to implement their own part of upgrade.

UPGRADE-001: Side-by-side upgrade from version 2.1.X

This will mostly impact the modules that were not in 3.0, for instance the clustering-related modules. Modules will need to implement their portion of upgrade along with their features. For features that were already present in 3.0, there may be only incremental changes. The upgrade code should already be present within the modules.

UPGRADE-002: Side-by-side upgrade from version 3.0.X

As before, modules that implemented upgrade in 3.0 may have only incremental changes to make. Has no impact on the other modules implementing features that were not present in 3.0.X.

UPGRADE-003: In-place upgrade from version 3.0.X using Update Center

If UPGRADE-002 is completed, there are no changes needed in upgrade for this. Once the server has been updated to 3.1, simply starting the domain should work. To the upgrade code, there is no knowledge of the location of the server/domain. As a reminder, the upgrade tool would not be involved in this scenario (and isn't needed for features 001 or 002 as well).

UPGRADE-004: Upgrade Tool

In maintenance mode now. Needs bug fixes/usability improvements.

Design Document

Current one pager is under review. For reference, here is a link to the old one pager (most of which is still valid).

Milestone Schedule

Item # Date/Milestone Feature-ID Description QA/Docs Handover? Status / Comments
1. M1 N/A Get concrete requirements to all module leads No Done
2. M1 N/A Wiki page for coordinating module status No Done
3. M2 N/A Get tasks/dates from leads No Depends: 1, 2
4. M4 UPGRADE-002 Upgrade from 3.0.X Yes Depends on status of individual modules
5. M4 UPGRADE-001 Upgrade from 2.1.X Yes Depends on status of individual modules
6. M4 UPGRADE-003 In place (update) from 3.0.X Yes Depends on #4 and update tool
7. M4 UPGRADE-004 Upgrade tool bug fixes Yes  

Task List

Task Target Milestone Start End Date Owner(s) Feature ID Status / Comments
Getting requirements to owners M1 5/17 5/21 Bobby N/A Need to check with core owners about any changes to the upgrade code (no changes expected) and verify that 3.0.X is recognized as an upgrade. Get technical information in one place to send to leads.
Wiki page M1 5/17 5/21 Bobby N/A Need to check usability requirements for 3.1. There could be some work for modules that have completed upgrade task in the past. All of that information should be on one status page.
Dates from leads M2   6/21 Bobby N/A Make sure all leads at least know what needs to be done for their module. Would also be possible to get stubbed-out upgrade code into each module for tracking status (class output "TODO" message).
Upgrade from 2.1.X M4     All leads UPGRADE-001  
Upgrade from 3.0.X M4     All leads UPGRADE-002  
In place update from 3.0.X M4     Update center UPGRADE-003 Not really a separate task for upgrade as far as we know. Will have to test with update center code when available to verify.
Maintain upgrade tool M4 post-3.0.1 6/18 Bobby UPGRADE-004 Bugs are minor except for security issue involving getting master password to asadmin. Should be fixed by M2, then fix any other bugs as time permits when they pop up. Would also like to continue exploring/suggesting/imploring removing the tool as it's a source of confusion within the team.

Dev Tests

Want to use test framework developed for clusters. Need to be able to automate stopping/starting domains within test framework.

References

Email Alias