The Jakarta EE Platform enables developers to produce lightweight, cloud native applications while providing maximum developer productivity. Now featuring multiple profiles geared towards producing microservices or full stack applications, the Platform provides flexibility for developing applications of all sizes. The Platform is composed of a number of specifications, each targeting specific areas in application architecture. This modular approach allows the specifications to evolve under different expert groups and timelines, while the platform enables each to work together in harmony.
Given the wide variety of applications being developed today, a “one size fits all” approach is rarely feasible. Some applications may be deployed to on premise containers, whereas others are deployed to cloud environments. Similarly, some applications may require the use of very few specifications, and others may make use of a more broad spectrum of the platform. When deploying to cloud environments, the size of an application or container can make a difference, as smaller sizes often equate to cost savings. Given the many variations between applications, the Jakarta EE Platform allows the developer to choose which size is the best fit for the solution. The Jakarta EE Platform provides a number of options which allow developers to make use of the specifications that best suit their solution. Developers can choose to utilize the Jakarta EE Core Profile, Jakarta EE Web Profile, or the entire Jakarta EE Platform.
There are a number of deployment options available for solutions developed on the Jakarta EE Platform. Applications can be packaged into Docker containers and deployed to Kubernetes, or they can be deployed to standard application server containers. Many containers have compatible implementations for each of the Jakarta EE profiles, as well as the full platform. In some cases, these containers also provide APIs above and beyond those required for compatibility. The Jakarta EE 10 Platform is compatible with Java SE 11 and Java SE 17, so some containers such as WildFly may have separate implementations for each.
Jakarta EE 10 introduces the Jakarta EE Core Profile, which contains a minimal number of specifications that are targeted towards providing essential functionality. The Jakarta EE Core Profile was engineered for use with microservices applications and for runtimes that support build-time applications.
The following specifications are supported by the Jakarta EE Core Profile:
To develop a microservice or application using the Jakarta EE Core Profile, add the following dependency to your POM file:
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-core-api</artifactId>
<version>10.0.0</version>
</dependency>
Applications that would be a good fit for use of the Jakarta EE Core Profile primarily communicate with other services/applications by means of RESTful web services, do not require messaging services, and they do not store data in persistent data stores. The core profile is ideal for development of simple services that will be suitable for cloud deployment.
The Jakarta EE Web Profile is targeted for the development of modern web applications that only require the use of a subset of the specifications within the platform. Applications that use this profile generally contain a smaller footprint and tend to be less complex than those using the full profile. However, it should be noted that most modern web applications incorporate several technologies due to the complexity of modern web design.
A modern web application oftentimes uses a view technology to provide simplified markup language, and advanced incorporation of JavaScript and styling. Moreover, persistence by means of relational or NoSQL databases is very common in such an application, as well as the requirement for transactions and security. No doubt, any modern web application utilizes a small stack of collaborative technologies.
The following specifications are part of the Jakarta EE Web Profile:
To develop a microservice or application using the Jakarta EE Web Profile, add the following dependency to your POM file:
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-web-api</artifactId>
<version>10.0.0</version>
</dependency>
The full platform contains the entire set of specifications. As such, it is targeted towards the development of enterprise applications requiring the use of many or all of the specifications in the platform. Generally applications making use of the full platform are deployed to traditional application server containers, however, it is still possible to deploy such applications to the cloud. Applications that fall into this category are typically fairly complex, or they were developed using older releases of the Java EE platform. The full platform includes the following specifications:
All of the specifications that are part of Jakarta EE Core Profile and Jakarta EE Web Profile
Full application server containers that are Jakarta EE compliant are bundled with each of the specifications in the platform. As such, applications can be packaged as Web Archive (WAR) files and deployed to the containers. However, it is also possible to create Microservices using the full platform, but it should be noted that the resulting deployment artifact will be substantially larger than a Microservices using the Jakarta EE Core Profile or Jakarta EE Web Profile.
To develop a microservice or application using the full platform, add the following dependency to your POM file:
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>10.0.0</version>
</dependency>
The best way to get started developing applications with the Jakarta EE Platform is to utilize the Jakarta EE Starter. The starter allows one to select which version of Jakarta EE along with a profile, and it produces a Jakarta EE project that is ready to be opened within an IDE for customization. To make use of the starter, go to the following website:
The Jakarta EE Platform contains industry standard specifications that have been developed and fine tuned to provide for maximum performance and developer productivity. The Jakarta EE 10 release provides a new Jakarta EE Core Profile that is specifically geared towards the development of cloud based services and applications. Whether an application requires the use of enterprise-level APIs, or if it will simply provide basic services such as REST, the Jakarta EE Platform contains a solution that will be suitable for the task at hand.