There has been a recent flurry of EE4J activity as the Eclipse Foundation is positioning Jakarta EE as the new home for cloud native Java:
- Nine EE4J projects have recently been created.
- Ten EE4J projects have recently been proposed.
- At least three EE4J projects are in creation review.
- Microsoft joined the Jakarta EE working group.
EE4J Projects
As per JEP-320, JDK 11, scheduled to be released in September 2018, won't include the Java EE modules - JAX-WS (JSR-224), JAXB (JSR-222), JAF (JSR-925), Commons Annotations (JSR-250), and JTA (JSR-907) - that were built-in to the JDK for a number of years.
When asked about Jakarta EE and JEP-320 in a recent interview with Mike Milinkovich, executive director at the Eclipse Foundation, he told InfoQ:
Because Java EE is moving to the Eclipse Foundation, they [Oracle] want to make sure there's an absolutely crystal clear separation between between SE and EE. There are some pieces of the JTA spec that had leaked into SE and they're being pulled out as well. So that's just background cleanup work that's happening in parallel with everything else.
The four Java EE modules, scheduled to be removed in JDK 11, will ultimately make their way into EE4J. Of the nine projects that recently passed the creation review process, Eclipse JTA and Eclipse Common Annotations have officially been created. Eclipse JAX-WS, Eclipse JAXB, and Eclipse JAF are currently undergoing the creation review process.
Oracle's recent contributions to EE4J included GlassFish and Java EE TCKs that will ultimately become Eclipse GlassFish and Eclipse Jakarta EE TCK. They are among the projects that have recently been proposed for EE4J. Oracle stated:
On an ongoing basis, Oracle reviews Oracle GlassFish source repositories on GitHub for their readiness to be contributed. As these reviews near completion, Oracle proposes EE4J sub-projects that correspond to Oracle GlassFish 5.0 components. These sub-projects and repositories are created after Project Management Committee (PMC) and community review. Oracle then submits the sources themselves to the Eclipse Foundation, with new licensing, where they are reviewed and eventually published in EE4J sub-project repositories on GitHub.
Eclipse GlassFish will be the focus of the two Jakarta EE releases this year. Eclipse GlassFish 5.1, certified as Java EE 8, is scheduled to be released by the end of the third quarter and Eclipse GlassFish 5.2, certified as Jakarta EE 8, is scheduled to be released by the end of 2018. Eclipse Jakarta EE TCK will provide the CTS tests suite for implementations of the various Jakarta EE specifications.
When asked about these recent project proposals, Milinkovich told InfoQ:
Yes, the most recent batch proposals included GlassFish and we're getting pretty close. Actually, the important one that people haven't commented on too much is the project proposal for open sourcing all of TCKs. It's going to be, I think, pretty important when all those TCKs become open source.
Rounding out the list of the most recent proposed projects are:
- Eclipse EJB
- Eclipse Interceptors
- Eclipse JACC (Java Authorization Contract for Containers)
- Eclipse JASPIC (Java Authentication Service Provider Interface for Containers)
- Eclipse JCA (Jakarta EE Connector Architecture)
- Eclipse Project for JSP
- Eclipse Servlet
- Eclipse Stable Jakarta EE APIs (provides a home for stable (legacy) Jakarta APIs, RIs and TCKs which are no longer actively developed)
- Eclipse Jersey
Oracle's blog summarizes their contribution to date:
- 34 EE4J sub-projects have been proposed for review. Together these sub-projects represent most of the GlassFish Reference Implementation, including the GlassFish project itself, most of the major GlassFish components, and a project for the TCK contributions
- 20 EE4J sub-projects have been created. These are projects that are ready to receive Oracle contributions
- 15 source contributions for these EE4J sub-projects have been delivered to the Eclipse Foundation. These include major Oracle Java EE 8 technologies, such as Jersey (JAX-RS), Mojarra (JSF), Tyrus (WebSocket), Open MQ (JMS), EclipseLink (JPA), JSON-P and JTA
- 13 sub-project source repositories have been populated
Eclipse maintains an evergreen status of all the EE4J projects:
The x-axis is defined as percent completed:
- 20% - project proposal for community review
- 40% - project committers and resources have been provisioned
- 60% - an initial contribution provided to the Eclipse IP Team
- 80% - an initial contribution pushed to Git repository
- 100% - project has engaged in its first Release Review
Microsoft Joins Jakarta EE as Participant Member
Bruno Borges, principal cloud developer advocate for Java at Microsoft, recently requested to join the Jakarta EE working group as a participant member. A Twitter moment captured some of the reaction by the Java community.
Kevin Hooke, AWS certified solutions architect, stated:
Microsoft is looking to join the Jakarta EE working group. Ok, that was probably going to happen at some point. But @brunoborges, Principal Developer Advocate for Java at Microsoft? Bruno, when did that happen?!
Simon Ritter, deputy CTO at Azul Systems, stated:
This is big. @Microsoft has changed a lot from when #JavaEE first launched. In a good way. More contributors can only make #JakartaEE better.
Steve Milledge, founder and director at Payara, stated:
Looking forward with working with Microsoft on @JakartaEE
Markus Karg, Eclipse committer and JSR-339/370 EG member, recently blogged about Microsoft joining the Jakarta EE working group. He stated:
Microsoft -at least so far- did not have a product implementing this complete umbrella standard (it did support only few bricks).
I once said that Microsoft will get rid of Windows in favor of Linux, and this is happening right now. I also once said that Microsoft will drop C# and .NET in favor of Java and Java EE.
It will be interesting to see how Microsoft moves forward as a member of the Jakarta EE working group as the new standards body gets underway.
Resources
- Background on Oracle's Contributions to Jakarta EE by Will Lyons (April 24, 2018)
- Scaling Up the Continuous Integration Infrastructure for Eclipse Foundation's Projects by Mikaël Barbero (April 27, 2018)
- Jakarta EE Projects Summary by Dmitry Kornilov (May 9, 2018)