GlassFish 3.1 Upgrade

Bug status

All current upgrade-related issues are here (using an issue tracker keyword).

Cluster upgrade example

This page has been removed. The full steps for upgrading are now in the released GlassFish documentation. See this blog for an upgrade example, and the upgrade guide for full information.

Dashboard

Deadlines you should know:

  • Milestone 2: Get start/end dates to Bobby about when you will be implementing upgrade.
  • Milestone 4: Deadline for finishing upgrade work (but feel free to implement sooner). This deadline is from the Upgrade 3.1 planning page.

Here is the v3 upgrade dashboard page as a reference. For developers who worked on v3, you may want to see what you've already done.

Status Codes: Please use one of the following (feel free to suggest alternatives) in the dashboard table. If you have details about your status that you'd like to add, use the table at the bottom of the page. Don't worry about pretty colors (for the "Done" status). I'll add them for you.

  • 0 – Aware that upgrade exists
  • 1 – Have at least stubbed out upgrade service
  • 2 – Implementation started
  • 3 – Done (including logging the changes your module made to config)
  • 4 – Done and tested
  • N/A – Please enter details at the bottom of the page
Module Owner(s) Description Start Date End Date Status Code
Clustering Infrastructure Tom Mueller     M5 2 (overall feature deferred to MS5)
In-memory Session Replication Mahesh Kannan, Joe Fialli     M4 NA
Runtime Clustering(GMS) Joe Fialli     M4 3
GMS Configuration Joe Full writeup of config changes in gms config one pager   M4 3
Deployment Hong Zhang, Tim Quinn No incompatible changes from v3, so there should be no additional work in the upgrade area   M4 N/A
App Client Container Tim Quinn All req'd changes occur as part of redeployment of apps (see Deployment)   M4 N/A
Management Console Anissa Lam, Ken Paulsen     M4 N/A
SSH/SSHD Carla Mott, Joe Di Pol Convert node-agent in domain.xml , also rename "nodeagents" directory to "nodes"   M4 2
Installer Sathyan Catari     M4 N/A, Installer will not support in-place/side-by-side upgrades.
Packaging Snjezana Sevo-Zenzerovic     M4 N/A
File Layout Snjezana Sevo-Zenzerovic     M4 N/A
Web Tier Rajiv Mordani, Shing Wai Chan     M4 N/A
EJB Marina Vatkina     M6 2 - One pending issue https://github.com/javaee/glassfish/issues/13218
Transaction Service Marina Vatkina     M4 N/A
IIOP Ken Cavanaugh     M4 N/A
Connectors, Pooling, Resources, JDBC Jagadish Ramu, Shalini Muthukrishnan     M4 N/A
JMS Integration Satish Kumar, Nigel Deakin, Amy Kang     M5 0
Metro Marek Potociar     M4 N/A
Loadbalancer Kshi tiz Saxena For load-balancer element, device-host and device-port need to be converted to attributes from properties and auto-apply-enabled attribute will be removed with suitable warning. The load-balancer plugin upgrade will be handled by GlassFish LoadBalancer Configurator.   M5  
RESTful API Jason Lee, Ludovic Champenois     M4 N/A
Logging & Diagnostics Naman Mehta     M4 N/A
Embedded Siraj Ghaffar     M4 N/A
Globalization Georges Murr     M4 N/A
Security Kumar Jayanti     M4  
Developer Tooling Vince Kraemer, Ludovic Champenois     M4  
Developer Tooling Ludovic Champenois, Vince Kraemer     M4  
JMX API (AMX) Prasad Subramanian     M4  
OSGi Sanjeeb Sahoo, Richard Hall     M4  
JSF Ed Burns       NA
Jersey Paul Sandoz     M4 N/A
Contexts and Dependency Injection (CDI) Sivakumar Thyagarajan     M4  
Persistence Mitesh Meswani     M4 N/A

Issues/Questions

This issue tracks some v2 to 3.1 open issues for upgrade – check before adding anything below.

Questions from admin team:

  • If there is something in a v2 addons subdirectory, what should v3 do?
  • A v2 domain has an imq subdirectory in a domain. v3 does not. What should v3 do with the information in the imq subdirectory if it finds one.
  • The protocol for synchronizing cluster instances is changing for v3 compared to v2. When upgrading and node with instances, something will need to prompt for the port number of the DAS for those instances.
  • When upgrading a v2 cluster, the user will probably have the node agent hooked into an operating system facility for getting it started. Since there is no node agent in v3, this will stop working, and there needs to be a way (maybe documentation) for the user to get the instances started directly.
  • JBI isn't supported in v3. Should we make any attempt to warn about JBI usage if we find a jbi directory left over from a v2 domain?

AI from planning meeting:
AI (Bobby, Sathyan): Finalize how to upgrade das.properties in the remote instance

For the grizzly element change, in the 3.0 one pager GrizzlyConfigOnePager#section-GrizzlyConfigOnePager-4.12.CompatibilityImpact
This upgrade scenario may already have been taken care of.
We should confirm this with Alexey and Justin.

The jsf jvm options used to be in v2.x; they are no longer used in 3.x and ignored in 3.1 so not an issue. (confirmed with Jan)

  • -Dcom.sun.enterprise.taglibs=appserv-jstl.jar,jsf-impl.jar
  • -Dcom.sun.enterprise.taglisteners=jsf-impl.jar

How to implement upgrade

Because many of the v3 modules have already implemented upgrade, the existing examples in the codebase are more useful than a separate slide deck here. To find existing uses, grep for ConfigurationUpgrade.

There is a v3 Upgrade TOI document that you can see for the full story. Because some of the doc is outdated, I've put the necessary info here:

  • Add a @Service class that implements ConfigurationUpgrade and PostConstruct. You can see the ConfigurationUpgrade interface in the GlassFish repository.
  • Make your changes in a public void postConstruct() method.
  • Inject the Config object if needed. You can also use helper class ConfigSupport. See API reference in the references section below.
  • Log the changes that you make during an upgrade.
    Does one upgrade depend on another?
    Courtesy of Jerome: To make sure upgrade class A runs before upgrade class B, have B @Inject A.

References

  • Config API From v3 api docs.
  • v3 upgrade compatibility requirements
  • v3 Upgrade TOI Some of this document is outdated. For instance, there is no upgrade-specific logger that you need to use for logging changes, warnings, etc. There is also no upgrade-specific email list. Just use the general developer list instead.

Detailed module status (optional)

If you have details regarding your status, please enter here.

Module Owner Status
General upgrade Bobby Still need to determine how to handle issues that are not part of existing modules. Upgrade tool in bug fix mode.
REST APU Jason Lee The REST API has no configuration so no upgrade is necessary
IIOP Ken Cavanaugh There are no changes in the IIOP configuration from GF 2 or 3 to GF 3.1
File Layout & Packaging Snjezana Sevo-Zenzerovic Product files under IPS package control are going to be updated using pkg(5) implementation.
Admin Console Anissa Lam GUI doesn't modify any configuration, no change is needed.
Connectors, Pooling, Resources, JDBC Jagadish Ramu No configuration change required for connectors, connection-pool, resources from GF 2 or GF 3 to GF 3.1
Logging Naman Mehta No configuration changes required for Logging.