The Eclipse Foundation celebrated the first milestone release of Jakarta EE 9 with a Jakarta EE 9 Milestone Release Party on June 23rd, 2020. The event, hosted by the Eclipse Foundation's Tanja Obradovic, Jakarta EE program manager, Shabnam Mayel, senior marketing manager - Cloud Native Java, and Ivar Grimstad, Jakarta EE developer advocate, featured short presentations by Java luminaries Will Lyons, senior director, WebLogic Server Product Management at Oracle, Kevin Sutter, Jakarta EE 9 Release Lead at IBM, Scott Marlow, principal software engineer, JBoss at Red Hat, Steve Millidge, CEO at Payara, and BJ Hargrave, senior technical staff member at IBM.
The theme for the celebration was cupcakes sporting a Jakarta EE flag. The hosts and speakers were prepared to present their own cupcakes at the conclusion of their respective presentations.
The event was attended by 155 developers representing approximately 20 countries. The agenda included updates on the Jakarta EE Platform project (Platform and Web Profile 9.0.0-RC2 APIs), Jakarta EE TCK (Platform TCK 9.0.0-M1), Eclipse GlassFish 6.0-M1 and the Eclipse Transformer project.
Opening Remarks
In his opening remarks, Will Lyons provided an update of Jakarta EE activities since the formal release of Jakarta EE 8 in September 2019. The Jakarta EE 9 release plan, adopted in December 2019, will include a full migration of the javax
package namespace to jakarta
. The formal GA release of Jakarta EE 9 is planned for September 16th, 2020, in conjunction with the JakartaOne Livestream 2020 conference.
The M1 release features updates to the Jakarta EE specifications, APIs and TCKs. This will enable partners and tool vendors to begin their own certification process. GlassFish 6.0.0-M1 is the only compatible implementation at this time.
Along with major vendors - Red Hat, IBM, Payara and Tomitribe - Lyons acknowledged the Java community for almost 50% of contributions to Jakarta EE 9 in the first quarter of 2020.
Jakarta EE 9 Specifications
Kevin Sutter perused the Jakarta EE specifications page to show specific details available for each of those specifications such as the specification documentation, JavaDocs, TCKs and compatible implementations.
The Jakarta Managed Beans 2.0 specification and Jakarta EE Web Profile 9, almost ready for the final release, only requires the platform TCK and the GlassFish compatible implementation to be completed.
Work to be completed includes ensuring Jakarta EE Platform 9 for backwards compatibility, distributed interoperability, and final updates to the Jakarta Enterprise Beans 4.0 specification.
Jakarta EE Technology Compatibility Kit (TCK)
Scott Marlow discussed details about the Jakarta EE 9 Platform TCK including the role of the TCK, new changes for Jakarta EE 9 and what remains to be completed.
The Jakarta EE TCK, now open source, determines if a Jakarta EE server implementation meets compatibility requirements. For certification, the platform profile requires passing all the tests in the TCK while the web profile, targeted for web applications, requires passing only a subset of those tests.
Some of the Jakarta EE specifications also require passing separate standalone TCKs. Developers should be aware that the Jakarta Activation 2.0 specification is new to the list.
Tests have been updated to the new jakarta
package namespace and tests supporting the now deprecated specifications, such as Jakarta Deployment 1.7 and Jakarta XML RPC 1.1, have been pruned or removed.
Work to be completed includes executing the TCKs with JDK 11, removing legacy test archives, and updating the TCK documentation.
GlassFish 6.0.0-M1
Steve Millidge announced that GlassFish 6.0.0-M1, implemented with the jakarta
package namespace, is now available to the Java community. This M1 release of GlassFish incorporates compatible implementations of Eclipse projects such as Jersey, Mojarra, Tyrus and OpenMQ that are also using the jakarta
package namespace.
Plans for the final release of GlassFish include a branding refresh, support for JDK 11, and passing the Compliance Test Suite (CTS) and standalone TCKs.
Eclipse Transformer
BJ Hargrave introduced Eclipse Transformer, a new Eclipse project created to convert existing javax
package namespace binary artifacts to the new jakarta
package namespace. The project can transform binary class files, containers of those files (JARs, EARs and WARs) and other resources such as manifests and property files.
Transformer uses a rules-based mechanism that allows for custom rules. A Jakarta EE 9 rule set is currently under development.
Jakarta EE 9 development teams have experienced initial success with the Transformer project and the current version, 0.2.0, provides early access to the CLI, Maven and Gradle plugins.
Conclusion
Ivar Grimstad demonstrated how to migrate an existing Jakarta EE 8 application deployed on GlassFish 5 to a Jakarta EE 9 M1 application deployed on GlassFish 6.0.0-M1. By simply editing the pom.xml
file to reference Jakarta EE 9 and changing all references from javax
to jakarta
in the source code, the updated application was ready to be redeployed.
Grimstad also encouraged developers to share what Jakarta EE 9 means to them and their respective organizations by sharing a selfie with their own cupcake on social media using #JakartaEE
and @JakartaEE.
A replay of the Jakarta EE Milestone Release Party may be viewed on YouTube.
Resources
- JakartaOne 2019: Livestream 7am to 1pm Summary by InfoQ (November 27, 2019)
- The Jakarta EE 9 Delivery Plan by InfoQ (February 18, 2020)
Editor's Note
Michael Redlich serves on the leadership council of the Jakarta EE Ambassadors and will serve on the program committee for the JakartaOne Livestream 2020 conference.