Jakarta EE is the most popular Java server-side framework, way ahead its alleged competitors such as Spring, Quarkus, Micronaut or Dropwizard. With the industry-wide adoption of microservices based architectures, its popularity is skyrocketing and, during these last years, it has become the preferred framework for professional software enterprise applications and services development in Java.
In this blog, I'll explain more about Jakarta EE from my perspective as a Senior Java software architect/developer and why Jakarta EE and its runtimes beat the competition, in my opinion!
The Jakarta EE Platform
Jakarta EEis a set of specifications: an open-source platform that offers a collection of software components and APIs (Application Programming Interface) for the development of enterprise applications and services inJava. There are probably dozens of such open-source APIs nowadays but what makes Jakarta EE unique is the fact that all these specifications are JSRs (Java Specification Request). This means that they are issued from a consortium, bringing together the most important organizations in the today's Java software development field, originally led by the JCP (Java Community Process) and now stewarded by theEclipse Foundation: rebranded Jakarta EE and EclipseMicroProfile. Consequently, as opposed to its alleged competitors mentioned above, where the APIs are evolving according to unilateral decisions taken by their implementors, Jakarta EE is an expression of the consensus of companies, user groups and communities.
From J2EE to Jakarta EE
Jakarta EE is probably the best thing that has happened to Java since its birth, more then 20 years ago. Created in the early 2000s, the J2EE (Java 2 Enterprise Edition) specifications were an extension of the Java programming language, known also as J2SE (Java 2 Standard Edition). J2EE was set of specifications intended to facilitate the development of Java enterprise grade applications and to describe a unified and standard API, allowing developers to deal with complex functionalities like distributed processing, remote access, transactional management, security and much more. They were maintained by the JCP, as explained, and led by an executive committee in which Sun Microsystems, as the original developer of the Java programming language, had a central role.
From the year 2006 and onwards, Sun Microsystems decided to simplify the naming conventions of the J2EE specifications, which were in their 1.4 version at that time and, starting with the 5th release, to rename them as Java EE (Java Enterprise Edition). Similarly, the standard edition became Java SE (Java Standard Edition). This same year Sun Microsystems was acquired by Oracle who became the owner of both Java SE and Java EE. During this time, the JCP continued to produce hundreds of JSRs covering all the enterprise software development aspects. The complete list of the Jakarta EE specs may be foundhere.
Java EE was a huge success, a real revolution in Java software architecture and development. Its implementations, open-source or commercial products, were ubiquitous in the enterprise IT landscape. Oracle originally inherited two of them: GlassFish, which was the open-source reference implementation, and now sits alongside Jakarta EE at Eclipse Foundation; andWebLogic, a commercial platform obtained with Oracle's acquisition ofBEA Systems,and still wth Oracle now.
Oraclewas and stays an RDBMS software vendor and, despite being the new owner of Java SE/EE, they don't really have the "open-source fiber". Consequently, Java SE became a commercial product, available under a license and requiring a subscription, while Java EE wasn't maintained and finally was donated, in 2017, to the Eclipse Foundation. Its new name was Jakarta EE.
Jakarta EE 10
With Jakarta EE, the server side Java started a new life. It was first Jakarta EE 8 which kept the original namespace javax.*, then came Jakarta EE 9 which was a hybrid release as it used some original namespace prefixes together with the new ones jakarta.*, and finally the current release, Jakarta EE 10which, among othernew features,provides a full, coherent new namespace.
The Payara Platform
Started as a fork of GlassFish, Payara Server was created in order to overcome the lack of Jakarta EE commercial support. As the open source reference implementation by Sun Microsystems of the Jakarta EE specifications (previously Java EE and J2EE), GlassFish used to be adopted by many organizations, thanks to its compliance with the specifications, but also to its commercial support provided by Oracle. However, after years of good and loyal service, GlassFish has been relegated to the level of an outdated technological curiosity, further to the Oracle decision to drop the commercial support, which left all the organizations that had adopted it scrambling, looking for a replacement. And this replacement is Payara Server, available as aCommunityedition under a CDDL (Common Development and Distribution License) and as anEnterprise edition with commercial support.
But despite the fact of having been born as a fork of GlassFish, Payara Server, especially the Enterprise Edition, come with lots of add-ons which, little by little, are susceptible of being adopted by the Jakarta EE specifications.
In this blog, I hope I have championed Jakarta EE and revealed why it is revolutionary for enterprise Java. It retains the open source spirit and is guided by collaboration between companies, communities and user groups rather than commercial goals alone.