After one year vacations Java EE 8 was rebooted and is going to be optimised to run on hypervisors and / or container environments. Java EE 8 will focus on the following areas below -- it is a proposal and very likely to change in the JCP process:Programming Model
- Extend for reactive programming
- Unified event model
- Event messaging API
- JAX-RS, HTTP/2, Lambda, JSON-B, (...)
- Package applications, runtimes into services
- Standalone immutable executable binary
- Multi-artifact archives
- Persistence and query interface for key value and document DB
- Automatically event out changes to observed data structures
- New spec - interfaces, packaging format, manifest
- Ephemeral instantiation
- Externalize configuration
- Unified API for accessing configuration
- Increased density
- Tenant-aware routing and deployment
- API to store externalized state
- Extension to support client-side circuit breakers
- Resilient commands
- Standardize on client-side format for reporting health
- Secret management
The choices are pragmatic and will make Java EE an even more productive platform. I'm only missing a slightly extended and modernized "Concurrency Utilities for Java EE" (jcp.org/ja/jsr/detail?id=236). Particularly the ThreadPool configuration and Backpressure could be easily standardized just by agreeing on features from https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadPoolExecutor.html. Particularly useful would be the integration of the statistics (e.g. Bulkheads) with the Health Check API.
Also a standardized management API (not proposed) would simplify the creation of application images through a unified API.
Java EE 8 and 9 will come at light speed to an application server vendor near you. Java EE 8 is expected to be delivered in 2017 and Java EE 9 in 2018.
Oracle is listening now, take the chance and participate at the survey (takes a few mins): glassfish.org/survey
On demand workshops: Java EE 7: Bootstrap, Effective, Testing and Microservices available for streaming.