Eclipse readies next enterprise Java for mid-2020

Eclipse readies next enterprise Java for mid-2020

The Eclipse Foundation plans to release Jakarta EE 9, a version of enterprise Java with the new jakarta.* namespace, in mid-2020. Jakarta EE 9 will not have major new functionality.

A key goal of Jakarta EE 9 is to lower the barrier to entry to new vendors and implementations. Primarily seen as a tooling release, Jakarta EE 9 is intended to:

  • Serve as a platform for developers to use as a stable target for testing migration to the new namespace. Eclipse has been unable to gain permission from Oracle to evolve specifications under the previous javax namespace.
  • Make the release available quickly as a platform for innovation.

Jakarta EE 9 represents a “major inflection point” in the platform, Eclipse Executive Director Mike Milinkovich said. Key elements of the release plan include moving all specification APIs to the jakarta namespace and eliminating unwanted and deprecated specifications.

There will be minor enhancements to some specifications but no new specifications, apart from specifications pruned from Java SE (Standard Edition) 8. Jakarta EE 9 also adds Java SE 11 support. Jakarta EE is to serve as a foundation for innovation that Jakarta EE specification projects can use to drive new features for Jakarta EE 10 and beyond.

No backward compatibility guarantees

According to the Jakarta EE 9 release plan, Jakarta EE 9 will not impose any requirements for backward compatibility with the Jakarta EE 8 release, which arrived last September. This is aligned with Eclipse’s goal of enabling new implementations to enter the ecosystem. Eclipse believes many tools and products will offer backward compatibility as well as migration solutions for older applications to run on Jakarta EE 9. Eclipse agreed to take over development of enterprise Java from Oracle in 2017.

Jakarta EE 9 specifications

For inclusion in Jakarta EE 9, specifications must move their API package names from the top-level javax package to the jakarta package. Specifications in Jakarta EE 9 could be delivered in different groups known as “waves.” Existing specifications included in Jakarta EE 9 include:

  • Jakarta Annotations
  • Jakarta Authentication
  • Jakarta Authorization
  • Jakarta Batch
  • Jakarta Bean Validation
  • Jakarta Concurrency
  • Jakarta Connectors
  • Jakarta Contexts and Dependency Injection
  • Jakarta Debugging Support for Other Languages
  • Jakarta Dependency Injection
  • Jakarta EE 9 Full Platform
  • Jakarta EE 9 Web Profile
  • Jakarta Enterprise Beans
  • Jakarta Expression Language
  • Jakarta Interceptors
  • Jakarta JSON Binding
  • Jakarta JSON Processing
  • Jakarta Mail
  • Jakarta Managed Beans
  • Jakarta Messaging
  • Jakarta Persistence
  • Jakarta RESTful Web Services
  • Jakarta Security
  • Jakarta Server Pages
  • Jakarta Server Faces
  • Jakarta Servlet
  • Jakarta Standard Tag Libary
  • Jakarta Transactions
  • Jakarta WebSocket

Specifications added to Jakarta EE 9 include:

  • Jakarta Activation (required)
  • Jakarta SOAP with Attachments
  • Jakarta XML Binding (optional)
  • Jakarta XML Web Services (optional)
  • Jakarta Web Services Metadata (optional)
  • Jakarta SOAP with Attachments (optional)

Specifications pruned in Jakarta EE 9 include Jakarta Deployment, Jakarta Management, Jakarta XML Registries, and Jakarta XML RPC.