5. What Is Jakarta EE? – Introducing Jakarta EE CDI: Contexts and Dependency Injection for Enterprise Java Development

© Luqman Saeed 2020
Luqman SaeedIntroducing Jakarta EE CDIhttps://doi.org/10.1007/978-1-4842-5642-8_5

5. What Is Jakarta EE?

Luqman Saeed
Accra, Ghana
You have learned what Java EE is. You've seen what an application server is and how it relates to the term Java EE. Now it’s time to consider what Jakarta EE is.
Jakarta EE is the new Java EE. Back in 2017, Oracle, which was the owner of the Java EE technology stack, decided to open the platform to the wider community. In the process, the entire Java EE platform had to be moved to a non-profit, community-oriented foundation.
The Java EE community voted and chose the Eclipse Foundation. So Java EE was moved to the Eclipse Foundation. Due to legal issues, the name of the platform had to be changed to something other than its original Java EE. Again, the community made suggestions and eventually the name Jakarta EE won1.
With a renewed goal of aligning the former Java EE platform to more modern software development paradigms, the Eclipse Foundation is seeking to position Jakarta EE as a modern, cloud-native, agile software development platform.
One of the criticisms leveled against Java EE was that it was too slow to evolve. The software development landscape moved faster than the platform could keep up. In light of such valid concerns, the Eclipse Foundation, through the Jakarta EE working group, developed the following guiding principles for Jakarta EE:
  • Deliver more frequent releases
  • Provide lower barriers to participation
  • Develop the community
  • Manage the Jakarta EE brand on behalf of the community
Initially, Jakarta EE is the exact equivalent to the Java EE 8 platform. All of the specifications, reference implementations (RIs), and technology compatibility kits (TCKs) that comprised Java EE 8 have been transferred to the Eclipse Foundation2. This means that the former Java EE 8 release is the foundation of the new cloud-native Jakarta EE.
Previous chapters discussed how Java EE evolved through the concept of Java Specification Requests (JSRs) through the Java Community Process (JCP). However, how will Jakarta EE evolve at the Eclipse Foundation? Alternatively, how is the Jakarta EE governance model different from that of Java EE?
The main difference is that the Jakarta EE governance model is now community-based, multi-vendor, and open to participation and contribution by the enterprise consumers of these technologies. The Eclipse Foundation will ensure that the new specifications and development processes for Jakarta EE will remain open, vendor-neutral, and provide a level playing field for all participants.
The Java Community Process (JCP) will be replaced by the Eclipse Foundation Specification Process (EFSP) (see https://www.eclipse.org/projects/efsp/). How is it different from the JCP?
It uses a code-first approach. The most vital difference between the JCP and EFSP is that specifications are going to be developed through this code-first approach. In the JCP, the specification is developed, followed by the reference implementation. In the EFSP, however, there will be hands-on coding and experimenting first to ensure that something is worthy of being included in a specification document.
The other differences all bring more openness on the side of the EFSP than on the erstwhile JCP process. This is a good thing. It means you as a developer can feel safe in using the Jakarta EE platform for your applications, knowing that it is a fully open platform run by a non-profit organization, with broader participation by the entire Java community. Microsoft and Pivotal (the company behind the Spring Framework) are members of the Jakarta EE community.
With regards to releases, the first release of the umbrella specification under Eclipse Foundation is Glassfish 5.1, which is a Java EE 8 compatible release. Recall that Chapter 3 stated that the Glassfish Application Server is the reference implementation of the Java EE umbrella JSR. The Foundation has released Jakarta EE 8 with Glassfish 5.2 as the reference implementation. Jakarta EE 8 is a fully compatible Java EE 8 release. This means every Java EE 8 application is automatically compatible with Eclipse Jakarta EE 8.
The future for you as a Jakarta EE developer is inspiring. There is a lot of community interest in moving the entire Jakarta EE platform forward, aiming to make it the most reliable, cloud-native, enterprise Java development platform of choice for modern software development paradigms. Why wouldn’t you want to master this exciting platform?