The Eclipse Foundation, which has taken over development of enterprise Java, has outlined the various projects that will make up the enterprise Java platform, which will emphasize microservices and cloud deployments.
The projects that make up Jakarta EE Java effort
Projects in the Jakarta EE effort include:
- GlassFish, the application server that has served as a reference implementation of enterprise Java.
- ORB, for source code and tests for the CORBA ORB (Object Request Broker) used in GlassFish.
- Jakarta EE Platform, for producing the platform specification and serving as an umbrella specification over Jakarta EE specifications.
- Jakarta EE TCK (Technology Compatibility Kit), for testing Jakarta EE implementations for compliance with the platform’s specification.
- The Grizzly New I/O API (NIO) framework, for writing scalable servers.
- Project for JAXB, for supporting Java Architecture for XML Bnding (JAXB), with an API and tools to map XML documents and Java objects.
- Project for JAX-RS, for supporting the Java API for RESTful Web Services specification.
- Project for JAX-WS, for an API and TCK for XML web services and APIs for XML messaging. Web services metadata for the Java platform also is included.
- Project for Enterprise Security, for providing capabilities such as authentication, authorization, data integrity, and transport security.
- Project for Servlet, for the API for the Java servlet specification. Servlets interact with the web on the Jakarta EE platform.
- Project for JCA (Jakarta EE Connector Architecture), for a standard architecture for components to connect to enterprise information systems.
- Project for Stable EE4J APIs, with APIs for management, deployment, JAX-RPC (XML-based remote procedure call), for web services, and JAXR, to access XML registries.
- Project for JMS (Java Message Service), for a middleware API for sending messages between clients.
- OpenMQ, a message-oriented middleware platform.
- Metro, a web services stack.
- The Jersey REST framework.
- Mojarra, an implementation of JavaServer Faces, for web UI development.
- Project for EJB (Enterprise JavaBeans), for an API and TCK for EJB that supports development of component-based business applications.
- Project for JavaMail, including the JavaMail API and a framework for building mail and messaging applications.
- Ozark, for a model-view-controller (MVC) API.
- Project for Common Annotations, for common semantic concepts.
- Project for Expression Language, for enabling webpages to communicate with application logic in the form of managed beans.
- Project for Concurrency Utilities, for an API to use concurrency from application components without compromising container integrity.
- Project for Interceptors, for an API and TCK for interceptors, which are used to interpose on business method invocations and events such as life cycle and time-out events on instances of Jakarta EE components and managed classes.
- Eclipse Project for JACC (Java Authorization Contract for Containers), for a contract between a Jakarta EE application server and an authorization policy provider.
- Project for JAF (JavaBean Activation Framework), an extension to Java for using services to determine the type of an arbitrary piece of data, encapsulate access, discover the data’s operations, and instantiate a bean to perform operations.
- Project for JASPIC (Java Authentication Service Provider Interface for Containers), for enabling message authentication providers to integrate with client or server message processing containers or runtimes.
- Project for JSON Processing, for an API to process JSON documents.
- Project for JSON-B, for a binding layer to convert Java objects to and from JSON messages.
- Yasson, for a JSON-B reference implementation via a framework.
- Project for JSP (JavaServer Pages), for an API and TCK for JSP, which helps with development of webpages based on HTML, XML, or other document types.
- Project for JSTL (JavaServer Pages Standard Tag Library), for encapsulating as tags the core functionality to web applications, with support for tasks such as iteration, documents, and manipulating XML documents. Also, a framework is provided to integrate existing tags with JSTL tags.
- Project for JTA (Java Transaction API), for specifying interfaces between a transaction manager and parties involved in a distributed transaction system, including the resource manager, authentication server, and transactional applications.
- Project for Servlet, for an API and TCK for Java Servlet Specification. Java Servlets interact with the web on Jakarta EE.
- Project for JPA (Java Persistence API), for managing persistence and object-relational mapping in Java environments.
- Project for WebSocket, for an API to integrate Websockets into applications.
- Tyrus, for a WebSocket API reference implementation.
- Soteria, providing a security API reference implementation.
- EclipseLink, for a persistence solution to read and write objects to data sources, including relational databases and XML.
Jakarta EE’s GlassFish application server plans
The Eclipse Foundation plans two releases of the GlassFish Java application server this year, including one that will pass through Eclipse’s new enterprise Java specification process.
GlassFish historically has served as a reference implementation of Java EE (Enterprise Edition}, which is being relabeled Jakarta EE. GlassFish will serve as the reference implementation of Jakarta EE as well. In the third quarter of 2018, Eclipse GlassFish 5.1 will debut, becoming the first release of a project from the Eclipse Enterprise for Java (EE4J) top-level project.
GlassFish 5.1 will be certified as compatible with Java EE 8. In the following quarter, Eclipse GlassFish 5.2 will arrive, certified for Jakarta EE 8 and compatible with Eclipse’s enterprise Java process. Java EE 8 and Jakarta EE 8 will be “extremely similar,” albeit with small differences, Eclipse Executive Director Mike Milinkovich said. A release schedule for Eclipse’s Jakarta EE is still to be determined.
Jakarta EE’s cloud-native approach to Java
Key goals and areas of focus for Jakarta EE, based on feedback from developers and stakeholders, include:
- Enhanced support for microservices architecture. The existing Eclipse MicroProfile community will help take the lead on this. Jakarta will have a microservices-first outlook and a simpler consumption model where enterprises can use the best of the platform without having to use all of it.
- A move to “cloud-native Java,” with better integrations with technologies including Docker containers and Kubernetes container orchestration. Some integrations have to happen at the JVM level. The Eclipse Jakarta community is expected to work with OpenJDK and the Eclipse OpenJ9 VM team on this effort.
- Provision of production-quality reference implementations.
- Building of a vibrant developer community.
- Establishing Eclipse as an open source “center of gravity” to attract other technologies in realms such as cloud-friendly Java, microservices, and Docker and Kubernetes integration.
Eclipse’s emphasis on cloud support and microservices echoes the plans Oracle had previously outlined for enterprise Java. As part of Eclipse’s takeover of the project, the organization is trying to make community participation easier.
Although the previous Java Community Process under Oracle had engaged the Java community, participation in open source projects such as GlassFish and the Jersey web services API required signing an Oracle Contributor Agreement—a barrier to some Java developers, Eclipse said. New processes for Jakarta EE specifications and development will be “open,” vendor-neutral, and provide a level playing field for all participants, the organization said.