What’s definitely in Jakarta EE?
Confused about what’s going on with Jakarta EE? We take a look at what’s going on now that it’s hanging out at the Eclipse Foundation. Here’s what we know so far.
The transfer process for the newly-created Jakarta EE continues on and on. Keeping track of what’s in and what’s out is still a work in progress, but here’s what we know for certain. While there may be some other proposals that are still pending, these are the projects that have been accepted.
Eclipse GlassFish is a complete application server that implements the Jakarta EE specification. GlassFish includes implementations of all required and optional Jakarta EE APIs, and passes all Jakarta EE TCKs. GlassFish also includes a complete administration console, clustering support, and other developer and production focused tools and features.
The Eclipse Grizzly NIO framework has been designed to help developers to take advantage of the Java NIO API and write scalable server applications.
Eclipse Jersey is a REST framework that provides a JAX-RS (JSR-370) implementation and more. Jersey provides its own APIs that extend the JAX-RS toolkit with additional features and utilities to further simplify RESTful service and client development. Jersey also exposes numerous extension SPIs so that developers may extend Jersey to best suit their needs.
Eclipse Mojarra is an implementation for the JavaServer Faces specification (JSR-372). JavaServer Faces (JSF) is a Java specification for building component-based user interfaces for web applications. It is also a MVC web framework that simplifies construction of user interfaces (UI) for server-based applications by using reusable UI components in a page.
Mojarra is included in GlassFish.
Eclipse Open Message Queue (OpenMQ) is a complete message-oriented middleware platform, offering high quality, enterprise-ready messaging.
OpenMQ is included in GlassFish.
SEE ALSO: Jakarta EE progress to date
Annotations for common semantic concepts in the J2SE and J2EE platforms that apply across a variety of individual technologies.
Concurrency Utilities for Java EE provides a simple, standardized API for using concurrency from application components without compromising container integrity while still preserving the Java EE platform’s fundamental benefits.
The Java EE security provides a set of required security functionalities including authentication, authorization, data integrity, and transport security.
Expression Language (also referred to as the EL) provides an important mechanism for enabling the presentation layer (web pages) to communicate with the application logic (managed beans). The EL is used by several JavaEE technologies, such as JavaServer Faces technology, JavaServer Pages (JSP) technology, and Contexts and Dependency Injection for Java EE (CDI). The EL can also be used in stand-alone environments.
The Java Authorization Contract for Containers (JACC) defines a contract between a Jakarta EE application server and an authorization policy provider.
SEE ALSO: 5 minutes with the PMC Lead of EE4J
The Java Authentication Service Provider Interface for Containers (JASPIC) defines a service provider interface (SPI) by which authentication providers that implement message authentication mechanisms may be integrated in client or server message processing containers or runtimes.
The JavaMail API provides a platform-independent and protocol-independent framework to build mail and messaging applications. The JavaMail API is available as an optional package for use with the Java SE platform and is also included in the Java EE platform.
JAX-RS: Java API for RESTful Web Services (JAX-RS) is a Java programming language API spec that provides support in creating web services according to the Representational State Transfer (REST) architectural pattern.
JSR- 343: The Java Message Service (JMS) API is a Java Message Oriented Middleware API for sending messages between two or more clients. It is a programming model to handle the producer-consumer messaging problem.
Eclipse Project for JSON-P is a Java API to process (e.g. parse, generate, transform and query) JSON documents. It produces and consumes JSON in a streaming fashion (similar to StAX API for XML) and allows to build a Java object model for JSON using API classes (similar to DOM API for XML).
SEE ALSO: “By tying Jakarta EE to cloud-native and microservices, we have an opportunity to make the technology relevant to today’s cloud-first world”
JSON-B is a standard binding layer for converting Java objects to/from JSON messages. It defines a default mapping algorithm for converting existing Java classes to JSON, while enabling developers to customize the mapping process through the use of Java annotations.
JavaServer Pages (JSP) is a technology that helps software developers create dynamically generated web pages based on HTML, XML, or other document types.
JavaServer Pages Standard Tag Library (JSTL) encapsulates as simple tags the core functionality common to many Web applications. JSTL has support for common, structural tasks such as iteration and conditionals, tags for manipulating XML documents, internationalization tags, and SQL tags. It also provides a framework for integrating existing custom tags with JSTL tags.
Java Transaction API (JTA) specifies standard Java interfaces between a transaction manager and the parties involved in a distributed transaction system: the resource manager, the application server, and the transactional applications.
Java Servlets is a standard technology for interacting with the web on the Jakarta EE platform.
This project contains stable (legacy) APIs, RIs and TCKs which won’t be developed in future.
Java API for WebSocket (JSR-356), specifies the API that Java developers can use when they want to integrate WebSockets into their applications – both on the server side as well as on the Java client side.
Java EE Security API (JSR-375) reference implementation.
Eclipse Tyrus is an open source JSR 356 – Java API for WebSocket implementation for easy development of WebSocket applications. WebSocket protocol defined by IETF provides bi-directional communication between the server and the remote host. The pros are mainly the ability to communicate both ways, low latency and small communication overhead. Therefore Tyrus and WebSocket in general are suitable for web applications that require sending a huge volume of relatively small messages like online games or market ticker broadcasting.
Eclipse Yasson is a Java framework which provides a standard binding layer between Java classes and JSON documents. This is similar to what JAXB is doing in the XML world. Yasson is an official reference implementation of JSON Binding (JSR-367).
This project is part of Eclipse Photon.
The EclipseLink project’s goal is to provide a complete persistence solution that is both comprehensive and universal. It will run in any Java environment and read and write objects to virtually any type of data source, including relational databases, XML, or EIS systems. EclipseLink will focus on providing leading edge support, including advanced feature extensions, for the dominant persistence standards for each target data source; Java Persistence API (JPA) for relational databases, Java API for XML Binding (JAXB) for XML, Java Connector Architecture (JCA) for EIS and other types of legacy systems, and Service Data Objects (SDO).
This project is part of Eclipse Photon, Kepler, Juno, Indigo, Helios, and Galileo.